[collect]互联网企业安全之端口监控


=Start=

缘由:

一篇关于大中型互联网企业外网端口监控方面写的还算不错的文章,由美团点评技术团队微信公众号授权转发,原文链接:「互联网企业安全之端口监控」。

正文:

原文如下:

背景

外网端口监控系统是整个安全体系中非常重要的一环,它就像眼睛一样,时刻监控外网端口开放情况,并且在发现高危端口时能够及时提醒安全、运维人员做出相应处理。

对安全人员来说,互联网公司在快速发展壮大的过程中,外网边界的管控容易出现照顾不全的现象。最初我们用Python+Nmap开发的外网端口监控系统,在公司边界扩大的过程中已经无法满足要求了,所以出现过一例因为运维人员误操作将高危端口曝露至外网导致的入侵事件,为了避免再次出现类似由高危端口开放而不知情导致的入侵问题,我们开始重做外网端口监控系统。

意义

要理解端口监控的意义,首先需要知道什么是 端口扫描 ,根据Wikipedia的定义:

端口扫描的定义是客户端向一定范围的服务器端口发送对应请求,以此确认可使用的端口。虽然其本身并不是恶意的网络活动,但也是网络攻击者探测目标主机服务,以利用该服务的已知漏洞的重要手段。

对于攻击者来说,端口扫描往往是他们从外网发起攻击的第一步。而对于企业安全人员来说,端口监控则是我们预防攻击者从外部直接入侵的一条重要防线,它可以帮助我们:

  • 以攻击者视角了解企业外网端口的开放情况,看我们是否存在容易被利用导致入侵的点
  • 赶在攻击者发现外网新开放的高危端口之前发现并修补漏洞,降低系统被从外部直接入侵的概率

方法

对企业的外网开放端口进行监控不外乎两种方法,一种是类似于黑盒审计的外网端口扫描,另一种是类似于白盒审计的流量分析。从原理上来说流量分析的方式肯定是最准确的,但这对软硬件都有一定要求,一般的公司不一定有能力做好;外网端口扫描的方式比较直接,虽然也有一些环境上的依赖,比如网络带宽,但总体上来说要比流量分析的要求小得多,大部分公司都能满足。这里我们主要介绍一下外网端口扫描的方法,另一种流量分析的方法,以后请具体负责同学给大家分享。

方法1:外网端口扫描

在这里我们先简单介绍一下端口扫描的原理,以帮助各位对这块不太了解的同学有个基本的认识。

端口状态

下面以最知名的端口扫描器Nmap对端口状态的划分进行一个说明:

状态 说明
open 有一个应用程序在监听这个端口,可以被访问
closed 没有应用程序在监听这个端口,但它是可达的
filtered 在扫描器和端口之间有网络障碍,扫描器无法到达该端口,所以无法判断端口是开放还是关闭的
unfiltered 端口可达,但是扫描器无法准确判断
open或filtered 扫描器无法准确判断端口到底是open还是filtered
closed或filtered 扫描器无法准确判断端口到底是closed还是filtered

但一般情况下我们不用分的这么细,这里为了方便起见,将一个端口的状态粗略分为3种:开放、限制性开放、关闭。其中「限制性开放」指的就是做了访问控制,只有指定白名单列表中的主机才能访问,其它的都无法访问,可以简单认为是上面的filtered状态。

扫描方式

TCP SYN扫描

我们选择TCP SYN扫描的理由:

  • 执行得很快,在一个没有防火墙限制的快速网络中,每秒钟可以扫描几千个端口;
  • 相对来说比较隐蔽,不易被注意到,因为它从来不完成TCP连接;
  • 兼容性好,不像Fin/Null/Xmas/Maimon和Idle扫描依赖于特定平台,而可以应对任何兼容的TCP协议栈;
  • 明确可靠地区分open(开放的),closed(关闭的)和filtered(被过滤的)状态。

扫描原理

对于学过计算机网络的同学来说,TCP/IP建立连接的3次握手过程想必应该不算陌生,大体流程如下:

我们这里使用的TCP SYN扫描就是通过先主动发送一个SYN报文给指定端口(之后并不回复任何报文,不完成TCP连接),然后根据端口的返回信息做出判断,判断结论分为以下3种:

