分类 网络安全 下的文章

聊聊我在做的事情和思考

文章同步更新在个人公众号:聊聊我在做的事情和思考,欢迎关注~

思考

这半年以来,有很多问题困扰着我,以致于一度很焦虑。所幸,并未怀疑。

先来说说我曾思考过的琐碎问题。一线安全团队是否必需安全算法工程师?一线安全团队是否存在工具人的现状?如何持续提升个人和团队核心竞争力?如何平衡自己的成长和带给团队/公司的增益?

总结一下,本质在于找到自己真正认同的工作内容。说服自己,基本就有理由说服团队。

有一个现象是大厂安全人员分工和职能已然精细化,在这种背景下,必然会出现所谓的危机感,因为大家都是螺丝钉,没有谁是不可替代的。随便拿一款安全产品来说,其在厂内的流水线上流转,会遇到很多工具人,有研发角色,有运营角色。运营的很焦虑,认为产品不是自己研发的,对于自己来说是黑盒,没有核心竞争力,经常会被挑战。那研发的好过吗?不好过。对于产品真正运营产生实际价值来说,自己也只是工具人。

当然,从生产力和生产关系的角度,这种工作内容精细化分工协作模式也许能给公司带来效率最大化,但同时也限制了个体的可能性,使得个体自认为沦为工具人。这就是公司增益和个人成长之间的矛盾。从长远的角度来说,是不利于可持续发展的。

还有一个现象是中台的打薄、前台的打厚和小CISO们的出现,这也许也是解放生产力的举措。每条事业线都具备自己独立作战的一线安全团队,具有很大的灵活性、敏捷性,可以直接触达到最前沿,为业务团队提供支撑。这让我想到了国内陆军的军改,小CISO团队不就是现如今崭新作战实体-合成旅嘛,五脏俱全,可独立完成一线作战,受安全参谋本部领导。不同的是小CISO团队的生产资料不掌握在自己手中。

然而,精细化程度侵袭到某个层面,某个层面必然就会有工具感。个体层面工具人上升到了组织层面工具人。

现在可以开始回答文初的问题了。一线安全团队必需安全算法工程师,补全团队算法视野,但不宜多。一线安全团队存在工具人和工具团的现状。那么如何打破工具的属性,提升个人/团队核心竞争力的同时,最大化服务于公司呢?

和生活一样,任何一个单一性质的工作内容长期下去都会乏味,缺乏认同感。因而,交叉是打破单一的有效手段。将自己的手伸长,体验新的点,纵然存量安全产品运营模式无法改变,增量安全产品也可以尝试设计、研发、运营一体化,带给团队、个人新的色彩。

一线安全团队必需安全算法工程师,首先需是安全工程师,其次才是算法工程师,一个不懂安全的算法工程师在一线安全团队是没有出路的。

安全算法自带交叉属性,是不是就够了呢,从安全问题、数据、算法、运营的落地链路,显然还只是解决问题的链路其中一环,也很单一。所以需要前后向交叉,完成全链路闭环,真正解决问题,这也是我对安全算法工程师核心竞争力的一点理解。

一线安全团队需要安全算法工程师,安全算法工程师也需要在一线。和用算法定义问题、解决问题相比,发现问题、提出问题就像是看见海滩上的珍珠,剩下的就是如何弯腰去捡起。

在某一段时间,我曾一度冒出很多idea,拉着师兄、主管、同事眉飞色舞地讨论,我主管给的建议是:去做就行了。姜还是老的辣。实践之后发现理想有多丰满,现实就有多残忍,自己扑灭自己点燃的一束束火花。

之后一段时间,我曾一度提不出任何问题,其客观原因是大厂安全多年的发展建设,坑多被填的七七八八。黑盒系列安全产品?有了。白盒系列?有了。灰盒?有了。你能想到的啥啥啥,都有了,并且做的还不赖,就算一言难尽,那也是别人占山为王的基本盘,很难重复造轮子去卷,一说服不了自己,二说服不了智商情商在线的老板们。看不到问题也有主观原因,先验知识不足,对事物认知程度太浅。

一直认为,博士和非博士很大一点区别在于提出问题,大多数博士们读博阶段都要被系统化培养从0到1独立开展工作的能力,自主发现未知坑位,向导师输入信息流,影响决策,而不是导师说啥就是啥。抛开多读了几年书,职级就应该高一些不谈,这是我对博士起步定级P6最大的认同感,也是无论职级高低都最应该有的能力。

