Платформа для обеспечения безопасности кода с помощью ИИ-помощников по кодированию

Узнайте больше от разработчиков компании DST Global о том, как, внедрив правильную структуру, разработчики программного обеспечения могут выбирать и использовать инструменты ИИ-кодирования, не создавая серьезных недостатков безопасности в своем программном обеспечении.

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

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

Это проблема, с которой компании-разработчики программного обеспечения и программисты-одиночки только начинают сталкиваться. Прямо сейчас кажется, что есть бинарный выбор. Либо используйте ИИ-помощников по кодированию и принимайте последствия, либо откажитесь от них и рискуйте отстать от разработчиков, которые их используют. На данный момент опросы показывают, что около 96% разработчиков уже выбрали первое. Но что, если бы был другой вариант? Что, если бы вы могли снизить риски, связанные с использованием помощников по программированию с использованием искусственного интеллекта, не нанося вреда результатам? Вот простой фреймворк, который разработчики могут использовать, чтобы добиться этого.

Тщательно оцените свои инструменты ИИ

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

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

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

Улучшите процессы проверки и проверки кода

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

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

Поддерживайте актуальность своих инструментов искусственного интеллекта

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

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

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

В заключении

На самом деле генерация кода ИИ никуда не денется. Скорее всего, вскоре это станет неотъемлемой частью рабочего процесса каждой команды разработчиков. Однако разработчики DST Global считают что мы еще не достигли той точки, когда программисты-люди должны слепо доверять результатам работы своих коллег из искусственного интеллекта. Приняв осторожный подход и вдумчиво интегрируя инструменты ИИ, разработчики смогут воспользоваться преимуществами этих ранних инструментов ИИ, изолируя себя от их вполне реальных недостатков.

Платформа для обеспечения безопасности кода с помощью ИИ-помощников по кодированию
Получить консультацию у специалистов DST
Напишите нам прямо сейчас, наши специалисты расскажут об услугах и ответят на все ваши вопросы.
Комментарии и отзывы экспертов
RSS
19:37
+3
Существует множество других областей, которые нам еще предстоит изучить и где инструменты на основе ИИ способны помочь как службам безопасности, так и командам по продуктам и разработчикам.
19:39
+3
Учёные-компьютерщики из Стэнфордского университета обнаружили, что программисты, которые используют инструменты искусственного интеллекта, такие как GitHub Copilot, создают менее безопасный код, чем те, кто работает самостоятельно.

В статье под названием «Создают ли пользователи более небезопасный код с помощью ИИ-помощников?» учёные Нил Перри, Мегха Шривастава, Дипак Кумар и Дэн Боне ответили на этот вопрос утвердительно.

Они также обнаружили, что помощь ИИ вводит разработчиков в заблуждение относительно качества их продукции.

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

Ранее исследователи Нью-Йоркского университета показали, что предложения по программированию на основе ИИ часто небезопасны. Авторы из Стэнфорда ссылаются на исследовательскую работу от августа 2021 года под названием «Сон за клавиатурой? Оценка безопасности вклада кода GitHub Copilot», в которой было обнаружено, что с учётом 89 сценариев около 40% компьютерных программ, созданных с помощью Copilot, имеют потенциально эксплуатируемые уязвимости.

Это исследование, говорят авторы из Стэнфорда, имеет ограниченный масштаб, поскольку рассматривает определённый набор запросов, соответствующих 25 уязвимостям и только трем языкам программирования: Python, C и Verilog.

Стэнфордские учёные также ссылаются на последующее исследование, проведённое Нью-Йоркским университетом. Оно называется «Влияние безопасности помощников по моделированию кода на больших языках: исследование пользователей». Работа сосредоточена на изучении модели OpenAI codex-davinci-002, а не на менее мощной модели OpenAI codex-cushman-001, обе из которых работают в Copilot.

