安全的夏天——第六届软件安全暑期学校小记(4)

admin 2021年8月1日14:52:23评论11 views字数 2656阅读8分51秒阅读模式

暑期学校第四日:从未缺席我们暑期学校的世界の最強系统安全研究员之一的夏虞斌教授和首次加盟暑期学校讲师团的武汉大学赵磊教授倾情献上,工作十分硬核,让我们来看一下吧!!


上午的课程由上海交通大学的夏虞斌教授主讲,内容为《计算机系统隔离技术》。夏教授的主要研究方向为操作系统隔离,获教育部技术发明一等奖,上海市技术发明一等奖,在OSDI、EuroSys、USENIX ATC、FAST、ISCA、ASPLOS等国际会议发表/录用多篇论文,并担任包括OSDI等一系列国际会议的程序委员会委员。领导团队开发的安全操作系统T6获2015年第十四届“挑战杯”特等奖,实际部署设备数量过亿;基于RISC-V平台研发的安全操作系统“蓬莱”已开源。

安全的夏天——第六届软件安全暑期学校小记(4)

夏老师首先介绍了系统隔离的发展背景、目标、层次,及其他相关概念。第一个主题为“基于OS的隔离”。在分析了微内核的设计原则、发展历史、及优缺点后,介绍了外核架构(Exokernel)的相关内容。作为微内核的极致,它不提供硬件抽象,不管理资源,只保证应用间的隔离,从而可以实现最优性能。使用Intel PKU可实现对于隔离的优化。其思想为给每一个内存页赋予一个PKEY,使用PKRU寄存器控制读写权限。相比于传统的内存页权限修改函数,PKU完成工作所需时间更短。下一项工作从“Direct Domain Switch”和“Copying Message”角度,介绍了在新硬件下的优化IPC效率的方法,在Risc-V和ARM上模拟实现的测试结果显示出了较好的性能。

第二个主题为“基于虚拟化的隔离”。夏老师首先介绍了虚拟机监视器的两种类别及系统虚拟化的流程,同时介绍了Intel处理器中的VT-x虚拟化指令扩展。工作“SeCage”利用Intel EPT技术,实现了应用中的关键代码的隔离。工作“Txintro”使用虚拟化检测恶意应用。工作“CHAOS”实现了应用与不可信OS之间的隔离。工作“CloudVisor”、“Nexen”、“HyperCoffer”关注了VM与不可信VMM之间的隔离。第三个主题为“基于硬件TEE的隔离”,主要讨论了其在Intel SGX上的实现和优化。相关工作提出了“Mountable Merkle Tree”的方法以增加保密内存的大小,并提出了系列加速启动的方法。

在课程的最后,夏老师总结了软硬件协同的隔离模型的特点。强调了软硬协同已经成为趋势,它将极大增强操作系统隔离能力,赋能更多场景。

值得一提的是,正是受到了夏教授在过去的暑期学校中的课程的启发,我们受益匪浅,在后续的研究中喜提IEEE S&P顶会录用!蜚语安全专家持续输出高水平研究成果,所以大家还是要多多报名参加暑期学校的活动啊!!!

【今日份午餐——麦当当】

安全的夏天——第六届软件安全暑期学校小记(4)


下午的课程由武汉大学的赵磊老师主讲,主题为《二进制程序安全分析》。赵老师长期从事软件及系统安全方向研究,尤其是二进制程序的安全分析、软件漏洞的自动化挖掘、漏洞利用生成等关键技术及工具的研发,主要科研成果已先后发表在网络与系统安全领域四大顶级会议Usenix Security、CCS和NDSS,JSS, IJSEKE, COMPSAC等著名学术期刊和会议上。目前的主要研究兴趣包括二进制程序安全分析、漏洞挖掘与利用、AI安全等。

安全的夏天——第六届软件安全暑期学校小记(4)

赵老师首先介绍了他在二进制程序逆向分析和安全应用方面的两个工作。 第一个工作是《Reversing and identifying overwritten data structures for memory-corruption exploit diagnosis》。漏洞分析通常需要大量的人工操作,所以我们希望尽可能将其自动化。赵老师的工作提出了一个二进制级别利用诊断方法deExploit,设计使用细粒度的动态污染对如何动态处理漏洞利用进行建模的技术程序执行过程中,动态反转对应程序输入的数据结构然后识别覆盖通过检测动态数据结构之间的偏差漏洞利用的处理和良性输入的处理,来进行攻击检测,并有效识别通用攻击的关键步骤。第二个工作是《PatchScope: Memory Object Centric Patch Diffing》。Patch diffing一般指的是patch前后程序的二进制代码差异分析的技术。赵老师发现目前的patch diffing技术并不能够能够帮助安全研究人员理解patch的差异(粒度过细or过大),于是他对security patch过的程序进行大规模的研究,并对这些patch的模式进行了归类,并设计了一种基于动态分析的patch diffing技术PatchScope,其根据程序如何使用输入相关的一些数据结构来操作输入的数据来进行。不仅对复杂的patch具有鲁棒性,还可以提供丰富的语义信息,减轻安全研究人员进行逆向工程的负担。

赵老师在接下来的过程中,介绍了他们在模糊测试方面的工作《Probabilistic Path Prioritization for Hybrid Fuzzing》。混合模糊测试结合了模糊测试和符号执行,已成为软件漏洞检测的先进技术。基于对模糊和符号执行本质上是互补的观察,设计了一种新的基于Monte Carlo的概率路径优先级模型,用于量化每条路径的难度,并优先考虑它们的符号执行。该模型将模糊测试视为随机抽样过程。它根据采样信息计算每个路径的概率。最后,模型优先考虑并指定最困难的路径来符号执行。实现的原型系统DigFuzz实验结果表明,DigFuzz中的符号执行性能优于最先进的混合模糊测试系统。特别是,DigFuzz中的符号执行有助于发现更多的漏洞(12对5),并在CQE数据集上产生比在Driller中执行的更多代码覆盖(18.9%对3.8%)。

最后,赵老师分享了一个失败的经历–他曾经有过一个非常好的代码debloating的想法,但做实验效果一直不够理想,还找不到原因。直到18年USENIX Sec上录用的一篇论文(“Debloating Software Through Piece-Wise Compilation and Loading”)用了和赵老师一样方法,解决了一样的问题,且效果可观。赵老师仔细对比,才发现当年是因为一名学生用错了一个参数,修正后他们的效果也非常好,最后只能将工作发表在一个C会上了,可以说是十分可惜了!!!这也提醒大家,做实验时既要大胆假设,更要小心求证

(感谢Cwindy和Rigel的场记)


原文始发于微信公众号(安全研究GoSSIP):安全的夏天——第六届软件安全暑期学校小记(4)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年8月1日14:52:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安全的夏天——第六届软件安全暑期学校小记(4)http://cn-sec.com/archives/923641.html

发表评论

匿名网友 填写信息