闫清智
【摘要】内网安全管理系统是为了方便、有效地管理和规范分布式局域网内各个终端计算机的行为而设计的一种集监控和审计与一体的管理系统,旨在从规划内网资源、规范内网行为、防止内网信息泄露等多方面入手,有效地执行组织的安全策略,维护内网的机密性、可信性、可靠性和可控性,实时掌握内网状况,快速简单地定位与解决问题。
【关键词】远程控制;socket客户/服务器模式;多线程jRegistry
1.引言
内网安全理论的提出是相对于传统的网络安全而言的。在传统的网络安全威胁模型中,假设内网的所有人员和设备都是安全和可信的,而外部网络则是不安全的。基于这种假设,产生了防病毒软件、防火墙、IDS等外网安全解决方案。
这种解决策略是针对外部入侵的防范,但对于来自网络内部的安全防护则显得无可奈何。随着各单位信息化程度的提高以及用户计算机使用水平的提高,安全事件的发生更多是从内网开始,由此引发了对内网安全的关注。
2.总体功能设计思想
按照以上的需求分析,我们设计了基于TCP/IP协议的内网安全管理系统,名字叫做Intranet security management system,简称ISMS系统。系统主要应用于内部局域网,体系结构采用得到广泛应用的C/S结构。
本系统采用C/S模式实现,有两大模块:
(1)客户端模块:实现管理功能,把管理请求发送给服务器端,并接收服务器端发回的响应信息,如返回屏幕截图等信息。
(2)服务器端模块:实现代理功能,完成客户端发送的请求,并且把相应的信息传送给客户端,使客户端准确掌握受控端的情况。如客户端发送关机请求,服务器端就要调用关机程序,将被控机关掉;客户端发送禁用USB的请求,服务器端就要响应请求,将USB存储功能禁用掉。
3.局域网管理与监控系统各个功能模块的实现
通过以上的分析设计,并结合内网管理的实际情况,本系统需要实现的功能主要有:
(1)局域网内IP地址扫描;
(2)端口设备控制;
(3)应用程序控制;
(4)共享权限管理;
(5)远程控制;
(6)终端其他安全控制;
(7)策略配置管理。
3.1 局域网IP地址扫描模块
利用JAVA编写一个名为SearchIP()的函数,实现这项功能,返回一个IP地址列表,为以后的操作提供目标和依据。
程序的总体设计:
(1)自动搜索客户端IP地址,作为搜索的参考。
(2)通过IP地址框来接收IP输入,确定搜索范围。
(3)通过按钮来控制搜索的开始。
(4)由于要搜索的IP地址可能比较多,具体的搜索过程采用了JAVA多线程的设计思想,加速程序的执行。特别注意了防止线程数过多摧毁电脑,所以设定了最大线程数为30。在具体判断某一IP地址是否在局域网中时,采用的是ping的方法。最后,根据执行ping命令后的结果,判断某一IP地址是否能够Ping通。
(5)对能够ping通的IP地址,将它添加到列表中。
3.2 端口设备控制模块
具体的执行端口设备开启、关闭命令时,用到了jRegistry编程的思想。
(1)禁用、启用USB存储设备
在HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/USBSTOR注册表表项下,有一个start子键,start子键的值为“3”则启用USB存储设备,设为“4”则禁用,用jRegistry编程设定start子键的值,来实现启用、禁用USB存儲设备。
(2)禁用、启用wifi网卡
禁用网卡执行:netsh interface set interface name=\”无线网络连接\”admin= disabled
启用网卡执行:netsh interface set interface name=\”无线网络连接\”admin= enable
(3)禁用、启用打印机
禁用打印机执行:net stop Print Spooler
启用打印机执行:net start Print Spooler
(4)禁用、启用光驱
在HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer注册表子项下,新建双字节值“NoDrives”,修改此值。在“数据”编辑框中输入你要隐藏的驱动器号并确定,重新启动系统后相应的驱动器即被隐藏,这样就达到了禁用光驱的目的。(使用2的N次方(N=1,2,3,……)来代表一个驱动器号,如:A为1,B为2,C为4,D为8,E为16……);当要禁用光驱时,只需把该注册表下的这个值“NoDrives”删掉即可。
3.3 应用程序控制模块
与“端口设备控制”模块的主要思想是一致的,也是利用socket通信,实现远程控制。
具体的在服务器端禁止某些应用程序使用的方法为:每隔一段时间,运行一下禁用与应用程序相关的指定进程的命令,让终端电脑运行不了指定的应用程序。以禁用QQ为例,让服务区端每隔一段时间自动执行以下命令,就能防止服务器端用户使用QQ软件:taskkill/f/im qq.exe
其他应用程序,如PPS、MSN的控制是一样的道理。
3.4 远程控制模块
(1)远程关机、重启设计思想基本一样。
当管理员希望远程对某一个终端进行控制时,客户端(client)就发出一些指令,比如:让关机的指令,并将它通过socket传递给这个终端,而终端(server)在接收到指令后,就调用自身的一些命令,比如:强制关机的命令“Shutdown-s-t 30”,来完成客户端的指令。客户端具体的执行过程如下所示:
关机:Process p=Runtime.getRuntime().exec(“Shutdown-s-t 30”);
重启:Process p=Runtime.getRuntime().exec("shutdown-r-t 30");
(2)远程屏幕抓取也是客户端发出“屏幕抓取”的指令,终端进行响应,执行特定的操作,完成客户端指令,这点跟上面所述的“远程关机”的思路一样。但不同之处在于,响应“屏幕抓取”指令所执行的操作比较麻烦,而且,在服务器端抓取到屏幕信息后,还需要返回到客户端,并保存在客户端上,这样才能达到目的。
抓取屏幕用到一下的方法(注意:为了起到监控的作用,应该隔一段时间自动执行一次屏幕抓取指令):
BufferedImage fullScreenImage;
Robot robot=new Robot();
fullScreenImage=robot.createScreenCapture(newRectangle(Toolkit.getDefaultToolkit().getScreenSize()))
抓取到屏幕后首先将它保存到服务器端的一个文件中;
将服务器端的文件通过socket通信方式,传到客户端保存下来,以便监控使用。
3.5 终端其他安全控制
禁用和启用自动播放:
在注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies下新建项“Explorer”,在该项下新建Dword键值,并改键值名为“NoDriveTypeAutoRun”,如果想直接禁止所有设备的AutoRun功能,直接将“NoDriveTypeAutoRun”键值设置为“255”即可;删除NoDriveTypeAutoRun鍵值即可取消AutoRun的设备限制功能。
4.结束语
随着社会、科技、经济的不断发展,内网安全管理的应用范围极其广泛。本文在详细研究和分析了网络通信等关键技术的基础上,以Windows 7操作系统为开发平台,在Eclipse环境下用JAVA语言开发基于C/S模式的内网安全管理系统。系统能实现对局域网内终端计算机行为的审计和管理,达到了良好的控制效果。这种对内网安全管理系统的解决方案的研究,能较好的解决企业管理中的一些难题,提高管理的效率与手段,有很大的实际意义。
参考文献
[1]袁鹏飞.Intranet网络建设与应用开发[M].北京:人民邮电出版社.
[2]黄光奇.CGI编程指南[M].北京:电子工业出版社.
[3]蔡奇玉,等.CGI编程指南[M].北京:机械工业出版社.
[4]张世永.网络安全原理与应用[M].科学出版社.
[5]李明之.网络安全与数据完整性指南[M].机械工业出版社.
[6]张友生.远程控制编程技术[M].电子工业出版社,2002.