Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
sgx-step — Практический фреймворк для атак с точным контролем выполнения анклавов | Kitploit
Инструменты/GitHubGitHub/jovanbulck/sgx-step
ЭксплуатацияТестирование на ПроникновениеАппаратная БезопасностьАнализ Бинарных Файлов
GitHubjovanbulck/sgx-step

sgx-step

Практический фреймворк для атак с точным контролем выполнения анклавов

Репозиторий
477933021 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

A Practical Attack Framework for Precise Enclave Execution Control CI

logo

SGX-Step — это фреймворк с открытым исходным кодом, предназначенный для облегчения исследований атак по побочным каналам на процессоры Intel x86 в целом и на платформы Intel SGX в частности. SGX-Step состоит из враждебного драйвера ядра Linux и небольшой библиотеки операционной системы пользовательского пространства, которая позволяет настраивать ненадёжные записи таблицы страниц и/или прерывания таймера APIC x86 полностью из пользовательского пространства. SGX-Step использовался в наших собственных исследованиях, а также независимыми исследователями для реализации нескольких новых и улучшенных атак на выполнение в анклавах, которые собирают наблюдения побочных каналов с максимальным временным разрешением (т.е. прерывая анклав жертвы после каждой отдельной инструкции).

Лицензия. SGX-Step — это свободное программное обеспечение, распространяемое по лицензии GPLv3. Логотип SGX-Step взят из культовой серии фотографий общественного достояния Эдварда Мейбриджа «Салли Гарднер на галопе», которая, как и наша цель пошагового выполнения анклавов, разбивает динамику скачущей лошади на серию отдельных кадров, чтобы выявить общие свойства походки лошади.

Версия SGX-StepОсобенности изменений
v1.5.0Исправления стабильности (KPTI, отображение ISR ядра); (экспериментальный) порт Gramine; поддержка IPI.
v1.4.0Привилегированные шлюзы прерываний/вызовов (Plundervolt).
v1.3.0Поддержка транзиентного выполнения (Foreshadow).
v1.2.0Обработка прерываний в пользовательском пространстве и детерминированная фильтрация нулевого шага (Nemesis).
v1.1.0Поддержка IA32.
v1.0.0Манипуляция таблицами страниц в пользовательском пространстве и пошаговое выполнение с таймером APIC.

Публикации. SGX-Step использовался несколькими независимыми исследовательскими группами и позволил создать новое направление атак на SGX с высоким разрешением. Полный актуальный список известных проектов, использующих SGX-Step, приведён в нижней части этого README. Копия оригинальной статьи доступна здесь.``` @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, }

**Демо.** Каталог [app/memcmp](https://github.com/jovanbulck/sgx-step/blob/master/app/memcmp) содержит небольшое демонстрационное приложение, иллюстрирующее мощь атак SGX-Step путем пошагового выполнения образца анклава, содержащего тонкую, непостоянную во времени логику сравнения паролей `memcmp`. В отличие от традиционных, известных своей шумностью атак по времени, SGX-Step может детерминированно подобрать пароль посимвольно за _линейное_ время:

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

## Обзор

Ключевым аспектом дизайна SGX-Step, в отличие от предыдущих предложений по вытеснению анклавов, является создание отображений виртуальной памяти пользовательского пространства для физических ячеек памяти, содержащих записи таблиц страниц, а также для конфигурационных регистров локального APIC, отображенных в память ввода-вывода, и дескрипторной таблицы прерываний x86 (IDT). Это позволяет ненадежному, контролируемому атакующим хост-процессу легко (i) отслеживать или изменять записи таблиц страниц анклава, (ii) настраивать одноразовый/периодический источник прерываний таймера APIC, (iii) вызывать межпроцессорные прерывания и (iv) регистрировать пользовательские обработчики прерываний полностью _внутри_ пользовательского пространства.

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

Приведенный выше рисунок суммирует последовательность аппаратных и программных шагов при прерывании и возобновлении анклава SGX с помощью нашего фреймворка.

1. Прерывание локального таймера APIC поступает во время выполнения инструкции внутри анклава.
2. Процессор выполняет процедуру AEX, которая безопасно сохраняет контекст выполнения в кадре SSA анклава, инициализирует регистры ЦП и направляет к (пользовательскому) обработчику прерываний, зарегистрированному в IDT.
3. На этом этапе можно легко подключить любой специфический для атаки шпионский код.
4. Библиотека возвращается к трамплину AEP пользовательского пространства. Мы изменили ненадежную среду выполнения официального SDK SGX, чтобы обеспечить простую регистрацию пользовательского заглушки AEP. Кроме того, для точной оценки нашего подхода на контролируемых атакующим отладочных анклавах-бенчмарках SGX-Step может _опционально_ быть инструментирован для извлечения сохраненного указателя инструкции из кадра SSA прерванного анклава (с использованием интерфейса Linux `/proc/self/mem` и инструкции `EDBGRD`).
5. После этого мы настраиваем локальный таймер APIC для следующего прерывания, записывая в регистр начального счета, отображенный в память ввода-вывода, непосредственно перед выполнением (6) `ERESUME`.

## Обзор исходного кода

Этот репозиторий организован следующим образом:```
.
├── 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.

Особенности и применение фреймворка

SGX-Step — это универсальный фреймворк управления выполнением, который позволяет точно чередовать инструкции внутри vicitm enclave с произвольным кодом атакующего. Некоторые основные варианты использования фреймворка SGX-Step обобщены на рисунке ниже (см. также нижнюю часть этого README для актуального списка публикаций, использующих SGX-Step).

Обзор атак SGX-Step

Сборка и запуск

0. Требования к системе

SGX-Step требует совместимый с SGX процессор Intel и стандартное ядро Linux. Наша первоначальная оценка проводилась на процессорах i7-6500U/6700 с Ubuntu 18.04 и стандартным ядром Linux 4.15.0. Также поддерживаются более новые ядра и дистрибутивы Linux. Ниже приведены параметры ядра Linux, которые мы используем.

Скачать инструмент