来自以色列SafeBreach公司的研究人员对隐蔽数据外泄方法进行了广泛的分析,并且发明了他们心目中“完美” 的方法。
SafeBreach的研究人员从2015年就开始寻找高度安全的组织中窃取少量机密信息的完美方法。恶意攻击者经常会从公司窃取GB级的文件,但是少量的关键信息同样可以非常有价值,例如,加密密钥、密码、甚至是一些可以暴露公司的一些战略决策的只言片语。
专家分析发明的数据渗透方法针对的情景是外部攻击者已经在某个目标组织内植入了恶意软件,或者内部人员希望在不被发现的情况下泄露机密信息。
上周在阿姆斯特丹举行的HITB大会上,SafeBreach公司CTO、联合创始人ItzikKotler和公司安全研究副总裁AmitKlein向大家展示了完美的数据外泄方法和其中的因素。
专家详细解释了他们的“十诫”,就是要完成完美的数据外泄需要满足的要求和条件。
第一条,也是最重要的规则是,技术必须要可测量的、并且是安全的。
专家称,数据渗透应当遵守柯克霍夫原则:即使密码系统的任何细节已为人悉知,只要密匙(key,又称密钥或密钥)未泄漏,它也应是安全的。这样的密码系统就足够安全,因为相同的算法可以反复使用不同的密钥。
其他的要求包括仅使用普通的流量类型(如 HTTP, DNS 或者 TLS),还有不要利用任何可能被认为能够传输信息的方式(如邮件、论坛发帖、加密文字、文件分享服务),以免引起怀疑。
攻击者在进行数据泄露的时候应当假设企业有相当完善的网络监控系统,包括异常检测、各协议的数据包分析和基于信誉的机制。如果这些分析系统被用于检测向可疑IP和主机传输的流量的话,发送者和接受被盗数据就不应该有直接的通信。攻击者要假设TLS通信会在网关被解密并且审查。
Kotler 和 Klein所描述的攻击情景中,接收方没有限制,它的行为活动不受监控。
另外一个条件是,发送者和接收方的时间得要几乎完全同步。
过去几年,研究人员描述了几种可以被用来泄露几比特(bits)数据而不会引起注意的方法。这些方法只对小规模数据有效,比如密码或者加密密钥,因为他们要想传输一个字符就要用到8比特。
比如,IPv4 header中的ToS(type of service)可以被用来泄露1比特。但是Windows工作站上的ToS值会被设置为0,改成1会有警报。另外,公司企业可以通过防火墙把ToS改成0轻易阻止这种攻击。
更加高效的方法就是使用web计数器。举个例子,Bit.ly这种短网址服务会统计一个URL被访问过几次。攻击者可以利用这个来传递0或者1比特。攻击者在特定时间访问特定网址,接收者检查URL计数器,通过在特定时间网址被访问过(1)或者没有被访问过(0)来接收数据。
这个方法不会引起注意,但是却能轻易被干扰:对方可以拦截Bit.ly的请求,然后在连接后面加上个“+”(这样计数器就不会计数),或者直接把用户重定向到完整网址,这样的话计数器就不会技术,数据就无法泄露。
YouTube 和 StackOverflow也有计数器可以用来计数,但是专家注意到YouTube可能会被某些企业屏蔽。
SafeBreach找到了他们认为的完美方法。他们把它称作HTTP服务器端缓存。
攻击者首先得要找个流行的网站,网站内有很多网页被缓存。电子商务网站应该可以,但是最好是跟目标企业相关的电商网站以免引起怀疑。
很多网站会对html网页做缓存,从而提高网站体验,而网页的缓存时间一般可以从HTTP响应头获得。
Kotler和Klein所描述的攻击情景中,机密信息的发送方和接收方确定一个网页和一个特定时间,这个网页的访问量不能特别大,防止正常的访客造成干扰。如果发送方没有在这个特定时间访问这个特定网页,则代表发送”0”,反之,则发送1。
接收者可以通过检查网页是否在最近被缓存来判断发送者有没有访问网页。如果在特定时间的10秒钟后访问了网页,就可以知道网页是最近被缓存(记为1)还是没被缓存(记为0).
很多网站都可以被用来执行这种攻击。研究人员提供了宜家、EasyJet、Zap.co.il(以色列电商网站)的例子。
SafeBreach发布了一个PoC攻击用来自动化攻击,包括获取缓存时间信息,在特定时间访问设定的URL,判断发送的是0还是1。
Kotler 和Klein说,这样的攻击可以被称为完美的数据泄露攻击方法,因为它完全符合之前提到的“十诫”。这种方法还十分高效,因为它只是用了常规的web流量,不需要额外的软件,网络监控系统也不会发现任何可疑情况。
虽然这应该是完美的数据泄漏方法 ,但研究人员称,还有一些其他因素需要考虑。例如,网站会一直变动,因此应该建立一个更新网址的机制。另外要想完美实现方案,发送方和接收方的时间需要同步好。
另外,攻击者还得对网站做些研究,如果网站使用了多个缓存服务器或者对不同地理位置的访客使用分布式服务器的话就不适用。
研究者称,一种防御方法就是截获所有http请求,然后延迟几秒,然后看网页有没有被接收者访问,但是使用这种方法会对用户体验造成严重影响,如果接收者设定10秒钟后访问这个网页,那每个请求起码得延迟11秒。
SafeBreach称还会带来针对大量数据泄露的完美泄密方法,还会寻找方法抵御完美泄密方法。
* 参考来源:SecurityWeek,vulture翻译,文章有修改,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)