王迎生 宗学 梁后健
摘要:随着国网公司“三集五大”体系建设的完成及深化应用为的推进,信息通信支撑作用日益凸现。本文通过将Nmap这个专业的漏洞扫描工具引用到企业内网环境中,结合市县一体化要求,通过漏洞的统一扫描,统一整改,为最终实现信息通信专业的统一监控、统一客服和统一运维添砖加瓦。通过淮北供电公司的实践表明基于NMAP的电力公司网络漏洞管理系统的建设可全面提高专业管理效率、运维质量、服务能力及安全水平,取得了较好的应用实效。
关键词:企业内网安全 系统漏洞自动扫描 NMAP
中图分类号:TP393 文献标识码:A 文章编号:1007-9416(2016)06-0209-02
随着淮北市县公司电网规模的不断增长,变电站、供电营业所等基础设施的增加使得信息通信网络覆盖地域增大、信息通信设备数量激增,业务应用对信息通信的支撑要求越来越高,对信息通信的运维管理均提出了更高的标准。由于各种台式机中较多使用的是Windows系统,系统漏洞多发。如果系统漏洞被不法者利用,通过网络植入木马、病毒等方式来攻击或控制整个电脑,窃取电脑中的重要资料和信息,甚至破坏系统。造成企业机密外泄,甚至威胁电网安全运行,将会给企业造成不可估量的损失[4]。为此有必要定期扫描企业内所有终端的漏洞情况,构件一套漏洞定期扫描系统。
1 需求现状分析
2008年10月24日微软公司发布了编号为MS08-067的严重高危漏洞,2012年3月13日微软公司发布了编号为MS12-020 的严重高危漏洞,攻击者可以利用这两个漏洞无需认证运行任意代码。这两个漏洞如果在企业局域网中大量存在,则企业的信息化工作将无安全可言。因此,企业信息运维人员如何及时发现并消除这两个漏洞,是企业信息安全人员工作方向之一。
企业内部局域网计算机操作系统存在MS08-067[1]、MS12-020[2]漏洞,对企业信息安全产生严重威胁,同时也面临被上级单位督查考核的情况。因为网络工作站经常因工作需要重新安装操作系统,稍不小心就会留下漏洞。
目前商业漏洞扫描的工具非常贵,且很难和企业内部信息运维监控告警平台整合,给基层单位信息运维工作人员带来困扰。
2 系统建设
2.1 系统设计
依据网省公司对信息通信专业的运维管理规范,通过建设基于NMAP[3]的电力公司网络漏洞管理系统,编写自动检测MS08-067、MS12-020漏洞的脚本,方便日常使用,减少运维复杂度。
通过对Linux环境(Kali)NMAP工具的了解,找出利用NMAP扫描漏洞的方法,然后再用shell script语言封装降低使用难度。
2.1.1 漏洞自动扫描流程设计
由于NMAP是根据IP地址来扫描的,所以需要将现有市、县公司的IP段保存到系统数据库中,另外为了方便系统扩展,漏洞扫描脚本支持维护添加。
为了支持定时自动扫描,需要编写脚本定时执行任务,又因为脚本执行结果在Linux服务器上显示,毕竟查看保存不方便,所以需要将最终结果解析保存到数据库。经过对比筛选,我们选择了python执行定时启动漏洞扫描脚本和解析扫描结果。
2.1.2 漏洞自动扫描功能设计
围绕漏洞自动扫描,首先要编写基于NMAP的漏洞扫描功能bash脚本,然后使用python脚本调用漏洞扫描的bash脚本,最终由web页面展示给用户。主要功能规划如下图1,详细功能规划见图2。
2.2 系统实现
漏洞扫描的脚本实现是本系统的核心。通过对Linux环境(Kali)NMAP工具的了解,找出利用NMAP扫描漏洞的方法,然后再用shell script语言封装降低使用难度。MS08-067扫描脚本代码如下:
#!/bin/bash
#Check arg 1 is null
if [ -z $1 ]; then
echo “Please input host ip address.
Example:192.168.12.2 or 192.168.12.2-64”
exit 0
fi
#check arg format
#echo “step 1”
flag=`echo “$1” | grep “-”`
if [[ $flag ]]; then
#if [[ $1=~”-” ]]; then
net=`echo “$1” | awk -F ‘- ‘{print $1}`
netstart=`echo “${net}” | awk -F ‘. ‘{print $4}`
net1=`echo “${net}” | awk -F.{print $1”.”$2”.”$3}`
netend=`echo “$1” | awk -F ‘- ‘{print $2}`
x=$(($netend-$netstart))
if [ $x -lt 0 ]; then
s=$netend
e=$netstart
else
s=$netstart
e=$netend
fi
else
net1=`echo “$1” | awk -F ‘. ‘{print $1”.”$2”.”$3}`
netstart=`echo “$1” | awk -F ‘. ‘{print $4}`
s=$netstart
e=$netstart
fi
#echo “step10”
for ((i=$s;i<=$e;i++)); do
#for (( i=1;i<=5;i++ )); do
ip=$net1.$i
rtn=`nmap -p445 --script=smb-check-vulns.nse --script-args=unsafe=1$ip|grep”MS08-067:VULNERABLE”`
if [[ -z ${rtn} ]]; then
echo -e “ Host:$ip no MS08-067 Vuln.”
else
echo -e “ Host:$ip has MS08-067 Vuln.”
fi
Done
但是由于脚本扫描结果是显示在Linux系统上,不方便保存查看与分析。所以需要使用python解析结果并保存到数据库,便于查看与分析。
3 总结与展望
通过基于Nmap的信息内网漏洞扫描工具的建设,大幅提高了地市电力公司信息运帷人员的终端安全管理效率,切实提高信息通信系统运维水平和工作质效,具有一定的实践意义。
参考文献
[1]百度百科MS08-067:http://baike.baidu.com/link url=EMIY36ju
ovlX9JWESxpzRsncWnvM4Rdd8yDOwSSZQZhWZX2S9rjR5pkwK9SbKeFWFy
MptPZ1JZMg8iyZhuvTM_.
[2]Microsoft 安全公告 MS12-020:ttps://technet.microsoft.hcom/
library/security/ms12-020.
[3]Nmap:https://nmap.org/.
[4]张波.企业网络信息安全[A].中国烟草行业信息化研讨会论文集[C],2004.