君は春の中にいる、かけがえのない春の中にいる.

你驻足于春色中,于那独一无二的春色之中.

浅谈漏扫运营那些事

拥有强大的扫描能力和全面的漏洞规则就能干好企业漏扫吗?那怕是要被业务喷死了。

0x00 序言

漏洞自动化发掘一直是业内热衷于研究的技术之一,大到BAT,小到个人白帽,都有自己的一套漏扫工具。谈到漏洞扫描,一方面被提到最多的是扫描器技术理念如何先进,使用了分布可扩展的扫描节点,拥有了JS渲染的爬虫能力,底层的网络协议做了优化,能够对程序执行进行埋点等等。另一方面是规则覆盖如何准确,拥有插件式的扫描模块添加,针对规则能够做特定的payload变异,能够fuzz收集目标特征辅助扫描等等。

但是真正在企业的安全管理运营中,你会发现扫描器绝不仅仅是开发几个功能,架设起服务器就开扫这么简单。当业务方的一封封投诉邮件发到你的邮箱时,就不得不把顾及业务方感受的扫描器运营提到议程中来。

0x01 扫描效率VS业务干扰

从漏洞发现、资产探测的角度来说,我们是尽可能希望扫描速度够快,恨不得一天轮训一遍所有的企业资产,但过快的扫描速度同时也会给业务方带来困扰,即便是在业务方能够准确识别自己人的扫描器特征前提下,依然会遇到一些问题。

  • 业务方日志里大量充斥的扫描信息会对应用正常的运行调试排查带来干扰
  • 巡检扫描的时间随机性导致在一些特殊时段触发了业务的运行监控告警
  • 扫描效率过高带的带宽尖峰数据

扫描器要真正产生作用,往往是需要扫描量的保证的,之所以用自动化技术,其实就是希望能够和外部的漏洞发现打一个时间差和覆盖差,但站在业务诉求角度,我们希望扫描器是对业务无感知的,尤其希望避免半夜三更,业务被应用告警信息惊醒后,拉一堆人在一起排查原因这种情况。有时候会以自己不扫外部也会扫这样的说法来回应,但其实仔细一想,内部扫描器对业务的了解是更深层次的,所以这种干扰规模也不是外部扫描器可以对比的。

0x02 安全扫描规则VS不安全的业务实现

漏洞内审用的扫描规则都是经过严密推敲的,往往都是通过带外手段证明漏洞存在,但其实考虑再周到,遇到很多特殊的业务实现场景时,也难免会有疏漏。比如腾讯安全博客里曾经提到的因为延时注入而导致数据库挂起的事件,从内审的角度来说,基于时间的注入探测对于内部扫描器来说具有更加统一的判断模式和不会向业务插入脏数据的优势,但即便如此,也会有影响业务的时候。

类似的场景还有很多,比如为了不对业务进行修改,内部扫描器往往在权限上会比较克制,但如果遇到压根就没做权限控制的业务接口,扫描器就难免会对数据造成影响。还有由于业务的代码异常处理机制不完善,导致扫描器频繁出发应用的异常,潜在影响了应用的可用性等等。

想想你执行启动的扫描器,即便是精心构造了扫描规则,依然随时都有可能让业务瘫痪,这个时候还能睡的安稳吗 :)

0x03 脸盲的扫描器

对于扫描器来说,它只管按照既定的逻辑对提供的目标列表进行发包,在这种情况下就会出现同一个目标一扫再扫,同一个漏洞短时间内重复上报等问题。

这个其实就涉及如何管理企业资产和让扫描器知道扫描目标历史状态的问题。从企业资产的角度来说,要能够感知不同业务的应用变化,对于没有发生变化的资产,在规则稳定的前提下,不需要重复触发扫描。而从扫描器状态记录的角度来说,需要和漏洞上报管理系统相结合,对于已经上报但未修复完成的资产进行状态记录,以此来指导扫描器的扫描行为。

0x04 建立博弈平衡的扫描运营体系

以上只是从三个角度切入来说明扫描器日常运营的重要性,如何在扫描器漏洞发现与日常运营之间找到一个平衡点很重要,从这个角度出发,不是说扫描器一味的发现很多漏洞就是好的,这后面可能带来的是业务正常运行的隐患和高昂的后期维护成本。

从扫描运营体系出发,这里抛砖引玉提出一些漏扫运营思路:

  • 建立完善的漏扫通告系统,能够让业务人员广泛的了解到漏扫的重要性和潜在影响,同时提供一个业务的自查以及反馈平台。另外还需培养业务对安全扫描的意识,甚至可以建设由业务驱动的漏扫模式。
  • 联动企业资产生命周期管理和漏洞生命周期管理,让漏扫能够针对不同的生命周期进行动态的扫描策略选择
  • 实时的监控系统,能够及时监控漏洞的网络请求状态,避免出现大量网络峰值的出现
  • 细粒度的扫描速率控制、扫描请求控制,建立能够精准到业务域或者单个请求的扫描速率控制和请求控制系统
  • 合理的扫描机制以及精准的扫描规则,可以考虑融入ZMAP的随机请求机制,避免短时间内对同一目标发送过多请求,可以穿插不同目标进行扫描。同时需要保证扫描规则足够精炼,扫描规则的全面性和精炼性那其实又是另一个话题了
  • 可配置的扫描豁免名单,建立基于时间、基于资产的扫描白名单机制,能够提供给运营人员灵活的扫描规模管控手段

0x05 结语

关注扫描技术、漏洞规则的同时,漏扫运营也是企业安全建设避不开的话题。谈到运营,就往往不只是纯粹的技术,这时就需要我们更多的考虑人在其中的作用以及从整体出发管理的作用了。