Принципы машинного обучения были заложены около 50 лет назад, но только недавно их начали широко применять на практике. Благодаря растущим вычислительным мощностям компьютеры сначала научились достоверно различать объекты на изображении и играть в Го лучше человека, а потом — рисовать картины по описанию или поддерживать связный диалог в чате. В 2021–2022 годах научные прорывы стали еще и легко доступны. Любой желающий может подписаться на MidJourney и, например, мгновенно иллюстрировать книги собственного написания. А в OpenAI наконец открыли свою большую языковую модель GPT-3 (Generative Pretrained Transformer 3) для широкой публики через сервис ChatGPT. На сайте chat.openai.com пообщаться с ботом может любой желающий, так что убедитесь сами — бот уверенно поддерживает связный диалог, лучше многих учителей объясняет сложные научные концепции, может художественно переводить тексты между языками и многое, многое другое.
Если предельно упростить принципы работы ChatGPT, то его языковая модель обучена на гигантском объеме текстов из Интернета и «помнит», какие слова, предложения и абзацы часто соседствуют друг с другом, каковы взаимосвязи между ними. С помощью многочисленных технических трюков и дополнительных раундов обучения с живыми собеседниками модель оптимизирована именно под диалог. Благодаря тому что «в Интернете есть все», модель естественным образом способна поддерживать диалог на самые разные темы — от современной моды и истории искусства до квантовой физики и программирования.
Ученые, журналисты и просто энтузиасты продолжают находить новые применения ChatGPT. На сайте Awesome ChatGPT prompts можно найти подсказки (стартовые фразы, «промпты»), следуя которым, ChatGPT будет отвечать в стиле Гэндальфа или другого литературного персонажа, писать программный код на Python, генерировать деловые письма и резюме и даже притворяться терминалом Linux. При всем этом ChatGPT остается просто языковой моделью, поэтому все перечисленное — не более чем часто встречающиеся комбинации и связи слов, не пытайтесь найти в этом разум и логику. Порой ChatGPT убедительно излагает полную чушь, например ссылается на несуществующие научные исследования. Поэтому к контенту из ChatGPT нужно относиться осторожно. Тем не менее даже в нынешнем виде бот уже полезен во многих практических процессах и разных отраслях. Вот несколько примеров из области кибербезопасности.
Написание вредоносного кода
На подпольных хакерских форумах начинающие преступники отчитываются, как пытались написать новые трояны при помощи ChatGPT. Бот умеет писать код, и если четко описать нужные преступнику функции («сохранить все пароли в файл X и отослать по HTTP POST на сервер Y»), то можно без навыков программирования получить простейший инфостилер. Впрочем, добропорядочным пользователям нечего бояться. Если код, написанный ботом, начнут реально использовать, он будет обнаружен и нейтрализован защитными решениями так же быстро и эффективно, как и все предыдущие вредоносные программы, написанные живыми людьми. Более того, если такой код не будет проверен опытным программистом, то велика вероятность, что в коде будут малозаметные ошибки, дефекты логики, которые сделают вредонос менее эффективным.
В общем, пока боты могут конкурировать разве что с начинающими вирусописателями.
Разбор вредоносного кода
Когда ИБ-аналитики изучают новые подозрительные приложения, им приходится заниматься реверс-инжинирингом, то есть разбирать псевдокод или машинный код, пытаясь понять, как он работает. Полностью переложить это на ChatGPT не получится, но вот быстро объяснять, что делает конкретный фрагмент кода, чат-бот уже может. Наш коллега Иван Квятковский разработал плагин для IDA Pro, который делает именно это. Языковая модель «под капотом» — это не совсем ChatGPT, а его «двоюродный брат» davinci-003, но это чисто техническое различие. Иногда плагин не срабатывает или выводит чушь, но ради тех случаев, когда он автоматически дает функциям разумные имена и сам идентифицирует используемые в коде алгоритмы шифрования и их параметры, его стоит поставить на вооружение. Особенно он пригодится в условиях SOC, где вечно перегруженные аналитики должны тратить минимум времени на каждый инцидент, и ускорить анализ им будет очень полезно.
Поиск уязвимостей
Вариацией предыдущего подхода является автоматизированный поиск уязвимого кода. Чат-бот «читает» псевдокод декомпилированного приложения и обозначает там места, возможно, содержащие уязвимости. Более того, бот предлагает код на Python, предназначенный для эксплуатации уязвимости (PoC). Разумеется, бот может допустить ошибки всех родов как при поиске уязвимостей, так и при написании кода PoC, но даже в таком виде инструмент может быть полезен и атакующим, и защитникам.
Консультации по безопасности
Поскольку ChatGPT знает, что про кибербезопасность пишут в Интернете, его советы по этой теме выглядят убедительно. Но, как и с любыми советами от чат-бота, никогда не знаешь, из какого источника они почерпнуты, поэтому на десять совершенно легитимных советов может попасться один абсолютно бредовый. Впрочем, советы со скриншота ниже все достаточно разумны:
Фишинг и BEC
Убедительно выглядящие тексты — сильная сторона GPT-3 и ChatGPT, поэтому автоматизация целевых фишинговых атак с помощью чат-бота наверняка уже происходит. Главная проблема массовых фишинговых рассылок в том, что они неубедительны, в них слишком одинаковый и общий текст, который плохо учитывает личность адресата. А целевой фишинг, когда живой злоумышленник вручную пишет письмо единственной жертве, достаточно дорог, поэтому используется только в таргетированных атаках. ChatGPT сильно изменит баланс сил, потому что позволяет генерировать убедительные и персонализированные тексты писем в промышленном масштабе. Правда, чтобы письмо содержало все необходимые компоненты, нужно дать чат-боту очень детальное задание.
Но серьезные фишинговые атаки обычно состоят из серии писем, каждое из которых постепенно повышает доверие жертвы. И вот на втором, третьем и так далее письмах ChatGPT поможет злоумышленникам реально экономить время. Поскольку чат-бот помнит контекст беседы, то следующие длинные и красивые письма генерируются из очень короткой и простой подсказки.
Более того, чат-боту легко скормить ответ жертвы, чтобы за считаные секунды создать убедительное продолжение переписки.
В числе инструментов, которыми могут воспользоваться злоумышленники, есть и стилизация переписки. Чат-боту, получившему небольшой образец в нужном стиле, легко дать задание писать дальше именно в этом стиле. Таким образом можно убедительно подделывать, например, письма от имени одного сотрудника, адресуя их другому.
К сожалению, это означает, что масштаб эффективных фишинговых атак будет только расти. И чат-бот будет одинаково убедителен и в e-mail, и в соцсетях, и в мессенджерах.
Каковы меры противодействия? Эксперты по контент-анализу активно работают над инструментами, детектирующими тексты чат-бота. Насколько такие фильтры будут эффективны — покажет время. А пока можем порекомендовать лишь два стандартных совета (бдительность и тренинги по ИБ) — и один новый. Научитесь распознавать сгенерированные ботом тексты. Математические свойства на глаз не распознать, а вот мелкие стилистические особенности и легкие бессвязности пока еще выдают робота. Поиграть в интересную игру «робот или человек» можно, например, здесь.