G.O.S.S.I.P 阅读推荐 2022-09-05

admin 2023年2月16日22:12:22评论44 views字数 1708阅读5分41秒阅读模式

今天推荐的论文Harm-DoS: Hash Algorithm Replacement for Mitigating Denial-of-Service Vulnerabilities in Binary Executables来自RAID 2022,由南加州大学的研究人员完成。这篇论文讨论了二进制代码重写(binary code rewriting)的一个非常有趣的应用:如何自动化替换代码之中的不安全hash函数,将其修复为安全版本

G.O.S.S.I.P 阅读推荐 2022-09-05

本文从密码学函数的使用性能角度出发,考虑如何对抗一种DoS攻击——hash flooding攻击,关于这个攻击的细节,感兴趣的读者可以看看下面的网页:

https://isdanni.com/hash-flooding/

回到本文,作者在现实世界中大规模分析了二进制代码中不安全hash函数(weak hash function)的使用,对105831个可执行文件进行了分析,发现其中有796例不安全使用的情况。为了修复这种问题,作者研发了名为Harm-DoS的二进制代码修复方法,成功修复了其中759例(听起来很像医学论文)。作者公开了相关代码,大家可以试用:

https://github.com/usc-isi-bass/hashdos_vulnerability_detection

读者们很容易就会想到,Harm-DoS方法的第一步肯定是要在代码中识别那些有问题的hash函数的存在。这个研究领域——对程序代码(特别是二进制代码)中的密码学函数进行自动化识别和分析,一直是G.O.S.S.I.P的拿手研究内容,我们从2011年开始就提出了一系列自动化识别二进制代码中密码学函数的研究技术。本文的作者在方法论上并没有特别的创新(实际上,本领域能想到的方法几乎都被提出来了),主要还是静态的函数模版匹配,关注了hash函数这种密码算法的特性(常量、内存读写等),具体细节参见论文第五章

G.O.S.S.I.P 阅读推荐 2022-09-05

识别密码函数可以允许一定程度的误报,但是要对其进行修复,就必须保证识别的准确率,我们在2011年的ISC论文中提出的基于函数的输入/输出的测试方法就可以保证(概率上)100%的无误报,那么作者又是怎么做的呢?作者主要使用了符号执行的方法,来验证识别的密码函数确实是特定的hash函数。作者除了对输入-输出关系进行了符号执行分析,还对内存访问、大小写变换(主要是识别那些大小写不敏感的hash函数输入处理)等进行了符号执行分析。

G.O.S.S.I.P 阅读推荐 2022-09-05

最后,就是(激动人心的)函数替换过程了!但是不得不说,作者似乎对binary rewriting的研究进展了解不多,在论文的7.2章中,对这方面的实现的叙述,仿佛是一个刚刚入门binary rewriting的新手不过我们不能苛刻要求别人在技术的每方面都十分精进,只要符合逻辑也是很不错的呢

综合以上的步骤,实现Harm-DoS的总体流程如下图所示:

G.O.S.S.I.P 阅读推荐 2022-09-05

在实验部分,作者使用了一个来自物理实验室(误)的数据集:这个名为ALLSTAR (Assembled Labeled Library for Static Analysis Research,https://allstar.jhuapl.edu/) 的数据集包含了3万多个程序的各种架构编译版本

G.O.S.S.I.P 阅读推荐 2022-09-05

有了数据集的支持(主要是有了ground truth),作者可以验证Harm-DoS方法的准确性:

G.O.S.S.I.P 阅读推荐 2022-09-05

最后,作者用一个实际生活中的例子来证明hash flooding攻击的存在:在知名的论坛reddit使用的一个组件snudown(主要用来解析markdown)中,包含了一个大小写不敏感的SDBM hash函数使用,这个函数导致了CVE-2021-41168漏洞

https://github.com/reddit/snudown

作者分析了这个漏洞导致的性能开销,同时验证了通过将有问题的hash函数替换为sipHash之后,漏洞得到了修复。

G.O.S.S.I.P 阅读推荐 2022-09-05


论文PDF:https://bass.isi.edu/assets/pdf/2022_RAID_Harm_DoS_prepublication.pdf


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2022-09-05

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月16日22:12:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2022-09-05https://cn-sec.com/archives/1279690.html

发表评论

匿名网友 填写信息