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

admin 2022年12月13日01:41:19评论28 views字数 2076阅读6分55秒阅读模式

这是勇敢的海燕,在闪电中间,在怒吼的大海上高傲地飞翔。这是胜利的预言家在叫喊:
  ——让暴风雨来得更猛烈些吧!


这段时间大家是不是都处在一个人心惶惶的状态呢?不要怕,读论文是最好的抵御外界风险的方法,一则可以减少接触,二则可以增长安全知识。今天我们来阅读一篇刚刚结束的ACSAC 2022会议上的研究论文 A Qualitative Evaluation of Reverse Engineering Tool Usability,看看研究人员对常用的逆向分析工具易用性评估

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

来自Tufts大学的研究人员在这篇论文中调研了288款不同的逆向分析工具,对其进行了易用性分析。这个工作的第一步,自然是收集市面上常见的工具。这里要提一下一个叫做Two Six Labs的研究机构,这个机构的总部在Arlington(嗯,就是那个Central Intelligence Agency所在的Arlington),这个Lab给Defense Technical Information Center(DTIC)写了一份名为EDGE OF THE ART IN VULNERABILITY RESEARCH的技术报告(好像还是每两年更新一次),大家有兴趣可以去搜索一下这个报告,里面就提到了各种逆向分析工具(包括相关插件)的调研情况。

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

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

本文的作者参考了Two Six Labs的报告,也搜集了其它一些工具,最后一共找到了462个相关工具(这里作者把相关工具的插件——比如一个IDA的插件——也算成了一个独立工具),最后评估了其中的288款。作者特别强调了针对不同架构的逆向工具的收集——他们总共收集了支持65个不同架构的逆向分析工具/插件。

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

完成工具收集后,作者参考了他们此前发表在 USENIX Security 2020的研究论文 (https://www.usenix.org/conference/usenixsecurity20/presentation/votipka-observational) 并实现了如下图的调研流程。
G.O.S.S.I.P 阅读推荐 2022-12-12

在这个流程中,可能比较让人困惑的动作是这个“coding”,小编去搜索了一下,发现这大概是数据分析里面的一个专业术语——“Coding is the process of labeling and organizing your qualitative data to identify different themes and the relationships between them” (https://getthematic.com/insights/coding-qualitative-data/),不过这个理解究竟对不对,有待我们的热心读者来评论。

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

在coding过程中,作者制定了上表所示的codebooks,并制定了如下的5条usability guideline,这部分我们可能不太容易理解,那权且让我们跳到结论部分吧。

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

作者经过定性和定量分析后,得出了许多结论,我们节选一些有趣的结论:

  1. 插件类工具大部分(68%,163/238)是用来生成被分析程序的概要描述(high-level overview);

  2. 独立工具往往(64%,32/50)用于执行更为聚焦的特定分析任务;

  3. 逆向分析工具的输入往往是整个文件(特别是对那些插件),而稍微细粒度的输入则是一段代码范围(例如对一个函数进行分析),而独立的分析工具在支持配置和不同的分析选项上要强过分析插件。

  4. 静态分析工具对动态分析状态的利用不够:只有2%(7/288)的被调查工具支持从其他动态分析工具导入一些重要的动态状态信息(dynamic state information),当然如果分析工具本身就是一个调试器或者动态插桩工具,这种导入也不是必要的。

作者关注了所有工具的输出,这也是使用者最关心的部分:

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

分析表明,大部分的分析工具都喜欢输出被分析程序的结构信息,同时能够提供程序不同部分之间的交叉引用信息,而动态分析工具在输出信息方面是占有优势的:在动态分析时,工具通常能更好地利用调试信息来完善程序分析的状态。

当然,作者也注意到,大部分分析工具的输出都是文本格式,这种对于人类来说比较友好的数据呈现方式可能不一定是对机器友好的(例如近几年比较火热的基于graph的分析);而仅有很少量的工具能输出可运行的分析结果。

最后,作者对当前逆向分析工具的发展趋势进行了讨论,提出了一些观点:

  1. 动态分析工具在可读性和用户交互方面做得不够好,在这方面静态分析工具要更胜一筹(嗯,IDA的分析交互性还是比各种调试器要好太多的);

  2. 静态分析工具在分析的配置和微调方面不太灵活(当然,静态分析本身就是一种估计,可能也难以处理所有的可能情况),相比较而言,动态分析则允许用户进行更多的参数调整(程序的输入调整这种本身就很方便~)

如果大家对这篇论文的细节感兴趣,可以去原文中挖掘更多的宝藏哦!


论文PDF:https://dl.acm.org/doi/abs/10.1145/3564625.3567993


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

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

发表评论

匿名网友 填写信息