Содержание статьи
- Атаки на разработчика: уязвимость в отладчике 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.
Атаки на разработчика: исследования техники 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 для пентеста и редтиминга, знают о его богатых возможностях, которые пригождаются при постэксплуатации.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее