G.O.S.S.I.P 阅读推荐 2023-01-30 Pitchfork

admin 2023年1月30日22:36:21评论14 views字数 1612阅读5分22秒阅读模式

告别了兔年的春节长假,也告别了令人提心吊胆的isolation和病毒大流行,我们在“节后余生”的第一篇推送中,就要带着轻松的心态去读一篇来自ACSAC 2022、关于权限隔离和访问控制的研究论文——Towards Practical Application-level Support for Privilege Separation

G.O.S.S.I.P 阅读推荐 2023-01-30 Pitchfork

近年来关于权限隔离(特别是针对进程内权限隔离)的研究工作非常多,在这篇研究工作中,作者主要针对传统的基于fork()调用后降低进程权限的隔离方法,提出了一种对应的、名为Pitchfork的隔离方法,这种方法和传统的基于fork()降权的隔离机制的对比和差异如下图所示。传统的隔离机制中,一个进程在执行完fork()后,会分裂为Trusted和Untrusted两个不同的进程分别运行,而在Pitchfork隔离方法中,则是变成了多个user-defined trust levels(就是图中右边T1-T5),而Pitchfork隔离方法把代码和数据在编译期进行了抽象,分隔为不同的compartments,每个compartment都给它单独设置不同的trust level来运行。

G.O.S.S.I.P 阅读推荐 2023-01-30 Pitchfork

由此可见,Pitchfork隔离方法需要源代码支持,并在编译期完成相关的分析,下图是Pitchfork隔离方法的工作流程。首先,原始的源代码需要被进行一定程度的人工标注(annotation),然后交给一套基于clang的分析系统来确定不同的compartment之间的通信和同步需求;接下来,作者引入了一套代码库——libcompart来进一步帮助开发人员实现代码的分割和调用管理;最后,Pitchfork隔离方法输出了一组分割变换后的源代码,供后续的安全使用。

G.O.S.S.I.P 阅读推荐 2023-01-30 Pitchfork

作者借用一个只有372行代码,却包含了高危的CVE (漏洞细节可以参考:https://holeybeep.ninja/) 的小程序——beep来给大家做例子,展示Pitchfork隔离方法的权限隔离流程:

G.O.S.S.I.P 阅读推荐 2023-01-30 Pitchfork

看起来,这种注释是不是还比较清晰?不过大家会觉得这个例子太简单了,Pitchfork隔离方法是否可以应用到更为复杂的代码上呢?作者还给了另一个例子——vitetris这个命令行版本的俄罗斯方块游戏,vitetris这个项目本身不光包含了很多源代码文件,还引用了ncurses库,作者指出,在Pitchfork隔离方法的应用下,最终能将整个程序分割为serve(负责对外通信)、recvp(负责接收指令并解析)、main(其他杂项)三部分,同时也把ncurses库单独隔离。

G.O.S.S.I.P 阅读推荐 2023-01-30 Pitchfork

要实现对这种较为复杂的codebase的处理,Pitchfork隔离方法在下图所示的流程中,特别需要引入libcompart库来处理第4步:

G.O.S.S.I.P 阅读推荐 2023-01-30 Pitchfork

作者在针对libcompart库这部分描述中比较抽象,很多具体的细节光是读论文看不太出来。如果有兴趣,读者可以去看看作者给出的源代码(见文末链接)。

G.O.S.S.I.P 阅读推荐 2023-01-30 Pitchfork

最后我们看看实验(主要关心一下防护性能,因为论文肯定不会说我们自己的防护有问题)。作者用了一些中等规模的程序做实验:

G.O.S.S.I.P 阅读推荐 2023-01-30 Pitchfork

G.O.S.S.I.P 阅读推荐 2023-01-30 Pitchfork

不过现在论文作者都喜欢花里胡哨的东西,针对性能开销的详细评估,找了半天,除了正文里面中的Table 2(仅仅只包含了2款程序的测试),剩下的部分要到附录(而且这篇论文的附录特别长,内容特别多)去找,并且下图看了半天我们编辑也没看懂。。。恳请论文风格能够直接朴实一点(不然以后都说你们是用ChatGPT写的!)

G.O.S.S.I.P 阅读推荐 2023-01-30 Pitchfork

当然作者也不忘指出使用了Pitchfork隔离方法之后能够帮助有漏洞的程序对抗攻击,嗯~

G.O.S.S.I.P 阅读推荐 2023-01-30 Pitchfork


代码:https://gitlab.com/pitchfork-project
论文:https://dl.acm.org/doi/10.1145/3564625.3564664


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

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

发表评论

匿名网友 填写信息