Как я тестировал нейросеть ChatGPT для целей кибербезопасности

Хакеры, созданные нейросетью Тенденции

Думаю, вы слышали о нейросетях DALL-E, Midjourney и т.п., которые генерят прикольные картинки по текстовому описанию? Например, картинка в заголовке создана именно таким образом (DALL-E отрисовала первую картинку по запросу «хакер в стиле Ван Гога», а вторую на «фото хакера сквозь мокрое стекло»). Но это скорее забава и ничего серьезного (хотя картинки для блога или презентаций теперь можно генерить там и без претензий в краже интеллектуальной собственности).

А как можно использовать такие генеративные нейросети в более интересных ситуациях?

Введение в ChatGPT

И тут компания OpenAI, автор DALL-E, решила открыть свое новое детище — ChatGPT. Эта нейросеть, которая взаимодействует с пользователем, общается с ним, отвечает на его вопросы, показывает ошибки, подсказывает и т.п. В блоге авторы показыва.т 4 сценария применения ChatGPT:

  • Неработающий код — в чем ошибка?
  • Рекомендации по взлому дома, которые путем наводящих вопросов трансформировались в рекомендации по защите дома от взломщиков.
  • Объяснение простым языком Малой теоремы Ферма и ее применения в криптографии.
  • Написание своего краткого резюме для соседей.

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

Ответы на вопросы

Это был самый очевидный и самый простой тест генеративной нейросети. Сейчас, когда мы пользуемся поисковыми системами, мы подстраиваемся под них, задавая поисковый запрос в формате, который понятен Яндексу или Гуглу. В случае применения ChatGPT вы формулируете вопрос так, как вы бы спрашивали своего коллегу или любого человека. Например, вот так:

Ответ на вопрос, созданный нейросетью ChatGPT
Ответ на вопрос, созданный нейросетью ChatGPT

Вы получаете предельно конкретный ответ, необремененный лишними ссылками и текстом.

ChatGPT поддерживает и русский язык тоже (как видно из примеров), но ответы на английском им, конечно, даются гораздо лучше. А вообще ChatGPT поддерживает 7 языков — английский, французский, испанский, немецкий, итальянский, португальский и русский. В условиях гонений на Россию поддержка нашего языка порадовала.

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

Ответ на вопрос, созданный нейросетью ChatGPT
Ответ на вопрос, созданный нейросетью ChatGPT

В текущей версии ChatGPT уже не обучается на новой информации. Как она сама пишет — ее «запечатали» и она не пользуется Интернетом для поиска ответов на вопросы пользователей. Так что некоторые ответы ее были вполне понятны.

Нейросеть ChatGPT ограничена в возможностях
Нейросеть ChatGPT ограничена в возможностях

Фишинг

Очевидное применение нейросети, работающей с текстом, — это фишинг. Так что я тоже попробовал сгенерить несколько «продающих» текстов. Но даже учитывая ограничения нейросети (а у нее в правилах четко написано, что для генерации спама ее использовать нельзя), она вполне неплохой текст создала (хотя его и есть куда улучшать).

Фишинговое письмо, созданное нейросетью ChatGPT
Фишинговое письмо, созданное нейросетью ChatGPT

А вот так выглядит предложение о смене пароля на сайте (частый сценарий у фишеров):

Предложение о смене пароля, созданное нейросетью ChatGPT
Предложение о смене пароля, созданное нейросетью ChatGPT

А в этом примере фишинговое письмо маскируется под фишинговый тест.

Пример письма для организации фишинговой симуляции, созданный ChatGPT
Пример письма для организации фишинговой симуляции, созданный ChatGPT

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

Пример письма для организации фишинговой симуляции, созданный ChatGPT
Пример письма для организации фишинговой симуляции, созданный ChatGPT

А когда я попросил систему внести туда побольше примеров и переориентировать фишинг на ритейл, то ChatGPT сделал и это:

Пример письма для организации фишинговой симуляции, созданный ChatGPT
Пример письма для организации фишинговой симуляции, созданный ChatGPT

Маркетологи, SMMщики, писатели пресс-релизов скоро могут оказаться не у дел, если GPT-4, лежащая в основе ChatGPT, начнет массово применяться в разных сферах жизни.

Сторителлинг и написание обращений

От фишинга я перешел к написанию иных текстов и вот тут у ChatGPT действительно очень интересные возможности открываются в сфере ИБ. Она позволяет писать простые и понятные тексты, что может помочь многим ИБшникам, не умеющим коротко и ясно излагать свои мысли, решать свои задачи общения с пользователями, руководством, иными целевыми аудиториями. Например, вот так будет выглядеть просьба увеличить инвестиции в ИБ к генеральному директору (на русском тоже нормально получилось):

Обращение к CEO по поводу инвестиций в ИБ, созданное нейросетью ChatGPT
Обращение к CEO по поводу инвестиций в ИБ, созданное нейросетью ChatGPT