结论 原因
open 返回 SYN/ACK
closed 返回 RST
filtered 数次重发后仍没响应;或者收到ICMP不可到达错误

图例如下:

方法2:流量分析

源码面前,了无秘密。

技术同学估计对侯捷老师的这句话不会陌生,这里我想将这一句话改一改以适应我们这里的情景:

流量面前,了无秘密。

通过流量分析,我们可以及时知道有哪些端口对外开放了,然后通过解包分析的方式获取它使用的协议以及提供的服务,对于无法准确判断的,我们可以再用外网扫描的方式进行补充判断。

演进过程

Nmap

早期我们就是通过Python调用Nmap进行的扫描,但随着公司规模的不断扩大,网段的不断增加,Nmap扫描的弊端就逐渐凸现且无法弥补了——大网段全端口扫描周期太长,无法及时出结果(一个扫描周期可能长达2周),也就根本达不到外网端口监控的目的了。直到后来出现了Masscan。

Masscan

大体架构如下:

Masscan是大网段全端口扫描神器!!!
就扫描速度来说应该是现有端口扫描器中最快的,同时准确性也比较高。在确定使用Masscan之前我们拿它和Zmap、Nmap一起做了对比测试,限于篇幅,具体的测试过程就不发出来了,这里只说测试结论:用TCP SYN扫描方式,对一个小型IP段进行全端口扫描,Masscan速度最快,准确性较高,可以满足需要。

经验分享

  1. 扫描服务器的带宽是关键;
  2. 扫描最好避开业务高峰期;
  3. 扫描选项需要根据具体带宽、机器配置、扫描范围、扫描速度要求进行调优;
  4. 只要是远程检测的方法,就存在一定的不确定性,检测结果的准确性只能接近100%,无法达到100%,所以不要完全依赖外网扫描的结果;
  5. 实际情况中单IP的开放端口数是有限的,如果你发现扫描结果中有单个IP开放了大量端口,你就要注意该IP对应的设备是不是在「欺骗」你了;
  6. 前期对扫描结果做一个完整的梳理,后期只需要处理新增的高危端口就行。

Masscan+Nmap

在Masscan版本上线了之后,全端口扫描的速度得到了大幅提升,外网端口的开放情况也了解的比较清楚了,但是对于Banner的获取以及具体服务的识别还达不到要求,而这也不是Masscan的强项,所以这时候我们就需要借助Nmap丰富的服务指纹库来提高我们监控数据的准确性了。
和之前相比,就是在Masscan全量扫描环节之后增加了一个只针对判断为开放的端口用Nmap进行增量扫描的环节,然后将结果更新至数据库方便展示、分析。大体架构如下:

Masscan+Nmap & DPDK+Storm+Nmap

外网的扫描有它的优势——以攻击者视角获取当前外网安全状态,但是因为Masscan全端口扫描再快他也是需要时间的,特别是在网段较大、带宽有限的情况下。所以单独的周期性外网扫描就存在一个天然的真空期,如果在这段真空期内,内部员工因为大意将测试端口对外,且忘了关闭的情况下,就可能会被攻击者进行利用,为了应对这种情况(即便可能性比较小),我们决定从实时流量中进行分析,实时找出对外开放的新增/异常端口,然后调用Nmap进行扫描,以解决单独外网扫描存在的真空期问题。大体架构如下:

经验分享

  1. 联合相关兄弟团队全面梳理IP、设备资产信息,同时资产变更系统化(避免手工操作)势在必行;
  2. 扫描范围最好(一定)通过API拉取,避免出现因为资产变动而导致漏扫的情况;
  3. 这种情况下安全监控信息的时效性要高于准确性,但准确性也很重要(所以要先拿Masscan缩小范围,再拿Nmap获取细节);
  4. 发现典型高危案例要记得抄送双方老板,在有可能的情况下看能不能升级至更高层面,因为制度或政策的确立由高往低会比较好推动。

延伸扩展

端口监控系统除了可以起到监控外网开放的新增高危端口的作用之外,还可以考虑从以下几个方面扩展一下它的功能和效果,以实现效用的最大化:

1. 系统漏洞扫描器联动

