- 博客(148)
- 收藏
- 关注
原创 【清华Vul337】招**隐私计算**方向实习生啦~
Vul337由张超老师(清华大学网络研究院副院长)领导,已在顶会顶刊发表大量论文,同时承担了许多重要的课题项目,详情请参考链接。目前我们希望招收对隐私计算感兴趣的小伙伴们,具体情况可以邮件与我们沟通。
2024-09-03 13:33:46 511
原创 EnclaveFuzz: Finding Vulnerabilities in SGX Applications
开源地址会在https://github.com/LeoneChen/EnclaveFuzz,等老师同意后会开源。今年在NDSS24上发表了论文EnclaveFuzz,请水友们多多关注。
2023-12-02 14:14:41 536
转载 使用vDSO进入SGX Enclave
x86/vdso: Implement a vDSO for Intel SGX enclave calllinux-sgx v2.16(Commit)已开始使用vDSO函数。同时,调用sgx_urts_vdso_handler进行Enclave外部异常处理
2022-05-18 23:39:52 213 3
原创 《SmashEx: Smashing SGX Enclaves Using Exceptions(CCS 2021)》阅读笔记
《SmashEx: Smashing SGX Enclaves Using Exceptions(CCS 2021)》阅读笔记
2022-04-13 12:36:02 506
原创 【LLVM】Dynamic Alloca及Prologue/Epilogue Insertion & Frame Finalization Pass
【LLVM】Dynamic Alloca及Prologue/Epilogue Insertion & Frame Finalization Pass
2022-03-30 22:34:49 1456
原创 ASAN Pass源码分析(六)——全局变量插桩
插桩功能由ModuleAddressSanitizer::instrumentModule实现。这是个模块插桩,主要以全局变量插桩为主,也包括ASAN其它功能中所需的模块插桩功能。这里主要关注全局变量的处理。主要步骤包括:将原来的全局变量转变成一个结构体,内部包含了原来的全局变量和一个右Redzone,将原来被使用的全局变量替换(replaceAllUsesWith)成新的结构体内的全局变量,之后将所有的新全局变量结构体通过调用__asan_register_globals进行poison构建asa
2022-02-12 17:53:34 1144
原创 《AI Utopia or Dystopia (DAC‘20)》阅读笔记
《AI Utopia or Dystopia (DAC’20)》阅读笔记
2021-12-17 15:49:37 346
原创 SGX Enclave TLS (Thread Local Storage)
TLS支持情况Enclave目前部分支持Thread Local Storage,即支持__thread限定符,但不支持thread_lcoal限定符。__thread相比thread_lcoal,只支持将变量在TLS区域分配内存,不能进行初始化等操作。为什么不能支持thread_lcoal?Enclave TLS的配置编译时,TLS的变量的常量表达式结果(如果有,若没有,用0填充)按照指定的偏移存储到.tbss Section(在ELF文件的08 Segment中)。$ readelf encl
2021-12-03 23:29:23 1124
原创 SGX问答
前言有些问题比较常见,在这里直接将问答内容贴出来,方便大家搜索。有空再重新组织文字。(我会避免泄露私人信息)内存地址翻译全部交给os,那中间经过cache也是全部交给os是嘛?这个cache这部分,enclave中是怎么处理的呢?page walk依旧是os来做,但是SGX特有的EPCM会确保这个page walk的结果是正确未被篡改的。cache属于cpu内的微架构,cpu内的数据流都是明文的。将要流向epc的数据流在离开cpu时,进入总线前,被mee加密。当epc evict时,会由指令里的
2021-11-21 19:00:05 4943 13
原创 ASAN Runtime源码分析(二)——注册全局变量
__asan_register_globals也在asan.module_ctor中调用__asan_register_globals将栈帧中的返回地址依次存入trace_buffer,当前内容只有__sanitizer::StackTrace::GetCurrentPc()和__asan_register_globals()的返回地址。
2021-10-11 21:13:26 755
原创 《Graphene-SGX: A Practical Library OS for UnmodifiedApplications on SGX (ATC‘17)》笔记
2.2 SGX Software Design SpaceSGX应用及Graphene-SGX等Shielding Framework的开发过程中面临的一个问题是把多少功能给塞进Enclave中。两个重要的考量是:由于Enclave切换环境开销大,如何尽量减少进出Enclave?由于Enclave物理内存(EPC)有限,如何避免使用内存过大导致EPC出现Swap并影响性能的情况?Shielding complexity 应用放到Enclave中有时候必须要一些内核功能,对此需要开放接口使用不可信
2021-10-03 15:46:06 798 4
原创 Kernel Double-Fetch Bug检测论文
《Precise and Scalable Detection of Double-Fetch Bugs in OS Kernels (SP’18)》(YouTube,GitHub)(它给自己取了个名叫“Deadline”)总结了前人对Double Fetch的刻画,形式化地描述了Double-Fetch Bug。作者列表中有内核安全大佬Kangjie Lu和SGX大佬Taesoo Kim。前人在Double Fetch方面的工作包括:《Bochspwn: Identifying 0-days via
2021-08-25 21:46:19 309
原创 《SGXBOUNDS: Memory Safety for Shielded Execution(EuroSys‘17)》笔记
简介在检查Enclave的内存安全问题时基于Intel MPX的方案会额外造成100倍的虚拟内存开销,当原始工作集消耗内存60M时,Enclave会因为没有空闲虚拟内存而崩溃。基于ASAN的方案会额外造成3.1倍的性能开销和3.1倍的虚拟内存开销,当原始工作集消耗700-800M时,Enclave会因为没有空闲虚拟内存而崩溃。SGXBounds利用SGX Enclave内指针高32位空闲的特点,将Tag放置其中表示内存对象的Upper Bound值(内存对象后紧跟其Lower Bound值,万一M
2021-08-19 20:56:01 436
原创 SGXRay笔记
百度XLab的SGXRay在BlackHat2021上演讲了,目前还没有相关YouTube视频。相关链接如BlackHat官网链接、Github和“百度安全实验室”公众号SGXRay提到了针对Enclave内存建模,关注跨越Enclave边界的数据流,基于SMACK进行程序验证。应该可以将其归为静态方法,在此之前有COIN Attack和TeeRex两篇使用符号执行技术进行SGX漏洞自动化挖掘的工作,TeeRex关注了Enclave输入产生的危害。...
2021-08-06 00:48:51 285
原创 Win+Ubuntu20.04双系统安装
前言Ubuntu21.04有键盘输入延迟的问题,因此我还是换回20.04吧,顺带贴一下双系统怎么装,其实很简单,网上的教程太麻烦了。Windows安装很简单请看这里Ubuntu20.04安装很简单准备—BIOS查看BIOS里SATA模式,如果为Raid On,请改为AHCI,Ubuntu不支持物理Raid。准备—分区可以用Windows磁盘管理工具,也可以用其他分区工具或者Ubuntu(PE镜像)的分区工具磁盘Disk。可以压缩卷来获得空闲分区,也可以把某个硬盘删除卷获得空间分区。准备
2021-08-05 21:28:13 475 1
原创 《SoK: Sanitizing for Security (S&P‘19)》笔记
该文强调sanitizer(动态程序分析工具)的重要性。分类已有的sanitizer,分析其发现安全问题的方法,分析其如何权衡性能、兼容性和其它细节。总结sanitizer可行的部署方法和研究方向。
2021-07-09 20:25:44 758 3
原创 内存安全概念杂记
代码重用攻击(code-reuse attack)和data-only attack的区别代码重用攻击如Jump Oriented Programming(包括指令粒度的攻击、gadgets粒度的Return Oriented Programming和函数粒度的return-to-libc)破坏control data以劫持控制流。Data-only attack如Data Oriented Programming破坏non-control data以发动攻击。内存安全破坏是破坏control dat
2021-07-06 23:56:38 832
原创 《SoK: Eternal War in Memory (S&P‘13)》笔记
简介该文针对Memory Corruption进行了系统性的分析。主要贡献包括:针对Memory Corruption攻击构建了通用模型,基于此模型定义了多种可实施的安全策略。通过对比安全策略的设计和漏洞利用各阶段的特征,发现部分攻击向量未被现有防御机制保护。从性能、兼容性和鲁棒性评估及比较现有防御方案。讨论现有方案未被实际应用的原因(缺点),及一个新方案所需要满足的要求。Memory Corruption攻击模型图1前两步①使指针Invalid(Out-of-Bounds、Deallo
2021-07-02 17:40:47 1119
原创 0xbadc0de备忘录
0xbadc0de包含针对SGX软件栈的若干漏洞利用POC。SGX-LKLSignal HandlerSample OutSample output../../build/sgx-lkl-run sgxlkl-disk.img app/helloworldsgx.c: ubase = 0x7feed8000000, size = 5d7f -> end = 0x7feed8005d7eubase = 0x7feed8000000enclave: super secret string
2021-06-22 18:21:58 255 9
原创 Ubuntu20.04安装Qemu-SGX
基本参考Here.安装kvm-sgx安装kvm-sgx,也就是安装包含了支持SGX特性的KVM的内核。但内核编译过程中会遇到关于debian/canonical-certs.pem的错误,对此可以参考Here创建一对密钥,并将公钥注册到机器上。安装qemu-sgx安装qemu-sgx前,为了支持usb-redir,需要安装一些apt包sudo apt-get install libusb-dev libusbredirparser-dev和pip包sudo pip3 install meson n
2021-06-19 22:53:33 1706 5
原创 《A Tale of Two Worlds (CCS‘19)》笔记
介绍Jo Van Bulck针对接口消毒代码( Sanitization)从ABI、API层面寻找漏洞,即 Enclave Interface Sanitization Vulnerabilities。漏洞涉及Intel SGX-SDK(Edger8r)、Microsoft OpenEnclave(Deep Copy Marshalling)、Google Asylo和Rust Compiler等项目。DarkROP、Guard‘s Dilemma更关注在Enclave利用传统内存安全漏洞,而A Tal
2021-06-08 00:15:50 551
原创 OpenEnclave简单分析
简介OpenEnclave(缩写为OE)是微软开发的TEE软件栈,它支持Intel SGX和OP-TEE OS on ARM TrustZone,【OpenEnclave提供的SGX软件栈有别于Intel SGX软件栈(如linux-sgx),两者互为替代关系】。OpenEnclave支持C/C++运行时。OpenEnclave主要的一个用途是在微软Azure云上保护目标安全。架构OpenEnclave和linux-sgx在SGX软件栈方面架构上非常相近,但实现细节有些区别。OpenEnclave
2021-06-07 15:46:27 1577
原创 《TeeRex (Sec‘20)》笔记
Introduce《TeeRex: Discovery and Exploitation of Memory Corruption Vulnerabilities in SGX Enclaves》是Tobias Cloosters、Michael Rodler、Lucas Davi发表在USENIX Security 2020的论文。主要讨论了使用符号执行技术挖掘SGX软件层内存破坏(Memory Corruption)漏洞,这一类漏洞的特征包括跨越Host-to-Enclave Boundary(这是内
2021-06-06 18:03:05 966 6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人