- 本文转自美团点评技术学院,未经做者许可,不容许私自转载!
- 加入美团云技术交流群(QQ群:469243579),每日分享更多精彩技术文章。
背景
外网端口监控系统是整个安全体系中很是重要的一环,它就像眼睛同样,时刻监控外网端口开放状况,而且在发现高危端口时可以及时提醒安全、运维人员作出相应处理。
对安全人员来讲,互联网公司在快速发展壮大的过程当中,外网边界的管控容易出现照顾不全的现象。最初咱们用Python+Nmap开发的外网端口监控系统,在公司边界扩大的过程当中已经没法知足要求了,因此出现过一例由于运维人员误操做将高危端口曝露至外网致使的入侵事件,
为了不再次出现相似由高危端口开放而不知情致使的入侵问题,咱们开始重作外网端口监控系统。
意义
要理解端口监控的意义,首先须要知道什么是
端口扫描 ,根据Wikipedia的定义:
端口扫描的定义是客户端向必定范围的服务器端口发送对应请求,以此确承认使用的端口。虽然其自己并非恶意的网络活动,但也是网络攻击者探测目标主机服务,以利用该服务的已知漏洞的重要手段。
对于攻击者来讲,端口扫描每每是他们从外网发起攻击的第一步。而对于企业安全人员来讲,
端口监控则是咱们预防攻击者从外部直接入侵的一条重要防线,它能够帮助咱们:
- 以攻击者视角了解企业外网端口的开放状况,看咱们是否存在容易被利用致使入侵的点
- 赶在攻击者发现外网新开放的高危端口以前发现并修补漏洞,下降系统被从外部直接入侵的几率
方法
对企业的外网开放端口进行监控不外乎两种方法,一种是相似于黑盒审计的
外网端口扫描,另外一种是相似于白盒审计的
流量分析。从原理上来讲流量分析的方式确定是最准确的,但这对软硬件都有必定要求,通常的公司不必定有能力作好;外网端口扫描的方式比较直接,虽然也有一些环境上的依赖,好比网络带宽,但整体上来讲要比流量分析的要求小得多,大部分公司都能知足。这里咱们主要介绍一下外网端口扫描的方法,另外一种流量分析的方法,之后请具体负责同窗给你们分享。
在这里咱们先简单介绍一下端口扫描的原理,以帮助各位对这块不太了解的同窗有个基本的认识。
端口状态
下面以最知名的端口扫描器Nmap对端口状态的划分进行一个说明:
但通常状况下咱们不用分的这么细,这里为了方便起见,将一个端口的状态粗略分为3种:开放、限制性开放、关闭。其中「
限制性开放」指的就是作了访问控制,只有指定白名单列表中的主机才能访问,其它的都没法访问,能够简单认为是上面的
filtered状态。
扫描方式
TCP SYN扫描
咱们选择TCP SYN扫描的理由:
- 执行得很快,在一个没有防火墙限制的快速网络中,每秒钟能够扫描几千个端口;
- 相对来讲比较隐蔽,不易被注意到,由于它历来不完成TCP链接;
- 兼容性好,不像Fin/Null/Xmas/Maimon和Idle扫描依赖于特定平台,而能够应对任何兼容的TCP协议栈;
- 明确可靠地区分open(开放的),closed(关闭的)和filtered(被过滤的)状态。
扫描原理
对于学过计算机网络的同窗来讲,TCP/IP创建链接的3次握手过程想必应该不算陌生,大致流程以下:
咱们这里使用的TCP SYN扫描就是经过先主动发送一个SYN报文给指定端口(
以后并不回复任何报文,不完成TCP链接),而后根据端口的返回信息作出判断,判断结论分为如下3种:
图例以下:
源码面前,了无秘密。
技术同窗估计对侯捷老师的这句话不会陌生,这里我想将这一句话改一改以适应咱们这里的情景:
流量面前,了无秘密。
经过流量分析,咱们能够及时知道有哪些端口对外开放了,而后经过解包分析的方式获取它使用的协议以及提供的服务,对于没法准确判断的,咱们能够再用外网扫描的方式进行补充判断。
演进过程
早期咱们就是经过Python调用Nmap进行的扫描,但随着公司规模的不断扩大,网段的不断增长,Nmap扫描的弊端就逐渐凸现且没法弥补了——大网段全端口扫描周期太长,没法及时出结果(一个扫描周期可能长达2周),也就根本达不到外网端口监控的目的了。直到后来出现了Masscan。
大致架构以下:
Masscan是大网段全端口扫描神器!!!
就扫描速度来讲应该是现有端口扫描器中最快的,同时准确性也比较高。在肯定使用Masscan以前咱们拿它和Zmap、Nmap一块儿作了对比测试,限于篇幅,具体的测试过程就不发出来了,这里只说测试结论:用TCP SYN扫描方式,对一个小型IP段进行全端口扫描,Masscan速度最快,准确性较高,能够知足须要。
经验分享
- 扫描服务器的带宽是关键;
- 扫描最好避开业务高峰期;
- 扫描选项须要根据具体带宽、机器配置、扫描范围、扫描速度要求进行调优;
- 只要是远程检测的方法,就存在必定的不肯定性,检测结果的准确性只能接近100%,没法达到100%,因此不要彻底依赖外网扫描的结果;
- 实际状况中单IP的开放端口数是有限的,若是你发现扫描结果中有单个IP开放了大量端口,你就要注意该IP对应的设备是否是在「欺骗」你了;
- 前期对扫描结果作一个完整的梳理,后期只须要处理新增的高危端口就行。
在Masscan版本上线了以后,全端口扫描的速度获得了大幅提高,外网端口的开放状况也了解的比较清楚了,可是对于Banner的获取以及具体服务的识别还达不到要求,而这也不是Masscan的强项,因此这时候咱们就须要借助Nmap丰富的服务指纹库来提升咱们监控数据的准确性了。
和以前相比,就是在Masscan全量扫描环节以后增长了一个只针对判断为开放的端口用Nmap进行增量扫描的环节,而后将结果更新至数据库方便展现、分析。大致架构以下:
外网的扫描有它的优点——以攻击者视角获取当前外网安全状态,可是由于Masscan全端口扫描再快他也是须要时间的,特别是在网段较大、带宽有限的状况下。因此单独的周期性外网扫描就存在一个自然的真空期,若是在这段真空期内,内部员工由于大意将测试端口对外,且忘了关闭的状况下,就可能会被攻击者进行利用,为了应对这种状况(即使可能性比较小),咱们决定从实时流量中进行分析,实时找出对外开放的新增/异常端口,而后调用Nmap进行扫描,以解决单独外网扫描存在的真空期问题。大致架构以下:
经验分享
- 联合相关兄弟团队全面梳理IP、设备资产信息,同时资产变动系统化(避免手工操做)势在必行;
- 扫描范围最好(必定)经过API拉取,避免出现由于资产变更而致使漏扫的状况;
- 这种状况下安全监控信息的时效性要高于准确性,但准确性也很重要(因此要先拿Masscan缩小范围,再拿Nmap获取细节);
- 发现典型高危案例要记得抄送双方老板,在有可能的状况下看能不能升级至更高层面,由于制度或政策的确立由高往低会比较好推进。
延伸扩展
端口监控系统除了能够起到监控外网开放的新增高危端口的做用以外,还能够考虑从如下几个方面扩展一下它的功能和效果,以实现效用的最大化:
对于非安全的同窗来讲,他们会很难理解一个外网开放端口能形成多大的危害,因此常常会出现当安全人员找到他们的时候,他们不认为这是一个安全问题,所以沟通起来会有点麻烦。
虽然问题最终都会获得解决,但若是能有一个直观的演示给到他们的话,他们也会更愿意配合咱们去修复以及避免这类问题。因此和系统漏洞扫描器的联动对于推进问题的处理和漏洞的修复是有帮助的。
注意事项:
避免高风险性扫描操做;
须要人工确认后主动触发。
一般状况下咱们会认为,新增Web端口对外是能够接受的,但这是创建在对应的Web系统经过了完整的内部安全测试的前提下。当碰到相似于为了方便起见将Zabbix的Web系统对外,且为弱口令时,状况就不那么乐观了,这时就能够经过调用Web漏洞扫描器自动对暴露在外的Web系统进行扫描,并将结果及时通报,以减小这类问题带来的危害。
能够得到的好处有:
- 自动录入,由漏洞管理系统流程进行自动跟进,效率提高;
补充
上面介绍了常规服务器的TCP端口监控,意在提醒你们注意一下服务器的安全;但还有一类UDP端口安全的问题上面没有介绍,也容易被忽略——防火墙、交换机等网络设备的安全。在2016年8月份的时候The Shadow Brokers公布了一款针对思科Adaptive Security Appliance(ASA,实际涵盖了防火墙和路由器设备,PIX也在其列)产品的漏洞利用工具ExtraBacon,虽然漏洞利用有必定条件限制,可是一旦漏洞利用成功,攻击者就可在无需输入身份凭证的状况下创建起SSH或telnet链接。就是不须要输入有效用户名或密码,就能闯进ASA,危害巨大。
针对这方面的问题,有如下几点建议:
结语
本文主要介绍美团点评安全团队对外网端口监控系统的开发演进过程,整理总结了其中的一些实践经验以及前景展望。欢迎你们批评指正,有好的建议也但愿能提出来帮助咱们改进。咱们后续将不断优化,也将继续与你们保持讨论。耐心看到这里的读者,表示十二万分的感谢!
做者简介
光宗,2015年加入美团点评安全团队,前后从事过生产网主机、软件安全防御的工做,目前主要负责美团点评集团内部安全审计系统相关的开发工做。
方法1:外网端口扫描
状态
说明数据库 |
open安全 |
有一个应用程序在监听这个端口,能够被访问服务器 |
closed网络 |
没有应用程序在监听这个端口,但它是可达的架构 |
filtered运维 |
在扫描器和端口之间有网络障碍,扫描器没法到达该端口,因此没法判断端口是开放仍是关闭的工具 |
unfiltered测试 |
端口可达,可是扫描器没法准确判断优化 |
open或filtered计算机网络 |
扫描器没法准确判断端口究竟是open仍是filtered |
closed或filtered |
扫描器没法准确判断端口究竟是closed仍是filtered |
结论
缘由 |
open |
返回 SYN/ACK |
closed |
返回 RST |
filtered |
数次重发后仍没响应;或者收到ICMP不可到达错误 |
方法2:流量分析
Nmap
Masscan
Masscan+Nmap
Masscan+Nmap & DPDK+Storm+Nmap
1. 系统漏洞扫描器联动
2. Web漏洞扫描器联动
3. 内部漏洞管理系统联动
UDP 高危端口监控
上面介绍了常规服务器的TCP端口监控,意在提醒你们注意一下服务器的安全;但还有一类UDP端口安全的问题上面没有介绍,也容易被忽略——防火墙、交换机等网络设备的安全。在2016年8月份的时候The Shadow Brokers公布了一款针对思科Adaptive Security Appliance(ASA,实际涵盖了防火墙和路由器设备,PIX也在其列)产品的漏洞利用工具ExtraBacon,虽然漏洞利用有必定条件限制,可是一旦漏洞利用成功,攻击者就可在无需输入身份凭证的状况下创建起SSH或telnet链接。就是不须要输入有效用户名或密码,就能闯进ASA,危害巨大。
针对这方面的问题,有如下几点建议:
- 快速监控部分高危UDP端口的状态;
- 如无必要,关闭服务/对外访问;
- 若有须要,尽早升级且限制访问IP来源。
结语
本文主要介绍美团点评安全团队对外网端口监控系统的开发演进过程,整理总结了其中的一些实践经验以及前景展望。欢迎你们批评指正,有好的建议也但愿能提出来帮助咱们改进。咱们后续将不断优化,也将继续与你们保持讨论。耐心看到这里的读者,表示十二万分的感谢!
做者简介
光宗,2015年加入美团点评安全团队,前后从事过生产网主机、软件安全防御的工做,目前主要负责美团点评集团内部安全审计系统相关的开发工做。