如何使用SGXRay自动化检测SGX应用中的安全漏洞

VSole2022-08-18 16:55:29

 关于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”。

dockersdk
本作品采用《CC 协议》,转载必须注明作者和本文链接
Intel SGX采用基于应键的内存加密技术来保护独立应用程序逻辑和敏感数据。要使用这种基于硬件的安全机制,需要严格的内存使用编程模型,开发者需要应用谨慎的编程实践来确保程序的安全。
Solitude是一款功能强大的隐私安全分析工具,可以帮助广大研究人员根据自己的需要来进行隐私问题调查。无论是好奇的新手还是更高级的研究人员,Solitude可以帮助每一名用户分析和研究应用程序中的用户隐私安全问题。
NinjaDroid是一款针对Android APK包的逆向工程分析工具。NinjaDroid使用了AXMLParser以及一系列基于aapt、keytool和string等Python包实现其功能,并能够从给定的APK包中提取出一系列信息,其中包括:
随着远程工作和移动工作成为新冠疫情发生之后的新常态,移动性和敏捷性已经成为企业业务连续性的重要驱动因素。其结果是总体上缺乏对机密的控制和整合,导致安全行业称之为“机密蔓延”。机密蔓延不仅使凭证难以跟踪和管理,而且容易受到黑客攻击。事实上,根据Verizon公司日前发布的一份调查报告,被盗凭证占所有数据泄露的近一半。此外,身份验证的性质在不断变化。
最近在学习Android APP客户端漏洞挖掘过程中,对Android APP端漏洞挖掘做了一个基本的梳理总结本节主要是在介绍Android APP漏洞挖掘过程中,使用常见的Android漏洞挖掘工具的安装和使用办法,帮助Android漏洞挖掘人员提供便利。本文里面一部分的介绍采摘与网络博客,大家可以点击对应的网址进行查看。
在微服务架构中,业务逻辑被拆分成一系列小而松散耦合的分布式组件,共同构成了较大的应用。
七个杀手级Docker命令
2023-12-22 15:19:58
Docker是一个容器化平台,通过操作系统级别的虚拟化技术,实现软件的打包和容器化运行。借助Docker,开发人员能够将应用程序以容器的形式进行部署,但在此之前需要构建Docker镜像。只要熟悉相关Docker命令,开发人员就能轻松完成所有这些步骤,从而实现应用程序的容器化部署。本文将根据使用场景对 Docker 命令进行分类介绍。1 构建 Docker 镜像构建 Docker 镜像需要使用 Do
当网络流量监控发现某台运行多个docker容器的主机主动连接到一个疑似挖矿矿池的地址时,需要快速响应和排查,以阻止进一步的损害。
我们将深入分析排查过程,还原入侵的步骤和手段,帮助读者了解应对挖矿程序入侵的实际应急操作。通过进程PID和USER查看进程信息,通过进程链定位到进程所在容器的进程PID。通过进程PID查找对应容器名称,容器名:metabase。使用docker top 查看容器中的进程信息,找到到容器内异常进程。据此,可初步判断,java应用被入侵,导致容器被植入挖矿木马。
Docker 容器入侵排查
2023-06-15 10:00:29
容器的运行环境是相对独立而纯粹,当容器遭受攻击时,急需对可疑的容器进行入侵排查以确认是否已失陷,并进一步进行应急处理和溯源分析找到攻击来源。在应急场景下,使用docker命令可以最大程度利用docker自身的特性,快速的获取相关信息而无需进入容器内部,帮助我们进行溯源分析和解决问题。查看当前运行的容器,创建时间、运行状态、端口映射。[root@ecs-t /]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESb06352ff26cc sagikazarmark/dvwa "/run.sh" About an hour ago Up About an hour 3306/tcp, 0.0.0.0:81->80/tcp dvwa
VSole
网络安全专家