这一篇写安全技术运营中算法思维与威胁分析中利用算法来助力的内容,内容不多。
算法思维的要点是:很多事务是由输入、算法、输出三部分组成的。从这里来理解算法实质上是一种可以进行构造的“黑盒”,为了达成输出的目标,算法需要进行改变或反馈应用,这其实和社会生活活动中的规则、规定以及流程非常相似。流程的制定就是为了群体有序有条理,和工作中画流程图以及甘特图类似,图表也是方便进行梳理思维以及思路的方法。在大数据时代的安全运营体系中,算法思维尤其重要。说真的其实这是面对困难时解决问题的一种方法,如果不曾了解更多维度的技术背景,很难去理解在此种环境下如何提出解决方法或方案?这也是作为技术专家所要具备的能力(最近作为面试官,面试了一位专家候选人和以前团队负责人沟通时的内容结合得到的感悟),所以说把遇到的问题进行转换或者说简化来解决是最近遇到数据挖掘或人工智能解决方案带来的启发之一,算法思维需要站在全局角度考虑整个系统的运作和效果反馈,最终提升整个系统的健壮性以及高效性,从大局出发同时关注算法内部的各个环节以及交互反馈结果。
至此,本书的《技术运营必备的6种思维》章节的精读学习已经结束了。细细回顾发现这些其实是“道”的内容,后续得根据“术”的实际情况来不断地理解与应用和思考,虽说术业有专攻,但是悟性占据了很大的比重,我也是个资质平平的从业者,尽量多去思考提升悟的能力吧。当工作中或者生活里应用到这些思维后,我们最终还是会回到作为安全从业人员当初最关心的问题,如何发现威胁?因为安全技术运营最核心的场景就是威胁感知,也就是“看得见”威胁才能有针对动作解决威胁,知己知彼百战百胜。
书里提及威胁发现的过程会基于如下方向:
传统的特征识别技术;
行为识别技术;
大数据与算法的威胁发现;
读完后总结这些关注点主要集中在文件层面,因为文件在整个安全场景流程中包含的信息量是最多的,它的信息“保质期”非常长。事物都存在正反面,虽然文件的信息层面非常丰富,但是针对文件这个领域的安全研究又充满了挑战,不管是顶级会议还是科研论文都在不断的解决文件所带来的安全问题,并非真的可以一次解决完就万事无忧。
以前觉得杀毒软件很神秘,当时确实是不懂相关背景知识。看到特征识别技术一开始就会想到杀毒软件,特征码查杀和免杀相关的文章里总是会不断地提及其工作原理,最好的免杀往往是未曾公开的方法,从最开始的哈希查杀到特征码查杀也是一个比较大的进步。特征码这个维度还是可以写一点内容进行理解的,最近出现一篇文章写的Money Message勒索病毒,很多引擎无法检测,可能就认为该勒索病毒是不是发现不了了?其实防御是多方向以及有纵深防御法则指导的(此处思想也是来自阅读《网络安全监控实战》Richard Bejtlich),也许静态特征未能检测并能查杀,一些常识需了解的是杀毒软件的静态特征库考虑到性能因此会不如yara等规则具有更大的检测灵活性,但是动态行为肯定是躲避不了的,快速加密大量文件的行为在目前已有的防御方案中是可以证明能被发现和拦截的,例如文件诱饵防御方案。攻防是相对的,针对这种行为,虽然已有勒索病毒团伙在考虑进行绕过(将加密行为伪装成正常文件操作),但还没有出现公开的在野恶意文件案例。其次主动防御或启发式查杀依然能拦截或检测到系统恶意行为,例如删除卷影操作,这是大部分勒索病毒都会使用并执行的命令行命令,最后假设存在网络数据的交互,在网络流量层面还可以进行异常流量检测等检测手段发现威胁,只有这些防御手段都失效了,才很有可能发现不了,且经过长时间的驻留仍未被发现,最终证明这是一次成功的入侵活动。
刚刚提及的特征其实分为文件特征和流量特征,它们也称为静态特征,行为特征则是动态特征。静态特征中应用最广泛且很简单省心的是MD5哈希特征,如果自有威胁情报能力足够强大,直接通过云查杀MD5哈希值就可以判定威胁是否存在,非白即黑策略简单省事舒心,最近也体会到往往复杂的问题最后的解决方法肯定是特别简单的。虽然简单省事,但是回到业务场景,为啥要回到业务场景呢?这是我一直在努力转变的点,因为作为技术人员往往会一开始就往技术角度去考虑,然后深陷其中,技术仅仅是工具,而往往业务是非常重要的,是整个社会运作的基石。MD5哈希特征一旦遇到大文件(超过10MB的大小)就会消耗比较大的计算能力,接着就会影响端点产品的性能。在目前的社会发展中安全产品的稳定性与性能比安全能力要更多偏向,因为一个安全产品最初还是一个计算机软件产品,在这个层面上它才能提供安全防御能力,但现实情况是漏报比误报带来的困扰会更严重,因此这也是无法逃避的因素,事物的发展往往是正反面的,不可能十全十美。
书里提及的分片计算思想我也是第一次了解,不知道是哪位前辈一开始提出的解决方法,值得好好阅读相关材料扩展下,有点类似特征码选取的时候对多个区段的部分二进制代码计算哈希然后汇总输出最终特征码的做法。除了大文件计算哈希影响性能外,MD5最突出的就是碰撞问题,因为MD5算法遭到了破解(特别厉害的成果),这个在CTF比赛中某些题目有出现过。解决方法也很简单,之前的文章里也提及了,就是换用安全性更好的哈希算法,例如SHA哈希算法。
回到特征的维度,特征码用于静态查杀病毒或恶意代码,还可以利用提取的特征识别某类同源家族。提取的过程中有偏移特征的做法,其中包括固定特征,还有滑动特征和模糊特征,都是针对不同的场景而需要的方法,理解起来比较简单,有编写过yara规则的话理解起来更简单,此外更多的场景可以想象下以前给病毒提取特征入库或者提取IDS类检测特征等,这些是最开始进行安全能力补齐的点。
下一篇写安全技术运营中利用属性特征等在威胁发现中的思路,属于Hunting思想,很有意思的。