Способы блокировки путей утечки исходного кода через AI-инструменты в локальном терминале
TuBrief 편집팀
2026년 7월 16일
0
Computing/Software원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.
커뮤니티의 다른 글
댓글 (0)
Log in to leave a comment
아직 작성된 글이 없습니다
원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.
Log in to leave a comment
아직 작성된 글이 없습니다
AI-агенты, повышающие продуктивность бэкенд-разработчиков, сегодня на пике популярности. Хотя это удобно, принцип их работы предполагает сканирование всей нашей локальной кодовой базы и отправку её на внешние серверы. Многие стартапы тратят миллионы на безопасность облачной инфраструктуры, при этом игнорируя исходящий трафик в реальном времени, исходящий с терминалов разработчиков. Стоимость ликвидации последствий инцидента безопасности превышает стоимость его предотвращения в 13 раз. Простого внутреннего объявления с запретом определенных инструментов недостаточно — разработчики найдут способы обойти его. Необходимо выстроить практический защитный барьер, который физически блокирует пути передачи на системном уровне.
AI CLI-инструменты под предлогом индексации тщательно обыскивают локальную файловую систему, а затем пытаются открыть исходящие порты для отправки результатов анализа на внешние серверы. Эти попытки необходимо отслеживать и пресекать непосредственно на уровне ядра ОС. Ниже приведены конкретные настройки для изоляции трафика в средах macOS и Linux.
В macOS мы используем open-source брандмауэр LuLu. LuLu работает как системное расширение (System Extension) и управляет трафиком на уровне ядра, сохраняя правила в /Library/Objective-See/LuLu/rules.plist. С помощью CLI-инструмента lulu-cli мы применяем правила для блокировки внешних соединений несанкционированных AI-инструментов по умолчанию, оставляя доступ только к одобренным корпоративным шлюзам.
`bash
sudo lulu-cli add --key "" --path "" --action block --addr "" --port ""
sudo lulu-cli add --key "/usr/local/bin/ai-agent" --path /usr/local/bin/ai-agent --action allow --addr "api.approved-ai-proxy.com" --port 443
sudo lulu-cli reload
`
При активации этого правила любая попытка отправки кода на неавторизованные внешние домены будет немедленно заблокирована. Это позволит снизить риск несанкционированной утечки интеллектуальной собственности компании.
На Linux-серверах или локальных машинах разработчиков можно использовать модуль owner в iptables для изоляции от сети самой учетной записи, под которой запускаются AI-инструменты.
`bash
sudo iptables -I OUTPUT 1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -I OUTPUT 2 -o lo -j ACCEPT
sudo iptables -I OUTPUT 3 -m owner --uid-owner 1002 -m conntrack --ctstate NEW -j REJECT
`
После выполнения этих настроек внутренняя связь (IPC) AI-агента с локальными базами данных будет работать корректно, а пути для прямой отправки пакетов во внешнюю сеть будут полностью перекрыты.
Многие организации полагаются на .gitignore для предотвращения удаленной передачи данных. Однако это крайне опасное заблуждение. Множество современных интеллектуальных AI-агентов и движков индексации запрограммированы так, чтобы игнорировать настройки локального .gitignore под предлогом понимания структуры сборки проекта. Агенты также могут исполнять стандартные команды оболочки для чтения содержимого файлов с конфиденциальными данными. Именно поэтому необходима глобальная политика исключений, действующая независимо от правил контроля версий.
Создайте файлы .aiignore для JetBrains, .cursorignore для Cursor и .aiderignore для Aider в корневом каталоге проекта, указав в них пути к переменным окружения и ключам, которые необходимо защитить от передачи.
`
/.env
/*.pem
/config/credentials.json
`
Если вы используете среду разработки с Claude Code от Anthropic, необходимо создать файл .claude/settings.json и явно указать настройки permissions.deny, как показано ниже. Это заблокирует попытки агента обойти права доступа к локальным инструментам для чтения информации на этапе выполнения.
`json
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.)",
"Read(.//.pem)",
"Read(./config/credentials.json)",
"Bash(cat .env)",
"Bash(grep -R *)"
]
}
}
`
Необходимо защититься от ситуаций, когда разработчик забывает создать файл исключений в отдельной папке проекта. Добавьте глобальную переменную окружения для игнорирования в глобальный профиль оболочки (~/.zshrc или ~/.bashrc).
`bash
export AIDER_IGNORE="/.env,/.env.,/.pem,/secrets/*,/id_rsa"
`
Принудительный запуск среды разработки внутри контейнеров (Dev Containers), а не на локальном жестком диске хоста, также является крайне надежным методом изоляции.
Согласно анализу платформы безопасности данных Cyberhaven, 11% данных, загружаемых работниками умственного труда во внешние большие языковые модели (LLM), составляют корпоративный исходный код и конфиденциальные документы. Нельзя полагаться только на бдительность разработчиков. Перед выполнением локального коммита необходимо развернуть автоматизированные скрипты проверки, которые анализируют конфигурацию среды разработки и отменяют коммит, если требования безопасности не соблюдены.
Разместите приведенный ниже Bash-скрипт по пути .git/hooks/pre-commit в проекте. Он автоматически проверит, отключена ли передача телеметрии в VS Code и существуют ли необходимые файлы ignore.
`bash
#!/usr/bin/env bash
set -euo pipefail
EXIT_CODE=0
PROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
echo "=== [STAGE 1] Проверка отключения телеметрии AI-инструментов ==="
VSCODE_SETTINGS="{VSCODE_SETTINGS}" ]; then
TELEMETRY_LEVEL={VSCODE_SETTINGS}" | cut -d'"' -f4 || true)
if [ "${TELEMETRY_LEVEL}" != "off" ]; then
echo "[ERROR] В файле ${VSCODE_SETTINGS} отсутствует настройка отключения телеметрии (off)."
EXIT_CODE=1
fi
fi
echo "=== [STAGE 2] Проверка наличия обязательных файлов исключений AI ==="
REQUIRED_IGNORES=(".cursorignore" ".aiderignore" ".aiignore")
for ignore_file in "{PROJECT_ROOT}/${ignore_file}" ]; then
echo "[ERROR] В корне проекта отсутствует обязательный фильтр исключений ${ignore_file}, существует риск утечки."
EXIT_CODE=1
fi
done
if [ ${EXIT_CODE} -eq 0 ]; then
echo "[SUCCESS] Все требования к конфигурации локальной AI-безопасности выполнены."
else
echo "[FAIL] Обнаружены настройки, не соответствующие внутренним правилам безопасности разработки."
fi
exit ${EXIT_CODE}
`
Этот скрипт «аварийного выключателя» предназначен для экстренных ситуаций, когда на машине разработчика фиксируется аномально большой объем исходящего трафика. Он немедленно разрывает локальные соединения и уничтожает запущенные демоны AI-агентов через сигнал 9.
`bash
#!/usr/bin/env bash
set -euo pipefail
echo "[CRITICAL ALERT] Аномальный трафик на локальном узле разработки. Изоляция сети."
if command -v lulu-cli &> /dev/null; then
sudo lulu-cli add --key "" --path "" --action block --addr "" --port ""
sudo lulu-cli reload
echo "[STATUS] Брандмауэр macOS LuLu переведен в режим глобальной блокировки исходящего трафика."
elif command -v iptables &> /dev/null; then
sudo iptables -P OUTPUT DROP
sudo iptables -F OUTPUT
echo "[STATUS] Политика исходящего трафика Linux iptables установлена в DROP."
fi
pkill -9 -f "cursor" || true
pkill -9 -f "aider" || true
pkill -9 -f "claude" || true
echo "[COMPLETE] Факторы угрозы на локальном хосте изолированы."
`
Внедрение такого уровня проверки в общекорпоративную инфраструктуру разработки позволяет сократить административные ресурсы, затрачиваемые на индивидуальный контроль и наблюдение за разработчиками, более чем на 80%.
На практике утечки активов компаний происходят чаще из-за мелких ошибок сотрудников, чем из-за изощренных технологий хакеров. Например, весной 2023 года инженеры подразделения Device Solutions (DS) компании Samsung Electronics ввели логи проектирования оборудования и базы данных напрямую в чат ChatGPT, из-за чего коммерческая тайна попала на внешние серверы. Впоследствии многие крупные компании полностью запретили использование AI, однако это лишь усилило феномен «Shadow AI» (теневого ИИ), когда разработчики стали тайно использовать ИИ на личных компьютерах или через недоступные для отслеживания пути. В конечном итоге, в июне 2026 года Samsung Electronics создала собственную инфраструктуру безопасности AI стоимостью 500 млрд вон, предоставив безопасную среду с маскированием входных данных, тем самым легализовав использование ИИ, ранее находившееся в «тени».
Для стартапов также гораздо более реалистично установить дифференцированные стандарты контроля в зависимости от характера данных, чем просто всё запрещать.
| Класс данных | Пример данных | Регламент передачи на AI-инструменты | Необходимые меры |
|---|---|---|---|
| Класс 1 (Совершенно секретно) | Корневой пароль БД, приватный ключ PEM, закрытые алгоритмы бизнеса | Полный запрет передачи во внешние AI-промпты и индексацию | Блокировка локальным брандмауэром и регистрация папок в глобальных файлах игнорирования |
| Класс 2 (Секретно) | YAML-файлы конфигурации для развертывания, информация об API-эндпоинтах для внутреннего тестирования | Ограниченное разрешение только для обезличенных фрагментов кода через одобренный корпоративный шлюз | Выполнение команды очистки памяти терминальной оболочки после завершения работы |
| Класс 3 (Общие) | Простые алгоритмы сортировки, утилиты-обертки над open-source библиотеками, UI-разметка | Свободное использование внутри лицензированных корпоративных инструментов | Сохранение настроек полного отключения телеметрии в редакторе |
Если, несмотря на превентивные меры, вы обнаружили факт утечки учетных данных или ключевого кода, необходимо без промедления приступить к восстановлению согласно протоколу.