对于非安全的同学来说,他们会很难理解一个外网开放端口能造成多大的危害,所以经常会出现当安全人员找到他们的时候,他们不认为这是一个安全问题,因此沟通起来会有点麻烦。
虽然问题最终都会得到解决,但如果能有一个直观的演示给到他们的话,他们也会更愿意配合我们去修复以及避免这类问题。所以和系统漏洞扫描器的联动对于推动问题的处理和漏洞的修复是有帮助的。
注意事项:避免高风险性扫描操作需要人工确认后主动触发

2. Web漏洞扫描器联动

通常情况下我们会认为,新增Web端口对外是可以接受的,但这是建立在对应的Web系统通过了完整的内部安全测试的前提下。当碰到类似于为了方便起见将Zabbix的Web系统对外,且为弱口令时,情况就不那么乐观了,这时就可以通过调用Web漏洞扫描器自动对暴露在外的Web系统进行扫描,并将结果及时通报,以减少这类问题带来的危害。

3. 内部漏洞管理系统联动

可以获得的好处有:

  • 自动录入,由漏洞管理系统流程进行自动跟进,效率提升;
  • 结果在漏洞管理系统中进行展示,风格统一。

补充

UDP 高危端口监控

上面介绍了常规服务器的TCP端口监控,意在提醒大家注意一下服务器的安全;但还有一类UDP端口安全的问题上面没有介绍,也容易被忽略——防火墙、交换机等网络设备的安全。在2016年8月份的时候The Shadow Brokers公布了一款针对思科Adaptive Security Appliance(ASA,实际涵盖了防火墙和路由器设备,PIX也在其列)产品的漏洞利用工具ExtraBacon,虽然漏洞利用有一定条件限制,但是一旦漏洞利用成功,攻击者就可在无需输入身份凭证的情况下建立起SSH或telnet连接。就是不需要输入有效用户名或密码,就能闯进ASA,危害巨大。

针对这方面的问题,有以下几点建议:

  • 快速监控部分高危UDP端口的状态;
  • 如无必要,关闭服务/对外访问;
  • 如有需要,尽早升级且限制访问IP来源。

结语

本文主要介绍美团点评安全团队对外网端口监控系统的开发演进过程,整理总结了其中的一些实践经验以及前景展望。欢迎大家批评指正,有好的建议也希望能提出来帮助我们改进。我们后续将不断优化,也将继续与大家保持讨论。耐心看到这里的读者,表示十二万分的感谢!

原文链接:

=END=


