数据安全的噩梦 研究人员发现“完美”数据渗漏方法
作者: 日期:2016年06月06日 阅:3,359

以色列安全公司SafeBreach的研究人员对隐秘数据渗漏(exfiltration)技术进行了深入研究,设计出“完美”的数据渗漏方法。

640.webp (1)

SafeBreach公司的研究人员,在2015年就开始寻找从安全性高的组织中隐秘偷取少量敏感数据的完美方法。恶意行为人动辄黑进公司网络,偷出数以GB计的文件,但少量的关键信息,比如说密钥、口令、可能暴露个人或战略决策的关键词句等,同样具备高价值属性。

该安全公司分析并设计出数据渗漏方法适用于高针对性攻击场景,也就是外部攻击者已经在目标机构内的某台设备上植入了恶意软件,或者恶意内部人士想要在不被安全团队抓到或检测到的情况下发送敏感数据的场景。

完美渗漏的要求和条件

上周,在阿姆斯特丹举行的 Hack in the Box (HITB)黑客安全大会上,SafeBreach共同创始人兼CEO伊特兹克·科特勒,该公司安全研究副总裁阿密特·克莱恩,描述了创建完美渗漏方法涉及的几个因素。

两位专家详细解释了他们命名为“十诫”的完美渗漏产生条件。

其中最重要的一条就是,必须可扩展且安全。两位专家认为,完美渗漏技术必须符合柯克霍夫原则——即使密码系统的任何细节已为人悉知,只要密匙未泄漏,它也应是安全的。这就既保证了安全,又提供了可扩展性,因为相同的算法可重复使用在不同的密钥上。

其他要求还包括:只使用常见Web流量(例如:HTTP、DNS、TLS),不利用任何可能被分类为传输信息的资源(例如:电子邮件、论坛帖子、加密文本、文件共享服务)等,以免引起怀疑。

开发数据渗漏方法时,攻击者应该假设目标企业拥有很好的网络监测系统,包括异常检测、所有协议层级的包分析,以及基于信誉的机制。如果信誉和统计系统被用于检测流向恶意IP和主机的出站流量,就应当避免在发送方和被盗数据接收方之间使用直接通信。攻击者还必须假设企业会在网关解密TLS通信并进行审查。

在科特勒和克莱恩描述的攻击场景里,接收方没有任何限制,自身活动不受任何监测。

任何静默渗漏方法都要求的另一个重要方面是,发送和接收设备的时钟必须几乎完全同步。

几近完美的渗漏

过去几年中,研究人员描述了很多种可以不引人注意地渗漏单个比特数据(0或1)的方法。此类渗漏方法只适用于微量数据,比如口令字和密钥,因为每一个字符都要求攻击者发送8个比特。

举个例子,可以使用IPv4数据包头的服务类型(ToS)字段渗漏1个比特。然而,在Windows工作站上,ToS值是被设为0的,将之修改为1可能会引发报警。而且,公司还可以通过在防火墙将所有出站数据包的ToS置为0,很容易地封锁住此类攻击。

一个更有效的技术涉及到Web计数器的使用。例如,Bit.ly之类的URL缩写服务,可以提供URL被访问的次数。攻击者可以利用此服务,通过在特定时间访问特定URL来发出一个0或1的比特。接受者检查URL计数,然后等待发送者在特定时间访问(1)或不访问(0)该URL,然后再次查看计数器以确定是否增量。

该方法不会产生太多噪音,却很容易被破坏,比如通过拦截Bit.ly请求,往Bit.ly链接添加“+”标志获取原始URL,直接使用原始URL而不用被缩短的链接。只要阻止了计数器递增,该攻击就无效了。

来自YouTube和StackOverflow之类网站的计数器也可以被用来发送比特数据。例如,一段冷门视频或冷门话题的计数器在特定时间的改变,就可以用来发送1或0。不过,专家指出,YouTube这样的网站,有些企业是封禁了的。

完美渗漏

SafeBreach的研究人员已经找到了他们认为的完美渗漏方式。科特勒和克莱恩描述了这种依赖于HTTP服务器端缓存过程的方法。

攻击者首先需要找到一个有很多页面被动态缓存的流行网站。电商网站是理想选择,但为了避免引起怀疑,所选网站应符合目标企业的形象。

很多网站都会为了提高性能而缓存HTML页面,而页面的缓存时间通常可以从HTTP响应包头获取到。在科特勒和克莱恩描述的攻击场景里,发送者和接收者协商好一个页面(必须不热门,以免被该网站的普通用户干扰)和时间点。如果发送者没有在特定时间点访问特定页面,一个比特0就被发送了,如果特定时间点上确实有对该页面的HTTP请求,那么比特1被发送。

接收者可以通过检查该页面是否刚刚被缓存,来判断发送者有没有访问过此页面。如果接收者在特定时间点后10秒去访问该页面,他们就可以判断页面是不是刚刚被缓存了(发送者借访问动作发了个1),或者该页面不过是被接收者自己的访问给缓存了(发送者借无访问动作而发了个0)。

能被用作此类攻击的网页简直多如繁星。研究人员列举出了宜家官网、英国易捷廉价航空官网、以色列电子商务网站Zap.co.il等。

SafeBreach发布了一个自动化此类攻击的概念验证(PoC)工具,包含了获取缓存时间信息,在特定时间点访问预定义的URL来判断发送者是在发0还是1等动作。当然,该方法也可以被恶意内部人士手动执行。

在科特勒和克莱恩看来,这种方法可被归类为完美渗漏,因为符合所有“十诫”要求。比如说,不同域名的不同URL可被用作每个比特的发送途径,这样一来,即使防御者发现了之前使用的URL,也阻止不了攻击继续。

这种渗漏方法还特别高效,因为它只使用正常的Web流量,不需要额外的软件,如果请求是以不规则的长间隔发送,而且发送者不与接受者直接通信,网络监测系统还不太可能找到什么可疑的东西。为确保渗漏数据的完整性,避免掉线和其他因素造成的干扰,发送者可以用“01”序列代表比特0,用“10”序列代表比特1。

尽管可以将这种方法认为是完美渗漏,研究人员指出,需要考虑的因素还有几个。例如,网站总是在改变,因此,如果能有个更新URL的机制,会比较理想。发送者和接受者的时钟同步也对该方法能否有效实现起着非常重要的作用。

攻击者还必须确保所利用的网站和发送时间点要能混杂在目标公司的正常流量中。研究人员强调,如果网站采用多个缓存服务器,或者依赖于地理IP分发,这种攻击可能失效。

检测和挫败此类攻击的一种可能方法,就是拦截所有HTTP请求,延迟几秒钟,查看目标页面是否被接收者访问。但是,这么干会对用户体验造成负面影响,因为每个请求都被延迟了(举个例子:如果接收者在10秒后访问页面,每个请求就得被延迟至少11秒)。

如今该方法细节已被披露,甚至PoC工具都发布了,会不会被恶意行为人滥用呢?科特勒和克莱恩解释道,他们的目的是帮助防御者找到检测和封锁渗漏的技术。毕竟,即使没有他俩,攻击者自己也可能想出此类渗漏方法。

SafeBreach对业界提出了挑战,能不能找到可被用于大量数据的完美渗漏方法呢?能不能找出抵御该公司的完美渗漏提案的有效办法呢?

 

申明:本文系厂商投稿收录,所涉观点不代表安全牛立场!


相关文章