基于NMAP的电力公司网络漏洞管理实践

2016-07-09 09:26王迎生宗学梁后健
数字技术与应用 2016年6期

王迎生 宗学 梁后健

摘要:随着国网公司“三集五大”体系建设的完成及深化应用为的推进,信息通信支撑作用日益凸现。本文通过将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.