内网安全监控系统
这是一个研究项目,名为《内网安全监控系统》,实际上,除了网络还几乎包括系统内核编程的各个方面,涉及非常多的底层技术,如:DLL、多线程、消息挂钩、API挂钩、NDIS、驱动程序 等。目前为止,我们完成的模块实在是太少太少,在这里,我把我们的总体设计文档帖出来,对了文档中提到的功能模块的实现,希望大家能给出一些见解,同时也希望能够和工作在这一方面的各位朋友一起分享研究心得。为了方便交流,我建立了一个QQ群5197351,有兴趣的朋友可以进来一起讨论。
下面是《总体设计》文档:内网安全监控系统总体设计 2
1 引言 2
1.1 背景 2
2 数据库 3
2.1 系统中心数据库 3
2.1.1 策略数据库 3
2.1.2 日志数据库 3
2.2 本地数据库 3
2.2.1 策略数据库 3
2.2.2 日志数据库 4
3 控制台 5
3.1 策略规则 5
3.2 监控日志 5
3.3 实时监控 5
3.4 系统配置 5
4 客户端 7
4.1 网络监控 7
4.1.1 网络层监控 7
4.1.2 应用层监控 7
4.1.3 流量监控 8
4.2 外设监控 9
4.2.1 USB存储设备的监控 9
4.2.2 软驱监控 9
4.2.3 cd-rom、dvd-rom监控 9
4.2.4 cd、dvd-rw监控 9
4.2.5 LPT(并口)和COM(串口)监控 9
4.2.6 网络适配器监控 10
4.2.7 Modem监控 10
4.2.8 PCMCIA设备监控 10
4.2.9 1394设备监控 10
4.2.10 红外线监控 10
4.2.11 其它外设监控 10
4.3 系统监控 11
4.3.1 系统进程监控 11
4.3.2 系统服务监控 11
4.3.3 管理用户和组 11
4.3.4 屏幕监控 11
4.3.5 共享资源管理 12
4.3.6 计算机监控 12
4.3.7 注册表监控 12
4.3.8 文件监控 12
4.3.9 程序和窗口的监视 12
4.4 策略规则 12
4.5 监控日志 13 内网安全监控系统总体设计
1 引言
1.1 背景
编写了本说明书,以描述整个系统构架。
如需要更详细的了解本系统构架,请参看《详细设计》 2 数据库
考虑到需要存储大量的数据,为了方便进行复杂的查询(比如:某客户端需要从策略数据库中取出和自己有关的所有策略<个人策略、组策略、全局策略>),故使用数据库存储而不使用文件存储(屏幕内容监视录像除外)。
数据库的具体结构定义请参看《数据库设计说明书》2.1 系统中心数据库
独立的数据库服务器,使用MSSQL。策略数据库和日志数据分开成两个数据库,考虑到把它们部署到两台不同的服务器上,以减轻压力。2.1.1  策略数据库
存储各种策略规则。控制台可直接查看修改策略规则,作为控制台控制客户端的第一依据(另一个依据就是:在实时监控的时候控制台直接向客户端发送指令,该指令只在客户端当前进程内有效);客户端主动获取策略规则;2.1.2  日志数据库
存储各种客户端提交的日志,供控制台查看。2.2 本地数据库
位于客户端,可用Access数据库。2.2.1  策略数据库
用于保存客户端配置、专用策略规则。
客户端启动时或收到取策略指令时,均会从系统中心数据库读取与本机相关的策略规则,并覆盖本地策略,然后再从本地提取策略来进行监控控制。2.2.2  日志数据库
临时存储各监视模块产生的日志。
每隔一段时间,客户端检查本地是否有未提交给中心数据库的日志,如有,则提交给系统中心数据库,本地日志删除。 3 控制台
可在任意一台内网计算机上运行监控系统控制台程序,已获得授权的系统管理员可通过控制台对所有的客户端进行监控,包括:查看修改所有策略规则、查看所有监控日志、对单一客户端进行实时监控。3.1 策略规则
每一个监视控制项都有三类策略规则,全局策略规则、组策略规则、单机策略规则,它们的优先级是:全局策略<组策略<单机策略,管理员可以进行多种设置。
对策略的任何改动,控制台将会通知受影响的客户端立即更新策略规则。
在策略无改动的情况下,管理员也可以强制客户端更新策略规则。3.2 监控日志
浏览某客户端的各个监控日志。
提供强大的搜索功能。
可进行日志清除操作。
3.3 实时监控
控制台直接连接某一客户端,令其进入实时监控模式。
处于实时监控模式的客户端,监视所产生的日志不再写入本地数据库,而是直接写入系统中心数据库,控制台相应监控窗口定时刷新以取得该客户端的最新日志记录。
同时,监控窗口取出该客户端的三类策略规则,方便管理员直接修改。
管理员可以使用某些策略规则无法做到而实时监控可以做到的功能,直接连接客户端进行控制。
3.4 系统配置
任意一个客户端的安装,均需要得到授权方可成为监控系统的一员,防止非法人士通过安装一个客户端后,在客户端这个面具后面进行非法活动。
所有联网的计算机,如果发现没有安装客户端、或者客户端不正常工作(比如不产生应有的监控日志、控制台无法对其进行实时监控),均视为内网非法用户,应发出警报通知各控制台并记录。(该功能计划由一个新的模块实现――服务端)
 4 客户端4.1 网络监控
