安小记 记录安全之路的小技巧、小心得、小感悟。

红蓝对抗一年的碎碎念


眼看一年又过去了,年前立下的 flag 总在计划赶不上变化的情况下没有实现几个,甚是惭愧,原本以为每个月能更新一篇技术文还是证明我的太傻太天真。

回望这一年,作为一个安全运营搬砖的农民工,在以实战就是检验标准的指导下,不是在对抗就是在准备对抗的路上。

这一年来大大小小打了 5、6次对抗,大到 HW,小的内部对抗,打到最后甚至都麻木了都想着直接躺平了…说是技术对抗,其实到最后都是体力的对抗,看哪边先熬住。

打了一年多,也写写一些碎碎念吧。

安全建设

以前以为如果防守方内如果有系统是存在0day的,就只能躺平,0day 意味着检测设备没有对应检测规则,无法产生有效告警,就无法进行有效对抗。现在不这样认为了,即使单设备检测失效,也可以靠着合理的纵深防御机制来发现拦截攻击行为。纵深防御不仅仅是技术纬度的多层检测防御,也包括检测防御的面与覆盖度。有的时候检测深度是够了,但有一两个点没有做好也是白费。

攻击队只需要专研突破和绕过的技术,防守方除了防御技术,还需要管理的能力,去保证整个面上资产的检测能力是覆盖的,这已经不是安全技术范畴,是如何推动整个组织落实安全方针策略的问题,已然从技术问题上升到管理问题,或许这也是攻防不对等中的一个问题。

这一年的对抗中,多数突破点都是各种分支机构,这是安全薄弱点,一旦突破而内网防护,对攻击队而言就可以横着走了。这些进攻过程,也都在ATT&CK 框架中有所体现。围绕ATT&CK框架来进行安全建设是可行的,但又是困难的,如何将框架落地是“最后一个公里”难题。

行为分析

甭管安全厂商对他们自身设备吹的有多牛逼,当前大多数安全设备都是以 hash 特征作为检测手段,这种方式简单粗暴,见效快,但对于甲方来说却是有很大风险的,一旦攻击队摸清环境状况,绕过检测都是分分钟钟的事。

而行为检测不依赖特征,更不容易被绕过,具有更好的检测性。

例如在windows中有一种利用powershell实现无文件攻击方法,这种方法会加载已被免杀处理的恶意ps脚本。由于恶意脚本做过免杀,所以基于特征病毒检测会失效,但如果检测设备监控的是powershell的downloadstring之类的方法,就能识别出疑似攻击的行为,即使被执行的脚本是已经做过免杀的恶意脚本。但这条规则要在生产环境落地,需要排除掉正常的运维操作所产生的downloadstring所导致的告警,这就需要一定时间去运营优化。正是因为这个原因,在建立这个行为检测过程就要比基于特征检测要复杂,前者要达到有效监控告警也更费时间。

基于行为检测方式见效慢倒是其次,个人觉得对于设备厂家来说,这个检测方式很难有通用的规则,往往在 A 组织内有效,在 B 组织内就失效了,一旦失效,产生的结果就是误报或者是告警风暴。这些问题的产生是与组织内 IT 环境密切相关的,如果厂家特地针对某一组织IT环境去优化产品,就差不多相当于定制开发了,这成本对厂家来说是很难承受。或许也正是因为这样,才给了我们甲方安全运营人员吃饭的的饭碗,不然组织直接找乙方上设备就完事了。

对于行为检测,还有一个问题是,如何去处理信息的上下文,基础行为检测需要更细颗粒度的日志记录。采集这些日志方法通常是放探针,收集设备或者流量的原始记录,这些记录的数据量非常大,例如主机的行为日志,如果内网几万台服务器同时采集所有进程的创建和网络连接信息,这数据量是非常惊人的。相比”检测“而产生的告警日志,”行为“所产生的日志的会有几个数量级的差别。同理还有网络原始流量的存储和解析。除了收集之外,如果要用好这些数据,就必须要有海量存储和数据检索分析能力,不但要能够存下这些数据,还必须能够快速检索分析,具备检测规则定义能力。而往往当数据量级的数据达到某个数量级时,仅仅依靠安全运营团队能力已经无法解决数据存储检索的问题,需要专门的大数据团队去解决数据的运营。

未知资产