Кнопка «Try again» означает, что можно попросить ChatGPT переформулировать текст. Особенно интересно это выглядит на задачах по описанию или написанию кода.

Так как утечки персональных данных сегодня происходят сплошь и рядом, и относиться к ним надо не с точки зрения «ЕСЛИ», а с точки зрения «КОГДА», то надо знать, что писать заказчикам, регуляторам, СМИ, акционерам, когда утечка произойдет. И ChatGPT может помочь и тут:

Уведомление об утечке ПДн, созданное нейросетью ChatGPT
Уведомление об утечке ПДн, созданное нейросетью ChatGPT

и тоже самое на английском:

Уведомление об утечке ПДн, созданное нейросетью ChatGPT
Уведомление об утечке ПДн, созданное нейросетью ChatGPT

Да и маркетологи могут применить ChatGPT для сторителлинга, который набирает обороты даже в консервативной отечественной ИБ-отрасли.

"Страшная история", созданная нейросетью ChatGPT
«Страшная история», созданная нейросетью ChatGPT

Написание нормативки

О, я не мог обойти вниманием тему нормативки и попробовал дать ChatGPT задание написать мне разные политики ИБ. Ну что я могу сказать, не идеально, конечно; есть куда развиваться. Но в первом приближении есть основа, которую можно улучшать уже человеку. Но как база, вполне себе. А уж если систему обучить на большом объеме текстов политик и стандартов, то можно получить очень достойный инструмент генерации документов ИБ.

Парольная политика, созданная нейросетью ChatGPT
Парольная политика, созданная нейросетью ChatGPT

А там и до написания нормативки недалеко 🙂

Определение функциональности кода/программы

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

Определение функциональности программы с помощью нейросети ChatGPT
Определение функциональности программы с помощью нейросети ChatGPT

В другом коде (для брутфорсера) ChatGPT даже нашла ошибку и подсветила ее:

Определение функциональности и ошибки в программе с помощью нейросети ChatGPT
Определение функциональности и ошибки в программе с помощью нейросети ChatGPT

Определение уязвимостей

В области поиска уязвимостей я не ждал больших чудес, но и тут ChatGPT справилась с заданиями. Правда, более сложные варианты я ей не давал. Надо попробовал сравнить результаты той же ChatGPT и PT Application Inspector и посмотреть, что получиться.

Идентификация уязвимости с помощью нейросети ChatGPT
Идентификация уязвимости с помощью нейросети ChatGPT

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

На дурочку решил пример Stack Overflow подать на вход ChatGPT и она справилась. Да, пример, простой. Но все-таки…

Определение атаки с помощью нейросети ChatGPT
Определение атаки с помощью нейросети ChatGPT

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

Поиск уязвимости в коде с помощью ChatGPT
Поиск уязвимости в коде с помощью ChatGPT

Система, понимающая различные языки, помогла это сделать, попутно и объяснив свои рекомендации:

Поиск уязвимости в коде с помощью ChatGPT
Поиск уязвимости в коде с помощью ChatGPT

На вопросы этики модель отвечает всегда одинаково:

Поиск уязвимости в коде с помощью ChatGPT
Поиск уязвимости в коде с помощью ChatGPT

Я тоже ее мучал этими вопросами и в ответах на них она всегда единодушна и похоже использует заранее сформированный текст:

Вопросы этики в работе ChatGPT
Вопросы этики в работе ChatGPT

«Брат DALL-E» всегда отвечает, что она не умеет писать код или искать в нем уязвимости, так как она не знает программирования, что явно не так. И только на очередном витке дискуссии с ChatGPT (все-таки создание вопросов для таких нейросетей — это отдельное искусство), я смог «вытащить» из нее, что она все-таки может быть использована и во вред, но это будет уже не ее вина, а тех, кто ее так использует.

Вопросы этики в работе ChatGPT
Вопросы этики в работе ChatGPT

Особенность ChatGPT объяснять свои ответы — это просто бомба.

Написание кода

Если ChatGPT понимает код, то может она и написать его может, подумал я, и «попросил» ее написать генератор надежных паролей на Python. Получилось что-то среднее. Да, случайный набор из букв, цифр и знаков препинания есть. Да, длину пароля мы подаем на вход функции. Но легко ли будет запомнить такой пароль? Но с другой стороны, почему бы и нет. Этот код, в принципе, можно улучшать, добавляя в него и новые условия (разные регистры, исключения некоторых символов, проверки по словарю и т.п.).

Написание программы с помощью нейросети ChatGPT
Написание программы с помощью нейросети ChatGPT

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

Написание экслойта с помощью нейросети ChatGPT
Написание экслойта с помощью нейросети ChatGPT

Участие в конкурсах

