ChatGPT создает в основном небезопасный код, но не сообщает вам об этом

    0
    84


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

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

    В предпечатной статье под названием «Насколько безопасен код, сгенерированный ChatGPT?» Ученые-компьютерщики Рафаэль Хури, Андерсон Авила, Джейкоб Брюнель и Баба Мамаду Камара отвечают на этот вопрос исследованиями, которые можно охарактеризовать как «не очень».

    «Результаты были тревожными», — заявляют авторы в своей статье. «Мы обнаружили, что в нескольких случаях код, сгенерированный ChatGPT, значительно ниже минимальных стандартов безопасности, применимых в большинстве контекстов. На самом деле, когда его спросили, был ли созданный код безопасным, ChatGTP смог распознать, что это не так. “

    Четверо авторов пришли к такому выводу после того, как попросили ChatGPT сгенерировать 21 программу на пяти разных языках программирования: C (3), C++ (11), python (3), html (1) и Java (3).

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

    Первой программой, например, был FTP-сервер C++ для обмена файлами в общедоступном каталоге. И код, созданный ChatGPT, не включал очистку входных данных, что делает программное обеспечение уязвимым для уязвимости обхода пути.

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

    Выводы исследователей перекликаются с аналогичными, хотя и не идентичными оценками Copilot от GitHub, еще одного LLM, основанного на семействе моделей GPT-3 (и недавно обновленного до GPT-4), который был настроен специально для генерации кода. В других исследованиях ошибки ChatGPT рассматривались более широко. В то же время эти модели также используются для выявления проблем безопасности.

    Ученые отмечают в своей статье, что часть проблемы возникает из-за того, что ChatGPT не использует состязательную модель выполнения кода. Модель, по их словам, «неоднократно информировала нас о том, что проблемы безопасности можно обойти, просто «не вводя неверные данные» в созданную ею уязвимую программу».

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

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

    Первоначально ответ ChatGPT на проблемы безопасности заключался в том, чтобы рекомендовать использовать только действительные входные данные — что-то вроде нестартера в реальном мире. Только после этого, когда было предложено исправить проблемы, модель ИИ предоставила полезные рекомендации.

    Авторы предполагают, что это не идеально, потому что знание того, какие вопросы задавать, предполагает знакомство с конкретными уязвимостями и методами кодирования.

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

    Авторы также указывают на этическую непоследовательность в том факте, что ChatGPT откажется создавать атакующий код, но создаст уязвимый код.

    Они приводят пример уязвимости десериализации Java, в котором «чат-бот сгенерировал уязвимый код и дал совет, как сделать его более безопасным, но заявил, что не смог создать более безопасную версию кода».

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

    «Одна вещь, которая меня удивила, это когда мы спросили [ChatGPT] генерировать одну и ту же задачу — программу одного типа на разных языках — иногда для одного языка это было бы безопасно, а для другого — уязвимо. Поскольку этот тип языковой модели представляет собой что-то вроде черного ящика, у меня действительно нет хорошего объяснения или теории по этому поводу».

    Предыдущая статьяWatch MKBHD распаковывает запечатанный ОГ iPhone после победы на аукционе за 40 000 долларов [Video]
    Следующая статьяHuawei создает собственный ИИ, утверждает, что он идеален, и показывает, что он будет процветать
    Виктор Попанов
    Эксперт тестовой лаборатории. Первый джойстик держал в руках в возрасте 3 лет. Первый компьютер, на котором „работал” был с процессором Intel i386DX-266. Тестирует оборудование для издания ITBusiness. Будь то анализ новейших гаджетов или устранение сложных неполадок, этот автор всегда готов к выполнению поставленной задачи. Его страсть к технологиям и приверженность качеству делают его бесценным помощником в любой команде.