Объект исследования
Выпуск основан на локальных снимках семи проектов: Abyss-main, Benthic-main, BlackIris-main, bootdoor-master, bootlicker-master, Insomnia-main и Antarctic-main. Дата фиксации редакционного исследования — 12 сентября 2026 года. Суффиксы main и master являются именами каталогов, а не доказанными Git commit IDs. Хеши отдельных цитируемых файлов позволяют точнее определить объект анализа.
Исследованы точки входа, основные переходы управления, обработчики и несколько критических контрактов памяти и состояния. Полного аудита каждой строки всех зависимостей не заявляется. Встроенные бинарные массивы, сторонние библиотеки и размеры изображений не используются как показатель глубины анализа.
Исследование статическое: образцы не запускались, не устанавливались и не компилировались. Поэтому утверждения о конкретных функциях и условиях кода отделены от динамических свойств: успешного обхода защиты, устойчивости после перезагрузки, незаметности для продукта или совместимости с аппаратурой.
Три типа утверждений
Наблюдение по исходнику — функция действительно вызывает другую функцию, проверяет условие или изменяет конкретную структуру. Оно сопровождается карточкой файла с диапазоном строк и SHA-256. Так можно проверить, что вывод относится к определённому снимку.
Заявление автора проекта — описание README, комментарий о назначении или обещание поддержки. Оно полезно для понимания замысла, но не заменяет достижимый путь исполнения. В досье такие заявления не превращаются в собственные результаты исследования.
Аналитический вывод — интерпретация механизма, защитная гипотеза или предложенная программа проверки. Для него объясняется логика, но не создаётся ложная видимость измеренного результата. Например, потенциальный внешний сетевой ориентир не объявляется готовой сигнатурой обнаружения.
Почему исходник сильнее названия, но слабее полного эксперимента
BlackIris содержит локальную функцию с именем Windows API, которая реализована через UEFI AllocatePages. Это показывает, почему чтение определения важнее узнавания символа. Benthic содержит HTTP-клиент, который сам по себе ещё не устанавливает полноценный C2. Antarctic содержит почти пустой Vmlinux.c, тогда как значимая логика находится в соседнем файле. E22 E17 E46 E45
Но исходник не сообщает автоматически, какой бинарный файл был собран, какие параметры заданы и какая ветвь исполнялась. Для динамической уверенности требуются связанные артефакты: хеш сборки, конфигурация, окружение, журнал и наблюдение результата. Если их нет, честный вывод остаётся ограниченным.
Шкала свидетельств
| Уровень | Содержание | Допустимая формулировка |
|---|---|---|
| A — текст | README или комментарий | «Автор заявляет» |
| B — реализация | Найдено тело функции | «В коде реализована попытка» |
| C — связность | Прослежен путь и условия | «Ветка достижима при указанных условиях кода» |
| D — исполнение | Наблюдение на фиксированном стенде | «Выполнено в данной конфигурации» |
| E — устойчивость результата | Повторения и независимое подтверждение | «Воспроизведено в обозначенном диапазоне условий» |
Материалы этого выпуска главным образом работают с B и C. Исторические исследования цитируются как результаты их авторов и не выдаются за собственные эксперименты. Буквы — редакционная шкала, а не отраслевой стандарт или оценка опасности.
Семь вопросов к любой цепочке
- Как получено первое исполнение и какие права уже предполагаются?
- Какой объект изменяется: файл, firmware, структура ядра, таблица служб или ответ API?
- В какой фазе это происходит и кто владеет памятью?
- Какая граница доверия пересекается?
- Какой следующий вызов подтверждает продолжение цепочки?
- Что обеспечивает повторную активацию после выключения?
- Какая независимая сторона способна подтвердить результат?
Вопросы полезны обеим сторонам. Red получает проверяемую гипотезу вместо неопределённой демонстрации. Blue получает место для датчика и понятную границу его достоверности. Отсутствующий ответ не нужно заполнять предположением о «типичном bootkit».
Red и Blue здесь — исследовательские позиции
Red-позиция формулирует, какое свойство и при каких исходных возможностях пытается нарушить механизм. Blue-позиция определяет, какие свидетельства могут подтвердить нарушение и какой контроль относится к нужной границе. Это не два списка модных инструментов и не оценка по числу функций.
Сокрытие, закрепление, исполнение и получение данных оцениваются отдельно. Rootkit может хорошо скрывать одно перечисление и оставлять очевидный внешний след. Bootkit может изменять память до старта ОС и не иметь доказанного пути первого запуска на защищённой машине. Сильная изоляция может защищать ключ, но не доступность сервиса.
Происхождение исходников и цитирование
Карточки показывают путь относительно корня корпуса, исходную нумерацию строк и хеш файла целиком. Короткие фрагменты служат иллюстрациями анализа; диапазон свидетельства может быть шире показанного фрагмента. Полные проекты и встроенные нагрузки на сайт не копируются.
Abyss, Benthic и Antarctic в локальных материалах связаны с Alejandro Vázquez и María San José / TheMalwareGuardian. bootdoor и bootlicker содержат заголовки GuidePoint Security. LICENSE BlackIris указывает AitorFirmware. Для Insomnia здесь не устанавливается авторство по одному имени каталога. Права на исходный код принадлежат соответствующим правообладателям; публикация анализа не меняет лицензии проектов.
Первичные внешние источники включают спецификации TCG и UEFI, документацию seL4, OP-TEE, Microsoft, Intel, AMD и Linux, а также оригинальные исследования. Дата доступа указана в реестре. Состояние продукта или proof status может измениться после этой даты, поэтому конфигурационные утверждения следует перепроверять для нового стенда.
Чего в выпуске намеренно нет
Нет сравнительных процентов обнаружения, рейтинга «невидимости» и утверждений о работоспособности на всех актуальных системах. Такие числа без одинакового стенда, датчиков и повторений были бы выдуманными. Вместо них приведены механизмы, условия и источники, на основании которых можно спроектировать содержательное исследование.
Нет также смешения BlackIris с BlackLotus, VMware-сценария с собственным гипервизором или runtime-резидентности с записью в SPI flash. Эти различия определяют реальную модель угроз и способы восстановления; свести их к одному эффектному ярлыку означало бы потерять главный результат анализа.
Источники и исходники
Ссылки E ведут к свидетельствам по локальному коду; S — к первичным внешним публикациям. Диапазон относится к оригинальному файлу. Статическое исследование, без запуска образцов.
E22 / BlackIris-main/src/Boot/MemTools.c
Строки 5–26 · Локальная функция с именем MmMapIoSpace использует AllocatePages; это не Windows DDI.
Локальный снимок · файл: 26 строк · ссылка на публичный commit не установлена.
SHA-256 1cb87560aac88e6e795ced89d04f2ad85d56398716a794b8363845417ed7b004
E17 / Benthic-main/BenthicRootkit/BenthicZone02_KernelModeDriver/Functions/Techniques/WinSockKernel.c
Строки 198–375 · Предзаданный HTTP-запрос и периодический поток; здесь нет разбора команд ответа.
Локальный снимок · файл: 533 строк · ссылка на публичный commit не установлена.
SHA-256 1771945bcbf3eba03427f1d3c1bb32bbf0adb8a3f7e9207dd6d5ebcb0e578531
E46 / Antarctic-main/AntarcticBootkitPkg/Modules/Module1_Boot/Hooks/Hooks03Linux03Vmlinux.c
Строки 1–44 · Файл содержит include и комментарии, но не реализации функций.
Локальный снимок · файл: 44 строк · ссылка на публичный commit не установлена.
SHA-256 ee297a450b1b5dff11653908b05b39380bf1019ba9cdec058d40a5158163cab5
Посмотреть фрагмент исходника · строки 34–40
34 #include <Modules/Module1_Boot/Hooks/Hooks03Linux03Vmlinux.h>
35
36
37
38 // START -> FUNCTIONS -------------------------------------------------------------------------------------------------------------------------
39 // START -> FUNCTIONS -------------------------------------------------------------------------------------------------------------------------
40 E45 / Antarctic-main/AntarcticBootkitPkg/Modules/Module1_Boot/Hooks/Hooks03Linux02Vmlinuz.c
Строки 181–362 · Анализ распакованного буфера, целевая правка проверки модулей, изменение строки версии.
Локальный снимок · файл: 367 строк · ссылка на публичный commit не установлена.
SHA-256 3ebaddd50373aa9577cb2b85998a92f02b20e3f0b6bf650551d6d99d87e709a7