Многие инструменты искусственного интеллекта имеют, казалось бы, безобидную функцию «звонка домой» — обращение к удалённому серверу за обновлениями, проверка новых функций и т. д. В определенных ситуациях это неприемлемо, пишет на портале The New Stakc Крис дю Туа, директор по маркетингу компании Tabnine.
Для большинства команд разработчиков ПО интеграция инструментов ИИ, таких как помощники по написанию кода, так же проста, как регистрация в сервисе и добавление расширения. Вы получаете мгновенный доступ к мощным моделям, и с каждым нажатием клавиши подключаетесь к обширному облачному мозгу.
Но что, если задача команды — создать ПО для управления спутником, энергосистемой или истребителем? Для этих, а также других команд в оборонной, аэрокосмической, правительственной и строго регулируемых отраслях, такая простая интеграция невозможна. Их работа осуществляется в средах, полностью отрезанных от общедоступного Интернета, что является мерой безопасности, известной как «воздушный зазор».
Идея «изолированного ИИ» может показаться парадоксом. Как создать инструмент, который обучается и развивается вместе с облаком, но при этом находится за стенами крепости? Этот вопрос затрагивает суть истинной безопасности и соответствия нормативным требованиям в эпоху ИИ. Это задача, которая выходит далеко за рамки простой блокировки интернет-соединения.
Что на самом деле означает «воздушный зазор» для ИИ?
«Воздушный зазор» означает, что система физически или логически изолирована от внешних сетей, и все вычисления и обновления должны осуществляться в пределах контролируемого периметра. Но дьявол часто кроется в деталях. Для инструмента ИИ это только начало. Изоляция должна быть абсолютной. Многие инструменты, позиционирующие себя как «локальные» или «частные», всё равно отправляют телеметрию, получают обновления или полагаются на внешний инференс.
Представьте себе помощника по написанию кода, который обещает работать «локально». Вы можете подумать, что это означает, что он полностью изолирован в вашей защищённой сети. Тем не менее, многие из этих инструментов всё ещё имеют функцию «звонка домой» — обращения к удалённому серверу за обновлениями, для проверки наличия новых функций или просто для отправки анонимных данных об использовании. Даже такое, казалось бы, безобидное исходящее соединение — колоссальный риск для по-настоящему безопасной среды.
Чтобы помощник по кодированию был действительно изолированным, он должен соответствовать другим стандартам:
- Отсутствие внешних зависимостей: он не может выполнять внешние вызовы API и полагаться на облачные сервисы для чего-либо — инференса, аутентификации или телеметрии. Каждая операция, от генерации фрагмента кода до предоставления контекстной подсказки, должна выполняться в вашей защищенной сети.
- Замороженные, проверяемые модели: в облаке модели постоянно обновляются в фоновом режиме. В изолированном мире это не вариант. Вам нужна модель с блокировкой версии, поведение которой предсказуемо, прозрачно и воспроизводимо. Если аудитор спросит, почему был сгенерирован конкретный фрагмент кода, вам необходимо указать конкретную, проверяемую версию модели.
- Только локальный контекст: база знаний ИИ не может включать ничего из внешнего мира. Для предоставления предложений ему приходится полагаться исключительно на ваши локальные репозитории, файлы проекта и внутренние базы знаний.
- Полная контролируемость: каждое взаимодействие — запрос, сгенерированный код, используемая версия модели — должно регистрироваться и храниться локально. Это не просто «желательная» функция; это основа для обеспечения соответствия нормативным требованиям и отслеживания в критически важных системах.
Распространённые ловушки «безопасных» инструментов ИИ
Многие инструменты ИИ позиционируются как «безопасные» или «локальные», но не проходят тест на изолированность. На самом деле, эти инструменты часто разрабатывались для мира, где предполагается определённая степень внешней подключенности.
Наиболее частые ловушки включают в себя:
- Скрытые исходящие соединения. Некоторые инструменты отправляют фрагменты кода или контекст проекта — пусть даже зашифрованные — за пределы защищённого периметра для выполнения инференса или сбора данных. В условиях изоляции любое исходящее соединение, каким бы коротким оно ни было, является нарушением безопасности.
- Автоматические, невидимые обновления. Действия поставщика, запускающего скрытое обновление модели или изменяющего базовые данные обучения, могут привести к непредсказуемому поведению модели. Подобный «дрейф модели» — настоящий кошмар для команд, которым необходимо сертифицировать и обеспечивать воспроизводимость каждой строки кода.
- Отсутствие подтверждения происхождения. Когда ИИ предлагает решение, не объясняя его происхождение, его невозможно проверить в системе, критически важной для безопасности. Откуда взялся этот фрагмент кода? Из публичного репозитория, набора обучающих данных или чего-то ещё? Без отслеживаемого источника предложение бесполезно для сертифицированной системы.
- Игнорирование узкоспециализированных языков. Большинство ИИ-помощников по кодированию обучаются на языках веб-разработки, таких как Python или JavaScript. Но что насчёт языков критически важных систем, таких как Ada, VHDL или SPARK? Многие инструменты ИИ просто не обладают необходимыми знаниями или допусками для работы в этих специализированных областях.
Реалии развертывания изолированных систем ИИ
Перенос инструмента ИИ в изолированную среду — серьёзная задача. Речь идёт не только об установке ПО, но и о создании новых архитектуры и набора операционных процессов.
Организациям необходимо реализовать несколько основных возможностей:
- Действительно локальное выполнение. Вся модель ИИ должна работать на одобренном оборудовании в вашей сети. Не должно быть скрытого «запасного» варианта облачного сервиса в случае сбоя локального инференса.
- Версионный контроль моделей. Вам необходима возможность вручную обновлять модели и фиксировать их на определённой версии. Это даёт полный контроль над используемыми компонентами и гарантирует воспроизведение любых прошлых результатов.
- Строгие журналирование и аудит. Каждое взаимодействие должно регистрироваться с указанием временной метки, идентификатора пользователя и версии модели. Эти данные — основа ваших усилий по обеспечению безопасности и соответствия нормативных требованиям.
- Интеграция с защищёнными конвейерами. Инструмент ИИ должен органично вписываться в ваши существующие защищённые конвейеры DevOps и CI/CD. Он должен работать с вашими системами контроля доступа, системами сборки и процессами проверки. Конечно, такой уровень контроля имеет свои недостатки. Локальный запуск большой языковой модели требует серьезного аппаратного обеспечения, а отсутствие активного подключения означает необходимость строгого процесса ручного обновления. Возможно, придётся смириться с другой производительностью — локальная модель может иметь бóльшую задержку или немного худшее качество, чем модель, работающая на огромном облачном сервере.
В конечном счёте, инструменты ИИ, работающие в условиях изоляции, не предназначены для того, чтобы срезать углы. Они необходимы в секторах, где безопасность, суверенитет и соответствие нормативным требованиям не подлежат обсуждению. Для соответствующих команд предсказуемость и контроль, обеспечиваемые полностью изолированным инструментом, оправдывают дополнительную сложность.