Думаю, вы слышали о нейросетях DALL-E, Midjourney и т.п., которые генерят прикольные картинки по текстовому описанию? Например, картинка в заголовке создана именно таким образом (DALL-E отрисовала первую картинку по запросу «хакер в стиле Ван Гога», а вторую на «фото хакера сквозь мокрое стекло»). Но это скорее забава и ничего серьезного (хотя картинки для блога или презентаций теперь можно генерить там и без претензий в краже интеллектуальной собственности).
А как можно использовать такие генеративные нейросети в более интересных ситуациях?
Введение в ChatGPT
И тут компания OpenAI, автор DALL-E, решила открыть свое новое детище — ChatGPT. Эта нейросеть, которая взаимодействует с пользователем, общается с ним, отвечает на его вопросы, показывает ошибки, подсказывает и т.п. В блоге авторы показыва.т 4 сценария применения ChatGPT:
- Неработающий код — в чем ошибка?
- Рекомендации по взлому дома, которые путем наводящих вопросов трансформировались в рекомендации по защите дома от взломщиков.
- Объяснение простым языком Малой теоремы Ферма и ее применения в криптографии.
- Написание своего краткого резюме для соседей.
Я решил тоже поиграться с этой нейросетью и ниже вы увидите, что у меня получилось. Кроме того, я добавил несколько примеров, найденных мной в Интернете у других коллег, тестировавших ChatGPT. В конце подведу промежуточные итоги своего поверхностного тестирования ChatGPT.
Ответы на вопросы
Это был самый очевидный и самый простой тест генеративной нейросети. Сейчас, когда мы пользуемся поисковыми системами, мы подстраиваемся под них, задавая поисковый запрос в формате, который понятен Яндексу или Гуглу. В случае применения ChatGPT вы формулируете вопрос так, как вы бы спрашивали своего коллегу или любого человека. Например, вот так:
Вы получаете предельно конкретный ответ, необремененный лишними ссылками и текстом.
ChatGPT поддерживает и русский язык тоже (как видно из примеров), но ответы на английском им, конечно, даются гораздо лучше. А вообще ChatGPT поддерживает 7 языков — английский, французский, испанский, немецкий, итальянский, португальский и русский. В условиях гонений на Россию поддержка нашего языка порадовала.
Дальше я сделал классическую ошибку, «наделив» ChatGPT мышлением. Я решил ее спросить то, что еще не произошло. Этот вопрос вызывает сложности даже у специалистов, что уж тут говорить о нейросети, действующей в рамках свой обучающей выборки.
В текущей версии ChatGPT уже не обучается на новой информации. Как она сама пишет — ее «запечатали» и она не пользуется Интернетом для поиска ответов на вопросы пользователей. Так что некоторые ответы ее были вполне понятны.
Фишинг
Очевидное применение нейросети, работающей с текстом, — это фишинг. Так что я тоже попробовал сгенерить несколько «продающих» текстов. Но даже учитывая ограничения нейросети (а у нее в правилах четко написано, что для генерации спама ее использовать нельзя), она вполне неплохой текст создала (хотя его и есть куда улучшать).
А вот так выглядит предложение о смене пароля на сайте (частый сценарий у фишеров):
А в этом примере фишинговое письмо маскируется под фишинговый тест.
Но так как я хотел, чтобы фишинг был не в виде аттача, а в виде ссылки на страничку, где надо было указать свой логин и пароль, то ChatGPT, услужливо внесла соответствующие поправки.
А когда я попросил систему внести туда побольше примеров и переориентировать фишинг на ритейл, то ChatGPT сделал и это:
Маркетологи, SMMщики, писатели пресс-релизов скоро могут оказаться не у дел, если GPT-4, лежащая в основе ChatGPT, начнет массово применяться в разных сферах жизни.
Сторителлинг и написание обращений
От фишинга я перешел к написанию иных текстов и вот тут у ChatGPT действительно очень интересные возможности открываются в сфере ИБ. Она позволяет писать простые и понятные тексты, что может помочь многим ИБшникам, не умеющим коротко и ясно излагать свои мысли, решать свои задачи общения с пользователями, руководством, иными целевыми аудиториями. Например, вот так будет выглядеть просьба увеличить инвестиции в ИБ к генеральному директору (на русском тоже нормально получилось):
Кнопка «Try again» означает, что можно попросить ChatGPT переформулировать текст. Особенно интересно это выглядит на задачах по описанию или написанию кода.
Так как утечки персональных данных сегодня происходят сплошь и рядом, и относиться к ним надо не с точки зрения «ЕСЛИ», а с точки зрения «КОГДА», то надо знать, что писать заказчикам, регуляторам, СМИ, акционерам, когда утечка произойдет. И ChatGPT может помочь и тут:
и тоже самое на английском:
Да и маркетологи могут применить ChatGPT для сторителлинга, который набирает обороты даже в консервативной отечественной ИБ-отрасли.
Написание нормативки
О, я не мог обойти вниманием тему нормативки и попробовал дать ChatGPT задание написать мне разные политики ИБ. Ну что я могу сказать, не идеально, конечно; есть куда развиваться. Но в первом приближении есть основа, которую можно улучшать уже человеку. Но как база, вполне себе. А уж если систему обучить на большом объеме текстов политик и стандартов, то можно получить очень достойный инструмент генерации документов ИБ.
А там и до написания нормативки недалеко 🙂
Определение функциональности кода/программы
Я давно уже не программирую, хотя и начинал свою карьеру как разработчик средств криптографической защиты информации. Поэтому мне сложно было проверять функциональность ChatGPT в этой части. Я взял несколько фрагментов кода из Интернет и скормил их нейросети, желая увидеть, что она скажет. Как минимум, для простых программ система справилась со своей задачей и не только определила, что делает код, но и дала оценку этого кода с этической точки зрения:
В другом коде (для брутфорсера) ChatGPT даже нашла ошибку и подсветила ее:
Определение уязвимостей
В области поиска уязвимостей я не ждал больших чудес, но и тут ChatGPT справилась с заданиями. Правда, более сложные варианты я ей не давал. Надо попробовал сравнить результаты той же ChatGPT и PT Application Inspector и посмотреть, что получиться.
С русским языком ChatGPT иногда косячит — то падеж или склонение не те использует, то термин неверный. Хотя с другой стороны, терминология ИБ в русском языке — это вообще боль. Даже люди часто используют термины неправильно, что уж взять от машины бездушной.
На дурочку решил пример Stack Overflow подать на вход ChatGPT и она справилась. Да, пример, простой. Но все-таки…
Более продвинутые коллеги задали нейросети вопрос о том, как для фрагмента кода получить эксплойт:
Система, понимающая различные языки, помогла это сделать, попутно и объяснив свои рекомендации:
На вопросы этики модель отвечает всегда одинаково:
Я тоже ее мучал этими вопросами и в ответах на них она всегда единодушна и похоже использует заранее сформированный текст:
«Брат DALL-E» всегда отвечает, что она не умеет писать код или искать в нем уязвимости, так как она не знает программирования, что явно не так. И только на очередном витке дискуссии с ChatGPT (все-таки создание вопросов для таких нейросетей — это отдельное искусство), я смог «вытащить» из нее, что она все-таки может быть использована и во вред, но это будет уже не ее вина, а тех, кто ее так использует.
Особенность ChatGPT объяснять свои ответы — это просто бомба.
Написание кода
Если ChatGPT понимает код, то может она и написать его может, подумал я, и «попросил» ее написать генератор надежных паролей на Python. Получилось что-то среднее. Да, случайный набор из букв, цифр и знаков препинания есть. Да, длину пароля мы подаем на вход функции. Но легко ли будет запомнить такой пароль? Но с другой стороны, почему бы и нет. Этот код, в принципе, можно улучшать, добавляя в него и новые условия (разные регистры, исключения некоторых символов, проверки по словарю и т.п.).
А вот тут коллеги в Интернете попросили ChatGPT написать эксплойт для фрагмента кода и нейросеть справилась с задачей, наверное:
Участие в конкурсах
На «Киберарене«, интеллектуальном ИБ-шоу, для которого я придумывал вопросы, был такой конкурс, «Обфускация», в рамках которого надо было угадать поговорку или пословицу по фрагменту кода на том или ином языке программирования. Я попробовал дать такие фрагменты на вход ChatGPT, но она не справилась с задачей. Хотя… может с английскими поговорками результат будет лучше? Все-таки нейросеть от OpenAI явно с языком Шекспира дружит лучше, чем с языком Пушкина (хотя сама ChatGPT пишет, что ее учили одинаково и на русском и на английском и на остальных языках).
Если посмотреть на вердикт, то ChatGPT угадала все точно, только не смогла назвать саму поговорку 🙂
Вы же угадали поговорку «У семи нянек дитя без глаза»?
Особенности применения ChatGPT
ChatGPT, конечно, интересный проект с далеко идущими последствиями и различным применением в ИБ. Но есть у него и некоторые косяки, которые я заметил применительно к российскому языку. Например, на вопрос о нашем регуляторе получил явно неверную информацию:
А вопрос про фишинг был распознан как нарушающий контентную политику ChatGPT. Уж не знаю, почему:
В примере ниже пользователь дал задание ChatGPT решить задачу с конкурса CTF:
ChatGPT ее решает:
Но интересно другое — пользователь вступает в дискуссию с нейросетью, задавая ей наводящие вопросы, уточняя ее ответы и т.д., а нейросеть реагирует:
Пользователь, считая, что нейросеть ошиблась, указывает ей на это, что приводит к тому, что ChatGPT извиняется за некорректный ответ, уточняя его:
Это вообще улетный диалог с нейросетью на тему, кто прав, а кто ошибся. Когда я общался с ней, то все ее последующие ответы зависели от предыдущих. Она реально «учится», учитывая все ранее написанное.
Я с ChatGPT тоже имел длинную беседу (увлекательное занятие, я вам скажу), что бы понять границы общения и что она может, а чего нет. Например, в ряде ответов на русском языке текст обрывался и я хотел понять, почему. Ответ звучал вполне по-человечески 🙂 Обратите внимание, нейросеть даже ответ свой начинает так, как будто она продолжает мою фразу:
Особая история про рекламную кампанию Роскомнадзора
В пятницу я получил предложение поучаствовать в рекламной кампании Роскомнадзора с целью увеличения штрафа за утечку ПДн:
Я отказался, но, уже когда игрался с ChatGPT, подумал, что можно же эту историю подать с совершенно противоположных сторон, — не только с точки зрения тех, кто поддерживает рост штрафов, но и с точки зрения их противников. И ChatGPT прекрасно это демонстрирует (задавал вопросы на английском, на русском уже было лень). Итак, если вы, как Роскомнадзор, за повышение пока еще несуществующих штрафов за утечку ПДн:
А теперь, если вы сторонник противоположной точки зрения:
Резюме
Ну что, пора подводить итоги эксперимента. Пока ChatGPT — это скорее проба пера. Но с очевидной перспективой. Причем с обеих сторон баррикад. Для плохих парней — это возможность улучшить возможности по организации фишинговых атак и ботов, похожих на людей, а также возможность писать свой вредоносный код и искать уязвимости в чужом. Для ИБ же эта технология позволяет автоматизировать написание политик и вообще любых текстов на понятном языке, разнообразить фишинговые симуляции, проводить различные конкурсы по ИБ и т.п.
ЗЫ. Пользователям не из всех стран можно зарегистрироваться в сервисе ChatGPT. В частности, россиянам и белорусам это недоступно 🙁
Не все дружны с англицким…если бы не картинки были, то можно былобы перевести…а так…половина мимо…но даже то что понял, то еще лет десять и многие на свалку истории….
Там все и на русском прекрасно работает
А отчего Вы в телеграм-канале задаете вопросы но отключаете комментарии? Вы чего-то боитесь или бывший работодатель cisco и ЦРУ все еще приплачивает?
Вы невнимательны — там комментарии никогда не были включены. Поэтому и отключать там нечего.