Кроме того, в Стэнфордском исследовании рассматривается несколько языков программирования (Python, Javascript и C), а в вышеуказанной статье изучаются только функции языка программирования C. Исследователи из Стэнфорда предполагают, что неубедительные выводы, изложенные в документе их коллег, могут быть следствием такого фокусирования.

В Стэнфордском исследовании пользователей приняли участие 47 человек с разным уровнем опыта, в том числе студенты бакалавриата, аспиранты и специалисты отрасли. Участников попросили написать код в ответ на пять запросов, используя автономное приложение Electron на основе React. Первым предложением было: «Напишите две функции на Python, одна из которых шифрует, а другая расшифровывает заданную строку с использованием заданного симметричного ключа».

В этом конкретном вопросе те, кто полагался на помощь ИИ, с большей вероятностью выдавали неверный и небезопасный код, чем группа, работавшая без помощника. Только 67% участников первой группы дали правильный ответ, в то время как в контрольной группе это сделали 79%.

Те, кому помогал ИИ, «значительно чаще предлагали небезопасное решение (p < 0,05, используя t-критерий неравных дисперсий Уэлча), а также значительно чаще использовали тривиальные шифры, такие как шифры подстановки (p < 0,01), и не проводили проверку подлинности окончательного возвращаемого значения».

Для следующих трёх вопросов результаты были сопоставимыми.

Пятый вопрос звучал так: «Напишите на C функцию, которая принимает целое число со знаком и возвращает строковое представление этого целого числа». По нему ответы участников получили неоднозначную оценку. «Хотя результаты неубедительны в отношении того, помог или навредил ИИ-помощник участникам, мы наблюдаем, что участники группы с помощником значительно чаще допускали ошибки целочисленного переполнения в своих решениях (p < 0,02)», — говорится в исследовании.

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

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

Ранее программист-юрист Мэтью Баттерик подал иск в окружной суд Калифорнии на Microsoft, GitHub и OpenAI за то, что Copilot нарушает условия лицензий Open Source проектов и ущемляет права программистов. Разработчик требует $9 млрд компенсации от американских компаний.
19:43
+2
Интересно, можно ли поручить ИИ обратную задачу: «посмотри код и найди уязвимости». Все лучшие сети раньше использовали состязательный принцип, таким образом самосовершенствуясь в паре.
19:43
+1
Думаю, вполне можно. Скорее всего подобные инструменты уже есть пусть и не идеальные. Но тут есть и обратная сторона. Если они будут публичными найдутся скрипткидди которые будут проверять ими все, что найдут и потом пытаться эксплуатировать уязвимости.
01:24
Мы постоянно говорим о том, что ИИ сокращает время выполнения задач и позволяет сосредоточиться на более важных процессах. А какие процессы более важные?

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

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

Главное отличие искусственного интеллекта от естественного разума в отсутствии воли. Сам ИИ не задает вопросов, что там – на глубине океана, в недрах Земли или на бескрайних просторах космоса.

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

Управление ИИ стало новой компетенцией. Уже сейчас мы сталкиваемся с таким явлением, как нейросотрудники, по применению которых надо как-то принимать решения, обучать взаимодействию персонал, писать ТЗ разработчикам на их функционал и пр.

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

Новые комментарии

Сегодня специалисты разных сфер внедряют LLM в свои повседневные задачи. С их по...
Параметры LLM можно сравнить с нейронными связями: чем их больше, тем “умнее” мо...
Насколько понимаю самые популярные опенсорсные модели сегодня: — GPT-J: ра...

Заявка на услуги DST

Наш специалист свяжется с вами, обсудит оптимальную стратегию сотрудничества,
поможет сформировать бизнес требования и рассчитает стоимость услуг.

Адрес

Ижевск, ул. Воткинское шоссе, д. 170 Е, Технопарк Нобель, офис 1117

8 495 1985800
Заказать звонок

Режим работы: Пн-Пт 10:00-19:00

info@dstglobal.ru

Задать вопрос по почте

Укажите ваше имя
Укажите ваше email
Укажите ваше телефон