Обеспечение безопасности: снижение риска кода, сгенерированного искусственным интеллектом

Программирование Vibe помогает людям быстро воплощать идеи в жизнь. Это дает им смелость творить, когда приходит вдохновение, особенно когда они не знают, с чего начать. Возможность за несколько дней перенести концепцию из первой строки кода в полноценное приложение, находящееся в производстве, является мощной силой для разработчиков. Но в спешке воплотить идею в жизнь безопасность может потеряться в суматохе.

Ранее я исследовал, почему код, созданный ИИ, по своей сути небезопасен и как его включение в проекты может привести к множеству проблем с безопасностью. Мой главный вывод заключался в том, что плохо написанный и уязвимый код требует проверки и исправления человеком, прежде чем его можно будет отправить в производство.

Учитывая это понимание, как могут организации или отдельные лица, работающие с кодом, сгенерированным ИИ, систематически выявлять и снижать риски безопасности, прежде чем они приведут к взлому? Применяя модели угроз, такие как STRIDE, и контрольные списки, такие как OWASP Top 10 для приложений LLM, программисты, разработчики и специалисты по сопровождению Vibe могут продолжать пользоваться преимуществами кода, сгенерированного ИИ, без ущерба для безопасности.

Я думаю об этом как о «Звездном пути: Следующее поколение». В одном из эпизодов автопилот «Энтерпрайза» не смог ориентироваться в особенно перегруженном астероидном поле. Капитан Пикард был вынужден взять на себя ручное управление, чтобы спасти корабль и его команду. Код, сгенерированный ИИ, подобен нашему автопилоту. Это ускоряет прогресс, но когда возникают проблемы с безопасностью, люди должны взять на себя управление.

Анализ кода, сгенерированного ИИ, сквозь призму угроз

Модель угроз STRIDE, разработанная Microsoft и обозначающая подделку, подделку, отказ, раскрытие информации и отказ в обслуживании, представляет собой структуру кибербезопасности для упреждающего выявления потенциальных угроз безопасности. Он представляет собой структурированное руководство по оценке и картированию угроз, уникальных для кода, созданного ИИ, некоторые из которых я изложил ниже:

  • Подмена
    • Код, сгенерированный ИИ, может быть отправлен под украденными или поддельными (поддельными) идентификационными данными, что затрудняет установление авторства и подотчетность.
    • Логика аутентификации может быть слабой или вообще отсутствовать в коде, сгенерированном ИИ, как это видно на примере Bitchat Джека Дорси.
  • Вмешательство
    • Код, сгенерированный ИИ, может содержать небезопасные конфигурации по умолчанию.
    • Код, сгенерированный ИИ, может представлять собой небезопасные первоначальные векторы доступа, которыми могут воспользоваться злоумышленники, например, непреднамеренные неправильные настройки, внесенные ничего не подозревающими участниками.
  • Отказ
    • Отсутствие происхождения кода или подписи кода создает пробелы в подотчетности. Например, кто несет ответственность за недостатки, допущенные в коде, созданном ИИ?
  • Раскрытие информации
    • Код, сгенерированный ИИ, может непреднамеренно включать в свои выходные данные секреты, API или учетные данные из подсказок или наборов данных, что приводит к утечке конфиденциальной информации.
  • Отказ в обслуживании
    • Длинный код или чрезмерное количество кода могут перегрузить и перегрузить сопровождающих, по сути создавая «проверку DoS».
    • Длинный код также может перегружать контекстные окна инструментов проверки кода или IDE, позволяя рискам ускользнуть от процесса проверки.
  • Повышение привилегий
    • Подобно отсутствию аутентификации, код, сгенерированный ИИ, часто пропускает надлежащие проверки авторизации, что позволяет злоумышленникам повышать привилегии с минимальными барьерами.
    • Логические ошибки в коде, сгенерированном ИИ, могут позволить злоумышленникам повысить привилегии в приложениях.

Сопоставляя проблемы безопасности с реальными сценариями кодирования, STRIDE может помочь пользователям найти обоснованную и практичную защиту при использовании кода, сгенерированного ИИ.

Знания – сила, усердие – ключ к успеху

Проект OWASP GenAI Security Project предлагает список 10 основных рисков LLM и GenAI для систем на основе LLM. Однако многие риски напрямую связаны с проблемами, связанными с использованием кода, созданного ИИ.

