当前位置:大学毕业论文> 专科论文>材料浏览

收集类学年毕业论文范文 和基于Windows内核的用户行为收集解决方案方面自考毕业论文范文

主题:收集论文写作 时间:2024-01-21

基于Windows内核的用户行为收集解决方案,该文是收集类学年毕业论文范文和Windows内核和解决方案和用户类论文怎么撰写.

收集论文参考文献:

收集论文参考文献 组织行为学论文选题行为金融学论文数字化用户期刊消费者行为学论文

摘 要:规范企业PC用户的行为使之符合安全性、有用性的要求,借助技术手段收集用户的行为是一种行之有效的方式.分析基于Windows内核技术,实现对用户上网行为、进程操作、文件的读写、删除和重命名进行收集.采用C/S架构,在服务器端文件记录客户端访问的网站信息和进程操作信息,方便对历史记录进行查询,完全基于内核,无进程也无DLL支持,可靠性和安全性高.

关键词:Windows内核;进程操作;上网行为;文件行为

中图分类号:TP309文献标识码:A

ASolutionforUserBehiorCollectionBasedonWindowsKernel

ZHAOXiaohua,ZHAOShusheng

(ShangqiuUniversityAppliedScienceandTechnologyCollege,Kaifeng475000,China)

Abstract:TostandardizethebehiorsofenterprisePCuserstomeettherequirementsofsecurityandusefulness,itisaneffectivewaytocollectusers´behiorsbymeansoftechnology.BasedonWindowskerneltechnology,thispaperimplementsthecollectionofuseronlinebehiorsandprocessoperation,filereading,writing,deletingandrename.C/Sarchitectureisusedtorecordclient´saccesstowebsiteinformationandprocessoperationinformationinserversidefiles,soastofacilitatequeriesonhistoricalrecords.ItisbasedonkernelwithnoprocessandnoDLLsupportaswellashighreliabilityandsecurity.

Keywords:Windowskernel;processoperation;onlinebehior;filebehior

1引言(Introduction)

随着计算机在各行各业的重要性日益凸显,如何规范工作人员的行为,提高工作效率已成为各公司机构需要解决的问题.采用强有力的技术手段,实时查看用户上网行为,以及用户进程操作,确保员工高效、安全的使用计算机.

本文基于Windows内核技术,通过采用一系列的技术手段,收集用户上网、进程,以及文件操作行为,可用于分析用户是否有违规行为.

2系统结构(Systemstructure)

系统结构图如图1所示,由监控客户端、Windows服务器组成,一个服务器可以接收多台PC客户端收集的信息.客户端运行监控程序能够对每个客户端用户的上网行为进行即时的收集.Windows服务器部署在与监控客户端同一局域网,在Windows服务器上运行管理程序.监控客户端程序和Windows服务器的管理服务模块通信采用了C/S架构.下面对这两个功能模块进行简要的介绍.

(1)监控客户端

监控客户端部署在局域网内需要被监控的各计算机上,它的主要功能是收集用户的网络和进程操作行为.

图1系统结构

Fig.1Systemstructure

采用进程回调方式捕获进程调用,记录进程创建、进程退出等.采用基于Minifilter(Mini-FilterInstallableFileSystem文件系统微过滤驱动)的文件过滤技术,记录文件的打开、读、写、重命名操作.WFP(WindowsFilteringPlatformWindows过滤平台)对TCP/IP协议栈进行全方位的过滤拦截,接收发送的TCP数据包,分析用户的网络行为.

