Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
sgx-step — Um framework de ataque prático para controle preciso de execução em enclave | Kitploit
Ferramentas/GitHubGitHub/jovanbulck/sgx-step
ExploraçãoTestes de PenetraçãoSegurança de HardwareAnálise de Binários
GitHubjovanbulck/sgx-step

sgx-step

Um framework de ataque prático para controle preciso de execução em enclave

Ver Repositório
4779330há 21 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Um Framework Prático de Ataque para Controle Preciso de Execução de Enclaves CI

logo

SGX-Step é um framework de código aberto para facilitar a pesquisa de ataques de canal lateral em processadores Intel x86 em geral e em plataformas Intel SGX em particular. SGX-Step consiste em um driver adversarial do kernel Linux e uma pequena biblioteca de sistema operacional em espaço de usuário que permite configurar entradas de tabela de páginas não confiáveis e/ou interrupções de temporizador APIC x86 completamente a partir do espaço de usuário. SGX-Step tem sido utilizado em nossa própria pesquisa, bem como por pesquisadores independentes, para possibilitar vários ataques de execução em enclave novos e melhorados que coletam observações de canal lateral com resolução temporal máxima (isto é, interrompendo o enclave vítima após cada instrução individual).

Licença. SGX-Step é um software livre, licenciado sob GPLv3. O logotipo do SGX-Step é derivado da icônica série de fotos domínio público "Sallie Gardner at a Gallop" de Eadweard Muybridge, que, assim como nosso objetivo de execução passo a passo em enclave, decompõe a dinâmica do cavalo galopando em uma série de quadros fotográficos individuais para revelar propriedades gerais da marcha do cavalo.

Lançamento do SGX-StepRecursos do changelog
v1.5.0Correções de estabilização (KPTI, mapeamento ISR do kernel); porta (experimental) Gramine; suporte a IPI.
v1.4.0Portas privilegiadas de interrupção/chamada (Plundervolt).
v1.3.0Suporte a execução transiente (Foreshadow).
v1.2.0Tratamento de interrupção em espaço de usuário e filtragem determinística de passo zero (Nemesis).
v1.1.0Suporte a IA32.
v1.0.0Manipulação de tabela de páginas em espaço de usuário e execução passo a passo com temporizador APIC.

Publicações. O SGX-Step tem sido empregado por vários grupos de pesquisa independentes e possibilitou uma nova linha de ataques SGX de alta resolução. Uma lista completa e atualizada de projetos conhecidos que usam SGX-Step está incluída no final deste README. Uma cópia do artigo original está disponível aqui.``` @inproceedings{vanbulck2017sgxstep, title = {{SGX-Step}: A Practical Attack Framework for Precise Enclave Execution Control}, author = {Van Bulck, Jo and Piessens, Frank and Strackx, Raoul}, booktitle = {2nd Workshop on System Software for Trusted Execution {(SysTEX)}}, publisher = {{ACM}}, pages = {4:1--4:6}, month = Oct, year = 2017, }

**Demonstração.** O diretório [app/memcmp](https://github.com/jovanbulck/sgx-step/blob/master/app/memcmp) contém uma pequena aplicação de demonstração que
ilustra o poder dos ataques SGX-Step ao executar passo a passo um enclave de exemplo
que contém lógica de comparação de senhas `memcmp` sutil e não constante em tempo.
Ao contrário dos tradicionais e notoriamente ruidosos ataques de temporização, o SGX-Step pode
realizar força bruta determinística da senha caractere por caractere em tempo _linear_:

![sgxstep-memcmp-demo](https://assets.kitploit.com/production/public/readmes/2927/0b35615006c06e0d0b3f3e04f9628ab3deb2402317eb48bd0fce72509bfa91d3.gif)

## Visão Geral

Crucial para o design do SGX-Step, ao contrário de propostas anteriores de preempção de enclave,
é a criação de mapeamentos de memória virtual em espaço de usuário para locais de memória física
que contêm entradas de tabela de páginas, bem como para os registros de configuração de I/O
mapeados em memória do APIC local e para a Tabela de Descritores de Interrupção (IDT) do x86.
Isso permite que um processo host não confiável e controlado por atacante possa facilmente
(i) rastrear ou modificar entradas de tabela de páginas do enclave, (ii) configurar a fonte de
interrupção temporizadora one-shot/periódica do APIC, (iii) disparar interrupções entre
processadores e (iv) registrar manipuladores de interrupção personalizados completamente _dentro_
do espaço de usuário.

![sgx-step-framework](https://assets.kitploit.com/production/public/readmes/2927/b46f57fa9f7b93fb9142a28857693034e7cece8f9f675d2e9abb433093bdefe8.png)

A figura acima resume a sequência de etapas de hardware e software ao
interromper e retomar um enclave SGX através do nosso framework.

1. A interrupção do temporizador do APIC local chega dentro de uma instrução enclavada.
2. O processador executa o procedimento AEX que armazena seguramente o contexto de execução
   no frame SSA do enclave, inicializa os registradores da CPU e redireciona para o
   manipulador de interrupção (em espaço de usuário) registrado na IDT.
3. Neste ponto, qualquer código espião específico de ataque pode ser facilmente inserido.
4. A biblioteca retorna ao trampolim AEP em espaço de usuário. Modificamos o runtime não
   confiável do SDK oficial do SGX para permitir o fácil registro de um stub AEP personalizado.
   Além disso, para permitir uma avaliação precisa da nossa abordagem em enclaves de depuração
   de benchmark controlados pelo atacante, o SGX-Step pode _opcionalmente_ ser instrumentado para
   recuperar o ponteiro de instrução armazenado do frame SSA do enclave interrompido
   (usando a interface `/proc/self/mem` do Linux e a instrução `EDBGRD`).
5. Em seguida, configuramos o temporizador do APIC local para a próxima interrupção
   escrevendo no registro de I/O mapeado em memória de contagem inicial, logo antes de
   executar (6) `ERESUME`.

## Visão geral do código-fonte

Este repositório está organizado da seguinte forma:```
.
├── app        -- Collection of sample client applications using SGX-Step to
│                 attack different victim enclave scenarios.
├── doc        -- Papers and reference material.
├── kernel     -- Minimal dynamically loadable Linux kernel driver to export
│                 physical memory to user space and bootstrap `libsgxstep`.
├── libsgxstep -- Small user-space operating system library that implements the
│                 actual SGX-Step functionality, including x86 page-table and
│                 APIC timer manipulations.
└── sdk        -- Bindings to use SGX-Step with different SGX SDKs and libOSs.

Funcionalidades e aplicações do framework

O SGX-Step é um framework universal de controle de execução que permite o intercalamento preciso de instruções de enclave da vítima com código arbitrário do atacante. Alguns dos principais casos de uso do framework SGX-Step estão resumidos na figura abaixo (veja também o final deste README para uma lista atualizada de publicações que utilizam o SGX-Step).

Visão geral dos ataques SGX-Step

Compilação e execução

0. Requisitos do sistema

Baixar ferramenta