当想写下上面这些文字的时候距今已有一月有余,反复在写与不写的纠结中拖到现在。这一个月的时间在训练机器学习模型,很想对家里的工作站说一句,“辛苦啦!”。萌生此种想法源于周围现实情况,虽然可以继续沿用传统思路去实践,但当前事与眼下事是最重要的,现实是面对不断变化的场景需要寻求一种简单直接有效(投入性价比合适)的方法来帮助我。上半年有三个月的时候在学习相关知识进行储备,下班后会准备一些训练的数据集,最后花了三个星期在不断地跑模型与反馈调优,以期达到一个合理的现实效果,最终在合理的企业真实数据集中测试的最终结论检出率为88%的前提下,误报率降至千分之四,也就是0.4%,在设置相同变量的情况下测试了下QVM的误报情况也高于该数值,和周围同事询问后了解到误报率低于千分之五便已经达到了产品所能接受的要求了,想起最初误报率为19%的测试结果不由得心惊,差距太明显。从相关材料里得知国外针对机器学习或其余AI模型在效果上的指标为检出率在90%以上时误报率要低于万分之一就已经是效果非常好的检测系统了。一想到需要达到万分之一的概率,不免有些吃惊,毕竟国外与国内相关项目的研发过程是非常需要专业的投入与不断地测试才有这么好的效果,投入便是成本,一方面是硬件与实体的成本,另一方面是人员的劳动与维护成本,标记数据也是不少的成本,想起了曾提及的“凡事合理就好”这个道理。
通过对接触检测防御的相关落地实践,对一个人在安全防御方向的提升与认知会有非常大的帮助,交互的动作太多会有些累,随着转换视角也会有对以往相关安全方向的认识有一定改变,毕竟转换方向就相当于换角度在审视之前的做法是否合理,是否符合经济发展规律,性价比是否可行等。
根据最近在接近八百万个未知文件中挖掘到一个高价值APT文件的事情来引出这些内容,这个APT文件确实比普遍的攻击文件有更高级更多的对抗策略,背后的关联信息与针对性无一不表明攻击者为此投入了不少的成本,漏洞是在所难免,我有九足的把握对方利用了一个非常有价值的漏洞才组成了这个入侵环节来避免被发现。除了这个文件外,还发现一些价值文件,但影响远远比不上这个。检测防御的哲学之一是如何直接将实现的能力映射到具体业务价值获得经济回报?此时此刻的结论也无法在未来能得到持续的输出,如何持续地在大量的文件中找到并检出真正有价值的恶意文件呢?这是一个难题,也是一个长达十几年业界都在时刻面对的问题,所不同的是不同时期对高价值恶意文件的重视程度不一样。以前可能会关注到对业务影响非常的恶意文件,例如窃密盗号或底层驻留且破坏性恶意文件,还有就是以前杀毒行业被迫免费后确实不怎么关注恶意文件这个场景了,如今会更多地关注对系统造成严重破坏或窃密核心机密的定向性攻击的恶意文件,核心是更关注深层次更长远的未来影响。因为每个时期都有不同的内外部侧重点,所以关注的也会有所不同,例如如今也不会把感染型恶意文件放在优先级最高的关注度了。
面对大量的未知文件需要判断,首先能想到的是筛选,尽量找到我们在当前能力所能及的情况下能挖掘到的恶意文件。于是结合起业界前辈们的以往路径,考虑了传统方法与新近方法相结合的检测系统。传统方法是以专家驱动的检测系统,新近方法是以大数据与算法驱动的检测系统。发挥两者的长处尽力去掉其中的缺陷形成了检测防御的最终系统,漏报或遗漏是无法避免的,符合尽善尽美,但无法十全十美的普遍规律。
遇到的问题是很多的,不可能非常顺利,将这些问题通过优先级列出后会发现最需要解决的是误报率问题,合理的误报率是保障企业安全能顺利推进的重要因素。从理性客观的角度看待一味地强调检出率99%而不提及背后所隐含的误报率风险都是耍流氓,从其中学到的道理是每当看到事物的表面要能联想到它的对立面,有了这种思维后不管看待任何问题也会比较清晰且稳定。
第二个困难就是规划,我们看到的市面上成功的产品往往背后有长时间的试错与探索过程以及最终的运气加持,最终我们只看到了耀眼的时刻,却没有看到耀眼前的黑暗。凡事预则立不预则废,在检测防御的哲学里一开始的规划非常重要,不要因为怕浪费时间而直接一股脑的上手去实践,以期动作一开始就能取得美好的结果,经验告诉自己,这是非常不现实的。
第三个困难就是性价比,在整个安全行业持续向上的时候可能愿意给更多的投入去试错,但是如今不同往日了,希望未来能变得更好吧,从上市企业的财报观察2019年后利润普遍在降低。性价比,这是生存的不二法门,勒紧腰带过日子。传统方法被很多前辈证明是完全可行的路径,类似一种传承吧,也是前辈们在不断探索过程中得到的经验,但是前辈们投入的各种成本后来者是无法避免不投入的,这个世界没有这么好的事情给人不投入就能获得回报。比如后来人想弯道超车?这怎么可能呢?现实是没有那么多的弯道超车,不然整个社会的生产力得多可怕,地球的资源也禁不住这么损耗。这又回到了中庸平衡的道理,你说我们可以利用新近方法一举打败传统方法,遇到这种观点一定要小心,尽量从该观点的对立面去思考。为啥需要打败传统方法?是效果很差吗?是必须要解决的痛点吗?回到安全的角度它是一个持续的过程,所有的新近方法得到的结果只是一个瞬时结论,不代表未来不会变动,符合事物发展的规则,同样传统方法能利用与应用这么多年也是有其独到之处,从大趋势统计看不会很差。因此理解到检测防御哲学的深层次内容后才能知道现今的情况。很喜欢虎哥的这句话“在大数据时代的安全运营体系中,算法思维尤其重要。我们或许会为决策树解决白利用、深度学习解决DGA域名等难点而沾沾自喜,但那就像是一棵大树上一个分枝上的一片叶子,而我们更想看到的是整片森林,以及森林里发生的故事。”,不能骄傲,这是一个持续的过程,注定是场孤独的旅程。
在最近的某地演习中,红队利用的恶意文件一直处于对抗的最新面,昨儿拿到一个一线从客户侧传递的恶意文件,逆向后一看将世面流行的沙箱平台全部绕过了,而且自身免杀做的足够好,在对抗机器学习模型中也不处于弱势,这几天陆陆续续拿到了一些演习样本,全是高度免杀,我们会不会一直跟在攻击者的后面奔跑追逐他们的步伐呢?虽然针对AI检测系统的绕过案例并没有公开很多,但不公开可见并不代表没有,大家都是对等的视角,在检测防御的过程中投机取巧以为获得了超能力,比如投入了很少的成本利用AI模型一下子比传统方法取得了比较好的效果,但是随之而来的便是攻击者的绕过变得格外简单,熟悉它研究它以期绕过它这是攻击者视角的思路。这里贴一篇读过的论文《Shallow Security: on the Creation of Adversarial Variants to Evade Machine Learning-Based Malware Detectors》,基于统计概率的模型最终也会因统计概率而绕过,留给人无限的遐想,到底如何才能在检测防御的哲学中处于不断通杀而傲视群雄的能力呢?这是一个哲学难题。
在特征工程思维中,为了处于不弱的地位,我觉得是需要找到攻击者都无法注意到的特征,在自动化思维探索中探索出新的火花,这需要在思路上有一些新的突破,虽然大模型在2022年11月释放的chatgpt应用中得到了非常明显的证明,但是实质被国外研究人员经过测试chatgpt依然不具备思考能力而是通过概率在寻找数据库数据进行逻辑回答,因此事物的本质在目前来看是不会变的。在检测防御中,需要有一些能工巧匠的思路引进,这些内功就无法写在文章中了,一来测试一些新想法是需要时间的,而往往现实会有性价比截止日期,不能过于理想化,二来真正喜欢一个方向表明你在这个方向上至少成功了一半了,剩余的一半时机与运气和面对失败的心态也很重要的。
原文始发于微信公众号(OnionSec):我理解的检测防御哲学