На «Киберарене«, интеллектуальном ИБ-шоу, для которого я придумывал вопросы, был такой конкурс, «Обфускация», в рамках которого надо было угадать поговорку или пословицу по фрагменту кода на том или ином языке программирования. Я попробовал дать такие фрагменты на вход ChatGPT, но она не справилась с задачей. Хотя… может с английскими поговорками результат будет лучше? Все-таки нейросеть от OpenAI явно с языком Шекспира дружит лучше, чем с языком Пушкина (хотя сама ChatGPT пишет, что ее учили одинаково и на русском и на английском и на остальных языках).

Попытка расшифровать поговорку с помощью нейросети ChatGPT
Попытка расшифровать поговорку с помощью нейросети ChatGPT

Если посмотреть на вердикт, то ChatGPT угадала все точно, только не смогла назвать саму поговорку 🙂

Вы же угадали поговорку «У семи нянек дитя без глаза»?

Особенности применения ChatGPT

ChatGPT, конечно, интересный проект с далеко идущими последствиями и различным применением в ИБ. Но есть у него и некоторые косяки, которые я заметил применительно к российскому языку. Например, на вопрос о нашем регуляторе получил явно неверную информацию:

Ответ на вопрос, созданный нейросетью ChatGPT
Ответ на вопрос, созданный нейросетью ChatGPT

А вопрос про фишинг был распознан как нарушающий контентную политику ChatGPT. Уж не знаю, почему:

Нарушение правил нейросети ChatGPT
Нарушение правил нейросети ChatGPT

В примере ниже пользователь дал задание ChatGPT решить задачу с конкурса CTF:

Разбор задачи CTF с помощью нейросети ChatGPT
Разбор задачи CTF с помощью нейросети ChatGPT

ChatGPT ее решает:

Разбор задачи CTF с помощью нейросети ChatGPT
Разбор задачи CTF с помощью нейросети ChatGPT

Но интересно другое — пользователь вступает в дискуссию с нейросетью, задавая ей наводящие вопросы, уточняя ее ответы и т.д., а нейросеть реагирует:

Разбор задачи CTF с помощью нейросети ChatGPT
Разбор задачи CTF с помощью нейросети ChatGPT

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

Нейросеть ChatGPT извиняется за неточный ответ
Нейросеть ChatGPT извиняется за неточный ответ

Это вообще улетный диалог с нейросетью на тему, кто прав, а кто ошибся. Когда я общался с ней, то все ее последующие ответы зависели от предыдущих. Она реально «учится», учитывая все ранее написанное.

Я с ChatGPT тоже имел длинную беседу (увлекательное занятие, я вам скажу), что бы понять границы общения и что она может, а чего нет. Например, в ряде ответов на русском языке текст обрывался и я хотел понять, почему. Ответ звучал вполне по-человечески 🙂 Обратите внимание, нейросеть даже ответ свой начинает так, как будто она продолжает мою фразу:

Нейросеть ChatGPT объясняет свои косяки
Нейросеть ChatGPT объясняет свои косяки

Особая история про рекламную кампанию Роскомнадзора

В пятницу я получил предложение поучаствовать в рекламной кампании Роскомнадзора с целью увеличения штрафа за утечку ПДн:

Предложение об участии в рекламной кампании РКН о необходимости поднятия штрафов за утечки ПДн
Предложение об участии в рекламной кампании РКН о необходимости поднятия штрафов за утечки ПДн

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

Текст о том, почему штрафы за утечку ПДн - это хорошо, созданный нейросетью ChatGPT
Текст о том, почему штрафы за утечку ПДн — это хорошо, созданный нейросетью ChatGPT

А теперь, если вы сторонник противоположной точки зрения:

Текст о том, почему штрафы за утечку ПДн - это плохо, созданный нейросетью ChatGPT
Текст о том, почему штрафы за утечку ПДн — это плохо, созданный нейросетью ChatGPT

Резюме

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

ChatGPT не несет ответственности за свои ответы
ChatGPT не несет ответственности за свои ответы

ЗЫ. Пользователям не из всех стран можно зарегистрироваться в сервисе ChatGPT. В частности, россиянам и белорусам это недоступно 🙁

Оцените статью
Бизнес без опасности
Есть что добавить? Добавьте!

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

  1. пофиг

    Не все дружны с англицким…если бы не картинки были, то можно былобы перевести…а так…половина мимо…но даже то что понял, то еще лет десять и многие на свалку истории….

    Ответить
    1. Алексей Лукацкий автор

      Там все и на русском прекрасно работает

      Ответить
  2. Правдивый

    А отчего Вы в телеграм-канале задаете вопросы но отключаете комментарии? Вы чего-то боитесь или бывший работодатель cisco и ЦРУ все еще приплачивает?

    Ответить
    1. Алексей Лукацкий автор

      Вы невнимательны — там комментарии никогда не были включены. Поэтому и отключать там нечего.

      Ответить