如何使用SGXRay自动化检测SGX应用中的安全漏洞
关于SGXRay
Intel SGX采用基于应键的内存加密技术来保护独立应用程序逻辑和敏感数据。要使用这种基于硬件的安全机制,需要严格的内存使用编程模型,开发者需要应用谨慎的编程实践来确保程序的安全。
SGXRay是一种基于SMACK验证器的自动推理工具,可以帮助广大研究人员自动检测SGX安全漏洞。目前,SGXRay基于两个SGX SDK实现其功能,即Intel SGX SDK和OpenInclave SDK,用户可以选择使用SDK代码来进行更加详细的安全分析。
工具使用
下图显示的是SGXRay的工作流程:
运行SGXRay需要两个步骤,第一步就是获取目标应用程序的LLVM IR文件,而第二部就是调用SGXRay的命令行接口来进行安全性验证。
针对第一步,我们为每一个SDK都提供了对应的Docker镜像:
docker pull baiduxlab/sgx-ray-frontend-intel
docker pull baiduxlab/sgx-ray-frontend-oe
(向右滑动,查看更多)
针对第二部,我们同样提供了一个Docker镜像:
docker pull baiduxlab/sgx-ray-distro:latest
(向右滑动,查看更多)
Docker构建
我们提供了一个Dockerfile,它可以帮助在验证过程构建镜像文件:
git clone https://github.com/baiduxlab/sgxray.git && cd sgxray
docker build . -t sgx-ray-distro-local --build-arg hostuid=$UID -f Dockerfiles/Dockerfile-CLI
(向右滑动,查看更多)
成功完成上述操作之后,我们将生成一个名为sgx-ray-distro-local的镜像文件,其中提供了一个跟主机账号相同用户ID的“user”用户可供我们使用。
安全验证
当前,验证步骤只能在我们所提供的Docker镜像中执行,我们建议大家使用下列命令在我们的设备上执行验证:
cd <project/enclave> # go to the enclave directory that contains the bc file generated in the last step
docker run --rm -it -v $(pwd):/sgx -w /sgx --user $UID baiduxlab/sgx-ray-distro
(向右滑动,查看更多)
在容器中,你将能够直接调用SGXRay的命令行接口“sgx-ray”。
项目地址
SGXRay:https://github.com/baiduxlab/sgxray
参考资料:
https://github.com/baiduxlab/sgxray/blob/main/docs/tutorial.md https://github.com/baiduxlab/sgxray/blob/main/docs/bc-production.md https://github.com/baiduxlab/sgxray/blob/main/docs/verification.md
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的