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

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

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

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

Введение в ChatGPT

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

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

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

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

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

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

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

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

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

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

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

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

Фишинг

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ChatGPT ее решает:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Резюме

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

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

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

Заметка Как я тестировал нейросеть ChatGPT для целей кибербезопасности была впервые опубликована на Бизнес без опасности .

Alt text

Цифровые следы - ваша слабость, и хакеры это знают.

Подпишитесь и узнайте, как их замести!