近两个月实在太忙,这一篇博客拖到现在。本来计划开一个安全分析的系列,但因为工作原因搁置了。端午去成都吃火锅,往返飞机上写出这篇《安全分析中的威胁情报》。作为安全分析系列文章的开篇。
我将威胁情报定义为:经过研判过的安全信息。
这里有三个实体:研判,安全信息,威胁情报。三者的关系为:PHP大马
安全信息 + 研判 = 威胁情报
任何未经研判的安全信息,都不能称之为“威胁情报”。威胁情报用于辅助支持决策或者安全分析,未知来源和真实性的安全信息将影响决策的正确性和分析结果的准确性。
威胁情报是目标现在(以及过去)一段时间的状态描述;它受安全信息的数量、质量,以及研判过程合理性影响,使得威胁情报并不是百分百正确。
安全分析依赖获取和使用数据的能力,所以安全分析首先要克服的第一个问题就是:“如何收集安全信息”。
之前写过一篇 《小议安全分析生命周期》 。其中表达了一个观点:安全分析的起点应该是“确定目标”。在此也适用,在安全信息收集计划前,应该明确目标和范围,制定的信息收集计划应包含“所要处理信息类别”,“信息研判可行的切入点”,“尽可能广泛的来源渠道”,以及“何时进行信息收集”。
针对信息本身,在收集时必须注意以下几点:
讲了那么多信息收集的要求,说一下信息的来源:OSINT、封闭、机密。
安全分析人员,要基于全源分析,而不是仅局限于易于获取的信息。不管什么方式,出发点都是获取到想要的信息,目标都是导出决策需要的高质量情报。从成本上看,开源数据收集成本要远远低于部署私密的资产;开源数据获取难度低,但是处理量极大,所以更合理的信息获取结构是,三者互补进行。
在信息收集阶段,仅仅是构建信息获取的途径,针对的是来源,而不是信息本身。 对信息本身进行研判,才能将其转变成威胁情报。
信息研判是威胁情报生命周期中极为重要的一个环节。主流的研判方式:人肉去看或者跑一些机器学习的算法。
人的主观研判十分准确,既然是人,肯定有自己擅长的领域以及知识盲区,“人”对非擅长领域的信息是很难进行判断的;同时,人的精力是有限的,面对海量信息显得有些乏力。
为了解决人主观研判的弊端,有一些厂家,引入了机器学习来进行信息研判这个工作。不可否认,这是信息爆炸时代下的趋势。受限于当前机器学习发展的瓶颈,很难有一个算法可以全自动地进行信息研判,然后把准确率四个九的处理结果拍我脸上,直接告诉我这就是准确的威胁情报。这是不可能的。
威胁情报是要用来做决策,支持我们分析的。但凡达不到准确率99.99%的威胁情报,都不能直接用于实际生产。非完全可信的情况下,必须要有人介入才行。这也间接说明了,安全分析和安全运营的必要性。安全分析领域,人机协同在未来一段时间依旧是主流。
就 OSINT 信息研判,讲一讲信息研判的具体方法。
研判过程三个基本原则:
许多人做研判又是NLP,又是建立词库,或者甚至监督/无监督机器学习直接怼,这些都没有到点子上。我不否认这些工作的必要性。但是思路多多少少有些歪。
所以,我认为信息研判的两个方面:奇热影视
许多人对信息研判只关注信息本身,而忽略来“信息来源”这个维度。补上来源可靠性判断,对信息研判准确率会有一个较大的提升。
如果基于这两个维度上,做一些细颗粒的划分上,是不是更容易落地?再次给出一些评判的尺码:
信息来源:
信息本身:
尺码标出来后可以以信息来源为Y轴,信息本身为X轴,未知状态为原点建立坐标系:
这样就可以将机器处理的信息分为三个等级:
用白话说出来就是:信息来源可靠且信息本身质量高的安全信息是有价值价值的威胁情报。
当然,威胁情报有三六九等,同时需要人研判的信息也有轻重缓急。其实是有方法对“价值”进行量化的。
虽然上面对尺码描述分为了6个等级,但人类语言在数字世界其实是以数字进行呈现的。标准是可以通过算法进行量化的。
威胁情报的价值可以通过所在坐标的模进行标识的:
一条被自动判定为威胁情报的A,它的价值为:
(x > 0 且 y > 0)
同理可得,映射B、C需要判定的优先级为:
(x > 0 | y > 0)
(x > 0 | y > 0)
通过这种方法,就可以把威胁情报的层次区分开了。这个只是限定在 OSINT 信息处理。不同种类的安全信息,虽然研判尺码不同,但是大体思路是一样的。
讲了那么多方法论,为了帮助更好的理解,这里举一个例子。
场景就设定为:企业安全建设,收集漏洞威胁情报进行安全运营。
先写到这里,本片只写了安全分析角度,威胁情报如何产出,并且提供了工程化的方案。
因为安全分析这个题太大,抽象出来的通用方法总觉着有写干瘪,希望结合“0x05 实践”的内容让读者有所收获。
ps:blog同步更新,http://pi4net.com 需要。
如果对安全分析有感兴趣的点,欢迎评论。有可能作为下期博客内容。