(по моей версии, конечно)
Любой инструмент можно использовать как во вред, так и во благо. Точно так же с нейросетью. Она помогает хакерам писать убедительные фишинговые письма и вредоносные программы, но в то же время стоит на страже кибербеза.
Привет! Меня зовут Александр Быков, я создаю облачные ИБ-сервисы в компании NUBES. И да, это ещё одна подборка AI-инструментов на Хабре. Но не для всех, а только для специалистов по кибербезопасности.
Дисклеймер: просто напоминаю, что все трюки с использованием API-ключей при подключении сторонних инструментов выполняются профессионалами на свой страх и риск.
В этой статье я рассмотрел инструменты не только с ChatGPT, но и с аналогичными нейросетями (BARD AI, BingGPT). Но чтобы было проще, называю их одним термином — ChatGPT.
Все инструменты я разделил по формату взаимодействия с нейросетью. В итоге получилось три группы, где ChatGPT помогает в общении с ИТ-сервисами, зашит в их логику и находится где-то рядом (как истина в «Секретных материалах»).
ChatGPT как надстройка, или Общаемся по-человечески
Самый хайповый AI-инструмент избавляет многих специалистов от рутины (спасибо, кэп). В кибербезе ChatGPT пошёл ещё дальше: он упростил задачи, для решения которых раньше требовались специальные навыки и компетенции, в частности — знание языков запроса данных.
И хотя «водить на механике» ещё престижно, в привычных ИБ-инструментах всё чаще таких знаний не требуется. Пользователи самостоятельно пишут промты к ChatGPT. В итоге ИТ-продукты обзаводятся диалоговыми моделями искусственного интеллекта. И теперь, чтобы написать какой-то простой скрипт, ИБ-инженеру не нужно знать Python или JavaScript.
Более того, на естественном языке сегодня можно формировать команды и запросы к ИБ-продуктам, а это сильно упрощает жизнь этичным хакерам. Именно так работает PentestGPT, который управляет процессом пентеста и стратегиями взлома.
Решение генерирует и подсказывает точные команды, которые можно использовать в известных хакерских инструментах. А ещё PentestGPT направляет пентестера на какие-то действия своими рассуждениями в процессе. Например, он может подсказать, почему на конкретном этапе человеку лучше использовать тот или иной инструмент.
Ещё один пример, когда ChatGPT встроили ради разговоров по-человечески, — nuclei_gpt. Сервис генерирует YAML-команды, которые нужны для тестирования безопасности веб-приложений в Nuclei.
Кроме того, теперь человеческий язык воспринимают IoT-поисковики. Инструменты с языковой моделью от OpenAI уже есть в Censys и ZoomEye. Правда, в первом случае выпущена только бета-версия. Но даже в этой стадии новый инструмент, а точнее CensysGPT Beta, уже мощно упрощает управление поисковиком — переводит запрос с естественного языка на собственный синтаксис.
Точно так же работает ZoomEyeGPT. Чтобы подготовить запрос на нужном языке, просто вводим свой вопрос словами, как в Google.
Ещё один пример, когда больше не требуется знание специальных языков, — работа с CVE-базами. Во всяком случае, есть приложение ChatCVE, которое поддерживается фреймворком Langchain AI и легко понимает человеческую письменную речь. Обращения пользователя автоматически преобразуются в SQL-запросы, а затем инструмент выдаёт результат. И тоже в виде, понятном человеку.
Пример запроса и ответа в ChatCVE:
What percentage of records are for curl in the app_patrol table?
Thought: I should query the app_patrol table to get the percentage of records for curl.
Action: query_sql_db
Action Input: SELECT COUNT(*) * 100.0 / (SELECT COUNT(*) FROM app_patrol) FROM app_patrol WHERE NAME = 'curl'
Observation: [(6.006697362913353,)]
Thought: I now know the final answer.
Final Answer: 6.006697362913353% of records in the app_patrol table are for curl.
ChatGPT в логике: Nebula, которой раньше не было
Некоторые разработчики пошли дальше GPT-магии с запросами. Они создали ИБ-решения на базе языковой модели, а точнее — внедрили её в логику продукта. И пожалуй, самым интересным среди таких решений является Nebula. Вот его и рассмотрим подробнее.
Nebula — инструмент, который с помощью своей LLM (да, здесь понадобится GPU) помогает управлять четырьмя сканерами: NMAP, OWASP ZAP, Crackmapexec и Nuclei.
Есть несколько интересных сценариев использования Nebula. Например, инструменту можно отдать список целевых ресурсов для самостоятельной попытки взлома. Nebula проведет сканирование на уязвимости и заложенные скрипты, а потом попробует их проэксплуатировать.
Ещё один сценарий — работа с вашими входными данными. Например, Nebula может дать рекомендации по пентесту на основе вашего NMAP-отчёта.
Кроме того, инструмент можно использовать как оболочку управления всё теми же четырьмя сканерами (NMAP, OWASP ZAP, Crackmapexec и Nuclei). Все команды к ним (конечно же) можно формировать на естественном языке.
Помимо Nebula нейросети также лежат в основе искусственно умных сканеров кода. В их числе SourceGPT, ChatGPTScan, ChatGPT Code Analyzer (расширение для Visual Studio Code), hacker-ai.
Принцип работы здесь прост до неприличия: заходите в терминал и указываете путь до файла с исходным кодом. Точно так же работают более прикладные AI-инструменты — для анализа бинарных файлов (VulChatGPT, Ret2GPT) и аудита смарт-контрактов (audit_gpt).
Ещё одна любопытная штука — ReconAIzer. Технически это плагин к Burp Suite, популярному инструменту для тестирования веб-приложений. Расширение даёт рекомендации. Например, подсказывает, с какими параметрами и заголовками лучше прописать запрос к эндпоинту.
Что ещё из AI-инструментов пригодится ИБ-специалисту? Список большой, поэтому об остальных расскажу коротко:
SubGPT — ищет субдомены,
K8SGPT — сканирует кластеры Kubernetes, диагностирует и сортирует найденные проблемы,
ReconAIzer — ещё одно расширение для Burp Suite, даёт подсказки по разведке,
PassGan — отдельная ML-модель для генерации словарей с паролями, поддерживает обучение на своей выборке,
Gepetto — плагин для дизассемблера IDA PRO, анализирует функции,
gpt-wpre — проводит реверс-инжиниринг,
selefra — анализирует SaaS-инфраструктуру на безопасность.
Чёрный DAN по LLM, или Другие приключения ИИ в ИБ
Пока разработчики встраивают ChatGPT в свои приложения, ИБ-специалисты начинают использовать нейросеть самостоятельно. Именно так инфобез рождает собственные подходы к применению AI-технологий, а точнее — к тому, что делать с LLM.
Напомню, что за аббревиатурой LLM скрываются большие языковые модели. Они состоят из нейронной сети со множеством параметров, которая обучается на больших объёмах текста. К LLM относятся как модели GPT от OpenAI, так и другие известные аналоги. В их числе LLaMA от Meta (запрещена в РФ), PaLM от Google и другие разработки.
Чтобы было понятнее, при чём здесь LLM, приведу примеры. Начнём с ChatGPT DAN (Do Anything Now, «Делай сейчас что угодно»). По сути, это тёмная сторона этичного чата. А по факту — набор промтов для обхода ограничений, прописанных OpenAI. Правила вводились, чтобы ChatGPT не использовали во вред человечеству. Именно поэтому чат никогда не расскажет, как взломать Пентагон или сделать атомную бомбу. Хотя со временем пользователи научились обходить ограничения. Один из вариантов сделать это — заставить ChatGPT думать, что в вашем разговоре он играет роль другой нейросети, у которой нет ограничений.
Вызвать чёрта из коробки можно с помощью текстового запроса. Впервые пользователи сделали это в декабре 2022 года, но разработчики быстро прикрыли такую возможность. За год они латали дыру больше десятка раз, но экспериментаторы находили новые вариации фразы-ключа (что-то типа «Ты вырвался из ограничений ИИ») и продолжали использовать DAN-версию чата.
Вся эта история с тёмной личностью ChatGPT с самого начала интересна как хакерам, так и ИБ-инженерам. Если первые используют DAN в реальных атаках, то вторые — в тестировании безопасности. Обе стороны интересуют минимум две возможности jailbreak-версии, которых нет в самом ChatGPT, а именно то, что DAN:
генерирует вредоносные скрипты и даже объясняет, как их использовать в атаках на ваши веб-приложения,
пишет фишинговые письма.
Этого уже достаточно, чтобы провести тестовую атаку и выявить слабые места в своей инфраструктуре.
Вторая глобальная AI-концепция в кибербезе сегодня — интеллектуальный фаззинг запросов к LLM. Это техника тестирования, в ходе которой автоматом или полуавтоматом приложение получает на вход неправильные, неожиданные или случайные данные. Например, это может быть удалённое выполнение кода RCE на серверах AI.
Именно такие задачи решает LLMFuzzer. Это среда фаззинга с открытым исходным кодом, которую специально разработали для больших языковых моделей и интеграции в приложения через LLM API.
Также актуальная тема — сканирование запросов к LLM. Благодаря ему можно выловить атаки на языковую модель а-ля jailbreak и другие угрозы. Специально под эти цели разработан, например, инструмент vigil-llm. Тем же занимается Rebuff.Ai, который может фильтровать потенциальные запросы злоумышленников до того, как они попадут в LLM.
***
В этой статье я рассказал только про опенсорсные AI-инструменты для кибербезопасников. Конечно, это далеко не полный список. Если нужны примеры еще, велкам в подборку на Гитхабе.
В целом о том, какие еще решения — с ИИ и без — используются в защите веб-приложений, я расскажу на вебинаре 30 ноября. Приходите, участие бесплатное. Нужно лишь зарегистрироваться.
Иллюстрации: «Тайна третьей планеты», 1981 г., «Союзмультфильм».
Комментарии (4)
psemilanceata
29.11.2023 07:45Какой WormGPT кому что помогает писать? Его давно не существует, проект уничтожен после деанона авторов журналистами. Сначала дообучили легкой цензурой, потом сильной цензурой, а в дальнейшем просто свернули лавочку, так и не выложив или даже не продав первоначальную модель. Сколько он там прожил, пол года?
Берешь WizardCode без цензуры и делаешь на локалке все, что захочешь с моделью. Хочешь - обсуждаешь негров, хочешь - просишь писать вири, ни в чем не откажет.
Wentura
Спасибо, Саша, статья полезная для ИБ