图计算在基础安全的落点(一)
[Data Science for Cyber Security]
简要记录一些思想。
图与入侵检测
当下观察到的企业入侵检测发展方向:
- 向下做深端的采集能力,提高对抗成本。
- 向上提高数据分析能力,挖掘更多信息。
数据分析能力的发展过程:
- 第一阶段:单点日志+规则审计。
- 第二阶段:基于双流join的关联分析,能够连接两三种异构日志并建模。
- 第三阶段:利用图计算连接更多数据。
连接的数据越多,意味着特征维度越丰富,分类边界越清晰。
一个简单场景:
进程日志审计是入侵检测能力重要部分。假设该数据以kv形式存储在表中,表里的每条数据(row)存储了一条进程启动信息及其父进程信息。
此时我们要检测"Java应用执行curl指令"这一行为,可以直接对每条数据进行审计:
select * from proc_table
where parient_proc like 'java%' and proc like 'curl%'
但事实上并不是所有RCE的漏洞服务(java)和恶意指令(curl)都是父子进程关系,很有可能出现第二、三种情况——中间隔了N个进程节点。
这种情况一般需要进行N-1次join操作,才能将java与curl节点连接到一张表里,然后再对其进行规则判断。
当N>=4时,多流join已达瓶颈。这时自然想到利用图查询来解决这一问题,可以在提升性能的同时避免多个模型并发带来的计算冗余:
首先在图构建时,通过规则识别java和curl节点,并生成一个label vertex。 图查询时寻找 label:java 到 label:curl 的通路即可拿到完整进程链:
g("threat_graph").V("java").hasLabel("label_node").outE("label2proc").inV().repeat(outE().inV().as("a")).until(hasLabel("label_node").values("label").is(P.eq("curl"))).path().select(Pop.all, "a")
Join的最终形态是图查询。
图与入侵响应
在图应用的探索中,我们在产品上落地了"云安全中心-自动化入侵回溯"功能,用于提高入侵事件的响应效率。我们通过大数据分析引擎对数十种云产品日志进行加工、关联、可视化,在一定程度上还原攻击者的入侵链路图。便于用户在最短时间内定位入侵原因、制定应急决策。
通过WEB漏洞入侵执行命令植入并启动挖矿程序:
过程中解决的问题:
- 日志完整性、丰富性要求
- 海量数据、长时间窗口的关联分析
- 图的实时构建与查询
- 交互与可视化
此后我们在自动路径还原的基础上实现了跨主机关联分析,集成了日志查询、情报API等功能模块,形成日志检索与可视化一体的高交互hunting平台——云安全中心事件调查功能,用数据分析能力进一步提升入侵响应效率。
图与威胁情报
入侵检测/防御体系能够发现99%的入侵事件,如何发现发现剩余1%(黑客通过0day入侵,并通过特殊的持久化技巧绕过HTDS/EDR检测点)。一个思路是攻击者画像,当其进行低端测试时将其捕获,之后密切监控、运营其每一步行为以发现未知攻击手段。
图与UEBA
影响企业安全的两个趋势:
- 云原生:服务、中间件将会默认安全,剩余自研软件也会在容器中获得强隔离能力。在此场景下应用漏洞攻击面紧缩,更多安全事件将由 "入侵服务A——获取接口凭证——访问服务B" 的形式出现。
- 零信任:对任何试图接入系统的人/事/物进行验证。构筑在认证之上的入侵检测,实体画像、行为分析是必不可少的部分。
两个趋势同时指向了一种技术——UEBA。用户访问行为拓扑结构中蕴涵了大量的信息,graph propagation、graph clustering、graph pattern以及众多结合graph embedding的深度图神经网络类算法,已经在搜索推荐和风控领域得到广泛的验证。
总结
以上都可称之为"知识图谱"的应用,除却这些宽泛的概念,我们更应关注具体的落地场景——理解业务问题并将之转化为数据问题。"基础攻防"、"机器智能"这两个高门槛技术领域的专家们隔江对望,少有人愿意走出舒适区系统化学习对方的知识,这或许是当下安全智能噱头大于效果的原因。