自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(147)
  • 收藏
  • 关注

原创 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 4712 10

原创 EnclaveFuzz: Finding Vulnerabilities in SGX Applications

开源地址会在https://github.com/LeoneChen/EnclaveFuzz,等老师同意后会开源。今年在NDSS24上发表了论文EnclaveFuzz,请水友们多多关注。

2023-12-02 14:14:41 488

原创 SGXFuzz软件栈

SGXFuzz软件栈

2022-12-20 16:17:19 471 4

原创 OCaml实用工具

Ocaml入门

2022-09-25 00:17:51 966

原创 使用Intel Vtune分析SGX应用性能

使用Intel Vtune分析SGX应用性能

2022-06-24 11:41:11 296

原创 Gramine(原graphene-sgx)软件栈

Gramine(原graphene-sgx)软件栈

2022-06-05 19:02:30 1103 2

转载 使用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 201 3

原创 《vSGX: Virtualizing SGX Enclaves on AMD SEV(S&P‘22)》阅读笔记

自制Slide

2022-04-22 00:25:41 868

原创 《SmashEx: Smashing SGX Enclaves Using Exceptions(CCS 2021)》阅读笔记

《SmashEx: Smashing SGX Enclaves Using Exceptions(CCS 2021)》阅读笔记

2022-04-13 12:36:02 458

原创 【LLVM】Dynamic Alloca及Prologue/Epilogue Insertion & Frame Finalization Pass

【LLVM】Dynamic Alloca及Prologue/Epilogue Insertion & Frame Finalization Pass

2022-03-30 22:34:49 1367

原创 ASAN Pass源码分析(六)——全局变量插桩

插桩功能由ModuleAddressSanitizer::instrumentModule实现。这是个模块插桩,主要以全局变量插桩为主,也包括ASAN其它功能中所需的模块插桩功能。这里主要关注全局变量的处理。主要步骤包括:将原来的全局变量转变成一个结构体,内部包含了原来的全局变量和一个右Redzone,将原来被使用的全局变量替换(replaceAllUsesWith)成新的结构体内的全局变量,之后将所有的新全局变量结构体通过调用__asan_register_globals进行poison构建asa

2022-02-12 17:53:34 1065

原创 【SGX】Ocall Proxy处调用Ocall出现异常的解决办法

【SGX】Ocall Proxy处调用Ocall出现异常的解决办法

2021-12-18 17:13:46 276

原创 《AI Utopia or Dystopia (DAC‘20)》阅读笔记

《AI Utopia or Dystopia (DAC’20)》阅读笔记

2021-12-17 15:49:37 328

原创 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 1095

原创 SGX_SQLite【源码分析】

SGX_SQLite【源码分析】

2021-11-04 21:30:46 617 12

原创 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 688

原创 ASAN Runtime【源码分析】(一)——初始化

ASAN Runtime【源码分析】(一)——初始化

2021-10-08 00:07:05 2096

原创 《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 753 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 279

转载 copy_from_user分析

https://www.cnblogs.com/rongpmcu/p/7662749.html

2021-08-25 00:25:19 225

原创 《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 400

原创 LLVM Pass

LLVM Pass

2021-08-14 13:52:48 634

原创 ASAN Pass【源码分析】(五)——插桩

ASAN Pass【源码分析】(五)——插桩

2021-08-12 18:13:05 1634

原创 ASAN Pass【源码分析】(四)——运行

ASAN Pass【源码分析】(四)——运行

2021-08-08 14:41:43 466

原创 ASAN Pass【源码分析】(三)——初始化

ASAN Pass【源码分析】(三)——初始化

2021-08-06 23:56:08 1018

原创 SGXRay笔记

百度XLab的SGXRay在BlackHat2021上演讲了,目前还没有相关YouTube视频。相关链接如BlackHat官网链接、Github和“百度安全实验室”公众号SGXRay提到了针对Enclave内存建模,关注跨越Enclave边界的数据流,基于SMACK进行程序验证。应该可以将其归为静态方法,在此之前有COIN Attack和TeeRex两篇使用符号执行技术进行SGX漏洞自动化挖掘的工作,TeeRex关注了Enclave输入产生的危害。...

2021-08-06 00:48:51 260

原创 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 454 1

原创 ASAN Pass【源码分析】(二)——调试环境准备

ASAN Pass【源码分析】(二)——调试环境准备

2021-08-04 19:23:05 773

原创 ASAN Pass(一)——简单分析

ASAN Pass(一)——简单分析

2021-08-01 22:43:13 982

原创 《COIN Attack (ASPLOS‘20)》笔记

《COIN Attack (ASPLOS‘20)》笔记

2021-07-19 22:45:44 287

原创 COIN Attacks【源码分析】

COIN Attacks【源码分析】

2021-07-16 17:32:13 305

原创 《SoK: Sanitizing for Security (S&P‘19)》笔记

该文强调sanitizer(动态程序分析工具)的重要性。分类已有的sanitizer,分析其发现安全问题的方法,分析其如何权衡性能、兼容性和其它细节。总结sanitizer可行的部署方法和研究方向。​

2021-07-09 20:25:44 679 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 759

原创 《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 980

原创 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 228 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 1646 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 491

原创 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 1479

原创 《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 894 6

转载 Kernel 5.7开始不在导出kallsyms_lookup_name符号,Kernel 5.11开始包含SGX驱动

Kernel 5.7开始不在导出kallsyms_lookup_name符号,Kernel 5.11开始包含SGX驱动

2021-06-04 19:16:13 633

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除