Содержание статьи
- Атаки на разработчика: уязвимость в отладчике WinDbg
- Атаки на разработчика: исследования техники Repo Jacking
- Метод поиска n-day-уязвимостей в бинарном коде
- Атака на атакующего: RCE в популярном фреймворке Empire
- Топ-10 техник атак на веб-приложения в 2023 году
- Опубликован NIST Cybersecurity Framework v.2
- Поиск секретов в видеоконтенте
- Morris II — первый вирус, атакующий генеративный ИИ
Об авторе
Денис Макрушин — выпускник факультета информационной безопасности НИЯУ МИФИ и там же продолжает делиться опытом со студентами своей альма‑матер. Также Денис выступает научным руководителем для студентов разных ведущих кафедр и факультетов страны в области информационной безопасности и защиты информации.
Атаки на разработчика: уязвимость в отладчике WinDbg
Начну с исследования, которое провела наша команда Advanced Research Team. Мы обнаружили интересную особенность в WinDbg, штатном средстве отладки Windows. Эта особенность дает возможность запускать произвольный вредоносный код на хосте разработчика и подменять библиотеки.
Не самый известный факт, но формат отладочных символов PDB позволяет разработчикам снабжать исполняемые файлы не только кодовыми символами и структурами, но и информацией о местонахождении соответствующего исходного кода. Механизм носит название SrcSrv, и из‑за некорректной обработки его настроек атакующий может переопределить путь к расширениям WinDbg и проводить атаку DLL Hijacking для подключения произвольных DLL, в том числе DLL, расположенных на удаленном SMB-сервере.
Поверхность атаки:
- Атака может затронуть окружение разработчика или аналитика, который работает над приложением для Windows.
- Штатный отладчик не обновляется автоматически, поэтому потребуется ручное обновление — это усложняет процесс исправления.
- Возможные последствия: утечка интеллектуальной собственности или компрометация исходного кода разрабатываемого ПО.
В Microsoft подтвердили наличие уязвимости и подготовили исправление в версии WinDbg 10.0.22621.0 и выше, а также в Windows SDK 11.
Отчет доступен на английском языке. Также мы разработали утилиту, которая проверяет файлы дампов и ищет в них ссылки на файлы PDB.
Атаки на разработчика: исследования техники Repo Jacking
Repository hijacking (или Repo Jacking) — атака на репозиторий, которая позволяет получить полный контроль над исходными кодами. В результате атакующий может выполнить произвольный код в том контексте, где подключается атакованный репозиторий.
Если разработчик в своем коде напрямую подключает сторонний код из чужого репозитория и если автор этого репозитория удалил, перенес или продал свой аккаунт, то любой может повторно зарегистрировать этот аккаунт и поместить в нем вредоносный код. Тогда все приложения, которые подключают код из этого репозитория, окажутся вредоносными.
Легкая победа для того, кто стремится к массовому заражению зависимостей. Именно поэтому исследователи нашей команды ART сделали следующее:
- Извлекли все ссылки на GitHub из кода зависимостей в двух наиболее популярных пакетных менеджерах для Python и JavaScript: PyPI и NPM.
- Убрали дубликаты и просканировали все ссылки на наличие репозитория. Все ссылки, вернувшие ответ 404, пометили как
corrupted_links
. - Все
corrupted_links
проверили на возможность провести атаку account takeover (захват аккаунта).
В результате получили статистику по репозиториям GitHub, которые злоумышленник уже сейчас может захватить и использовать для распространения вредоносного кода в цепочке поставок. И опубликовали результаты исследования, вместе с методикой и инструментами.
Метод поиска n-day-уязвимостей в бинарном коде
Я люблю и иногда практикую фаззинг для поиска дефектов в ПО. Если сегодня взять какой‑нибудь непопулярный таргет, подготовить стенд и запустить тесты, то к концу недели можно будет найти пачку интересных уязвимостей.
В дополнение к уже известным техникам добавилось свежее исследование, которое нужно будет обязательно воспроизвести: «BinGo: Identifying Security Patches in Binary Code with Graph Representation Learning».
Это крайне занимательный метод поиска security-патчей в бинарном коде приложений. Актуален он для тех случаев, когда владелец приложения скрыто исправляет какие‑нибудь уязвимости в своем коде без регистрации CVE или без упоминания в ченжлоге. Метод BinGo позволяет выявлять n-day-уязвимости.
Техника основана на представлении бинарного файла в виде Code Property Graph — промежуточном представлении кода, изначально разработанном для анализа его безопасности. CPG включает в себя абстрактное синтаксическое дерево, граф потока управления и зависимости данных.
Особенность этого метода заключается в новой модели обнаружения связанных с безопасностью исправлений, которая сравнивает бинарные файлы до и после изменений. И использует для этого сиамскую нейросеть, которая позволяет выявить сходство или различие между бинарями.
Уровень обнаружения security-патчей среди прочих модификаций бинарного кода — 80,77%. Отлично! Осталось подобрать интересные таргеты.
Идея: а что, если использовать этот метод для выявления умышленно оставленных закладок в бинарниках? Если мы выдвигаем гипотезу о том, что это возможно, то для ее проверки нам понадобится:
- Найти пример (семплы) модификаций кода, которые точно являются закладками.
- Сформировать CFG для подобранных семплов.
- Обучить сиамскую сеть для определения сходства заданного CFG с целевым CFG, полученным из семплов.
Возможно, ты читал мою статью «Как провести свое первое security-исследование». Мне кажется, проверка выдвинутой выше гипотезы будет отличной темой для такого исследования!
Атака на атакующего: RCE в популярном фреймворке Empire
Те, кто использовал опенсорсный инструмент Empire для пентеста и редтиминга, знают о его богатых возможностях, которые пригождаются при постэксплуатации.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»