《 “[collect]互联网企业安全之端口监控” 》 有 33 条评论

  1. 大型互联网企业入侵检测实战总结
    https://zhuanlan.zhihu.com/p/31154756
    `
    入侵的定义:恶意攻击者不经授权控制我方资源
    我们要发现什么样的入侵:GetShell以及GetShell之后的行为上
    入侵和内鬼:内鬼不在入侵检测讨论范围,移步内部风险控制和审计
    入侵检测的本质:区分未授权的动作,可以模式匹配、异常检测,通过加固让合法行为带标签可简化检测模型
    入侵检测与攻击向量:不存在“通用入侵检测模型”,必须结合“攻击向量”具体分析
    常见入侵手法与应对:杜绝高危端口,优先聚焦Web GetShell
    入侵检测基本原则:减少“误报”是关键
    主流的入侵检测产品形态:HIDS(服务器和终端类似)、NIDS、沙箱、RASP、SIEM/SOC
    入侵检测效果评价指标:主动检出率、可运营的场景覆盖率
    影响入侵检测的关键要素:系统健康度(保证每一台主机、每一时刻、每一个策略都健康运行)
    如何发现APT:等待实施APT的人犯错,高级的0day、木马并不是APT的代言词
    AI在入侵检测领域的正确姿势:别让AI专家领衔,让业务专家提需求,把AI当工具而不是解决方案
    `

  2. 企业安全建设日记-0xB3 再谈应急响应Pt.1 ——*nix主机应急响应
    https://zhuanlan.zhihu.com/p/29958172

    企业安全建设日记-0xB2 事件应急——企业内网安全监控概览
    https://zhuanlan.zhihu.com/p/29816766

    企业安全建设日记-0xB1 微观安全——一台服务器做安全
    https://zhuanlan.zhihu.com/p/27363168

    企业安全建设日记-0xA3 安全域划分和系统基本加固
    https://zhuanlan.zhihu.com/p/26603906

    企业安全建设日记-0xA2 应急响应、防御模型与SDL
    https://zhuanlan.zhihu.com/p/26542790

    企业安全建设日记-0xA1: 新官上任三把火
    https://zhuanlan.zhihu.com/p/26485293

  3. xsec-proxy-scanner是一款速度超快、小巧的代理扫描器
    https://github.com/netxfly/xsec-proxy-scanner
    `
    使用场景为:
    定期扫描自已公司服务器,排查是否有外网服务器开启了代理服务;
    扫描公网服务器中的代理服务器

    支持的协议有:
    http
    https
    socks4
    socks4a
    socks5
    `

  4. 思科Smart Install远程命令执行漏洞探测及应急处置
    https://mp.weixin.qq.com/s/cMYUuGFmox5PK89fO_eR8w
    https://embedi.com/blog/cisco-smart-install-remote-code-execution/
    `
    确认目标设备是否开启4786/TCP端口,如果存在可能受到影响,比如用nmap扫描目标设备端口:
    nmap -p T:4786 192.168.1.0/24

    此外,可以通过以下命令确认是否开启 Smart Install Client 功能:
    switch>show vstack config
    Role: Client (SmartInstall enabled)
    Vstack Director IP address: 0.0.0.0
    switch>show tcp brief all

    默认口令问题
    默认口令据说是 cisco/$un7zu
    `
    漏洞预警|CVE-2018-0171:Cisco Smart Install远程命令执行
    https://www.anquanke.com/post/id/103122

  5. 开源流量分析系统 Apache Spot 概述
    http://blog.nsfocus.net/apache-spot/
    `
    1. Apache Spot 是什么?
    2. Apache Spot 能做什么?
    3. Apache Spot 是怎么做的?
    4. Apache Spot 关键特性
    5. Apache Spot 系统介绍
      5.1 系统架构
      5.2组件视图
      5.3数据流视图
      5.4 服务视图
    6. Apache Spot 组件介绍
      6.1 配置组件Spot-Setup
      6.2 数据采集组件Spot-Ingest
        6.2.1 架构视图
        6.2.2 内部模块
      6.3 机器学习组件Spot-ML
      6.4 交互组件Spot-OA
        6.4.1 Suspicious 简介
        6.4.2 Threat Investigation 简介
        6.4.3 Storyboard 简介
        6.4.4 Ingest Summary 简介
    7. Apache Spot 环境&部署
      7.1 基础环境
      7.2 Docker 部署
      7.3 单机部署
      7.4 集群部署
    8. Apache Spot 数据采集
      8.1 Proxy 数据采集
      8.2 Flow 数据采集
      8.3 DNS 数据采集
    参考链接
    `

  6. 网络空间测绘的生与死(一)
    https://mp.weixin.qq.com/s/TWGUSmSaXc56KW9CzfPOCQ
    `
    我们认为网络安全的核心就是攻防对抗,没有攻击就不存在防护的必要性,先有攻然后有防。比如大刀长矛、投石器、火药、轰炸机、核弹决定了盔甲、防弹衣、铜墙铁壁、以及防核碉堡。如果战争无可避免,那么攻防两端就必须相应地得到提升,否则你会被从世界上轻易地抹掉存在的痕迹。我们当然更愿意选择相信“人性本善”,但是正视“恶”的存在,是生存的前提。

    攻击者关心的永远不是你的IP资产,而是你IP资产上对应的漏洞。漏洞也不过是一个入口,至于是破坏还是偷取数据那是以后可以从长计议的事情,至少要先打下一个入口。漏洞也不一定非得是0day,一个1day在时间差达到一个小时的情况下基本就能结束战斗了。在一段不短的时间内,攻防双方表面上达成了一定的平衡:你攻击我主要的服务器入口我就盯好主要的入口,你用漏洞扫描器半个小时扫描一个IP,我也用漏洞扫描器半个小时检查一个IP,所以大家是对等的贴身肉搏,不分伯仲。因为攻击者确实也没有特别好的方法能够比防守方更多更快的发现薄弱点。当时大家的逻辑都是:针对IP列表不定期的用全漏洞库去匹配。漏洞扫描器得到了攻防两端的共同认可是有它的道理的。

    没有人会单纯到只是看看全球范围做个数据统计,因为做这个引擎从一开始基本就确定了是为网络安全量身定制,所以曾经媒体直接用最邪恶的搜索引擎来形容shodan。因为稍微懂点脑子就想明白了,如果一个攻击者掌握到一个新披露的漏洞,以前他真能针对他整理的“被攻击目标”的所有IP进行挨个的测试和确认,现在不需要了,他非但可以针对那些小范围的目标进行针对性地攻击,他也可以“顺带把全世界给黑了”。这个过程几乎是无感知的,即使是全球ipv4的数十亿IP地址(ipv6另行讨论),针对大部分漏洞而言也是一小时完成的工作量。区别在于是拿资产匹配漏洞,还是用漏洞匹配资产,前者积累的是漏洞库,后者积累的是设备指纹库,谁全谁赢。

    我给网络空间测绘的使命定义是“构建网络空间的攻击面地图”,它能回答四个主要问题:互联网有多少存活IP?它们分别对应什么样的设备或者应用?它们有哪些被攻击的脆弱点?它们归属于哪个重要归属单位?我套用一个例子来说明:某一天Cisco出了一个漏洞,对外开放的cisco设备有6万台,其中3万台存在漏洞,并且有漏洞的包含某部委。能给出这个链条的就可以说掌握了核心技术,全面性和准确性决定了核心竞争力。大家会说好像第一个问题你没提到啊?对的,第一个问题是基础的基础,如果没有第一个ip的采集,你怎么知道全网的6万台?另外,网络安全一定是考虑投入产出比的,攻击的目标一定是高价值资产,所以识别归属单位是一个很重要的指标。

    到这里,我给一个定性:抛开广泛的用户群体使用的公开平台来提网络空间测绘,是一种拍脑袋的自嗨。在缺少大量数据补充和校验的情况下,这就是井底之蛙,你根本看不到全局的数据,你能想象的空间实在太狭窄。好比你说你能做google,“不就是爬虫嘛,能有多难”,这极大的体现了一种无知,你连人家买硬盘的钱都不具备,所以你不知道在那种大数据的视角下是诞生什么样颠覆式的新产品。做网络空间测绘是一个大数据积累的工作,需要持续投入,大量投入,投几千万也就只打了个基础。在未来,谁掌握了空间地图,谁就能指点见山。
    `

  7. 再谈 ZoomEye:打造世界领先网络空间测绘能力
    https://mp.weixin.qq.com/s/A3-DdTQJI02gcsyCe20NAA
    `
    总而言之,网络空间测绘或者网络空间搜索引擎是一个非常庞大的体系有非常非常多的工作要去做,这个很多的取决于成本投入,抛开人才及技术突破上的投入就存储等上的投入可能就不少,当然这种数据类的核心要素主要是两个方面:“获取更多的数据、赋予数据灵魂” 围绕这2个核心你的理解基本不会有太多偏差!
    `
    https://www.freebuf.com/articles/network/206656.html
    https://www.zhihu.com/question/27697042/answer/860639315
    https://github.com/knownsec/KCon/blob/master/2019/24%E6%97%A5/%E6%89%93%E9%80%A0%E4%B8%96%E7%95%8C%E9%A2%86%E5%85%88%E7%BD%91%E7%BB%9C%E7%A9%BA%E9%97%B4%E6%B5%8B%E7%BB%98%E8%83%BD%E5%8A%9B.pdf

  8. 网络空间测绘的生与死(二)
    https://mp.weixin.qq.com/s/CRMP9CblEWGvTFhul3G-Mw
    `
    决定一场战争结果的因素有两个主要方面:人和装备。人比较好理解,要培养一批上了战场能杀敌的将士,他们各个身怀绝技,掌握了各种一招制敌的必杀技。在冷兵器时代人的因素占很大一部分比例,所以才成就了关二爷过五关斩六将的历史传奇,温酒斩华雄靠的就是人–一个豪气云天的勇士。但如果你是今天的士兵穿越过去的,不用身高八尺,一米五就行,允许你带一把枪,故事就会不一样了。对方大刀还没举起来,“砰”的一声对方倒地。装备的价值就在于能够极大的提升效率,把重复性的效率低的容易出错的动作简化提速,进而直击要害克敌制胜。

    网络安全产品就是工具,从来都是而且只是“装备”,这个定位大家也要正确的认知。装备的使命就是为了更大地提升效率,不是为了代替人,而且装备的生产商的能力未必就比使用者强,甚至可以说大部分情况下,生产商的能力会比使用者要弱。但是这个错觉好像一直存在,我很是思考了一番,总结了一个很不愿意承认的事实:如果工具类产品在生产商使用的比用户更溜,导致用户极大地依赖生产商的驻场支持,那好像只能说明工具带来的效率提升不够明显,以及不够普适性。生产商说你们战争输了都是因为你们“不会用”我的产品导致的,放着我来,于是生产商自己拿着装备上前线了,且不说这批没有经过专业生死训练的乌合之众能否生存下来的问题,我们就假设最后赢了,所以呢?所以生产商只能自己组团上战场?你提供的到底是人的服务,还是提供能够提升效率的工具?目前大量的服务打着产品的名义在卖人头,这也恰恰说明了工具还不够好,你见过打火机厂商还需要派人上门服务的吗?

    网络安全产品就是为了提升一个或者多个在网络安全领域某个特定场景(任务)的人为操作的效率。

    如果一个场景是不可或缺的而且是大量的重复性动作,那么带有一定自动化属性的工具出现就是必然的。

    春秋进入战国是历史的必然,毛主席总结的就是“落后就要挨打”,“枪杆子里面出政权”,言简意赅。不要心存幻想,侥幸心理是会付出代价的。永远不要把枪交给别人尤其是敌人,不要测试他们的仁义道德,人心经不起测试。
    `

  9. 网络空间测绘的生与死(三)
    https://mp.weixin.qq.com/s/jffEOTF3n028USQujIzmmw
    `
    前两篇讲到了一些网络空间测绘的整体思考,网络空间测绘技术就是为了画出网络地图,这些画出来的地图会用到很多不同的场景。比如一个漏洞出来后对全球的影响范围,比如分析全球公开可以调取视频流的摄像头,再比如刻画全球数据泄露(比如公民数据)的情况,也可以是特定地域内的工业控制系统型号排名。估计大家就比较容易打哈欠了,“什么玩意儿,这都不是正常人会干的事儿,一点价值没有”。我并不否认这一个结论,确实一点意义都没有,正常人都干不出这些事,关键“敌人”们可不都是些非正常人吗?这些事情不对人类产生任何价值,既不会推动人类科学的进步,也不会给大家多一快面包。可是,如果用来做破坏,那简直就是居家旅行必备之良药了。

    网络生存法则跟黑暗森林法则类似,如果想安全的生存下去,你就需要隐藏自己,因为“一旦被发现,就必然遭到打击”。被攻击是必然的,不被攻击是极其偶然的特例。理论上没有攻击不下来的系统,被攻击只是一个时间问题,考虑的只有成本和收益。

    网络防护不可能做到杜绝漏洞,如果把目标定成这样,那大家就陷入无穷无尽地痛苦中去了。在我们做了大量的基础数据分析和事件跟踪的前提下,我们总结出一个评估安全防护有效值的简单公式:

    p = 1 / ( a * t )

    其中p代表防护有效值,a代表攻击面,t代表漏洞响应的平均时间。可以看出:防护有效值与攻击面成反比,攻击面越多,防护的有效值越低,反之亦然;同时,防护有效值与漏洞响应的平均时间也成反比,响应时间越长,防护效果越差。这里可能有朋友会问,跟漏洞数没关系吗?没有一点关系是不对的,只是关系并不大,因为一来漏洞数对大家而言是均等的,二来在0day面前,最好的方式是减少攻击面。所以我们认为在评估公式里的权重忽略不计,即便目前没有任何已知漏洞,不代表你的防护效果就是100%,因为你的攻击面一直在那,新漏洞会每天都更新,所以防护方要做的是不断提升自己的响应速度。

    你只要有缝隙,他们就会进来,跟你是不是重要单位或者高价值系统没有关系。这是跟经济利益相关的,跟技术没多大关系。

    总结一下,宏观上的发展就是数据会越来越多,一个是全网IP的采集越来越多(从IPv4到IPv6),一个是端口和协议的支持数越来越多,再一个就是字段的越来越多。如何解决通过一个证书反向推导出所有使用这个SSL证书的IP和域名列表?那就先采集所有的IP和域名,再分析上面部署的证书信息,这个工作量没有难度,就是投资源。没有企业想去建立全球的库,所以企业的资产管理是自顶向下的,而黑客用的方法是自底向上的,先全采集了再说,后续再分析。

    网络安全是一门及其复杂也存在很多分支的科学,随着IT技术的不断变化,衍生了太多的场景以及对应的技术,比如从最初的PC安全开始,有杀毒,有系统安全,然后有了网络安全,网站安全,数据库安全,又有了移动安全,无线安全,再有了物联网安全,云安全,大数据安全,车联网安全,5G安全。我的结论有两个:一)没有任何一家能把这些全做精做深,如果有,那他一定是一个集成商。未来会越来越多的给细分领域的能力者提供机会,因为只有这样才能保证技术的领先性以及防御的全面性;二)安全将会回归本质,不管技术如何发展,武器再变战场不变,攻防的前提是一本地图。只有展开这本正确无误的详细地图,才能从有勇无谋的瞎子进化成指点江山的将才,才能真正做到知己知彼百战百胜。网络空间测绘就是提供地图的方式。
    `

  10. 开源 | 爱奇艺网络流量分析引擎QNSM及其应用
    https://mp.weixin.qq.com/s/flQdwQn9A1vxNs-iHQBHWA
    `
    一定业务规模的互联网公司的基础设施的网络边界通常都呈现一定程度的复杂多分区的情况,如何进行有效的安全防护和控制会成为安全体系建设的重点和难点。面对这一挑战,爱奇艺安全团队自研了网络流量分析引擎QNSM,并将其用在各种基于流量分析的跨区安全检测和控制场景中,成为了爱奇艺安全防御体系的关键基础引擎。本文是根据爱奇艺高级总监卢明樊在 QCon 全球软件开发大会(上海站)2019 分享《爱奇艺网络流量安全检测能力建设实践》部分内容整理而成。
    `
    https://www.github.com/iqiyi/qnsm

  11. 流量分析在安全攻防上的探索实践
    https://mp.weixin.qq.com/s/xz9v7cxQiGdsCUWbl5Lp1A
    `
    # 导语
    传统基础安全领域,在通用产品能力上,一般分为三大件:网络层的防DDoS、主机层的防入侵和应用层的防漏洞。除了防DDoS之外,其他两个领域也给流量分析应用留下足够的想象空间。

    网络流量分析既指特定用途的硬件设备(如绿盟的NTA),也指基于网络层的安全分析技术,在FW\IDS\IPS中很常见。相比于主机层、应用层是以日志、请求等为分析对象,流量分析面对的是更底层的网络数据包,所包含的信息元素更多,但是分析起来也更加生涩。流量分析已被应用于多个领域,如带宽资源的合理性管控、网络链路排障以及本文所要探索的安全攻防领域。

    # 01 工具
    网络流量一般都是传输的海量数据,可以旁路部署(如端口镜像、链路分光),也可以串行接入(如物理链路串联、BGP按需导流),无论是哪种模式都需要一个强大的计算后台来支撑,同时策略上结合实时+离线,达到对分析性能和覆盖功能的平衡。其中有几个关键组件:
    1. 高性能的网络IO
    2. 特征匹配引擎
    3. 流重组

    # 02 场景
    1. 网络层
    a. DDoS检测防护
    b. Web漏洞防护
    c. 基于网络层的阻断:理论上,所有基于IP的流量管控拦截都可以通过这套体系实现。比如针对特定端口请求的常态拦截,防止运维同学手抖操作开放了高危端口;针对0day漏洞的虚拟补丁机制,为下游业务升级版本赢得时间窗;甚至将能力开放给到业务自助操作,从机房入口层级屏蔽业务上来自某些恶意源的异常访问、请求限速等。

    2. 主机层
    1)入侵回溯:传统的主机安全检测响应EDR系统,通过Agent方式采集主机日志、命令操作等信息,然后上报到控制中心进行策略建模,从而发现主机入侵威胁。比如高风险命令注入执行,单纯基于主机端数据仅能知道发生了什么,若同时能在流量层面针对这些强特征命令字进行检测,进一步关联,就能溯源到攻击者是如何利用的。此外,流量层的检测能力,也能与主机层发现互补,形成多个铃铛的告警能力。

    2)木马通信:比如ICMP木马,进程也不会监听端口,对主机层检测能力提出更大挑战,甚至如上面提过的XDP,在协议栈之前对流量进行劫持处理,主机端tcpdump也无法抓取。而作为中间管道,在流量层进行检测分析,会是更好的补充手段。

    3. 应用层
    1)网络资产搜集:安全工作的前置步骤是对资产大盘的全面搜集和掌控。以漏洞扫描为例,传统方法是依靠流程和系统,让业务侧主动登记上报,再配以爬虫,但会存在漏的问题,影响覆盖率。而基于流量的访问采集可以确保只要CGI出现网络访问就可被记录,且对业务侧无感。这种方式部门的洞犀兄弟团队已运营多年,负责人马老在他之后的DevSecOps文章中会有详细分享(我也来挖坑)。

    2)高危资产主动发现:高危端口、高危组件和高危服务的对外开放占据了漏洞攻击的很大一部分口子,传统方法是靠主动扫描来感知,存在扫描周期和扫描被屏蔽的问题。而通过流量则可以较好的解决上述问题,内部团队曾经复盘一起安全事件,业务高危端口从对外开放到被探测利用的时间只有45秒,针对资产数量较多的大中型企业来说,很难在45秒内完成一轮扫描,而通过流量建立相关通信特征的检测,则可以实现秒级响应。及时的捕捉到这些高危通信行为,让安全团队迅速卷入,收敛风险。实现上单纯依靠入流量还不够,网络上的大量扫描和探测会带来误报,提高运营成本,结合出流量的回显关联,则能较好的解决误报问题。

    3)脆弱点/漏洞主动发现:漏洞扫描一般重点关注在对特征类漏洞的发现,发送特定构造参数或payload以触发是否存在漏洞,对于业务层面的不合规行为或者逻辑类漏洞则覆盖不足,比如敏感信息明文传输、越权、管理后台类等,这些场景却是流量分析大显身手的地方。在此以管理后台来说,存在弱口令、而又未做ACL访问控制的管理后台直接对外开放,一直是白帽黑客特别喜欢的入侵入口。传统扫描方法基于关键字,灵活性和可维护性不高,而通过流量分析,同时引入AI算法,模型可以自动学习页面特征,效果远超过传统方案。同时,引入正负反馈机制配合AI模型训练,提升模型识别率。此外这不但可以监测管理后台的对外开放问题,而且也可以对存在弱口令的管理后台进行告警。

    4. 云时代安全能力
    如果流量足够多、类型足够丰富,那基于流量层面进行威胁情报建设、pdns积累、0day发现等都有实践意义,目前我们也在进行相关尝试。

    # 03 展望
    流量是座大宝藏,对于传统安全场景,流量分析不是替换传统方法,而是互补和结合,“流量+”也会将企业的安全能力带上一个新台阶。但事无完美,流量层也存在硬伤:加密问题。随着https普及以及http2、QUIC特性的使用,传统网络层看到的将是一串加密二进制数据,不再是http下的明文字符,基于黑特征的检测拦截能力都将失效(上面我们提到的网络层WAF方案的弊端)。解决办法是将流量接入层下移,比如位于接入网关GW/LB解密卸载之后;同时对于某些场景,需要降低对黑特征、关键字的依赖,综合利用大数据、AI等手段,构建基于行为的检测机制,比如针对风险页面的开放检测、木马主控C&C行为的发现等。
    `

  12. Python的无状态SYN快速扫描
    https://www.freebuf.com/sectool/125491.html
    `
    在无状态扫描中,收发是异步的,发包的模块不关心收包模块会不会收到回复、收包模块也不知道发包模块向谁发送了什么,也就是收发包模块间没有交互,发包的函数只负责发送,收包的模块接收特定tcp flags字段的数据包就好,这样就没有了等待回复的时间。

    无状态连接是指无需关心TCP状态,不占用系统TCP/IP协议栈 资源,忘记 syn,ack,fin,timewait ,不进行会话组包。在实现上也有可能需要把必要的信息存放在数据包本身中。如13年曾以44分钟扫描完全部互联网zmap,之后出现的massscan,都使用了这种无状态技术,扫描速度比以往任何工具都有质的提升,后者更是提出了3分钟扫完互联网的极速。
    `
    基于无状态的极速扫描技术(适用于新手)
    https://blog.csdn.net/kclax/java/article/details/93209762

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注