从几次对抗打下来,最先失陷的就是那些未纳入正常管理的未知资产,从安全角度来看,未知资产就是不符合组织内制定的规范的资产,也可以叫非标资产,这类资产要么是 Nday 漏洞直接暴露外网,要么没有任何防护设备裸奔的应用。未知资产在组织内占比很小,但对整体安全防护都是致命性打击。

未知资产首先要解决是应急响应问题,因为这些资产是风险最大的,最容易失陷,最大可能性需要做分析排查处置的。但这些工作,在2021年却被忽略了,因为2021年所有应急响应能力建设都是基于已知资产来做的,一旦这些风险最大的未知资产失陷,在非标环境下,没有 hids 对主机的检测,没有 nta waf 防护,系统日志是残缺的,应用日志是无法解析的,日志上传网络是不通的…导致所有标准化的策略工具全部失效了,结果就是靠人肉登录机器逐个逐个排查,整个应急响应过程极其被动费时。

在安全建设过程中,资产梳理永远是第一项重要的工作,但不管安全人员将资产梳理到多清晰明细,始终会有资产漏网之鱼,这点毋庸置疑,没有一家公司敢拍着胸口说自家资产库 100%没有遗漏没有错误的,最多也只能说准确率无限接近 99%。

而在实际攻防中,未知资产就是攻击队中的香饽饽,是最好的突破口和驻留点。非未知资产可以认为是符合上线标准的资产,这些资产不能保证没有 0day,但也有足够的监控检测机制去满足即使在失陷情况下完成紧急响应的动作。而未知资产正是缺少这些关键的措施,导致当被入侵时,应急总是被动耗时,错过关键抑制时间窗口,进而失去对抗中的优势。

所以,在安全应急响应中,对非标的未知资产应该引起足够重视,应急人员应该具备在“恶劣环境”中快速完成风险排查、入侵回溯、快速抑制的能力。

应急响应工具

最近也一直在想,为什么攻击队总有各种各样的攻击平台,开源如msf、商业产品如Cobalt Strike,这些工具直接生成payload,加密混淆,后门驻留,免杀绕过等各种功能的,但为什么防守方就没有对应的工具呢?

讲道理,防守方也是有对应的工具的,只不过这种工具平台很大很杂,涉及的目标对象特别多,例如应用层的工具waf,主机层的工具hids,这些工具构成整个防御体系。因为这些工具防护对象特别杂,与我们所认知cs和msf从形态上就有特别大的差异。

这也可能与攻防视角差异导致错觉,对于攻击方,目标是“点”和“线”,就是首先要找到一个突破口,进到内网后再横向而形成“线”。对于防守方,首先面对的是一个防护的资产“面”。这两者所要包含的对象以及复杂度是有很大区别的,在工具的实现上就存在很大不同。

不过在应急响应处置上,攻防双方是在一个维度的。攻击方占据内网据点准备横移,防守方就应当将攻击方赶出据点和排查横移踪迹。如果说红蓝对抗是场战役,那么在据点攻防双方的你来我往就是阵地战。阵地战中可能用不上飞机大炮(NTA,HIDS等),但却是攻防最激烈的战场。如果从这个角度出发,在应急响应处置层面,理应有相应的防守工具来对标msf和cs.

所以,在实战对抗,防守方也应该有这么一个对标msf或cs的工具,这个工具应该具备以下几个核心能力:

  1. 快速分析能力,能够确定失陷状态,是被植入后门还是被作为跳板;
  2. 调查取证能力,能够有效抓取解析日志,以更直观方式展示;
  3. 二次分析能力,能够结构化本地日志,离线导入分析,供二次深入调查分析;
  4. 团队协作能力,具备让多人同时调查,各司其职,加快响应处置进度;
  5. 持续监控能力,具备更细颗粒度监控,动态发现更隐蔽的恶意行为;
  6. 适用范围广,具备非标环境、离线环境等其他各种”恶劣”环境下运行能力;

这个工具首先会被认为是一个主机层的工具,因为攻击入侵的驻点大部分都是终端主机;其次,这个工具不是HIDS替代工具,不是长期的检测程序,仅用于对抗中的阵地战

暂时还没有找到这种用的称手工具出现,或许也需要借助某个开源工具二开实现。

结语

一些碎碎念,作为2021年一些小思考吧。

岁末年初,也先祝各位大佬继续发财、技术飞涨;祝各位师傅,天天挖0day!


Similar Posts

Content