为了防止客户端监控程序被非法关闭或异常退出,系统采用一系列自我保护措施.包括注册表回调防止删除注册表启动项、基于IRP((I/ORequestPackage)的独占方式打开程序、防止加载专业工具删除监控程序.

(2)服务器端

维护所有客户端监控程序的工作状态,采用内核TDI(TransportDriverInterface传输层接口)将客户端收集到的网络和进程操作行为记录到文件,方便对历史记录查询.

3相关技术概述(Overviewofrelatedtechnologies)

3.1进程回调

采用进程回调记录进程创建、退出等操作.当一个进程被创建或者删除时,一系列的例程将会被调用.PsSetCreateProcessNotifyRoutine进程回调函数的原型如下:NTSTATUSPsSetCreateProcessNotifyRoutine(

INPCREATE_PROCESS_NOTIFY_ROUTINENotifyRoutine,

INBOOLEANRemove

);

其中,NotifyRoutine表示例程函数的入口地址,Remove为FALSE时,添加例程到链表,为TRUE时,从链表中删除该例程.

PCREATE_PROCESS_NOTIFY_ROUTINE为回调指针,声明如下:

VOID(*PCREATE_PROCESS_NOTIFY_ROUTINE)(

INHANDLEParentId,

INHANDLEProcessId,

INBOOLEANCreate

);

ParentId和ProcessId用于确定进程,Create参数表明进程是创建还是删除.当Create为True时,例程在新创建的进程的初始化线程被创建后被调用.当Create为False时,例程在进程的最后一个线程被关闭,进程的地址空间将被释放时调用.当进程被删除时,例程运行在进程的最后一个线程中.

3.2基于Minifilter的文件过滤

MiniFilter相对于传统的ilter方式,Minifilter编写微小而简单.速度增加的同时,不同软件之间兼容性也得到了提升[1].

(1)文件过滤中对文件的读写操作进行过滤

注册微过滤器时,填写微过滤器注册结构FLT_REGISTRATION,在FLT_OPERATION_REGISTRATION域中,定义文件打开、文件读IRP_MJ_READ、文件写IRP_MJ_WRITE、文件删除IRP_MJ_SET_INFORMATION、文件重命名等文件操作的回调函数NPPreCreate、NPPostRead、NPPreWrite、NPPreDelete、NPPRERENAME.

(2)获取文件操作信息

在回调函数中NPPreXXX在请求完成之前进行处理,拦截请求本身.在回调数据包FLT_CALLBACK_DATA中包含了请求相关的全部信息,获取到打开的文件名、操作的进程号、文件路径等等.NPPostXXX在请求完成之后,对返回结果进行拦截.

3.3基于WFP的网络传输信息

WFP由FilterEngine(过滤引擎)、CalloutDriver、Filter组成[2].FilterEngine的内核模式可以对TCP/IP协议栈进行全方位的过滤拦截.CalloutDriver是WFP扩展功能的一种机制.CalloutDriver由一组Callout函数组成,其中,ClassifyFn函数处理收到的网络数据,例如端口号、ip地址等.Filter包含过滤条件,指定过滤器的action类型、处理action的Callout.

WFP的过滤过程[3]:首先,在过滤引擎(FilterEngine)中注册Callout,在Callout处理函数classifyFn函数中处理数据.然后,初始化Filter,为Filter添加过滤条件,指示哪些数据符合filter的要求,把数据交给Callout处理.处理网络数据包的classifyFn函数,函数原型如下:

VOIDNTAPIclassifyFn(

INconstFWPS_INCOMING_VALUES0*inFixedValues,

INconstFWPS_INCOMING_METADATA_VALUES0*inMetaValues,

INOUTVOID*layerData,

INconstFWPS_FILTER0*filter,

INUINT64flowContext,

OUTFWPS_CLASSIFY_OUT0*classifyOut

);

其中,intFixedValues是指向FWPS_INCOMING_VALUES0_的结构体

typedefstructFWPS_INCOMING_VALUES0_{

UINT16layerId;

UINT32valueCount;

FWPS_INCOMING_VALUE0*incomingValue;

}FWPS_INCOMING_VALUES0;

(1)获取网络连接的端口号

TCP传输在FWPM_LAYER_ALE_FLOW_ESTABLISHED_V4层建立连接,获取建立连接的信息.

通过inFixedValues->incomingValue[FWPS_FIELD_ALE_FLOW_ESTAB-

LISHED_V4_IP_LOCAL_PORT].value.uint16获取发送方端口.

通过inFixedValues->incomingValue[FWPS_FIELD_ALE_FLOW_ESTAB-

LISHED_V4_IP_LOCAL_ADDRESS].value.uint32获取发送方IP.

通过inMetaValues->processId获取进程id.

(2)传输数据信息的获取

在classifyFn处理函数中layerData参数包含了要传输的数据.TCP数据对应的数据类型为FWPS_STREAM_CALLOUT_IO_PACKET.

streamPacket等于(FWPS_STREAM_CALLOUT_IO_PACKET*)packet;

streamBuffer等于streamPacket->streamData;

获取缓冲区的内容:

RtlCopyMemory(tmpStream,streamBuffer,streamBuffer->dataLength);

此时已经获取了streamBuffer中的内容,对tmpStream进行数据类型转换即可进行数据分析.

3.4自我保护

在服务器端、客户端安装exe程序执行收集,要防止程序被修改或删除,需要采取一系列的自我保护措施.本文采用三种方式,采用注册表回调方式防止删除注册表启动项,基于IRP实现独占方式打开文件,防止加载专业工具删除程序.

3.4.1注册表回调防止删除注册表启动项

内核模式驱动程序调用CmRegisterCallback函数注册一个回调,在配置管理每一次注册表操作的信息都会被填充到REG_XXX_KEY_INFORMANTION结构体里.回调例程能够阻止注册表操作[4].

CmRegisterCallback函数原型如下:

NTKERNELAPINTSTATUSCmRegisterCallback(

PEX_CALLBACK_FUNCTIONFunction,

PVOIDContext,

PLARGE_INTEGERCookie

);

其中,Function是回调函数指针,Context作为回调函数的参数,Cookie是回调的句柄.EX_CALLBACK_FUNCTION的原型如下:

EX_CALLBACK_FUNCTIONExCallbackFunction;

NTSTATUSExCallbackFunction(

PVOIDCallbackContext,

PVOIDArgument1,

PVOIDArgument2)

Argument1记录操作类型,Argument2记录有关操作信息的结构指针.若已经注册了注册表回调,当有删除注册表项的操作发生时,Argument1为RegNtPreDeleteKey,Argument2指向一个REG_DELETE_KEY_INFORMATION结构体的指针.此函数如果返回STATUS_SUCCESS,注册表操作就会继续执行,如果返回STATUS_ACCESS_DENIED,注册表操作就不会执行了.

3.4.2基于IRP的独占方式打开程序

当上层应用程序操作某个设备时,I/O管理器会将I/O请求转化成IRP(I/ORequestPackage)数据结构对象和一个IRP_STACK_LOCATION数据结构对象数组,IRP中的CurrentStackLocation字符指向IRP_STACK_LOCATION中的某一个元素.IRP_STACK_LOCATION数组中的每一个元素由上一层驱动负责填充.

打开文件函数原型如下:

NTSTATUSIrpCreateFile(

OUTPFILE_OBJECT*FileObject,

INACCESS_MASKDesiredAccess,

INPUNICODE_STRINGFilePath,

OUTPIO_STATUS_BLOCKIoStatusBlock,

INULONGFileAttributes,

INULONGShareAccess,

INULONGCreateDisposition,

INULONGCreateOptions,

);

其中,FileObject是指向文件的指针,FilePath指明文件路径,IoStatusBlock是指向结构体IO_STATUS_BLOCK的指针,当打开文件时,结构体中Information值为FILE_OPENED.DesiredAccess指定访问权限,FileAttributes表明文件对象属性,将文件属性设置为FILE_SHARE_READ共享读.设备和中间层驱动一般设置ShareAccess为0,表示调用者以独占方式打开文件.CreateDisposition指定如果文件存在或不存在时所做的操作.CreateOptions指定驱动创建或者打开文件时需要应用的选项.

3.4.3防止加载专业工具删除

专业工具强制删除文件,通常基于IRP来完成的:构造IRP,先设置文件的属性,将SECTION_OBJECT_POINTERS结构的DataSectionObject和ImageSectionObject两个域清空,然后删除文件.文件以独占方式打开并且只共享读,即使专业工具使用IRP也不能删除.

3.5基于TDI的信息上传

基于TDI将用户的进程操作、网络行为、文件读写等信息从客户端内核上传服务器.TDI是一套接口的集合,这套接口连着socket和协议驱动,由协议层驱动实现.传输的步骤如下:

(1)建立并连接TDI

NTSTATUSOpenTDIConnection(char*szIpAddress,unsignedshortPort);

szIpAddress表示服务器端ip,Port表示服务器端端口.

(2)客户端传输数据、服务器端接收数据

将客户端机器的mac地址,以及客户端机器的网络行为、文件读写、进程操作等信息发送给服务器端.

unsignedlongSendData(char*pData,unsignedlongbufferLength);

unsignedlongRecvData(char*pData,unsignedlongLength);

其中,pData表示传输的数据指针.

4结论(Conclusion)

网络行为的结果如图2所示.按行显示网络操作,每行内容为网络操作发生时间、进程号、访问的网络ip、端口号、访问的*.

进程创建、退出,以及文件的创建、读写操作等收集的结果如图3所示.按行显示操作,每行内容为操作发生时间、标识、操作的进程号、文件路径.其中,标识有进程PROCESS、文件写WRITE、进程创建PCREATE、文件读READ、文件删除DELETE等.

图2网络行为

Fig.2Networkbehiors

图3文件、进程操作行为

Fig.3File&processoperationbehiors

本文完全采用基于内核的方式,没有监控程序和服务器端进程.也无DLL支持,可靠性好、安全性高.

参考文献(References)

[1]谭文,杨潇,邵坚磊.寒江独钓:Windows内核安全编程[M].北京:电子工业出版社,2009.

[2]黄君胜.基于WFP的终端信息泄漏监控系统的研究与实现[J].计算机应用与软件,2013,30(3):315-318;326.

[3]WindowsFilteringPlatform[EB/OL].https://msdn.microsoft.com/en-us/library/windows/desktop/aa366510(v等于vs.85).aspx.

[4]ly(cqupt),ljh(cqupt).浅谈基于CallBack的注册表监控和过滤技术[J].防线,2009(7):82-85.

作者简介:

赵晓华(1990-),女,硕士,助教.研究领域:软件开发.

赵树升(1968-),男,硕士,副教授.研究领域:安全操作系统内核.

上文结论,此文为一篇适合不知如何写Windows内核和解决方案和用户方面的收集专业大学硕士和本科毕业论文以及关于收集论文开题报告范文和相关职称论文写作参考文献资料.

自媒体视点:消费升级其实是用户行为习惯的再进化等
消费升级其实是用户行为习惯的再进化(20170814;公众号辉常观察;作者孟永辉)传统电商时代,用户关注的是在某个电商平台上是否能够“买到”心仪的商品,这是一个寻找的过程,用户.

制冷、采暖、热水,三类居家生活解决方案
文·刘恋 编辑·杨珉 美术·小强夏季制冷、冬季采暖的常见问题上世纪80 年代,日本的壁挂式空调开始进入中国,让我们在炎热的夏季获得了一种前所未有的舒适体验,9.

看不见的健康隐患这里有更好的解决方案
文·王子斐 编辑·石莹莹 美术·Mei寒冷的冬天,每个醒来的早晨,户外每况愈下的空气状况,早已成为关注的焦点 看看户外的空气污染指数,总会有太多无奈 而这些看.

赢泰:以全面的解决方案,助力家电企业迈向智能制造
2017年,家电企业在智能制造领域动作频频 9月,格力电器宣布将利用自身在智能设备产业的资源,吸引产业链相关企业共同建设中国洛阳自主创新智能制造产业基地 11月2日,美的集团与碧桂园签订战略合作,计划.

论文大全