张正欣
(盐城市社会保障信息中心,江苏 盐城 224001)
端口是网络应用层程序与传输层TCP、UDP协议间联系的通道,每个端口对应着一个应用程序。通常系统中运行的程序越多,开放的端口也越多,系统被入侵的风险也就越大。Windows、Linux等操作系统上常见的 TCP 135、139、445、593、1025、111、513端口和UDP 135、137、138、445端口以及一些流行病毒的后门端口(如 TCP 2745、3127、6129 端口)等默认情况下都是处于开放状态,使得网络病毒或黑客可通过这些开放端口对受害者电脑开展恶意破坏、窃取数据信息等攻击行为。如何有效避免开放高危端口、快速定位排查信息系统故障,保障信息系统的安全稳定运行显得极为重要。
信息系统在建转运过程中未对系统端口开放情况进行梳理和审核,系统的端口开放情况、每个端口的用途以及端口之间的关联关系未形成详细记录。部分系统开放了许多不必要的端口,存在感染病毒木马或被攻击者利用,进而影响到整个信息网络安全的风险。此外,端口的作用和端口之间关联关系不清晰,导致系统接口故障难以准确定位,故障排查效率低下。
缺少专门用于端口治理的自动化工具,端口治理工作中的大部分工作只能靠人工完成,不仅效率低下,而且准确性不高。
安全运维中,没有明确的系统端口异动管控机制可供参考,无法发现端口异动情况,及时采取有效的应对措施,日积月累必然会产生大量高危端口或非必要端口,存在较大的安全隐患。
针对上述问题,基于自动化工具建立全面系统的业务端口信息台帐制度,实现全业务对象全生命周期全流程常态化的有效管控,主要做法如下:
采用自动化手段全面梳理信息内外网服务器IP地址上的端口开放情况。研究每个高危端口的用途和存在的风险,并制定相应的防护措施。
2.1.1 生成全服务网段端口清单
本文以扫描一个C网段地址上开放的所有端口为例。通过以下命令扫描服务器上开放的所有端口并将结果保存在“up_hosts_all_ports_fullscan.xml”文件中:
nmap --open -p0-65535 192.168.104.0/24 -oX d:up_hosts_all_ports_fullscan.xml
执行效果如图所示:
图1 Nmap扫描服务器C网段上所有端口结果
生成的xml端口扫描结果文件内容截图如下:
图2 xml端口扫描结果
2.1.2 自主开发自动化工具完成端口梳理
(1)按端口号对端口扫描结果进行分组和排序
使用自主编写的python脚本实现对端口扫描结果进行分组和排序,并生成一个多重嵌套列表文件(即列表的每个元素也可展开为一个独立的列表)。其中,每个成员列表第一个元素为端口号(int),第二个元素为该端口的IP地址(string)列表。脚本代码如下:
脚本执行结果截图如下所示:
图3 端口分组排序结果
(2)按端口号进行查询
提高端口梳理的效率,掌握每个端口(尤其是高危端口)的开放和分布情况,可编写端口查询脚本。通过脚本,可以根据端口查询出相应的主机,脚本代码如下:
执行效果如下图所示:
图4 端口查询结果
(3)高危端口数量统计
参考国家漏洞库漏洞,结合端口查询脚本,统计出开放高危端口的主机数量,并有针对性地开展整改工作,各高危端口的统计数量如下表所示:
表1 高危端口数量排名前20列表
2.1.3 高危端口治理
根据前期统计出的高危端口的主机列表,主要采用以下三种方式来关闭高危端口:关停端口对应的服务;配置防火墙策略限制对高危端口的访问;修改服务器注册表关闭高危端口。
关闭高危端口对业务系统运行可能造成的影响,分阶段关闭高危端口。
第一阶段:勒索病毒相关端口治理
在所有的windows服务器组策略中集中关闭勒索病毒相关端口(137、138、139和445端口)的服务。同时,在各边界防火墙上配置访问控制策略,禁止所有访问勒索病毒端口的行为。
图5 IP组策略集中关闭勒索病毒相关的端口
第二阶段:rlogin远程登录及RPC远程调用端口治理
集中关闭513和111端口。111端口是Linux类系统上的RPC远程过程调用服务端口,通过关闭portmap服务与关闭服务自动启动的方式来关闭。因NFS共享文件服务也使用111端口,对于开启了NFS的服务器,采用人工逐台核对的方式进行手动关闭,对于确实需要使用NFS服务的系统通过防火墙策略对111端口进行限制。而513端口是remote login远程登录服务端口,通过批量卸载rsh-server软件包的方式彻底关闭服务,目前已全部关闭513端口服务。
图6 集中关闭513、111端口
第三阶段:其余端口治理
对剩余高危端口关闭可能产生的影响及风险进行评估记录,分批次、分阶段关闭剩余的高危端口。
第四阶段:从源头上治理
为了防止出现经高危端口治理后开放端口数量下降,但新增设备继续出现高危端口的情况,可制作linux标准化安装光盘,使用linux标准化安装光盘安装后,删除不必要的服务,仅开通了10022的远程连接端口,能够提升系统的安全性,减少后期的端口治理工作量。
图7 验证仅开通10022远程连接端口
制定全服务器网段端口清单,同时制定业务端口台帐异动管理办法,通过确认每次检修操作是否对IP地址台帐进行变更,来保持台帐信息的完整准确。
2.2.1 形成全服务器网段端口清单
通过技术手段获取内外网服务器网段的所有业务端口后,可给每个网段分配一名监督负责人,及时更新台账信息形成一份完整的全服务器网段端口清单。其中各监督负责人参考已有的内外网服务器IP地址资源台账,联系各IP地址申请人员填写IP地址端口功能台账表格。端口台账清单模板如下图所示:
图8 IP地址端口台帐清单模板
2.2.2 制定业务端口台帐信息异动管理办法
涉及IP地址端口台账信息变更都必须经过检修,为确保每次检修后对端口的变更记录在册,及时更新IP地址端口台帐信息,可给每个IP地址网段指定一名监督负责人和管理员外,同时指定IP台帐信息总负责人。若某次检修后IP地址端口台帐信息有变更,监督负责人则更新维护所负责的台帐信息,同时将变更信息反馈给台帐信息总负责人,由总负责人更新IP地址端口信息总台账,并做好相关记录,以便后期核查。因此形成两份IP地址端口信息台帐变更维护表,一份由各监督负责人记录留存,另一份由总负责人记录留存。其中变更维护表可以看做是一份IP端口信息更新日志记录,检修操作后如IP端口台帐信息有变更,需及时记录在两份变更维护表中。IP地址端口变更记录管控流程图如下所示:
图9 IP地址端口变更记录管控流程图
为确保IP地址端口台帐的准确完整性,可实行每三个月对各网段IP地址端口台帐开展一次全面的内外网服务器端口扫描,并结合IP地址端口总台帐信息变更维护表,审核IP地址总台账信息是否依旧准确完整。
2.2.3 网络安全风险预警单处理
验证业务端口治理提升工作的有效性和实用性,将端口治理成果应用到网络安全风险预警单处理过程。
例如2017年6月22日全球能源互联网研究院发布的BMC RSCD AGENT远程命令执行漏洞风险预警单,利用该漏洞恶意攻击者可绕过操作系统认证执行任意命令,取得对服务器的控制权限。预警单给出的排查方法是:
利用端口扫描工具对目标服务器进行端口扫描,确认TCP 4750端口是否开放;
在测试机上执行bmpexp.exe工具,bmcexp.exe –host x.x.x.x–cmd=”ifconfig”,成功返回命令的结果则说明存在此漏洞;
对所有使用BMC rscd agent软件(存在的漏洞版本为:BMC rscd agent<8.7)的版本进行系统排查,更新BMC rscd agent至最新版本。为快速高效实现漏洞预警单的处理,可利用自动化端口扫描、分组、排序、查询及统计脚本,结合IP地址台账变更记录管控机制,形成一份准确完整的4750端口台账清单,给各网段IP地址台账负责人下发漏洞预警,对责任范围内的所有使用BMC rscd agent软件版本的系统进行快速排查,及时更新软件版本。
对外网信息系统对社会仅开放80及443端口的可行性进行分析。完成互联网出口统一。
有效管控全业务对象全生命周期全流程常态化,提高信息系统运行安全防护水平,探索提出基于自动化、分类、细颗粒度的建设运行全生命周期的端口治理方案,基于自动化工具建立全面系统的分类结构化业务端口信息台帐,制定常态化的全业务对象全生命周期全流程风险管控制度,实现网络安全风险管控和业务端口治理提升工作。
从零开始建立全面系统的分类结构化的业务端口信息台账。基于自主编写的自动化脚本建立了信息系统分类结构化业务端口信息台帐,梳理在运系统、设备及服务器上开放的所有端口清单,颗粒度细化各IP地址所有端口的用途和访问关系,可为端口治理常态化工作奠定基础;编写自动化脚本实现端口分组、排序、查询及高危端口统计、关闭等功能,提高端口信息的快速搜集分类、信息系统故障和网络安全风险预警单分析处置的效率。
基于分类结构化的端口信息台账,可建立全业务对象全生命周期全流程常态化的风险管控制度。基于分类结构化的端口信息台帐,建立全业务对象全生命周期全流程的常态化风险管控制度,重点监控高危端口、重要业务端口,实现端口全生命业务对象的有效管控;制定端口异动管控机制,参照标准化配置手册相关做法,从源头上规避高危端口风险隐患,实现端口全生命周期的常态化管控;以自动化脚本为辅助工具,提高端口台帐信息的快速收集、分析、研判、预警处置能力,实现端口全流程的常态化管控。
开展风险防范和业务系统优化工作,依据连续有效的业务端口信息台帐,开展信息外网系统端口治理提升工作,在不影响外网业务系统应用的前提下,将外网业务对互联网开放的端口统一归并为80和443端口,保障外网业务系统的安全稳定运行。