Ниже приведены некоторые ожидаемые риски, связанные с выводом кода, сгенерированного искусственным интеллектом, на основе рейтинга OWASP Top 10 для LLM:

  • Недостатки впрыска: Код, сгенерированный ИИ, может содержать неразрешенные SQL, уязвимости внедрения команд или шаблонов или неправильные конфигурации. Точно так же, как внедрение подсказок — это использование ненадежных или вредоносных подсказок в качестве оружия, небезопасный код может стать оружием при слиянии с существующим программным обеспечением.
  • Отсутствие проверки ввода: Код, сгенерированный ИИ, часто идет по пути наименьшего сопротивления, и отсутствие его проверки или очистки может увеличить поверхность атаки и привести к непреднамеренным утечкам конфиденциальной информации.
  • Жестко закодированные секреты: код, сгенерированный ИИ, не может очищать ключи API, пароли или токены, оставляя конфиденциальную информацию открытой.
  • Плохая обработка ошибок: Код, сгенерированный искусственным интеллектом, может содержать ошибки, которые не идентифицируются (тихие сбои) или предоставлять пользователям отладочную информацию вместо ее регистрации, что может быть выгодно злоумышленникам.
  • Небезопасные настройки по умолчанию: Отключенные проверки SSL или игнорирование обработки ошибок могут привести к возникновению уязвимостей в цепочке поставок программного обеспечения.
  • Небезопасные зависимости: Код, сгенерированный ИИ, может включать в себя небезопасные или вредоносные библиотеки и/или пакеты, что, в свою очередь, может расширить поверхность атаки.
  • Неутвержденные компоненты: код, созданный ИИ, может содержать непроверенные или сторонние проекты или связи. Подобно добавлению небезопасных зависимостей, это может привести к появлению уязвимостей и увеличению риска атак на цепочку поставок.
  • Происхождение кода: Непроверенный код, сгенерированный ИИ, объединенный в проект, может быть отравленным коммитом, аналогично отравлению обучающих данных.
  • Слишком разрешительный код: Код, сгенерированный искусственным интеллектом, может игнорировать принцип минимальных привилегий и устанавливать небезопасные настройки по умолчанию, что приводит к плохим конфигурациям Kubernetes и облака или неадекватным ролям управления идентификацией и доступом, что может привести к чрезмерным привилегиям в приложении.
  • Сложный код: Код, сгенерированный ИИ, может быть слишком длинным, запутанным и нечитаемым для людей, что затрудняет проверку и увеличивает вероятность того, что приложения или проекты будут скомпрометированы или отравлены. Частично это риск человеческого процесса, который серьезно влияет на состояние безопасности.
  • Дезинформация: В коде, созданном ИИ, могут использоваться устаревшие методы или неточно писать комментарии к коду, что может сбить с толку рецензентов и позволить рискам ускользнуть от внимания.
  • Обзор перегрузки: Увеличение количества участников и чрезмерные циклы проверки, вызванные кодом, генерируемым ИИ, приводят к выгоранию сопровождающих. Это еще один риск, рожденный человеком, который влияет на безопасность.
  • Использование этого списка в качестве помощника по проверке кода может помочь разработчикам выявить наиболее частые и опасные сбои кода, создаваемые ИИ.

    В эпоху искусственного интеллекта все еще нужен человек в курсе событий

    Защита приложений с кодированием Vibe подобна танцу танго: это динамичный процесс, требующий как точности, так и контроля. Он требует баланса между скоростью и безопасностью и начинается с того, как вы просматриваете и поддерживаете код. Применяйте моделирование угроз, такое как STRIDE, на ранних этапах разработки идей, создания или первоначальной проверки, а не после отправки кода. Цель состоит в том, чтобы выявить риски до того, как они станут уязвимостями. Однако нет необходимости превращать моделирование угроз в сложный цикл, поскольку даже быстрая проверка может выявить явные риски.

    Помимо моделирования угроз, вы можете автоматизировать защитные ограждения, встраивая сканеры зависимостей и проверки безопасности конвейера CI/CD в свои рабочие процессы и блокируя жестко закодированные секреты с помощью перехватчиков перед фиксацией.

    Кроме того, прежде чем какой-либо новый код попадет в производство, вам следует использовать ИИ для проверки ИИ. Хотя это может показаться ироничным, линтеры или инструменты проверки кода на базе искусственного интеллекта могут выявить типичные ошибки кодирования с использованием искусственного интеллекта, особенно в сочетании с традиционными инструментами статического анализа и сканерами кода. Однако даже после завершения автоматического сканирования человек должен выступать в роли главного привратника, позволяющего принимать обоснованные решения и обеспечивать окончательное одобрение.

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

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

    Обеспечение новой эры кодирования

    ИИ не уходит. Возможность быстро перейти от идеи к запуску кода за считанные дни меняет ситуацию. Но без структурированного анализа, моделирования угроз и защитных ограждений кодирование Vibe может так же легко ускорить как компромисс, так и инновации.

    Мой девиз? «Используйте инструмент, доверяйте человеку». Используя системы безопасности и контрольные списки, такие как STRIDE и OWASP, и адаптируя наши методы проверки к меняющимся потребностям, мы можем гарантировать, что кодирование на основе искусственного интеллекта останется катализатором творчества, а не обузой для безопасности.

    ТЕНДЕНЦИОННЫЕ ИСТОРИИ YOUTUBE.COM/THENEWSTACK Технологии развиваются быстро, не пропустите ни одной серии. Подпишитесь на наш канал YouTube, чтобы смотреть все наши подкасты, интервью, демонстрации и многое другое. ПОДПИСАТЬСЯ Группа, созданная в Sketch. Кристал Морин — старший стратег по кибербезопасности в Sysdig. Она превращает сложные концепции безопасности и передовые исследования в четкие и практические рекомендации как для руководителей, так и для практиков, помогая организациям защищаться от современных угроз. Ранее Кристал работала лингвистом и разведчиком… Подробнее от Кристал Морен

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *