摘要: 【零】槽 信息和情报有什么差别? 之前我的文章里已经谈到过 —— 情报与决策直接相关,甚至直接驱动决策,而“信息”则不同。 从理论上来说,“信息”是知识管理中最底层、最容易获取、最不值钱的东西,不经过处理根本无法成为有价值的内容,甚至一不小心还...
【零】槽
信息和情报有什么差别?
之前我的文章里已经谈到过 —— 情报与决策直接相关,甚至直接驱动决策,而“信息”则不同。
从理论上来说,“信息”是知识管理中最底层、最容易获取、最不值钱的东西,不经过处理根本无法成为有价值的内容,甚至一不小心还能引起信息过剩而导致处理能力不足。
当看到这里时,可能有些人是会觉得我还真能咬文嚼字,其实,光看标题我都觉得自己磨叽。
但从本质上来说,这里我要要咬的不是文字,而是“概念到落地”的问题。
现在有太多工具或所谓的平台,打着情报的幌子却做着不上道的杂碎事 —— 搞点信息融合、做点无意义的关联,甚至有些平台连关联都显得那么无力 —— 长此以往,必然又是一场概念炒作的灾难,最后外行就真成了看热闹的,他们会说:这群傻鸟又他妈骗了一票钱就跑了。
【壹】引子
我已经忘了是初中还是高中的年代了,也忘了这个引子是来自地理老师还是历史老师的故事了 —— 总之,我很对不起你们。
古代(在热兵器普遍装备之前),铁匠是个牛逼而又举足轻重的职业。
一个国家中技艺高超的铁匠很有可能就代表了国家最先进的金属冶炼技术,而在商业开放时期,铁匠的兵器制造技艺也很有可能是无限接近这个国家在战时所使用武器的技术含量的。而更有些极端情况就是,很多参战的兵卒甚至可能在和平时期便回家做铁匠。
所以,在古代很多探子会去踩点摸清楚敌对国家有多少铁匠铺,这些铁匠铺的技艺如何,甚至是这个国家的矿源多寡、储备量等等 —— 这样,根据开采量的变动以及铁匠的日常行为便可能推测出是否将要开战,以及兵卒的规模、可能发起的时间和针对的目标。
相对应的,聪明的皇帝也会对这些敏感部门(铁匠铺)加以限制,以防止一不小心泄漏了太多秘密。
其实,这些在我还是个小屁孩的时候听起来都是很神奇的事情。就好象伊拉克战争刚爆发不久的时候,我记得还有个梳大背头的评论员在电视上说 —— 80年代美军列装BDU最重要的内容就是添加了若干沙漠环境的沙色战斗服,这已经说明了美国对内地(甚至直指沙漠地带)的作战野心。
但今天,既然我说出来了,就说明我已经懂了。
这些例子可以比较明显的看出,信息这种无价的东西随处可取 —— 获取美军换装的信息是公开的,铁匠铺也是开门做生意的 —— 但是,如果没有加入情报分析人员的主观判断以及其他信息作为关联起到催化剂的作用的话,那么,信息摆放的再多也是只能看着溢出而无法处理。
【贰】主观的判断在哪里
探子们对铁匠铺的主观判断价值输出在哪里:
- 能看出冶炼、锻造等关键工艺的好坏
- 能(通过穷举方式)分析出不同铁匠习惯于打造的兵器(以确认战时兵器的装配比例)
- 铁匠铺的数量、铁匠数量
- 来自朝廷的管控条例
- 国家的铁矿分布、容量、开采难易度等
(虽然几个铁匠铺不能代表整个国家的金属锻造力量,但在热武器未成为主流之前,这类民间的“武器生产和装备商”是绝对有代表意义的)
所以,可以看出,探子非凡人,至少要精通金属冶炼和锻造知识,并熟知用兵之道,这样才有可能知道需要采集什么样的信息、以及什么样的信息可以作为基础信息的“催化剂”来将这些信息一起转换成为情报。
因此,横向比对可知,安全情报肯定是安全专家的活,这种事不是机器能完全代为处理的。我只能说,如果古代有计算机甚至hadoop什么的话,那么,探子在计算铁矿容量到兵器数量再到装备人员数量的转换时会轻松点,但整个的流程、输入信息源、甚至计算公式,这些都不是计算机能够提供的,而是来自于专家 —— 所以,不得不说,真正的安全专家们有福了,威胁情报绝对是你们可以扎根发芽的土壤。
【叁】情报流程
基于上面的实例,我将信息进行分类:
- 直接信息:公开信息,通过公开渠道或半公开渠道可以比较轻易获取的信息,有点接近OSINT,但看起来应该比OSINT来的更为直接、含金量更低一些。例如:大街上的铁匠铺 —— 对应在我们这个话题里,可能就是那些在twitter、facebook或各厂商的paper里可能获取到的信息;
- 深度信息:不一定需要很多专业知识但需要一些敏感度,比如:铁匠们善于打造什么样的兵器,兵器质量如何等等;
- 受限信息:在一定范围内获取的,比如,我在宫中买通了一个公公,知道哪些铁匠是在战争时期会被招募的,或是知道有哪些铁矿 —— 对应这个话题,就可能是那些去用户现场并得到用户授权才能获得的一些信息,例如本地日志;
- 推理信息:需要结合以上信息并加上专业人员的专业知识判断才能获得的信息;
直接信息、深度信息和受限信息是化学方程式左侧的那些字符,推理信息则是化学方程式中的催化剂,情报则是化学反应之后得到的结果。所以,这里得到两个公式:
这里需要额外说明的是,信息的类型、涵盖的方向、展示的方式都很多,不同的安全诉求对应的信息源肯定也是不一样的。
甚至,我认为更多时候我们可能是拿到了一批信息,但一时间根本无法想清楚最终要得到的是什么,只有在这些信息里不断的尝试和挖掘的过程中,才会发现最终结果可能的样子。对于这一点,我想有过大量安全事件处理经验的人应该是体会最深的 —— 面对海量安全事件和日志的时候,多数情况下是毫无思路的,也绝对是任何一个表象现象都可能被作为线索去尝试的,但最终可能会发现:最初认为的线索不是线索,开始期望的结果可能并非是最终的结果。
【肆】实例分析
威胁情报的本质是依托于专家分析的化学反应过程,是难以通过固化的方法论或是几个量化公式就能完全说明的,所以,结合上面的一些理论,这里以实例的方式做一展现。
【肆.1】背景
现在,在互联网上公开的hacking信息非常多,我这里通过几个渠道获取了某个黑客的一些历史作案记录。这些记录涵盖了最近一年的71次篡改。
信息采集源头包括:twitter、facebook、微博 等 社交媒体;
过程中的工具包括:Google(用来验证和扩大信息比对范围)、若干正则、scrapy(自己搞了个小爬虫爬页面);
另外需说明:下面的分析信息中,我已经隐去所有可能产生负面影响的敏感信息,所以有些地方可能会说的比较含糊,看个意思就好,不要深究。
【肆.2】直接信息
根据公开渠道获取的信息,放到excel里简单筛选统计一下,得到如下信息:
- 按照时间排序抽检最近1年发生的71次事件(篡改);
- 篡改事件的流出时间呈现出规律性;
- 其中27个不可访问,44个依然可访问(但均已修正);
- 27个不可访问的均为二级域名,对其中几个进行了Google(利用cache和text语法),可判断多是临时部署的页面或一些不重要的功能;
- 44个可访问地址中,首页default document(默认起始页)为 xxx.action 的有9个,xxx!xxx.action 的则有5个;
- 71个样本中有16个学校,其中9个在北京,均为学校的下属院系或行政部门而非学校门户;
- 71个样本隶属于21个省(或直辖市),网站所在区域为“县或市”的有32个,隶属于北京的网站有19个(全部信息按站点title统计)
上面是通过简单收集就能得到的直接信息,当然还有更多的维度可以去统计,不过在这里可以说已经足够了,没必要再去细分。
另外,在本例中需要特别说明的就是,这些直接信息的价值其实是非常有限,尤其是在很多事件已经发生了很久之后,公开渠道上可获取的信息就变得更为有限、也显得更加无力了。
【肆.3】深度信息
把上面的信息进一步拆开,获得一些比直接信息再有点深度的信息:
- 根据各种default document(网站起始页),大概可以猜到这里有不少网站用了Struts;
- 有几个以xxx!xxx.action 为default document,查看一下首页源码,比对一下关键变量、引用的css和js文件名及内容,基本可确认这些系统出自同一个开发团队;
- 拿着 xxx!xxx.action 到Google里搜一下,发现以此为default document的网站很多,爬出来首页比对一下,发现大多是同一套系统建的站;
- 那些原是二级域名被黑而现在又无法访问的网站中,大部分二级域名对应功能已下线,根据Google cache 可知,其中很多二级域名只是新上线不久。而这里还有几个站是通过更换端口和更换目录名的方式重新上线(Google text搜到);
除此之外,再调出scrapy脚本爬一下,可以确认两个问题:
- 那些 xxx!xxx.action 的站点,在URL中的文件名命名以及目录结构分布上,呈现出高度统一性;
- 对于另外那些网站,仅通过爬出的URL列表可判断:有两个网站也使用了与 xxx!xxx.action 相同的系统;至少还有15个网站使用了可能曾经存在漏洞的系统(我这里没有确认现在是否还存在漏洞,这些系统包括:JeeCMS、jCMS、Struts2、fckeditor、wordpress、webeditor等);至少有5个站可非常简单找到后台(admin)甚至有的可猜到后台口令(admin及123456);
--------------------------------------------------
这里需要特别说明一下:
到达此处时,我发现那些没有使用 xxx!xxx.action 的系统如果深挖的话,需要太多自动化工具(还要再写脚本),例如:我坚信这些站中肯定还有使用了开源或同一类系统的站(因为有些站的URL命名方式非常相近),但需要更多的精确信息来判断而不只是靠爬虫获得的几个文件名,但我最开始本就想为一篇文章找点素材来佐证一下观点,没有预先做太多准备,所以这里就不再对未使用 xxx!xxx.action 的站做深度跟踪和结论性的分析,以下推理和结论就以 xxx!xxx.action 为主,而只对余下这一批五花八门的站做一个较为统一的结论,不再深挖。
--------------------------------------------------
【肆.4】推理信息
上面是直接信息和动了一下手之后的稍有深度的信息,比较可惜的是,这里无法拿到受限信息。
所以接下来,只能结合这些公开信息做一些推理,得到几条推理信息 —— 不过需要注意的是,推理信息不要太多,过多的推理信息作为判断条件的话,得出来的结论可能会因多重不确定因素交叉而变的质量低下:
- 网站被黑的频度分布非常均匀,所以很多网站一定是早已经被黑,只是在需要的时候放出来而已;
- 使用同类组件甚至同一套系统建站的网站,是被利用了同样的问题而黑掉的;
- 直接信息告诉我们,被黑站点无论在区域的广度还是在省市县这样的纵深分布上,都是很广、很乱、几乎无规律的,所以hacking的过程不是依据目标类型或影响力来评定的,而是漏洞覆盖到哪里黑客就hack到哪里;
- 黑客选择目标有两种可能性:第一种,黑客掌控了其所感兴趣目标的集中监测能力,以此发现新上线系统,并在漏洞出现时第一时间获取受影响系统清单;第二种:每次出现漏洞时,第一时间Google或批量扫描获取受影响目标(这两种可能性到底是哪个,其实只要第一时间获取受害主机日志就可确认,但目前看来,日志属于受限信息,并不容易获取);
【肆.5】情报信息
至此,已完成的顺序是这样的:
第一,基于直接信息的分析,得到深度信息;
第二,基于深度信息的判断,得出推理信息;
第三,也就是接下来要做的,那就是结合推理信息,得出有效情报,即,上面我说的信息到推理信息再通过催化效应产生结论的过程。
结合上面的信息,再做深度判断得出一些预测性的结论:
- 基于推理信息的前三条,Google出来的那些使用了同样程序的站点应该是非常危险,甚至可能已经被黑;
- 由那些五花八门的系统中的共性可知,黑客“极有可能不是利用高深技术,只是快速利用新漏洞或是比较low的漏洞来黑站的”,这样,其实我们也可以利用同样手段,及时发现受最新漏洞影响的网站以及那些很low漏洞的网站,以此更快速响应、防护,甚至提前布控;
【伍】阶段性结论
这个实例展示了我所理解的直接信息、推理信息、受限信息在主观判断下得到具备决策和引导决策能力的情报的过程。
其实整个过程几乎没有技术难度,但却难以形成方法论或量化公式,也正是因此才通过实例来描述整个推演过程。
而我之前也说过,情报本身就是非常依赖于专家的一项工作,如果想要企图通过几个固化公式就能批量化生产,或是通过研究出几个方法论就能快速学习并掌握其精髓,这些都是不现实而且最终会降低情报逼格和价值的行为。
当然,这里也可能会存在错误,因为有两点问题:
1. 样本不够丰富,虽然时间跨度不小,但总量只取了70多个,还是太少,可能看到的只是局部问题;
2. 整个过程完全是公开信息,一点点受限信息都没有,一般情况下,更精确的情报肯定要有一点受限信息 —— 哪怕是小道消息也好啊;
但是,我觉得这个过程已经能说明了我想说的“信息”和“情报”之间的差异和差距了。
【陆】其他方面
另外,还有值得再多说几句的问题:
- 决策问题:涉及责、权、利,而且可能交叉管理、监管不明等问题也是障碍,说多了都是泪;
- 策略问题:在执行过程中应该采取什么样的策略?例如这个案例,是要提前布防还是要引君入瓮?提前布防可能会改变对方攻击方向和攻击模式,从整体上来说,可能会保住局部而损伤整体 —— 但如果获取情报的只是局部的负责人而非整体的负责人,那么,他很有可能选择前者。而引君入瓮也是个技术活,搞不好就变成引狼入室;
- 时效性:绝大多数情报的时效性是有限的,这个问题还与策略问题息息相关,策略用错了,可能就瞬间失效,用对了则可能延长其保鲜期;
- 持续性:如果在策略上选择了保守战法或是放长线钓大鱼的方式的话,那么,针对单一目标的持续性和隐蔽性问题也就随之而来;
总之,情报这种东西,因其价值大而导致其获得的难度大,如果只是看后无感的事件提示或告警,在我看来是远不能称之为情报的。
作者: Python / 微信公众号:Piz0n(数字0)