做事

实践出真知,实践多了自然就能够看见问题,说说目前主要在做的几点工作。一是攻击源和攻击者识别。不同的人可能有不同的理解,有些理解为黑客情报,一定程度上确实是这样,但广义的理解是风险者情报,包括了黑客、白帽子、黑灰产、竞对、内鬼等风险者。攻击源的识别也是为了发现幕后的操纵者,即使控不到实人,也可以增进对攻击者攻击意图的理解和掌握,防患未然。攻击发生的本质在于发起攻击的人,要么解决问题,要么解决提出问题的人,攻击者识别做的就是这个事情,以人为本。

有大佬说过,向前一步是感知,向前N步是情报。现阶段实际情况是安全产品一大堆,像塔防游戏一般,部署在各个关键节点,严正以待,这是感知。局部视野比较局限,检测到的单条攻击可能无法准确判断攻击者意图,那么可以从全局的视角看问题,将各类安全产品作为我的工具人,源源不断生产数据流,我来集中做精细化数据挖掘,一方面可以反哺给各类安全产品消费,打通各类安全产品间的信息流通,充分发挥各类安全产品能力的局部最优,以期达到全局最优。另一方面,多源可以有全局视野,便于识别同源的攻击、攻击者的身份和意图,不断沉淀出以人为核心的情报。

说完了目的、价值、开局的资源,下面简要说说具体的打法。攻击源识别方面,主要根据行为同源(访问行为、payload行为等)、身份同源(地理位置、供应商、C段ip、账号、IOC等)、时间序列同源,综合判断攻击是否同源。攻击者身份识别方面,主要分为攻击源数据关联、体内数据关联、体外数据关联和模式识别。攻击者情报方面,利用攻击者身份信息进行扩线,结合攻击源情报,判断敌手的知己(攻击资源/攻击能力)、知彼(对我方的了解/掌握程度)、目的(动机/意图)。更细分的方法有些可能路子比较野,感兴趣的可以私下交流。

其中,我们重点建设基于数据和算法的力量解决攻击源和攻击者识别的问题,从安全算法工程师的角度,完成了数据的清洗、特征化、模型化、上线运营、模型调优等流程,有效闭环,安全算法工程师不得不变成全栈工程师。大体模型结构如下图(有删减)。

5分钟建模,2小时洗数据。模型结构不复杂,都是工业界常用的机器学习方法,关键还是对待解决问题和数据的理解,问题是否可解,是否可用算法解,数据脏不脏,脏的话如何处理,可能脏数据会直接导致开始的结果不符合预期,这时候没有经验的我如何判断是方法的问题还是脏数据的问题。种种这些,唯有不断实践。模型的效果经过校验,具备识别同源攻击case和攻击者的能力,这样就可以从全局的视角解释到底有哪些攻击者从哪些攻击原点使用哪些攻击资产发起哪些攻击行为访问了哪些攻击终点,看清其真正意图。

第二点是业余时间的一点工作,主要做信息抽取类的安全实践,目前还在孵化中,致力于构建一张安全知识图谱,其副产物可以直接作用于威胁情报等领域。

做事方式方法

在刚开展工作的时候,站在前人的肩膀上做事,最大化利用现有资源,团结可以团结的一切;

如果把做事看作输入数据流,脑袋看作一个决策模型,那么我们的思维和思考方式就由模型结构和参数决定,模型结构是体系化思考方式,模型参数是经验,我们要不断优化的就是这些;

在出现问题的时候,及时进行个人工作复盘,也就是调整脑袋的模型结构和参数,重训练。

交叉延伸

技术不是万能的,没有技术是万万不能的,个人和团队的核心竞争力都需要有代表性作品,尤其是产品。很多安全团队研发的各式安全产品都没有职业产品经理的介入,更别提安全产品经理了。想要成长为产品经理很难,而且也跨领域和赛道了,但是可以交叉培养产品思维,这也是目前工作之外的一些输入。读《产品思维》一书,从了解用户实际需求,到实现用户价值和产品价值,都涉及到“特征”和“决策”。联系人脑模型的决策,细思极恐,这世界也许本来就是一个F(x)函数。

致谢

除了我的团队和主管师兄同事外,我还要感谢几位师傅,都是我的学习榜样:

楚老师、至老师、沙老师、涧老师(以上排名分先后,顺序按照我的学习路径:)