CN104063633A - 一种基于过滤驱动的安全审计系统 - Google Patents
一种基于过滤驱动的安全审计系统 Download PDFInfo
- Publication number
- CN104063633A CN104063633A CN201410178630.8A CN201410178630A CN104063633A CN 104063633 A CN104063633 A CN 104063633A CN 201410178630 A CN201410178630 A CN 201410178630A CN 104063633 A CN104063633 A CN 104063633A
- Authority
- CN
- China
- Prior art keywords
- data
- client
- audit log
- cifs
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 19
- 238000012550 audit Methods 0.000 claims description 115
- 238000000034 method Methods 0.000 claims description 94
- 230000008569 process Effects 0.000 claims description 84
- 238000001914 filtration Methods 0.000 claims description 73
- 238000005315 distribution function Methods 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 239000000203 mixture Substances 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 32
- 230000006399 behavior Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 230000007812 deficiency Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000032798 delamination Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001256 tonic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提出一种基于过滤驱动的安全审计系统,包括:系统过滤驱动模块、客户端采集模块、客户端处理模块和客户端发送模块,其中系统过滤驱动模块包括NDIS(Network Driver Interface Specification,网络驱动接口规范)驱动模型的中间层过滤驱动模块和PNP(Plug-and-Play,即插即用)驱动模型的USB设备过滤驱动模块。本发明提高了安全审计系统的安全性。
Description
技术领域
本发明涉及安全审计领域。具体来说是一种基于过滤驱动的分布式的安全审计系统。
背景技术
计算机技术的迅猛发展带来的信息数字化大幅度提高工作效率促进社会发展的同时,安全问题也日益成为影响很多领域效能的重要问题。数字信息的安全相比传统数据文件安全更受关注是由于数字信息本身具有易于复制的特性,利用这一特性,信息更易于受到难以控制和追溯的盗取威胁。安全审计是对系统记录和过程的检查和审查,审计系统可以通过记录可疑数据、入侵信息、敏感信息等,对网络进行动态实时监控;通过寻找入侵和违规行为,记录网络上发生的一切,作为取证和跟踪使用。安全审计的常用方式是在正常系统行为之前加装安全审计过滤行为,只有通过了安全审计过滤行为中相应安全规则的系统行为才可以进入正常的系统流程,在安全审计过滤行为中,会对所有系统行为进行档案留存。
现有安全审计系统存在审计内容不全,审计粒度过粗,审计系统安全性不足等问题。现有安全审计系统审计内容不全,主要表现为,审计项目过于单一,不能涵盖用户从接入涉密信息系统到离开涉密信息系统的完整行为过程;现有安全审计系统审计粒度过粗,主要表现为,审计内容过于简单,不能涵盖用户的具体操作行为;现有安全审计系统审计安全性不足,主要表现为,用户层的安全审计软件容易被绕过,失去审计效能。
发明内容
本发明技术解决问题:克服现有技术的审计内容不全,审计粒度过粗,审计系统安全性不足等问题,提供一种基于过滤驱动的安全审计系统,解决了以上3类问题,提高了安全审计系统的安全性。
本发明技术解决方案:一种基于过滤驱动的安全审计系统,包括:系统过滤驱动模块、客户端采集模块、客户端处理模块和客户端发送模块,其中系统过滤驱动模块包括NDIS(Network Driver Interface Specification,网络驱动接口规范)驱动模型的中间层过滤驱动模块和PNP(Plug-and-Play,即插即用)驱动模型的USB设备过滤驱动模块;
NDIS驱动模型的中间层过滤驱动模块,创建NDIS协议驱动设备,将此设备绑定所有NDIS小端口驱动,以获取网卡设备接收的网络数据;创建NDIS小端口驱动设备,将此设备绑定所有NDIS协议驱动,以获取NDIS协议驱动发送的网络数据;设置分发函数,将获取的网络数据进行Kerberos协议和CIFS协议关键字匹配,将以上两种协议的敏感网络数据通过共享内存传输给客户端采集模块;
PNP驱动模型的USB设备过滤驱动模块,通过绑定PCI总线设备驱动,设置USB设备添加设备分发函数,USB设备插入时,通过构造IRP(I/ORequest Package,输入输出请求包)获取USB设备类型和型号信息,将捕获的USB设备数据通过共享内存传输给客户端采集模块;
客户端采集模块:初始化两个采集线程和信息缓存队列,两个采集线程和信息缓存队列分别对应接收缓存NDIS驱动模型的中间层过滤驱动模块和PNP驱动模型的USB过滤驱动模块的数据;在每个采集线程中,各自初始化共享内存,将共享内存传递给对应的过滤驱动,作为客户数据缓存区,各自初始化共享事件,作为跟对应的过滤驱动进行事件通信的标志;当系统过滤驱动模块捕获客户数据时,将数据缓存至共享内存,并触发对应的共享事件,采集线程读取客户数据,采集线程首先读取对应的共享内存数据,将数据缓存至对应的信息缓存队列,将对应的共享事件置位,将对应的共享内存清空,继续等待共享事件被触发;当信息缓存队列中存在数据时,客户端采集模块会创建处理线程,调用对应的客户端处理模块处理接口,对客户信息缓存队列中的数据进行处理;
客户端处理模块:首先初始化缓存客户端基本信息,客户端基本信息包括客户登录用户名、客户登录主机名、作为审计日志基本信息;然后接收客户端采集模块采集的CIFS协议、Kerberos协议和USB设备数据,进行CIFS协议文件操作数据处理或者进行Kerberos协议登录数据处理或者进行USB设备数据处理;所述CIFS协议文件操作数据处理初始化FID缓存队列,通过解析CIFS协议网络数据包中的操作命令字段,采取相应的操作命令处理流程,将CIFS协议网络数据包中的操作信息和审计基本信息,生成相应的审计日志,调用客户端发送模块发送审计日志;所述进行Kerberos协议登录数据处理,首先初始化登录用户名缓存队列,通过解析获取Kerberos协议请求包中的客户端登录用户名和Kerberos协议返回包中的登录结果,将以上信息缓存到登录用户名缓存队列,当前登录用户名出错次数如果是5的倍数,将登录用户名和审计日志基本信息组成审计日志,调用客户端发送模块发送审计日志;所述进行USB设备数据处理,解析数据获取其中的USB设备型号信息和设备ID信息,将USB设备型号信息、设备ID信息和审计日志基本信息组成审计日志,调用客户端发送模块发送审计日志;
客户端发送模块:初始化日志缓存队列和网络套接字连接,将客户端处理模块中的审计日志放入日志缓存队列中,通过网络套接字将日志发送到日志服务器。
所述NDIS驱动模型的中间层过滤驱动模块设置分发函数实现过程如下:
a.通过设置驱动分发函数,将本驱动捕获的网络数据包进行处理,根据网络数据包中的网络协议类型TCP协议或者UDP协议分别执行b和c;
b.针对TCP协议数据包,过滤其中的kerberos协议网络数据包,将其放入共享内存,并通知客户端采集模块读取共享内存数据;
c.针对UDP协议数据包,过滤其中的CIFS协议网络数据包,将其放入共享内存,并通知客户端采集模块读取共享内存数据.
所述PNP驱动模型的USB设备过滤驱动设置分发函数实现过程如下:
a.设置USB设备过滤驱动分发函数,设置针对IRP_MJ_PNP类型IRP包的分发函数,当IRP_MJ_PNP类型IRP包到达本驱动,本驱动会调用相应的分发函数对此IRP包进行处理;
b.在分发函数中,解析IRP_MJ_PNP类型IRP包,判断是否为新USB设备插入;
c.新USB设备插入时,构造查询IRP包,将查询IRP包发送到新USB设备,在返回数据中,获取新USB设备的设备类型和型号信息;
d.将USB设备的设备类型和型号信息放入共享内存,并通知客户端采集模块读取共享内存数据。
所述客户端处理模块流程数据处理实现过程如下:
(1)CIFS协议文件操作数据处理,针对CIFS协议网络数据包,首先获取网络数据包包头数据,解析包头数据中的CIFS协议命令字段,根据CIFS协议命令字段采取相应处理流程。
a.针对CIFS协议NT_CREATE命令数据包,进行CIFS协议打开文件命令处理流程,获取FID与文件目录关联数据,并缓存到FID缓存队列。将NT_CREATE命令数据包中的文件打开信息(文件路径)和审计日志基本信息,生成客户打开文件的审计日志,调用客户端发送模块发送审计日志。
b.针对CIFS协议READ/WRITE命令数据包,进行CIFS协议读/写命令处理流程,获取当前数据包FID字段,通过FID缓存队列查找当前FID所关联文件目录。将READ/WRITE命令数据包中的文件读写信息和审计日志基本信息,生成客户读取/修改文件的审计日志,调用客户端发送模块发送审计日志。
c.针对CIFS协议CLOSE命令数据包,进行CIFS协议关闭文件命令处理流程,获取当前数据包FID字段,通过FID缓存队列查找当前FID所关联文件目录。将CLOSE命令数据包中的文件关闭信息和审计日志基本信息,生成客户关闭文件的审计日志,调用客户端发送模块发送审计日志。
d.针对CIFS协议NEGOTIATE命令数据包,进行CIFS协议协商命令处理流程,获取当前数据包CIFS协议协商数据,判断当前用户是否已经连接服务器,将NEGOTIATE命令数据包中的协议协商信息和审计日志基本信息,生成客户连接服务器的审计日志,调用客户端发送模块发送审计日志。
e.针对CIFS协议DELETE命令数据包,进行CIFS协议删除文件/目录命令处理流程,获取当前数据包FID字段,通过FID缓存队列查找当前FID做关联文件目录。将DELETE命令数据包中的删除文件/目录信息和审计日志基本信息,生成客户删除文件的审计日志,调用客户端发送模块发送审计日志。
f.针对CIFS协议RENAME命令数据包,进行CIFS协议重命名文件命令处理流程,获取当前数据包源文件名字段和新文件名字段,将RENAME命令数据包中的重命名文件信息和审计日志基本信息,生成客户重命名文件的审计日志,调用客户端发送模块发送审计日志。
(2)Kerberos协议登录数据处理,针对Kerberos协议网络数据包,首先获取网络数据包的请求应答数据字段和错误码数据字段,针对以上字段分别调用Kerberos协议请求处理流程和Kerberos协议错误回复处理流程,根据请求应答字段获取请求用户名,根据错误回复数据字段获取用户输入错误密码次数,当同一用户名输入错误密码次数累计为五的倍数,生成审计日志。
本发明与现有技术相比的优点在于:本发明基于过滤驱动的分布式安全审计系统可以支持局域网环境下的大规模,多用户的审计需求,分布在网络分散节点上的审计客户端驱动可以收集被审计客户端的所有异常系统行为,并将审计信息发送到审计服务器上进行统一的分析和处理,过滤驱动对被审计客户端的系统行为不会进行任何干扰,被审计客户端的运行效率不会受到任何影响。该系统部署方便,可扩展性强,过滤驱动可以随系统镜像一同安装到涉密计算机终端,在驱动层面上对系统行为进行审查,有效地提高了安全审计系统的可靠性和可信性。
附图说明
图1为本发明系统组成框图;
图2为本发明的基于NDIS模型的网络过滤驱动模块实现流程图;
图3为本发明的基于WDM模型的USB过滤驱动模块实现流程图;
图4为本发明的客户端采集模块实现流程图;
图5为本发明的客户端处理模块CIFS部分实现流程图;
图6为本发明中客户端处理模块Kerberos部分流程图;
图7为本发明中客户端处理模块USB部分实现流程图。
具体实施方式
基于过滤驱动的安全审计系统,涉及一系列计算机专业术语,以下进行相关知识介绍:
NDIS驱动模型中间层过滤驱动简介,Windows的网络结构是以ISO的7层网络模型为基础的,它的网络驱动部分实现了传输层、网络层、链路层,由此形成了NDIS(Windows网络驱动程序接口规范)驱动模型。NDIS支持以下几种网络驱动程序:微端口(网络接口卡)、中间层驱动程序、传输协议驱动程序。中间层驱动程序位于微端口驱动程序和传输协议驱动程序中间。既与上层协议驱动又与下层微端口驱动通信。在下边界,中间层驱动层程序提供了协议入口点函数,NDIS调用这些函数传递底层微端口请求。对于下层微端口驱动程序,中间层驱动程序就像一个传输协议驱动程序,在上边界,中间层驱动程序提供了微端口入口点,NDIS调用这些函数,传递一个或多个上层协议的请求。对于上层协议驱动程序,中间层驱动程序就像一个微端口驱动程序。
USB过滤驱动简介,USB过滤驱动是一种基于WDM(Windows DriverModel,微软驱动模型)分层驱动模型的过滤驱动,在WDM模型中,每个硬件设备至少有两个驱动程序:功能驱动程序和总线驱动程序。一个设备还可能有用来变更标准设备驱动行为的过滤驱动程序,例如,USB过滤驱动。这些服务于同一个设备的驱动程序组成了一个链表,成为设备栈。当一个用户需要改变或新添一些功能到一个设备、一类设备或一种总线时,就可以编写一个过滤驱动程序。在设备栈里,过滤驱动程序安装在一个或几个设备驱动程序的上面或下面。过滤驱动程序拦截对具体设备、类设备、总线的请求,并做相应的处理,以改变设备的行为或添加新的功能,USB过滤驱动只处理那些它所关心的I/O请求,对于其他请求可以交给其他的驱动程序来处理。
IRP简介,IRP为I/O request packets的简称,即输入输出请求包,它是Windows内核中的一种非常重要的数据结构。上层应用程序与底层驱动通信时,应用程序会发送I/O请求,操作系统将相应的I/O请求转换成相应的IRP,不同的IRP会根据类型被分派到不同的派遣例程中进行处理。IRP有两个基本的属性,即MajorFunction和MinorFunction,分别记录IRP的主类型和子类型,操作系统根据MajorFunction决定将IRP分发到哪个派遣例程,然后派遣例程根据MinorFunction进行细分处理。上文中提到的IRP_MJ_PNP是IRP主功能号MajorFunction的一种。
CIFS协议简介,即通用Internet文件系统,也称为服务器消息块(SMB),是一种网络协议,其最常见的用途是共享局域网(LAN)的文件。该协议允许客户端对文件进行操作,支持操作包括:读、写、创建、删除、重命名等,唯一的区别是,该文件不存在于本地计算机上,而是位于远程服务器上。CIFS协议的每个数据包的开头包含一个命令字段,本安全系统关心的命令字段包括:SMB_COM_NT_CREATE_ANDX(文件打开命令字段,针对此命令采取NT_CREATE命令处理流程)、SMB_COM_NT_RENAME(文件重命名命令字段,针对此命令采取RENAME命令处理流程)、SMB_COM_READ_ANDX(文件读取命令字段,针对此命令采取READ命令处理流程)、SMB_COM_WRITE_ANDX(文件修改命令字段,针对此命令采取WRITE命令处理流程)、SMB_COM_CLOSE(文件关闭命令字段,针对此命令采取CLOSE命令处理流程)、SMB_COM_NEGOTIATE(连接服务器,协议协商命令字段,针对此命令采取NEGOTIATE命令处理流程)、SMB_COM_TRANSACTION_SECONDY(文件删除命令字段,针对此命令采取DELETE命令处理流程)。
Kerberos协议简介,Kerberos协议是一种网络认证协议,其设计目标是通过迷药系统为客户机/服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络中所有主机的物理安全,并假定网络上传输的数据包可以被任意地读取、修改和插入数据。在以上情况下,Kerberos作为一种可信任的第三方认证服务,是通过传统的密码技术执行认证服务的。安全审计系统通过Kerberos协议RequestBody(请求数据包)中UserName(用户名)字段获取当前请求用户用户名和用户登录次数。
如图1所示,本发明一种基于过滤驱动的安全审计系统,包括:系统过滤驱动模块、客户端采集模块、客户端处理模块和客户端发送模块,其中系统过滤驱动模块包括NDIS驱动模型的中间层过滤驱动模块和PNP(Plug-and-Play,即插即用)驱动模型的USB设备过滤驱动模块。
如图2所示,基于NDIS模型的网络过滤驱动模块的实现流程如下:
(1)构造上下层驱动接口,注册接口回调函数,NDIS过滤驱动需要符合NDIS的分层标准,网络数据包在NDIS框架中由下至上分别经过了小端口驱动层,协议驱动层,TDI(Transport Driver Interface,传输层驱动程序接口)传输层及用户接口层。本发明的过滤驱动附着在NDIS框架的底层,即小端口驱动层和协议驱动层之间,对下需要注册协议驱动接口,来契合小端口驱动,进而捕获所有小端口上传的数据包;对上需要注册小端口驱动接口,来契合协议驱动,进而捕获所有协议驱动下发的数据包;
(2)生成驱动控制设备,过滤驱动需要与用户层的应用程序进行通信,确定过滤策略并随时通知过滤状态,应用程序与驱动程序之间是通过控制设备进行通信的,生成的控制设备向应用程序提供一个符号链接名,应用程序通过该名字打开设备并向设备传递参数,从而完成通信功能;
(3)绑定上下层接口,完成初始化工作,过滤驱动的上边界(小端口驱动接口)和下边界(协议驱动接口)需要分别与系统提供的协议驱动和小端口驱动进行绑定,从而可以加入系统的NDIS体系,绑定工作是由NDIS框架在加载驱动的过程中进行的,过滤驱动在绑定过程中需要从框架参数中获取被绑定设备的基本信息,并为自身需要的定制化参数分配系统空间;
(4)捕获从小端口上传和从协议下发的所有数据包,当有网络数据包从系统的小端口驱动层上传时,过滤驱动的协议接口会被NDIS框架调用,将数据包以参数的形式传入协议接口的接收回调函数,当有网络数据包从系统的协议驱动下发时,过滤驱动的小端口接口会被NDIS框架调用,同样,也会将数据包以参数的形式传入小端口接口的接收回调,从而实现两个方向上的数据包的捕获。在这一过程中,系统的正常数据传递流程依然会进行,唯一不同的是将数据包多分发了一次给过滤驱动,所以不会的系统原有流程造成任何影响,保证了系统的稳定性;
(5)运行过滤策略,通过对数据包进行协议分析,确定数据包使用的网络协议,源地址,目的地址,端口号和包数据,并根据过滤策略有选择性地将符合条件的数据包保存至缓存队列,并生成事件通知用户层应用程序有符合条件的审计数据包到达,对于不符合过滤策略的数据包,则直接丢弃;
(6)数据包入队并通知用户层程序,驱动层不对数据包内容进行审计,内容审计是一个较为耗时的操作,因此会放在用户层应用程序进行。驱动和应用程序之间共享一个事件变量,应用程序等待该共享事件,驱动程序每收到一个数据包,就将数据包缓存至一个内核队列,然后触发事件来完成对应用程序的通知,应用程序收到事件后立刻去队列中读取当前队列中所有的数据包,并依次对数据包内容进行分析和审计,形成审计日志,发往审计日志服务器,内核队列保存在非分页内存中,因此长度不能太长,需要驱动程序和应用程序密切配合,完成数据通信的功能。
如图3所示,基于WDM模型的USB过滤驱动模块的实现流程如下:
(1)生成过滤设备,过滤设备是基于WDM模型的USB过滤驱动的基本组成部分,过滤设备在初始化的时候由驱动程序生成,主要作用是接收上下层设备传递的IRP请求,并提供给应用程序一个设备链接名,可以通过过滤设备与应用程序通信,WDM框架在加载过滤驱动的过程中生成过滤设备;
(2)注册PNP(Plug-and-Play,即插即用)回调函数,USB过滤驱动的主要目的是检测USB设备在目标主机上的插拔操作,从而记录插拔的时间和USB设备序列号,形成审计记录,插拔操作可以在PNP回调函数中检测到,这一操作需要向WDM框架注册PNP回调函数,当总线驱动程序检测到新的PNP设备被接入目标主机时,会调用PNP回调函数,具体的过滤策略在该函数中进行处理;
(3)将过滤设备附加到USB设备栈底,基于WDM模型的驱动采用设备栈的形式进行消息的传递,每一种类型的驱动都会对应一个设备栈,本发明中创建的USB过滤设备则附加在设备栈的底端,拦截从驱动发往设备的所有IRP请求,处理之后再向上层设备传递,因此不会对系统的正常流程造成任何影响,被附着的物理设备对象在WDM框架生成过滤设备时通过参数传入;
(4)捕获并记录插拔事件,完成设备的创建和绑定流程后,就可以开始监听USB设备插拔事件了,当PNP回调函数被调用时,表示一次PNP事件的发生。可以通过事件的MinorFunction字段判断事件类型。
(5)如果此PNP事件为USB设备插入事件,则通过构造两个IRP分别设置IRP的ioStackLocation->Parameters.QueryId.IdType为BusQueryDeviceID和BusQueryInstanceID,获取USB设备编号,记录本次事件并通知应用程序读取数据。
如图4所示,所述的客户端采集模块流程实现过程如下:
(1)用户信息队列管理,包括初始化消息队列,创建队列插入节点函数,创建队列删除节点函数,创建队列读取节点函数;
a.创建队列初始化函数,初始化消息队列,初始化互斥区域指针,初始化队列头,初始化队列长度;
b.创建队列插入节点函数,验证队列参数,拷贝接口参数中的数据到新队列节点,进入互斥区域,将新队列节点插入队列,更改队列长度,判断队列长度是否超出阈值,如果超出则执行流程c,离开互斥区域;
c.创建队列删除节点函数,缓存队列指针,更改队列指针,释放删除节点内存,变更队列长度;
d.创建队列读取节点函数,验证队列参数,进入互斥区域,判断队列长度,读取队列节点信息,调用流程c,退出互斥区域。
(2)用户信息读取,包括初始化用户信息读取线程,初始化用户信息数据到达事件,开启用户信息读取线程,在读取线程中当检测到内核态用户数据到达则调用用户信息分类处理函数进行处理;
a.初始化用户信息读取线程,初始化用户信息数据到达事件,创建事件到达访问控制句柄,创建数据读取线程,设置线程处理函数;
b.开启用户信息读取线程,创建用户信息数据缓存,开启读取循环,在循环中访问事件到达访问控制句柄,当数据达到事件被触发时,调用队列访问控制函数中的读取队列节点函数,获取用户数据,调用用户信息分类函数,通过判断返回值调用相应的处理函数对数据进行处理;
(3)用户信息分类,判断用户数据为CIFS协议数据、Kerberos协议数据或者USB设备数据,分别调用其相应处理函数;
用户信息分类函数,创建用户数据缓存,将用户数据分别按照CIFS协议、Kerberos协议、USB设备数据进行分析,如果用户数据符合其中一种,则返回相应的标识码。
客户端处理模块流程实现过程如下:
(1)如图5所示,用户文件操作CIFS协议流程如下:
a.审计信息处理模块读取采集模块传输过来的数据,缓存数据中的原IP地址、目的IP地址和时间戳信息;
b.读取SMB数据包的第5个BYTE,将SMB包取出包头,按照SMBheader的格式存储,读取SMB包的第5个byte,获取其中的command数据;
c.判断此command是否为关键命令,如果不是关键命令则直接将包丢弃,如果是关键命令,则根据关键命令类型选择不同的处理流程,NT_CREATE命令则执行流程d,READ/WRITE命令则执行流程e,CLOSE命令则执行流程f,NEGOTIATE命令执行流程g,DELETE命令执行流程h,RENAME命令执行流程i;
d.针对CIFS协议NT_CREATE命令数据包,进行CIFS协议打开文件命令处理流程,获取FID与文件目录关联数据,并缓存到FID缓存队列。将NT_CREATE命令数据包中的文件打开信息(文件路径)和审计日志基本信息,生成客户打开文件的审计日志,调用客户端发送模块发送审计日志;
e.针对CIFS协议READ/WRITE命令数据包,进行CIFS协议读/写命令处理流程,获取当前数据包FID(File Identification,文件身份)字段,通过FID缓存队列查找当前FID所关联文件目录。将READ/WRITE命令数据包中的文件读写信息和审计日志基本信息,生成客户读取/修改文件的审计日志,调用客户端发送模块发送审计日志;
f.针对CIFS协议CLOSE命令数据包,进行CIFS协议关闭文件命令处理流程,获取当前数据包FID字段,通过FID缓存队列查找当前FID所关联文件目录。将CLOSE命令数据包中的文件关闭信息和审计日志基本信息,生成客户关闭文件的审计日志,调用客户端发送模块发送审计日志;
g.针对CIFS协议NEGOTIATE命令数据包,进行CIFS协议协商命令处理流程,获取当前数据包CIFS协议协商数据,判断当前用户是否已经连接服务器,将NEGOTIATE命令数据包中的协议协商信息和审计日志基本信息,生成客户连接服务器的审计日志,调用客户端发送模块发送审计日志。
h.针对CIFS协议DELETE命令数据包,进行CIFS协议删除文件/目录命令处理流程,获取当前数据包FID字段,通过FID缓存队列查找当前FID做关联文件目录。将DELETE命令数据包中的删除文件/目录信息和审计日志基本信息,生成客户删除文件的审计日志,调用客户端发送模块发送审计日志;
i.针对CIFS协议RENAME命令数据包,进行CIFS协议重命名文件命令处理流程,获取当前数据包源文件名字段和新文件名字段,将RENAME命令数据包中的重命名文件信息和审计日志基本信息,生成客户重命名文件的审计日志,调用客户端发送模块发送审计日志;
(2)如图6所示,用户Kerberos协议处理流程如下:
a.创建用户Kerberos协议数据缓存,拷贝Kerberos协议请求回复状态位和Kerberos错误状态码;
b.判断请求回复状态位,若请求则进入Kerberos协议请求流程。若为回复,判断其Kerberos协议错误状态码,如果Kerberos协议错误状态码为30,则进入Kerberos协议错误处理流程;
c.Kerberos协议请求流程,解析Kerberos协议请求数据包,获取其中的RequestBody(请求数据包)中的UserName(用户名)字段,将UserName保存至当前登录用户名和用户登录次数队列中;
d.Kerberos协议错误处理流程,获取当前登录用户名,解析Kerberos协议错误代码,如果是用户密码错误码,则在当前登录用户错误次数加1,如果错误次数累计为5的倍数,则生成审计日志。
(3)如图7所示,用户USB设备处理流程如下:
a.解析数据获取其中的USB设备型号信息和设备ID信息;
b.将USB设备型号信息、设备ID信息和审计日志基本信息组成审计日志;
c.调用客户端发送模块发送审计日志U。
具体实施例:
本实施例的实验条件如下
1.硬件环境,
CPU:Intel(R)Core(TM)i3-2120CPU3.30GHz,3.29GHz
内存:1.88GB
硬盘:450G
2.软件环境,
操作系统:Windows XP SP3
3.源代码:过滤驱动源代码,客户端应用程序源代码
结合上述实验环境,根据说明书附图中的流程,下面对本发明的实施方式进行详细说明:
(1)在驱动配置文件中配置审计日志服务器的IP地址和端口号,并测试连接是否成功;
(2)如果测试与审计日志服务器的连接成功后,使用驱动安装包中的INF文件安装过滤驱动到目标机器上;
(3)启动客户端应用程序,该程序会检查底层驱动是否已正常运行并和驱动进行测试性通信,如果一切正常,则应用程序会开启所有模块并尝试读取驱动程序的内核队列,至此客户端审计系统部署完毕;
(4)如果此时有符合过滤条件的网络数据包到达,或者有USB设备的插拔事件发生,驱动就会触发审计事件,应用程序会立刻读取驱动内核队列,并分析队列数据,形成审计条目;
(5)应用程序在形成审计条目后会以固定格式的数据包将审计条目发送到审计日志服务器,形成最终的审计日志并存档。
本发明未详细阐述部分属于本领域技术人员公知技术。
Claims (4)
1.一种基于过滤驱动的安全审计系统,其特征在于包括:系统过滤驱动模块、客户端采集模块、客户端处理模块和客户端发送模块,其中系统过滤驱动模块包括NDIS(Network Driver Interface Specification,网络驱动接口规范)驱动模型的中间层过滤驱动模块和PNP(Plug-and-Play,即插即用)驱动模型的USB设备过滤驱动模块;
NDIS驱动模型的中间层过滤驱动模块,创建NDIS协议驱动设备,将此设备绑定所有NDIS小端口驱动,以获取网卡设备接收的网络数据;创建NDIS小端口驱动设备,将此设备绑定所有NDIS协议驱动,以获取NDIS协议驱动发送的网络数据;设置分发函数,将获取的网络数据进行Kerberos协议和CIFS协议关键字匹配,将以上两种协议的敏感网络数据通过共享内存传输给客户端采集模块;
PNP驱动模型的USB设备过滤驱动模块,通过绑定PCI总线设备驱动,设置USB设备添加设备分发函数,USB设备插入时,通过构造IRP(I/O RequestPackage,输入输出请求包)获取USB设备类型和型号信息,将捕获的USB设备数据通过共享内存传输给客户端采集模块;
客户端采集模块:初始化两个采集线程和信息缓存队列,两个采集线程和信息缓存队列分别对应接收缓存NDIS驱动模型的中间层过滤驱动模块和PNP驱动模型的USB过滤驱动模块的数据;在每个采集线程中,各自初始化共享内存,将共享内存传递给对应的过滤驱动,作为客户数据缓存区,各自初始化共享事件,作为跟对应的过滤驱动进行事件通信的标志;当系统过滤驱动模块捕获客户数据时,将数据缓存至共享内存,并触发对应的共享事件,采集线程读取客户数据,采集线程首先读取对应的共享内存数据,将数据缓存至对应的信息缓存队列,将对应的共享事件置位,将对应的共享内存清空,继续等待共享事件被触发;当信息缓存队列中存在数据时,客户端采集模块会创建处理线程,调用对应的客户端处理模块处理接口,对客户信息缓存队列中的数据进行处理;
客户端处理模块:首先初始化缓存客户端基本信息,客户端基本信息包括客户登录用户名、客户登录主机名、作为审计日志基本信息;然后接收客户端采集模块采集的CIFS协议、Kerberos协议和USB设备数据,进行CIFS协议文件操作数据处理或者进行Kerberos协议登录数据处理或者进行USB设备数据处理;所述CIFS协议文件操作数据处理初始化FID缓存队列,通过解析CIFS协议网络数据包中的操作命令字段,采取相应的操作命令处理流程,将CIFS协议网络数据包中的操作信息和审计基本信息,生成相应的审计日志,调用客户端发送模块发送审计日志;所述进行Kerberos协议登录数据处理,首先初始化登录用户名缓存队列,通过解析获取Kerberos协议请求包中的客户端登录用户名和Kerberos协议返回包中的登录结果,将以上信息缓存到登录用户名缓存队列,当前登录用户名出错次数如果是5的倍数,将登录用户名和审计日志基本信息组成审计日志,调用客户端发送模块发送审计日志;所述进行USB设备数据处理,解析数据获取其中的USB设备型号信息和设备ID信息,将USB设备型号信息、设备ID信息和审计日志基本信息组成审计日志,调用客户端发送模块发送审计日志;
客户端发送模块:初始化日志缓存队列和网络套接字连接,将客户端处理模块中的审计日志放入日志缓存队列中,通过网络套接字将日志发送到日志服务器。
2.根据权利要求1的一种基于过滤驱动的安全审计系统,其特征在于:所述NDIS驱动模型的中间层过滤驱动模块设置分发函数实现过程如下:
a.通过设置驱动分发函数,将本驱动捕获的网络数据包进行处理,根据网络数据包中的网络协议类型TCP协议或者UDP协议分别执行b和c;
b.针对TCP协议数据包,过滤其中的kerberos协议网络数据包,将其放入共享内存,并通知客户端采集模块读取共享内存数据;
c.针对UDP协议数据包,过滤其中的CIFS协议网络数据包,将其放入共享内存,并通知客户端采集模块读取共享内存数据。
3.根据权利要求1的一种基于过滤驱动的安全审计系统,其特征在于:所述PNP驱动模型的USB设备过滤驱动设置分发函数实现过程如下:
a.设置USB设备过滤驱动分发函数,设置针对IRP_MJ_PNP类型IRP包的分发函数,当IRP_MJ_PNP类型IRP包到达本驱动,本驱动会调用相应的分发函数对此IRP包进行处理;
b.在分发函数中,解析IRP_MJ_PNP类型IRP包,判断是否为新USB设备插入;
c.新USB设备插入时,构造查询IRP包,将查询IRP包发送到新USB设备,在返回数据中,获取新USB设备的设备类型和型号信息;
d.将USB设备的设备类型和型号信息放入共享内存,并通知客户端采集模块读取共享内存数据。
4.根据权利要求1的一种基于过滤驱动的安全审计系统,其特征在于:所述客户端处理模块流程数据处理实现过程如下:
(1)CIFS协议文件操作数据处理,针对CIFS协议网络数据包,首先获取网络数据包包头数据,解析包头数据中的CIFS协议命令字段,根据CIFS协议命令字段采取相应处理流程;
a.针对CIFS协议NT_CREATE命令数据包,进行CIFS协议打开文件命令处理流程,获取FID与文件目录关联数据,并缓存到FID缓存队列。将NT_CREATE命令数据包中的文件打开信息和审计日志基本信息,生成客户打开文件的审计日志,调用客户端发送模块发送审计日志;
b.针对CIFS协议READ/WRITE命令数据包,进行CIFS协议读/写命令处理流程,获取当前数据包FID字段,通过FID缓存队列查找当前FID所关联文件目录。将READ/WRITE命令数据包中的文件读写信息和审计日志基本信息,生成客户读取/修改文件的审计日志,调用客户端发送模块发送审计日志;
c.针对CIFS协议CLOSE命令数据包,进行CIFS协议关闭文件命令处理流程,获取当前数据包FID字段,通过FID缓存队列查找当前FID所关联文件目录。将CLOSE命令数据包中的文件关闭信息和审计日志基本信息,生成客户关闭文件的审计日志,调用客户端发送模块发送审计日志;
d.针对CIFS协议NEGOTIATE命令数据包,进行CIFS协议协商命令处理流程,获取当前数据包CIFS协议协商数据,判断当前用户是否已经连接服务器,将NEGOTIATE命令数据包中的协议协商信息和审计日志基本信息,生成客户连接服务器的审计日志,调用客户端发送模块发送审计日志;
e.针对CIFS协议DELETE命令数据包,进行CIFS协议删除文件/目录命令处理流程,获取当前数据包FID字段,通过FID缓存队列查找当前FID做关联文件目录。将DELETE命令数据包中的删除文件/目录信息和审计日志基本信息,生成客户删除文件的审计日志,调用客户端发送模块发送审计日志;
f.针对CIFS协议RENAME命令数据包,进行CIFS协议重命名文件命令处理流程,获取当前数据包源文件名字段和新文件名字段,将RENAME命令数据包中的重命名文件信息和审计日志基本信息,生成客户重命名文件的审计日志,调用客户端发送模块发送审计日志;
(2)Kerberos协议登录数据处理,针对Kerberos协议网络数据包,首先获取网络数据包的请求应答数据字段和错误码数据字段,针对以上字段分别调用Kerberos协议请求处理流程和Kerberos协议错误回复处理流程,根据请求应答字段获取请求用户名,根据错误回复数据字段获取用户输入错误密码次数,当同一用户名输入错误密码次数累计为五的倍数,生成审计日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410178630.8A CN104063633B (zh) | 2014-04-29 | 2014-04-29 | 一种基于过滤驱动的安全审计系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410178630.8A CN104063633B (zh) | 2014-04-29 | 2014-04-29 | 一种基于过滤驱动的安全审计系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104063633A true CN104063633A (zh) | 2014-09-24 |
CN104063633B CN104063633B (zh) | 2017-05-31 |
Family
ID=51551343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410178630.8A Active CN104063633B (zh) | 2014-04-29 | 2014-04-29 | 一种基于过滤驱动的安全审计系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104063633B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104683477A (zh) * | 2015-03-18 | 2015-06-03 | 哈尔滨工程大学 | 一种基于smb协议的共享文件操作过滤方法 |
CN106888221A (zh) * | 2017-04-15 | 2017-06-23 | 北京科罗菲特科技有限公司 | 一种网络信息安全传输方法 |
CN107204922A (zh) * | 2016-03-17 | 2017-09-26 | Arm 有限公司 | 用于过滤事务的装置和方法 |
CN108171081A (zh) * | 2018-02-01 | 2018-06-15 | 云易天成(北京)安全科技开发有限公司 | 一种基于文件上传的文件过滤方法、介质及设备 |
CN110532210A (zh) * | 2019-08-07 | 2019-12-03 | 北京数衍科技有限公司 | 安全获取操作系统任意输出设备数据的桥接方法 |
CN112035310A (zh) * | 2020-08-13 | 2020-12-04 | 北京奇虎鸿腾科技有限公司 | U盘id检测方法、装置、设备及存储介质 |
CN112068890A (zh) * | 2020-08-13 | 2020-12-11 | 中国电子科技集团公司第三十研究所 | 一种计算机外接设备控制方法、系统及存储介质 |
CN112685782A (zh) * | 2021-01-04 | 2021-04-20 | 浪潮云信息技术股份公司 | 一种基于缓存数据库实现的分布式登录控制方法及系统 |
CN114386044A (zh) * | 2021-12-07 | 2022-04-22 | 中国电子科技集团公司第三十研究所 | 一种基于设备驱动派遣函数hook的安全测试方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003294A1 (en) * | 2002-06-27 | 2004-01-01 | International Business Machines Corporation | Method and apparatus for monitoring a network data processing system |
US20080168567A1 (en) * | 2007-01-04 | 2008-07-10 | Timothy James Hahn | Secure audit log access for federation compliance |
CN101729550A (zh) * | 2009-11-09 | 2010-06-09 | 西北大学 | 基于透明加解密的数字内容安全防护系统及加解密方法 |
CN103440461A (zh) * | 2013-09-16 | 2013-12-11 | 山东省计算中心 | 一种pdf格式文档安全审计方法 |
-
2014
- 2014-04-29 CN CN201410178630.8A patent/CN104063633B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003294A1 (en) * | 2002-06-27 | 2004-01-01 | International Business Machines Corporation | Method and apparatus for monitoring a network data processing system |
US20080168567A1 (en) * | 2007-01-04 | 2008-07-10 | Timothy James Hahn | Secure audit log access for federation compliance |
CN101729550A (zh) * | 2009-11-09 | 2010-06-09 | 西北大学 | 基于透明加解密的数字内容安全防护系统及加解密方法 |
CN103440461A (zh) * | 2013-09-16 | 2013-12-11 | 山东省计算中心 | 一种pdf格式文档安全审计方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104683477A (zh) * | 2015-03-18 | 2015-06-03 | 哈尔滨工程大学 | 一种基于smb协议的共享文件操作过滤方法 |
CN104683477B (zh) * | 2015-03-18 | 2018-08-31 | 哈尔滨工程大学 | 一种基于smb协议的共享文件操作过滤方法 |
CN107204922A (zh) * | 2016-03-17 | 2017-09-26 | Arm 有限公司 | 用于过滤事务的装置和方法 |
CN107204922B (zh) * | 2016-03-17 | 2021-04-23 | Arm 有限公司 | 用于过滤事务的装置和方法 |
CN106888221A (zh) * | 2017-04-15 | 2017-06-23 | 北京科罗菲特科技有限公司 | 一种网络信息安全传输方法 |
CN108171081A (zh) * | 2018-02-01 | 2018-06-15 | 云易天成(北京)安全科技开发有限公司 | 一种基于文件上传的文件过滤方法、介质及设备 |
CN110532210A (zh) * | 2019-08-07 | 2019-12-03 | 北京数衍科技有限公司 | 安全获取操作系统任意输出设备数据的桥接方法 |
CN110532210B (zh) * | 2019-08-07 | 2021-10-22 | 北京数衍科技有限公司 | 安全获取操作系统任意输出设备数据的桥接方法 |
CN112035310A (zh) * | 2020-08-13 | 2020-12-04 | 北京奇虎鸿腾科技有限公司 | U盘id检测方法、装置、设备及存储介质 |
CN112068890A (zh) * | 2020-08-13 | 2020-12-11 | 中国电子科技集团公司第三十研究所 | 一种计算机外接设备控制方法、系统及存储介质 |
CN112685782A (zh) * | 2021-01-04 | 2021-04-20 | 浪潮云信息技术股份公司 | 一种基于缓存数据库实现的分布式登录控制方法及系统 |
CN114386044A (zh) * | 2021-12-07 | 2022-04-22 | 中国电子科技集团公司第三十研究所 | 一种基于设备驱动派遣函数hook的安全测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104063633B (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104063633A (zh) | 一种基于过滤驱动的安全审计系统 | |
CN101635730B (zh) | 中小企业内网信息安全托管方法与系统 | |
US9602478B2 (en) | Trust relationships in a computerized system | |
US7900240B2 (en) | Multilayer access control security system | |
US6292900B1 (en) | Multilevel security attribute passing methods, apparatuses, and computer program products in a stream | |
CN101610264B (zh) | 一种防火墙系统、安全服务平台及防火墙系统的管理方法 | |
US8516547B2 (en) | Method, system, and computer program product for facilitating communication in an interoperability network | |
US9043589B2 (en) | System and method for safeguarding and processing confidential information | |
JP4630896B2 (ja) | アクセス制御方法、アクセス制御システムおよびパケット通信装置 | |
CN116760566B (zh) | 数据传输方法、系统、第一端、中间网络设备及控制设备 | |
US20040064537A1 (en) | Method and apparatus to enable efficient processing and transmission of network communications | |
JPH10326256A (ja) | マルチレベルセキュリティポート方法、装置、及びコンピュータプログラム製品 | |
WO2014094151A1 (en) | System and method for monitoring data in a client environment | |
CN101438255A (zh) | 基于应用层消息检查的网络和应用攻击保护 | |
CN101331494A (zh) | 用于对信息流进行授权的系统和方法 | |
CN101360015A (zh) | 测试网络设备的方法、系统及装置 | |
KR102160950B1 (ko) | 보안취약점 점검 시 데이터 분산처리 시스템 및 그 방법 | |
CN115118705A (zh) | 一种基于微服务的工业边缘管控平台 | |
JP2007183773A (ja) | サーバ監視プログラム、サーバ監視装置、サーバ監視方法 | |
CN115189946A (zh) | 一种跨网数据交换系统及数据交换方法 | |
CA2476340A1 (en) | Moving principals across security boundaries without service interruption | |
Chen et al. | A self-sovereign decentralized identity platform based on blockchain | |
CN102904864A (zh) | 防网络被动泄密的个人计算机系统及其方法 | |
CN116601925A (zh) | 用于数据通信的系统和方法 | |
US8171073B2 (en) | Computer system connected to a data communications network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |