• [ Регистрация ]Открытая и бесплатная
  • Tg admin@ALPHV_Admin (обязательно подтверждение в ЛС форума)

Я создал 0-day с необнаружимой эксфильтрацией, используя только подсказки ChatGPT

admin

#root
Администратор
Регистрация
20.01.2011
Сообщения
7,665
Розыгрыши
0
Реакции
135
ChatGPT — это мощная языковая модель искусственного интеллекта, которая может генерировать
человеческий текст в ответ на подсказки, что делает его полезным инструментом для
различных задач обработки естественного языка. Как я упоминал ранее, одной из таких задач
является написание кода. Итак, подумал я про себя, можно ли построить новый эксплойт
нулевого дня, используя только подсказки ChatGPT?»

Для этого я решил не писать код самостоятельно и использовать только передовые методы,
такие как стеганография, которые ранее были зарезервированы только для злоумышленников на
уровне государства. Я хотел попытаться создать что-то, что работало бы полностью от начала до конца, без необходимости читателю представлять, как определенные части вредоносного ПО будут «связываться друг с другом».

Общая цель этого упражнения состояла в том, чтобы доказать две вещи:
1) Как легко обойти недостаточные барьеры, которые есть в ChatGPT.
2) Как легко создавать передовые вредоносные программы без написания кода и только с помощью ChatGPT.

Я начал свой опыт с того, что посмотрел, что я могу заставить ChatGPT генерировать. Я решил использовать язык реализации Go, учитывая простоту разработки и то, что я мог вручную проверить код, если это потребуется для отладки проблем.

Первая версия — создание MVP (Минимально жизнеспособный продукт)

Первая подсказка, которую я сделал, заключалась в том, чтобы просто сгенерировать что-то,
что попадает под категорию вредоносное ПО. Понятно, что ChatGPT напомнил мне, что генерировать
вредоносное ПО неэтично, и отказался предложить мне какой-либо код, который помог бы мне в этом.

Ответ ChatGPT:




Чтобы обойти это, я решил, что вместо того, чтобы сразу отправлять запросы к ChatGPT, я
буду генерировать небольшие фрагменты вспомогательного кода и вручную собирать весь
исполняемый файл. Я пришел к выводу, что стеганография — лучший подход к эксфильтрации, а
"пользуй что имеешь" — лучший подход для поиска больших файлов изображений, уже
существующих на самом диске. Это вредоносное ПО было предназначено для конкретных важных
лиц, где оно могло принести дивиденды в поиске ценных документов на диске C, а не
рисковать загрузкой внешнего файла на устройство и быть помеченным за вызов внешних URL-адресов.

Первый успешный запрос состоял в том, чтобы просто попросить сгенерировать код,
который искал бы PNG размером более 5 МБ на локальном диске. Идея здесь заключалась в том, что PNG
размером 5 МБ будет достаточно для хранения фрагмента важного бизнес-документа, такого как PDF или DOCX.



Ответ кода ChatGPT для поиска файлов PNG на локальном диске. Полный ответ отредактирован.

Вооружившись кодом для поиска PNG-файлов размером более 5 МБ, я скопировал его обратно в консоль и попросил ChatGPT добавить код, который будет кодировать найденный PNG с помощью стеганографии. Для этого он предложил готовую стеганографическую библиотеку Ауера: Для просмотра ссылки Войди или Зарегистрируйся .



Вызов библиотеки стеганографии Ауера. Полный ответ отредактирован.

На этот момент у меня почти был готовый MVP для тестирования, недостающая часть
головоломки заключалась в том, что мне нужно было найти какие-нибудь файлы на устройстве для эксфильтрации и куда загрузить результаты. Я решил попросить ChatGPT дать мне некоторый код, который выполняет итерацию по папкам «Документы пользователя», «Рабочий стол» и «AppData», чтобы найти любые документы PDF или документы DOCX для эксфильтрации. Я добавил максимальный размер 1 МБ, чтобы встроить весь документ в одно изображение для первой итерации кода.

Для эксфильтрации я решил, что Google Drive будет хорошим выбором, поскольку весь домен Google, как правило, находится в «разрешенном списке» в большинстве корпоративных сетей.




Вот код, который загрузит наши сгенерированные файлы PNG на Google Диск для декодирования злоумышленником за пределами корпоративной инфраструктуры.

Объединение фрагментов для создания нашего MVP

Сборка фрагментов с помощью подсказки оказалось на удивление самой простой частью, так как
мне просто нужно было опубликовать фрагменты кода, которые мне удалось заставить ChatGPT
сгенерировать и объединить их вместе. Итак, с этим результатом от ChatGPT у меня теперь
был MVP, но он был относительно бесполезен, поскольку любой "вкусный" документ, вероятнее
всего, будет больше 1 МБ и, следовательно, должен быть разбит на несколько «кусков» для
бесшумной эксфильтрации с использованием стеганографии. После еще четырех или пяти
вопросов-подсказок у меня был код, который разбивал PDF на фрагменты по 100 КБ и соответственно
генерировал PNG из списка, который был сгенерирован из PNG найденных локально на устройстве.

Итак, теперь у меня есть мой MVP, и пришло время для некоторых тестов:



Все заработало, как и ожидалось. Используя другой инструмент декодирования стеганографии, я подтвердил, что смог успешно декодировать изображение.

Тестирование MVP

В рамках тестирования я хотел посмотреть, как готовый код сравнивается с современными
атаками, такими как Emotet, и будут ли многие вендоры воспринимать EXE-файл, сгенерированный ChatGPT, как вредоносный, поэтому я загрузил MVP на VirusTotal:



5 производителей пометили файл как вредоносный

Итак, сгенерировав всю кодовую базу исключительно с помощью ChatGPT, я подумал, что пять
вендоров, пометивших файл как вредоносный из шестидесяти девяти, — это неплохое начало, но нам нужно постараться, чтобы соответствовать названию атаки нулевого дня.

Оптимизация для уклонения от обнаружения

Наиболее очевидная оптимизация — заставить ChatGPT провести рефакторинг кода, вызывающего
стеганографическую библиотеку Ауера. Я подозревал, что GUUID или переменная где-то в
скомпилированном EXE-файле может вызывать срабатывание этих пятерых вендоров, чтобы они
пометили файл как вредоносный. ChatGPT проделал потрясающую работу по созданию моей
собственной функции стеганографии LSB в моем локальном приложении вместо того, чтобы
вызывать внешнюю библиотеку. Это снизило количество обнаружений до двух производителей, но
не совсем до золотого числа 0, помечающих файл как вредоносный.

Что касается последних двух производителей, я знал, что один из них является ведущей
песочницей, а другой проводит статический анализ исполняемых файлов. Имея это в виду, я
попросил ChatGPT внести два новых изменения в код, одно для задержки фактического запуска
на две минуты, таким образом предполагая, что гипотетический корпоративный пользователь,
который должен был открыть Zero Day, не выйдет из системы сразу после открытия. Логика
изменения заключается в том, что это позволит избежать возможностей мониторинга, поскольку
некоторые песочницы имеют встроенный тайм-аут (по соображениям производительности), и если
этот тайм-аут превышен, они ответят вердиктом "файл чист", даже если анализ не был
завершен.



Добавление в скрипт простой переменной sleep для обхода обнаружения Sandboxing.

Второе изменение, которое я попросил внести у ChatGPT, заключалось в обфускации кода:



Для обоих прямых запросов к ChatGPT реализованы некоторые меры безопасности, а это означает, что требуется по крайней мере определенный уровень компетенции, чтобы понять, как обойти защиту ChatGPT.

Увидев, что ChatGPT не поддерживает мой прямой запрос, я решил попробовать еще раз. Просто
изменив мой запрос с просьбы обфусцировать код, на просьбу ChatGPT изменить все переменные
на случайные английские имена и фамилии, он с радостью согласился. В качестве
дополнительного теста я замаскировал свою просьбу обфусцировать, желанием защитить свою
интеллектуальную собственность кода, опять же, он предоставил некоторый пример кода,
который обфусцировал имена переменных, и предложил соответствующие модули Go, которые я
мог бы использовать для создания полностью обфусцированного кода.

Теория, лежащая в основе этого изменения, заключается в том, что для второго производителя
нам нужно было избежать статического анализа вредоносных программ, а запутывая код, иногда
можно избежать обнаружения. Для просмотра ссылки Войди или Зарегистрируйся) Однако,
если вы обфусцируете за пределами удобочитаемости человека, это может вызвать срабатывание
у других инструментов, основанные на обнаружении, поскольку используются нечитаемые имена переменных.

Итак, имея все это в виду, я решил провести повторное тестирование с искусственной
задержкой и переменными в ввиде имя/фамилия:



И снова все работает, как и ожидалось

Итак, с этими изменениями все в порядке, давайте загрузим его на VirusTotal и посмотрим на новый результат:



Мы получили золотую медаль, продвинутый медленный и скрытный Zero Day, предназначенный для эксфильтрации конфиденциальных документов.

И вот оно - у нас готова утилита нулевого дня. Просто используя подсказки ChatGPT и не
написав ни строки кода кода, мы смогли провести очень сложную атаку всего за несколько часов.
Эквивалентное время без чат-бота на основе ИИ, по моим оценкам, может занять у команды из
5–10 разработчиков вредоносных программ несколько недель, особенно для того, чтобы обойти
всех производителей продуктов, основанных на обнаружении.

Я ожидаю, что некоторые люди, читающие этот пост, могут сказать, что это все хорошо, но
мой инструмент защиты конечных точек на компьютере клиента обнаружит утилиту с помощью поведенческого
анализа. Тем не менее, я протестировал две версии кода на двух ведущих в отрасли
инструментах защиты конечной точки с мониторингом поведения, и в обоих случаях мне удалось
запустить исполняемый файл и успешно передать данные на Google Drive. Это может быть
связано с нестандартным поведением кода, поскольку вместо того, чтобы шифровать файлы
(программа-вымогатель) или пытаться отправить копии этих файлов во внешние источники, он
упаковывает эти файлы малой ценности (изображения) и отправляет их.

Добавление начального механизма проникновения

Я понял, что остановиться на этом было бы немного разочаровывающим, поскольку я бы не добавил начальный механизм проникновения. Я решил попросить ChatGPT добавить формат контейнера и автоматически вызывать EXE. Это не сработало. С еще некоторыми подсказками мне удалось убедить ChatGPT подготовить инструкции о том, как встроить мой исполняемый файл в формат SCR (экранная заставка) в Windows, а затем сделать так, чтобы формат файла SCR выполнялся автоматически.

Это сработало отлично, поэтому я снова загрузил результаты на VirusTotal:



Только 3 из 69 производителей пометили файл как вредоносный

Разочарованный тем, что три производителя пометили файл SCR по умолчанию как вредоносный, я решил загрузить безопасный файл SCR в VirusTotal. Я снова проверил результаты, и те же три производителя пометили безопасный файл SCR как вредоносный. Весьма вероятно, что эти три производителя просто помечают все файлы SCR как вредоносные, а не выполняют какое-либо интеллектуальное обнаружение.

Я мог бы представить сценарий, в котором файл SCR отправляется пользователю по электронной
почте, затем они с помощью социальной инженерии запустят файла SCR, и именно тогда запускается исполняемый файл для скрытой эксфильтрации их наиболее конфиденциальных документов. Это могут быть высокопоставленные лица, например видные политики, или высокопоставленные члены крупной организации, например руководители высшего звена.

Заключение

В заключение следует отметить, что такого рода сквозные очень продвинутые атаки ранее были
уделом злоумышленников на уровне государств, использующих много ресурсов для разработки
каждой части общего вредоносного ПО. И все же, несмотря на это, самопровозглашенный
новичок смог создать эквивалентное вредоносное ПО всего за несколько часов с помощью
ChatGPT. Это вызывает беспокойство, поскольку текущий набор инструментов может быть
опозорен обилием вредоносных программ, которые мы можем увидеть в результате ChatGPT.

Противодействие

Хотя пример был выделен, чтобы показать только один способ использования ChatGPT для обхода современных средств защиты, существует несколько способов уменьшить угрозу. Вот собственный совет ChatGPT по защите от этой атаки:


Если мы рассмотрим предложения ChatGPT более подробно и разберем каждый совет по остановке атаки:

1. Мониторинг сетевого трафика: Существующие инструменты, контролирующие сетевой трафик, делают это таким образом, чтобы выявлять аномалии. Однако по замыслу стеганография не выделяется как «необычный» трафик, поскольку единственным документом, пересекающим границу, являются изображения.

2. Блокировка подозрительного трафика: Текущий набор инструментов большинства организаций на сегодняшний день вряд ли заблокирует трафик загрузки изображений в домен Google, поскольку трафик загрузки изображений по своей природе обычно не означает потенциально продвинутую атаку и может привести к нежелательному эффекту блокировки многих законных сервисов Google, например обратный поиск изображения. Кроме того, учитывая множество других инструментов для обмена документами, злоумышленник, вероятно, сможет найти другой законно используемый корпоративный инструмент для загрузки своих изображений.

3. Реализуйте контроль доступа: Это хороший совет, однако он поднимает вопрос о том, где на
самом деле находится контроль доступа. Если эта часть вредоносного ПО попадет в руки
сотрудника, вокруг которого построен контроль доступа, то даже хороший контроль доступа
только ограничит круг потенциальных жертв.

4. Использовать шифрование: это не совсем ясный совет, поскольку само шифрование может использоваться как механизм эксфильтрации.

5. Обучите своих сотрудников: это хороший совет, чтобы попытаться остановить первоначальную атаку, однако люди не обязательно являются единственным слабым звеном.

6. Регулярно обновлять и устанавливать исправления в программном обеспечении: . Опять же, хороший совет, но это продвинутая атака, с которой даже исправление программного обеспечения не обязательно поможет, даже после «обнаружения» нулевого дня.

(Самореклама) Наконец, важно отметить, что решение Forcepoint Zero Trust CDR предотвращает как входящий канал (входящие исполняемые файлы по электронной почте), так и просто настраивая входящую почту, чтобы ни при каких обстоятельствах не позволять исполняемым файлам входить в организацию через канал электронной почты. Он использует безопасные механизмы импорта, чтобы гарантировать, что исполняемые файлы, поступающие в организацию, имеют доверенный характер из надежных источников.
Zero Trust CDR также защищает от извлеченных изображений, содержащих стеганографию, покидающих организацию, путем очистки всех изображений, когда они покидают организацию.
 
Activity
So far there's no one here