程序员的故事 010 上网行为管理系统

010 上网行为管理系统

这天,吴明给老石打了个电话,说联系上了一个重要客户,谈妥了几个订单。关于网络安全方面的,期望老石马上着手安排。

老石马上召集人手,在会议室部署工作。小眼镜作为测试团队成员,也参加了。

原来是一个涉密单位,为了管控单位内部的信息安全,除了传统的各种保密制度、网络隔离、防火墙、入侵检测以外,他们还需要一套用于内部员工在非涉密区域对外联系上网的管控系统。类似于网吧用的上网行为管理系统,但又不一样,有些特殊要求。

这套系统更强调控制单机。单位内所有电脑必须接受控制,在每个电脑上都安装有一个客户端。这个客户端不允许关闭,否则服务器将立即发起失控警报。用户是知晓自己的行为是受控的。

上网行为管理系统,包含文件监控、硬件外设监控、打印机监控、USB监控、VPN拨号、上网行为、聊天工具、邮件收发、屏幕显示内容等各方面常规的行为监控等。电脑就是普通的Windows操作系统。客户端接受服务器实时监控,服务器发现任何不合规事件,可以立即接管该电脑,取证并脱离用户控制,比如关机、断网、警告提示等。

关键的驱动程序和网络控制部分由老五负责,系统集成联调由老王负责,测试当然是老郭的事了。

安排完毕,当场就做了技术分析,小眼镜在场,半懂不懂一脸膜拜地听他们讲。

文件监控,Windows上要做一个文件系统驱动程序的过滤器,把所有新建文件、文件修改、文件删除、改名等事件都监控起来,不合规的话可以立即停止用户操作。

其他的硬件外设也都类似,要做各种各样的系统钩子之类的,实在没招的,就周期性轮询,比对系统状态的变化。至于把屏幕给录制下来,初学者都会,就不值一提了。

比较麻烦的是网络行为的监控。大家也讨论的比较热切。老五说,要是把各种上网的行为都分析出来,等于是做了一个单机版的防火墙,需要弄一个网络过滤型驱动程序。监控所有的网络进出数据,并分析与控制。

但是这个事情的麻烦在于,做一个驱动程序本身还不算太麻烦。麻烦的是各种各种的数据分析代码都要写在驱动程序里,稍有不慎就蓝屏死机,代码编写测试会需要相当长的时间才能做到稳定可靠。但偏偏这一块特别容易变化,客户可能随时会增加要求,或者被监控的聊天工具版本升级造成必须更改分析的代码。这样会比较头疼。

老石胸有成竹地说,这事情恰好有应对的方法。网上有人介绍了一种Windows用户层做网络截取数据报文的方法。他做了一个NDIS中间层驱动,把所有的网络流量都转送到应用层,由应用软件来做分析、判断、转发决策。

这样,就可以很容易地写出网络防火墙、入侵检测、各种网络协议分析等网络工具。尤其有意思的是,这种做法甚至支持Visual Studio单步调试,因为它本质上就是一个应用软件嘛。

这样就好办了嘛!老五很兴奋,直搓手,这太有意思了,有了这玩意,开发效率提高十倍都不止啊。

老石笑笑说,其实啊,Linux早就有了,TAP/TUN嘛。不过在Windows上,这个UCapture确实挺好用的。

果然,两三个月后,几个人不负众望,拿出的第一个版本就具备许多功能,被控制的电脑上网干了点什么事,看了哪个网站,收了什么邮件,插U盘,拷文件,跟谁聊天了,甚至把看小电影的屏幕都给截图了。

大家一起傻眼了。

半晌,黎想嘟囔了,这东西要是用在智研实验室的话,日子就没法过。太他娘的没人权了!

老郭也叨咕,老石啊,这玩意可不能用来监控我们自己啊,浑身不自在,总觉得有人在偷偷地透视你。

老五一脸坏笑,以后你们谁上班时间不好好干活,要当心了啊!



猜你喜欢

转载自blog.csdn.net/gcfang123/article/details/50876041
今日推荐