4.1.1 网络层监控
4.1.1.1 IP地址访问监控
监视:客户端访问外部IP的限制计算机和某IP的通信。
记录:所有IP数据包时间、进出、远程IP,协议,产生日志
控制:禁止客户端向本地和远程IP发送或者接收IP数据包。4.1.1.2 端口访问监控
监视记录:所有IP数据包时间、进出、远程IP,协议,产生日志
控制:端口的使用(是否允许使用)限制计算机打开受限制的本地端口(比如禁止BT端口、游戏端口等),限制计算机访问受限制的远程端口(比如通过禁止访问腾讯QQ服务器 的端口来达到禁止QQ的目的)
4.1.2 应用层监控
4.1.2.1 HTTP监控
记录:计算机访问的网址,完整的URL地址以及访问时间,产生日志
控制:禁止访问过滤列表中的网址4.1.2.2 邮件监控
监视:邮件的收发,分析邮件头和收件人
记录:发送者、接收者、邮件标题、附件标题,
控制:是否监视、是否允许发送4.1.2.3 下载监控
经过讨论,暂时无法在技术上实现,也没有想出变通的办法4.1.3 流量监控
监视:计算机的网络上行下行速度
控制:可进行限制速度范围 4.2 外设监控
4.2.1 USB存储设备的监控
记录:插入事件及时间,弹出事件及时间
控制:是否允许使用,即是否禁用存储设备及非存储设备需要分开对待,因为有时候需要禁止使用U盘,但是不想禁止使用USB鼠标、键盘等非存储设备4.2.2 软驱监控
记录:软盘插入事件及时间、软盘弹出事件及时间
控制:是否允许使用,即是否禁用4.2.3 cd-rom、dvd-rom监控
记录:插入事件及时间,弹出事件及时间
控制:是否允许使用,即是否禁用4.2.4 cd、dvd-rw监控
记录:插入事件及时间,弹出事件及时间
控制:是否允许使用,即是否禁用,是否允许写入4.2.5 LPT(并口)和COM(串口)监控
记录:打印事件及时间,打印文档的标题
控制:是否允许使用,即是否禁用
监控打印机等使用串并口的设备4.2.6 网络适配器监控
记录:网络连接的连接、断开及其时间
控制:断开远程客户端的网络连接,保持一段足够解决问题的时间后由客户端主动重新连接
记录和控制网络连接的连接、断开4.2.7 Modem监控
记录:拨号上网的时间,断开时间
控制:是否允许拨号,控制断开拨号连接4.2.8 PCMCIA设备监控
记录:PCMCIA设备的使用,设备启用或禁用的控制4.2.9 1394设备监控
记录1394设备的使用,设备启用或禁用的控制4.2.10 红外线监控
记录红外线设备的使用,设备启用或禁用的控制4.2.11 其它外设监控
记录安装新设备、卸载已有设备的情况,控制是否允许安装新设备和卸载已有设备
 4.3 系统监控
4.3.1 系统进程监控
记录:进程创建事件、时间
控制:禁止创建某一个进程
实时监视:进程列表
实时控制:终止进程
查看、终止进程。控制台如果发现受控计算机执行游戏等不该执行的程序,可以通过该功能终止相应进程4.3.2 系统服务监控
记录:安装服务、卸载服务、改变服务启动类型(自动、手动、禁用)
控制:禁止安装服务、禁止卸载服务、禁止改变服务启动类型
实时监视:服务列表
实时控制:启动、停用服务(仿优化大师)
查看服务属性和启动状态,设置服务为 自动、手动、禁用,启动、停止服务。
在监控日志中增加一个按钮“实时日志”,功能就是让客户端实时向数据库提交日志。4.3.3 管理用户和组
实时监视:用户列表
实时控制:增加、删除、重命名用户和组。4.3.4 屏幕监控
监视:定时截屏
控制:
实时监视:查看屏幕
实时控制:控制桌面,是否锁定鼠标键盘
可随时捕获和保存某计算机当前的视屏,或者像超级终端一样直接控制远程计算机。4.3.5 共享资源管理
实时监视:共享列表
实时控制:添加删除共享
可查看共享文件夹列表,并可添加和删除共享。4.3.6 计算机监控
记录:开机、关机、重启、注销、锁定、睡眠、屏保、捕获其当前用户信息。
监测计算机的开机、关机、上网、下网、网络连接、身份认证、文件操作等行为,捕获其当前用户信息等;控制计算机的重启、关机、注销、锁定、睡眠、屏保等;4.3.7 注册表监控
实时监视:注册表改变,管理计算机信息
实时控制:远程控制注册表
可能被瑞星拦截。
(该功能是否需要)存在争议4.3.8 文件监控
实时监视:访问、新建、修改、重命名、删除、复制、移动
文件操作:资源管理器(争议)4.3.9 程序和窗口的监视
记录:每个程序和窗口的启动关闭,程序监视已经由进程监视记录
控制:禁止打开某些窗口

4.4 策略规则
每一个监视(控制)都有启用(禁用)监视(控制)的策略。
具体策略将在数据结构部分讨论4.5 监控日志
每一个记录都会产生日志。
具体日志格式将在数据结构部分讨论

解决方案 »

  1.   

    说白 了就是监控 windows系统.. msdn的资料是足够的 
    毕业设计做个感觉没什么实际价值
      

  2.   

    我认为不怎么实际的
    学校的研究项目一般都脱离实际的从技水上说,实现起来,难度N大,看看SysInternels就知道,做起来太困难了
    这么多监控,几乎等于重写了NT OS的内核接口,连大企业都未必能做的好,更何况...
    毕竟NT内核是一个封闭的系统,做研究还不如用Linux来得实际,开放的核心,更具备研究价值
    做NT,应该就是商业行为
      

  3.   

    不错不错~~~现在高校中能写NDIS的学生,不多矣