Ring -4 à Ring 0 : plateforme de recherche firmware offensif-défensif. Nous créons les bootkits, puis nous les interceptons. Boucle fermée. Zéro confiance dans le silicium.
« Barzakh » (برزخ) — une barrière entre deux mondes ; la frontière invisible séparant le monde des vivants du monde des esprits. Ici, elle représente la barrière entre l'offensive et la défensive, entre la vulnérabilité et la détection.
La plateforme de recherche en sécurité du firmware UEFI open-source la plus complète
Émulation offensive du Ring 0 au Ring -4 | 132 moteurs de détection | Validation d'adversaires en boucle fermée
⚠️ PROJET DE RECHERCHE ACADÉMIQUE — SÉCURITÉ DÉFENSIVE UNIQUEMENT
Cette plateforme existe pour étudier les menaces liées au firmware et construire des défenses contre celles-ci. Elle contient des émulations offensives actives dotées de mécanismes d'arrêt d'urgence ancrés dans le matériel. En accédant à ce dépôt, vous acceptez de l'utiliser uniquement à des fins légitimes de recherche en sécurité et d'éducation.
Barzakh est une plateforme de recherche en sécurité du firmware full-stack qui modélise les TTP réels des bootkits à travers tous les anneaux de privilège — des pilotes UEFI DXE (Ring 0) en passant par le SMM, Intel ME, AMD PSP, les contrôleurs DMA de la plateforme (Ring -3), et les menaces microarchitecturales du CPU (Ring -4). Elle associe chaque technique offensive à un moteur de détection correspondant, créant un système en boucle fermée où chaque attaque est à la fois reproductible et détectable.
Capacités clés :
barzakh-server fournit un tableau de bord web et une API JSON (port 8420) avec analyses planifiées et tendances des scores de risquebarzakh-agent surveille les cibles de firmware, enregistre l'historique et transmet les résultats aux SIEM (Elastic ECS, ArcSight CEF, QRadar LEEF) ou à des webhooks| Menace | Technique | Couverture Barzakh |
|---|---|---|
| BlackLotus (CVE-2023-24932) | Contournement de Secure Boot via un shim vulnérable | Détecteur blacklotus + payload blacklotus_mok |
| LogoFAIL (CVE-2023-40238) | Débordement de l'analyseur d'images dans le firmware UEFI | Détecteur logofail + payload logofail_image |
| PixieFail (CVE-2023-45229+) | Débordements de tampon de la pile réseau dans EDK2 | Détecteur pixiefail + payload pixiefail_dhcp |
| CosmicStrand | Persistance DXE dans la flash SPI | Intégrité FV + région SPI + détecteur de persistance |
| LoJax | Premier implant SPI observé dans la nature | Détecteur ME/SPI + analyse du descripteur de flash |
| MoonBounce | DXE principal modifié dans la flash SPI | Hook des Boot Services + comparaison des volumes de firmware |
| MosaicRegressor | Framework de persistance UEFI | Multi-étapes : altération FV + injection PE + trampoline |
| Hacking Team (RCS) | Rootkit UEFI avec Option ROM | Détecteur d'Option ROM + analyse de l'expansion PCI |
| FinSpy | Modification du chargeur d'amorçage UEFI | Interception d'ExitBootServices + analyse mémoire |
| Bootkitty (2024) | Premier bootkit UEFI Linux, contournement de signature GRUB | Détecteur linux_bootchain + payload bootkitty_grub_patch |
| CVE-2024-7344 | Un reloader signé charge des payloads PE non signés | Détecteur reloader + payload secureboot_reloader |
| CVE-2023-1017/1018 | Débordement de tampon de l'implémentation de référence TPM 2.0 | Détecteur tpm_command + payload tpm_ref_overflow |
21 modules EDK II répartis sur 3 architectures (x86_64, AArch64, RISC-V) émulant toutes les techniques de persistance firmware connues :
| Module | Ring | Technique |
|---|---|---|
DxeInject | 0 | Injection de pilote en phase DXE — hooks LoadImage/StartImage + SetVariable, persistance FV, émulateur de flash SPI avec backends FVB2/Boot Guard, kill-switches |
ExitBootHook | 0 | Interception d'ExitBootServices + hooking MSR |
SpiChipsetEmulator | -1 | Simulation de l'interface SPI au niveau du chipset |
SmmPersistence | -1 | Installation de gestionnaire SMM et persistance SMRAM |
CapsuleHijack | -1 | Abus du mécanisme de mise à jour par capsule UEFI |
AcpiTableInject | -2 | Injection de table ACPI pour l'accès à la mémoire du noyau |
VirtualAddressMapHook | -2 | Hooking des EFI Runtime Services |
PciOptionRom | -2 | Implantation d'Option ROM PCI |
MeSpiManipulation | -3 | Manipulation de la région de flash SPI de l'Intel ME |
HeciIntercept | -3 | Interception du canal de communication hôte-ME |
MeDmaAttack | -3 | DMA initié par le ME vers la mémoire de l'hôte |
AmtSolChannel | -3 | Canal covert AMT Serial-over-LAN |
FtpmCommandForge | -3 | Falsification de commandes fTPM AMD via la boîte aux lettres PSP |
| Module | Technique |
|---|---|
Aarch64DxeInject | Injection DXE ARM64 avec payloads compatibles EL |
ExceptionVectorHook | Relocalisation de la table d'exceptions VBAR_EL1 |
El3SecureMonitor | Interception des appels du Secure Monitor EL3 |
TzascManipulation | Contournement du TrustZone Address Space Controller |
DeviceTreeInject | Modification du Device Tree Blob pour la persistance |
IbootTrustChain | Subversion de la chaîne de confiance iBoot d'Apple |
SepMailboxIntercept | Interception de la boîte aux lettres du SEP (Secure Enclave) d'Apple |
| Module | Technique |
|---|---|
RiscVDxeInject | Injection de firmware en mode M sur les plateformes RISC-V |