5月12日,在黑客大赛GeekPwn澳门站现场,来自美国加州大学钱志云团队的博士生曹跃现场展示了惊人的“远程任意TCP劫持连接技术”,重现了著名黑客米特尼克在互联网任意地方劫持任意用户的传奇。攻击的技术细节没有完全公开,但是根据GeekPwn的相关报道来看,曹跃同学是使用了一种被称为边信道(又称侧信道)攻击的技术完成了这一壮举。

今天我们抛开这个深奥的漏洞,来谈下什么是边信道攻击。很多工业界的同学可能对这个学术界的热门术语并不是很熟悉。在密码学中,针对加密电子设备在运行过程中的时间消耗、功率消耗或电磁辐射之类的侧信道信息泄露而对加密设备进行攻击的方法被称为边信道攻击定时信息。这种攻击方式目前也已经被广泛的应用到密码学之外的安全技术领域。

一个现实生活中的边信道攻击案例

几年前有过这样的一个报道:南京大学学生刘某在观看一段记者采访某互联网公司总裁周某的视频时突发奇想,利用视频中记者采访时的拨号声音还原出了周某手机号码。这个事情引起了网友的围观,并被周某在在微薄上证实确有其事。这个事件中刘同学使用的就是边信道攻击,通过记者视频中拨号的声音,对照每个号码按键声音的标准音,就可以精确的还原出真实的号码。

在网络攻防中,边信道的思路实际已经有比较广泛的运用,比如通过电磁木马窃收物理隔离计算机信息、通过磁探头设备在Android和iOS设备上获取加密秘钥。相关的报道很多,这里不再一一赘述。

边信道攻击和应用安全

在应用安全领域,时间信道进行攻击(Time attack,又称时序攻击)是一种比较常见的边信道攻击方式。根据应用软件的特性,我们可以构造不同的输入数据来观察程序执行某些流程耗时的差别,通过统计分析的方法来获取我们想要的信息。在现实生活中,张三晚上二十一点打隔壁老王家客厅座机,打10次有8次老王接的比平时慢,那么张三基本可以断定老王晚上睡觉的时间应该早于二十一点,这就是一种时序攻击。

2010年,Sebastian Schinzel在OWASP的一次会议上就做过题为《Side Channel Vulnerabilities on the Web - Detection and Prevention》的报告,里面介绍了一种基于应用程序流程执行差异的时序攻击模型并给出了防御方法。这里顺便多说一句,Sebastian Schinzel的研究领域非常广泛,OpenSSL的DROWN漏洞(水牢漏洞)也是这位国际友人发现并报告给官方的。

在Black Hat 2013大会上,英国安全研究员Paul Stone就做过一个基于时间边信道攻击的报告,他利用基于JavaScript的时序攻击结合其它一些攻击策略,能够从目标用户浏览器上窃取信息。

PHP应用程序中的字符串比较一直是时序攻击的重灾区,在找回密码等应用场景种均有可能存在此类安全隐患。大量知名的PHP开源应用程序都在这里栽倒过,比如piwik就在去年就发过补丁。

这个坑也是源远流长,Ircmaxell对这个问题做过详细的分析。在比较两个字符是否一致的时候,首先PHP会做长度判断。如果字符长度不一样,就不用比下去了,这是一个时序攻击的利用点。

然后,如果长度一样就用memcmp来比较了,这里我大PHP要接C语言的锅了

可以看到这里本质是逐位比较的。我们可以构造如下的序列循环比较,记录下来每次尝试的时间。

如果发现某个字符的时间比较长,基本就可以确定已经命中了这一位。固定住这一位后可以对下一位继续进行猜测。PHP为了解决这个问题,甚至专门提供了相关的安全函数。

网络安全的跨界合作

边信道攻击,作为一种在学术研究领域(特别是密码学领域)广为应用的攻防方式,在工业领域也发出了耀眼的光芒,体现了学术界和工业界在相互借鉴、认可和融合。

在过去的很多年中,国内学术界关于网络安全的研究和教学大多侧重于密码学领域。而在工业领域,大家则更侧重于系统漏洞和攻防实战。学术界和工业界的合作融合,相对比较少,看问题的角度,也有所差别。比如针对某一类攻击方法,从学术价值上看非常具有创新性,但是从工业界看却难有施展的场景,讨论起来的时候一言不合就只能拿酒说话了。

最近几年,情况有了很大的改变。一些有很强学术背景的牛人,在工业领域里取得了令人钦佩的成果,比如盘古团队的王铁磊和PaloAlto的屈波等超级大神。在密码学研究领域非常知名的上海交通大学loccs实验室甚至培养出了夺得过CTF赛事世界冠军的0ops团队。

在2015年底,清华段海新老师、复旦杨珉老师等活跃在网络安全学术和技术圈的研究人员发起了网络安全研究国际学术论坛(简称网安国际,InForSec,www.inforsec.org )。

若干年后回首网络安全发展史,这可能是一个里程碑式的事件。InForSec通过组织一些活动,极大的促进了学术和工业的了解和交流。TSRC也在积极的为InForSec提供一些力所能及的支持,希望InForSec走的更远走的更好。

在未来的几年中,我们一定能够看到更多类似GeekPwn上边信道劫持TCP通信的精彩技术从学术界走向工业界。学术界发现问题、解决问题的方法能够给工业界的同学更多的启迪和思考,而工业界也能够给学术界提供更为广泛的战场。


本文转载自腾讯安全应急响应中心官方微信公众号(tsrc_team)

个人收藏,侵删。