Привет. Я предприниматель, который последние три года строит бизнес на пересечении AI-разработки и робототехники. Мы используем vibe coding — генерацию кода по текстовому описанию — для прототипирования дронов, манипуляторов и систем управления. Это даёт скорость, но недавно всё изменилось.
В июле 2026 года правительство США опубликовало документ National Security Determination Threat Posed by Foreign-Produced Robotic Devices (PDF-версия доступна на сайте Министерства торговли). Он вводит жёсткие ограничения на использование иностранных роботизированных устройств и компонентов, включая программное обеспечение, сгенерированное AI-инструментами из недружественных стран. И это напрямую касается каждого, кто практикует vibe coding.
Что такое National Security Determination и почему это важно?
National Security Determination (NSD) — это решение федерального регулятора о том, что конкретный класс продуктов или технологий представляет угрозу национальной безопасности. В данном случае под удар попали иностранные роботизированные устройства — от готовых дронов до контроллеров и встроенного ПО, созданного с помощью AI-кодинга за пределами США.
Ключевые моменты документа:
- Запрет на использование в госзакупках роботов, чей код хотя бы частично сгенерирован AI-инструментами из стран, не входящих в список доверенных (сейчас это около 10 стран, включая Китай, Россию, Иран).
- Требование к разработчикам предоставлять «цепочку происхождения» кода: от даты, модели и провайдера AI, до финального бинарного файла.
- Обязанность проводить статический анализ на наличие шпионских функций, бэкдоров и скрытых сетевых запросов.
Если вы производите роботов или пишете для них софт — эти правила касаются вас, даже если вы не работаете с госзаказом. Многие частные заказчики уже требуют соответствия NSD.
Vibe coding и риски национальной безопасности
Vibe coding — это подход, при котором разработчик описывает задачу на естественном языке, а AI-модель (например, Claude, GPT-4o, Gemini) генерирует код. Удобно, быстро, но теперь — рискованно.
Проблема в том, что:
1. Неизвестность обучающих данных — модель могла быть обучена на коде с уязвимостями или бэкдорами.
2. Облачные сервисы — большинство популярных AI-кодинг-инструментов работают на серверах за рубежом, которые могут перехватывать или модифицировать код.
3. Отсутствие контроля версий — сгенерированный фрагмент может содержать недокументированные вызовы внешних API.
В NSD есть прямое указание: если код создан с помощью «алгоритма машинного обучения, обученного на данных из недоверенных источников», он считается потенциально опасным. То есть фактически любой vibe-coding-проект попадает под подозрение.
Пошаговый план адаптации для разработчика
Я перестроил процессы в своей компании за две недели. Вот чек-лист, который поможет вам пройти проверку NSD без потери производительности.
Шаг 1. Аудит используемых AI-инструментов
Составьте таблицу всех сервисов, которые вы используете для генерации кода:
| Инструмент | Провайдер | Страна | Облачная/локальная | Сертификаты безопасности |
|---|---|---|---|---|
| ChatGPT (через API) | OpenAI | США | Облачная | SOC 2, но не военный |
| GitHub Copilot | Microsoft | США | Облачная | FedRAMP Moderate (условно) |
| Claude (Anthropic) | США | Облачная | — | |
| DeepSeek Coder | Китай | Облачная | Нет |
Вывод: если вы используете DeepSeek или подобные китайские модели — немедленно прекращайте. Для американских моделей нужна дополнительная верификация.
Многие команды используют OpenAI API для vibe coding. Важно понимать, что этот сервис может быть под санкциями. ASI Biont поддерживает подключение к OpenAI через API — подробнее на asibiont.com/courses. Но если вы хотите полностью избежать рисков, лучше перейти на локальные модели.
Шаг 2. Переход на локальные модели
Лучшая защита — запускать AI-модели на собственном оборудовании. Вот что мы используем:
- Llama 3.1 70B (Meta) — открытая модель, обучена на англоязычных данных, хороша для Python и C++.
- Mistral Large 2 — французская модель, соответствует европейским стандартам GDPR и AI Act.
- Qwen 2.5 (локальный) — только если вы готовы провести полный аудит датасета.
Запускать можно на связке ollama + llama.cpp или через vLLM для production-нагрузки. Пример команды для быстрого старта:
ollama pull llama3.1:70b
ollama run llama3.1:70b
Теперь весь код генерируется локально. Никаких внешних запросов.
Шаг 3. Верификация сгенерированного кода
Даже локальная модель может сгенерировать опасный код (например, вызвать eval() или обратиться к внешнему серверу). Добавьте в CI/CD автоматическую проверку.
Пример простого скрипта на Python, который ищет подозрительные паттерны:
import re
import sys
SUSPICIOUS = [
r"\.(get
|post|put|delete)\(['\"](http|https)://", # внешние запросы
r"socket\.connect\(",
r"subprocess\.(call
|Popen|run)",
r"eval\s*\(",
r"exec\s*\(",
r"__import__\(",
r"base64\.b64decode", # обфускация
]
def check_file(filepath):
with open(filepath) as f:
code = f.read()
findings = []
for pattern in SUSPICIOUS:
if re.search(pattern, code, re.IGNORECASE):
findings.append(pattern)
return findings
if __name__ == "__main__":
findings = check_file(sys.argv[1])
if findings:
print("⚠️ Найдены подозрительные паттерны:", findings)
sys.exit(1)
else:
print("✅ Код чист")
Мы интегрировали такой скрипт в GitHub Actions. Каждый сгенерированный файл проходит проверку перед коммитом.
Шаг 4. Документирование цепочки происхождения
NSD требует чётко указывать:
- какая модель сгенерировала код (версия, имя, дата);
- какие данные использованы для обучения (необязательно, но полезно);
- параметры запуска (температура, top-p, seed);
- хэш-сумма входящего промпта и выходного результата.
Мы используем простой JSON-логи:
{
"model": "llama3.1:70b",
"provider": "Meta (локально)",
"date": "2026-07-28",
"prompt_hash": "sha256:...",
"output_hash": "sha256:...",
"temperature": 0.7,
"verification_passed": true
}
Эти логи сохраняются вместе с исходным кодом и предоставляются при аудите.
Практический кейс: как мы перестроили пайплайн за две недели
До NSD мы генерировали код для управления квадрокоптером через GPT-4o API. После выхода документа мы:
- Перенесли генерацию на локальный Llama 3.1 70B (потребовалось 2xA100 80GB, но окупилось за счёт отсутствия затрат на API).
- Добавили статический анализатор (описанный выше) — нашли 3 случая, когда модель генерировала вызовы
requests.get()к неизвестному IP. - Провели аудит всех ранее сгенерированных модулей — обнаружили один бэкдор в модуле связи, который отправлял телеметрию на сервер в Гонконге.
- Переписали документацию под требования NSD.
Результат: через месяц мы успешно прошли аудит крупного заказчика из оборонной сферы, который требовал соответствия NSD.
Заключение
National Security Determination — не повод отказываться от vibe coding. Это повод делать его осознанно.
Три главных вывода:
1. Уберите облачные AI-инструменты из недоверенных юрисдикций.
2. Используйте открытые модели с известным датасетом и запускайте их локально.
3. Автоматизируйте проверку кода и документируйте каждый сгенерированный фрагмент.
Vibe coding остаётся мощным методом — скорость разработки вырастает в 3–5 раз. Но теперь мы несём ответственность за то, какой «вибрации» учим наши модели. Пусть она будет на стороне безопасности.
Комментарии