在文件过滤驱动中如何判断文件访问请求来自网络

转载 2007年09月12日 15:02:00

在做文件过滤驱动的时候,经常会想知道这个文件访问请求是来自本地还是网络的,这样就可以根据自己制定的安全策略,决定是否允许这些请求完成,因此,成功的判断来自网络的文件访问就十分必要了。刚刚从驱网bmyyyud的Blog那里看到的一篇相关文章,还没有来得及测试,先转载过来吧,有空试试。

//---------------------------------------------------
//从IrpStackLocation中判断来自网络的文件访问
BOOLEAN SfIsFromNetAccess(
     PIO_STACK_LOCATION IrpSp
     )
{
     NTSTATUS status;
     PACCESS_TOKEN pToken = NULL;
     PTOKEN_SOURCE pTokenSrc = NULL ;
     PSECURITY_SUBJECT_CONTEXT secSubCtx;
     //PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp);
     
     secSubCtx = &(IrpSp->Parameters.Create.SecurityContext->AccessState->SubjectSecurityContext);

     if (secSubCtx->ClientToken != NULL || secSubCtx->PrimaryToken != NULL)
     {
           pToken = SeQuerySubjectContextToken(secSubCtx);
     }
     
     if (pToken == NULL)
     {
           //KdPrint(("SeQuerySubjectContextToken Errorn"));
           return FALSE;
     }

//
// Get TokenSource Name If SourceName is "NtLmSsp" it was logged-in via Lanmanager,
// "User32" represents localy logged-in users.
//
__try
{
     status = SeQueryInformationToken(pToken,TokenSource,&pTokenSrc);
     if (NT_SUCCESS(status))
     {
           pTokenSrc->SourceName[TOKEN_SOURCE_LENGTH-1] = 0x00;
           
           KdPrint(("Token Name :%s Len:%dn",pTokenSrc->SourceName,strlen(pTokenSrc->SourceName)));
     
           if (_stricmp(pTokenSrc->SourceName,"NtLmSsp") == 0 )
           {
                 KdPrint(("NetWork Access Token Findn"));
                 return TRUE;
           }
     }
     else
     {
           KdPrint(("SeQueryInformationToken Error:0x%xn",status));
     }
}
__finally
{
     ExFreePool(pTokenSrc);
}
     return FALSE;
}


 

在文件过滤驱动中如何判断文件访问请求来自网络?

在做文件过滤驱动的时候,经常会想知道这个文件访问请求是来自本地还是网络的,这样就可以根据自己制定的安全策略,决定是否允许这些请求完成,因 此,成功的判断来自网络的文件访问就十分必要了。刚刚从驱网bmy...
  • walksea
  • walksea
  • 2006年11月03日 14:12
  • 586

Windows文件系统过滤驱动中打开文件时如何避免重入

调用下面的函数可以避免在打开回调中打开新的文件的时候引起重入 NTSTATUS IoCreateFileSpecifyDeviceObjectHint( __out PHANDLE F...
  • baggiowangyu
  • baggiowangyu
  • 2015年02月13日 17:12
  • 1328

在文件过滤驱动中如何判断文件访问请求来自网络?

在做文件过滤驱动的时候,经常会想知道这个文件访问请求是来自本地还是网络的,这样就可以根据自己制定的安全策略,决定是否允许这些请求完成,因此,成功的判断来自网络的文件访问就十分必要了。刚刚从驱网bmyy...
  • joshua_yu
  • joshua_yu
  • 2006年03月05日 19:29
  • 4806

文件系统过滤驱动总结

文件系统过滤驱动 . 1 文件系统过滤驱动工作原理 Windows NT内核操作系统的驱动模型采用分层结构,如图1所示。图中左边是一个设备对象栈,设备对象 是操作系统为帮助软件管理硬件而...
  • bcbobo21cn
  • bcbobo21cn
  • 2016年04月13日 18:35
  • 1186

java 判断请求来自手机或电脑

import javax.servlet.http.HttpServletRequest; /** * 判断请求来自PC 或 移动端的公用类 * @author zhoubo * */ pu...
  • AcceGrow
  • AcceGrow
  • 2015年06月19日 11:50
  • 1135

(装载) 文件过滤驱动必看

(转载)Windows文件系统过滤驱动开发教程0. 作者,楚狂人自述我长期网上为各位项目经理充当“技术实现者”的角色。我感觉Windows文件系统驱动的开发能找到的资料比较少。为了让技术经验不至于遗忘...
  • newkey007
  • newkey007
  • 2004年10月24日 23:19
  • 9507

文件过滤驱动实现目录重定向(一)

By Fanxiushu  2015 转载或引用请注明原始作者 谈论这个问题前,先看看一个情况: 比如你上班的公司,可能有多个文件服务器,这些文件服务器通过FTP或者远程共享目录方式提供目录共享。 ...
  • fanxiushu
  • fanxiushu
  • 2015年02月08日 13:54
  • 2905

过滤驱动的概念

有的公司采用技术手段禁止员工使用U盘,是为了防止员工通过U盘将敏感数据带出公司,本质上是禁止敏感数据通过USB接口流出。USB接口比较复杂。本章讨论一个类似但是简单得多的设备:串口。要禁止使用串口非常...
  • qinlicang
  • qinlicang
  • 2009年08月05日 16:00
  • 5411

文件过滤驱动实现目录重定向(三)

Wrote By Fanxiushu   2015-03-30,引用或转载请注明原始作者。 接上文。 因为整个驱动结构采用把所有数据转发到应用层来处理的, 所以需要在应用层处理各种文件请求,才能最终...
  • fanxiushu
  • fanxiushu
  • 2015年03月30日 00:19
  • 1528

TDI FILTER 网络过滤驱动完全解析

WDM TDI Filter驱动的组织架构
  • CharlesPrince
  • CharlesPrince
  • 2010年10月06日 22:57
  • 8472
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在文件过滤驱动中如何判断文件访问请求来自网络
举报原因:
原因补充:

(最多只允许输入30个字)