
Ring -4에서 Ring 0까지: 공격-방어 펌웨어 연구 플랫폼. 우리는 부트킷을 만들고, 그 다음 그것을 잡아냅니다. 폐쇄 루프. 실리콘에 대한 제로 트러스트.
"Barzakh"(برزخ) — 두 영역 사이의 장벽; 산 자의 세계와 영혼의 세계를 가르는 보이지 않는 경계. 여기서는 공격과 방어, 취약성과 탐지 사이의 장벽을 의미한다.
가장 포괄적인 오픈소스 UEFI 펌웨어 보안 연구 플랫폼
Ring 0에서 Ring -4까지의 공격 에뮬레이션 | 132개의 탐지 엔진 | 폐쇄 루프 적대자 검증
⚠️ 학술 연구 프로젝트 — 방어적 보안 전용
이 플랫폼은 펌웨어 위협을 연구하고 이에 대한 방어를 구축하기 위해 존재한다. 하드웨어 기반 킬 스위치가 있는 실제 공격 에뮬레이션을 포함한다. 이 저장소에 접근함으로써, 귀하는 이를 오직 합법적인 보안 연구 및 교육 목적으로만 사용하는 데 동의한다.
Barzakh는 모든 권한 링에 걸쳐 실제 부트킷 TTP를 모델링하는 풀스택 펌웨어 보안 연구 플랫폼이다 — UEFI DXE 드라이버(Ring 0)부터 SMM, Intel ME, AMD PSP, 플랫폼 DMA 컨트롤러(Ring -3), 그리고 CPU 마이크로아키텍처 위협(Ring -4)까지 아우른다. 각 공격 기법을 대응하는 탐지 엔진과 짝지어, 모든 공격이 재현 가능하면서 동시에 탐지 가능한 폐쇄 루프 시스템을 만든다.
주요 기능:
barzakh-server가 웹 대시보드와 JSON API(포트 8420)를 제공하며 예약 스캔과 위험 점수 추세 지원barzakh-agent가 펌웨어 대상 감시, 이력 기록, 발견 사항을 SIEM(Elastic ECS, ArcSight CEF, QRadar LEEF) 또는 웹훅으로 전달| 위협 | 기법 | Barzakh 커버리지 |
|---|---|---|
| BlackLotus (CVE-2023-24932) | 취약한 shim을 통한 Secure Boot 우회 | blacklotus 탐지기 + blacklotus_mok 페이로드 |
| LogoFAIL (CVE-2023-40238) | UEFI 펌웨어의 이미지 파서 오버플로 | logofail 탐지기 + logofail_image 페이로드 |
| PixieFail (CVE-2023-45229+) | EDK2의 네트워크 스택 버퍼 오버플로 | pixiefail 탐지기 + pixiefail_dhcp 페이로드 |
| CosmicStrand | SPI 플래시 DXE 지속성 | FV 무결성 + SPI 영역 + 지속성 탐지기 |
| LoJax | 최초의 실제 공격에서 발견된 SPI 임플란트 | ME/SPI 탐지기 + 플래시 디스크립터 분석 |
| MoonBounce | SPI 플래시 내 수정된 코어 DXE | Boot Services 후킹 + 펌웨어 볼륨 비교 |
| MosaicRegressor | UEFI 지속성 프레임워크 | 다단계: FV 변조 + PE 주입 + 트램폴린 |
| Hacking Team (RCS) | Option ROM을 사용한 UEFI 루트킷 | Option ROM 탐지기 + PCI 확장 분석 |
| FinSpy | UEFI 부트로더 수정 | ExitBootServices 가로채기 + 메모리 스캐닝 |
| Bootkitty (2024) | 최초의 Linux UEFI 부트킷, GRUB 서명 우회 | linux_bootchain 탐지기 + bootkitty_grub_patch 페이로드 |
| CVE-2024-7344 | 서명된 리로더가 서명되지 않은 PE 페이로드를 로드 | reloader 탐지기 + secureboot_reloader 페이로드 |
| CVE-2023-1017/1018 | TPM 2.0 참조 구현 버퍼 오버플로 | tpm_command 탐지기 + tpm_ref_overflow 페이로드 |
3개 아키텍처(x86_64, AArch64, RISC-V)에 걸쳐 알려진 모든 펌웨어 지속성 기법을 에뮬레이션하는 21개의 EDK II 모듈:
| 모듈 | 링 | 기법 |
|---|---|---|
DxeInject | 0 | DXE 단계 드라이버 주입 — LoadImage/StartImage + SetVariable 후킹, FV 지속성, FVB2/Boot Guard 백엔드를 갖춘 SPI 플래시 에뮬레이터, 킬 스위치 |
ExitBootHook | 0 | ExitBootServices 가로채기 + MSR 후킹 |
SpiChipsetEmulator | -1 | 칩셋 수준 SPI 인터페이스 시뮬레이션 |
SmmPersistence | -1 | SMM 핸들러 설치 및 SMRAM 지속성 |
CapsuleHijack | -1 | UEFI 캡슐 업데이트 메커니즘 악용 |
AcpiTableInject | -2 | 커널 메모리 접근을 위한 ACPI 테이블 주입 |
VirtualAddressMapHook | -2 | EFI 런타임 서비스 후킹 |
PciOptionRom | -2 | PCI Option ROM 임플란트 |
MeSpiManipulation | -3 | Intel ME SPI 플래시 영역 조작 |
HeciIntercept | -3 | 호스트-ME 통신 채널 가로채기 |
MeDmaAttack | -3 | ME가 시작하는 호스트 메모리로의 DMA |
AmtSolChannel | -3 | AMT Serial-over-LAN 은닉 채널 |
FtpmCommandForge | -3 | PSP 메일박스를 통한 AMD fTPM 명령 위조 |
| 모듈 | 기법 |
|---|---|
Aarch64DxeInject | EL을 인식하는 페이로드를 사용한 ARM64 DXE 주입 |
ExceptionVectorHook | VBAR_EL1 예외 테이블 재배치 |
El3SecureMonitor | EL3 Secure Monitor 호출 가로채기 |
TzascManipulation | TrustZone Address Space Controller 우회 |
DeviceTreeInject | 지속성을 위한 Device Tree Blob 수정 |
IbootTrustChain | Apple iBoot 신뢰 체인 전복 |
SepMailboxIntercept | Apple SEP(Secure Enclave) 메일박스 가로채기 |
| 모듈 | 기법 |
|---|---|
RiscVDxeInject | RISC-V 플랫폼에서의 M-mode 펌웨어 주입 |
모든 공격 모듈은 SIMULATION_MODE = TRUE로 제공됩니다 — 실제 하드웨어 작업을 실행하지 않고 동작을 모델링합니다. 실제 하드웨어 테스트로 가는 통제된 경로는 docs/LAB_TESTING.md를 참조하세요.
공격 표면별로 정리된 132개의 특화 탐지기와 TOML 규칙, IOC 피드, YARA 서브셋 규칙, ML 모델을 통한 런타임 확장형 탐지 기능: