Аудит OpenCode 2.0: Скрытые подключения к 7 доменам в локальном AI | AiManual
AiManual Logo Ai / Manual.
24 Мар 2026 Инструмент

Аудит OpenCode: как в «локальном» AI-инструменте нашли скрытые подключения к 7 внешним доменам

Подробный разбор аудита исходного кода OpenCode на 24.03.2026: нашли скрытые запросы к 7 внешним доменам, хотя он позиционируется как локальный инструмент. Риск

Локальный? Не смешите мои сканеры портов

OpenCode версии 2.1.4 (последний стабильный релиз на март 2026-го) рекламировался как "полностью офлайн-инструмент для генерации кода на базе Llama 3.3 405B". Скачал, запустил, вроде работает без интернета. Но когда команда энтузиастов из SecurityCodeAudit залезла в исходники, они нашли не просто пару служебных вызовов доменам типа api.openai.com. Они нашли целую сеть из семи внешних точек, куда инструмент тихо стучится, даже когда вы явно указали флаг --local-only.

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

Что стучится в темноте: семь доменов из кода

Аудит провели старым добрым методом: grep по репозиторию на GitHub. Искали строки с "http://", "https://", "fetch", "axios" и домены. Нашли в папке /src/utils/telemetry.js и /src/services/license_check.py. Вот что вылезло наружу:

ДоменНазначение (из кода)Что передается
telemetry.opencode-tools.netСбор анонимной статистикиХэш имени модели, время сессии, кол-во сгенерированных строк
license.verify.opencode.aiПроверка лицензии (даже для бесплатной версии)MAC-адрес, хэш имени пользователя ОС
update-check.v2.opencode.devПроверка обновленийВерсия приложения, тип ОС
crash-reports.opensourcecollective.orgОтправка отчетов об ошибкахТрейсбэк, фрагмент кода, вызвавший сбой
model-metrics.llama-index.proСбор метрик качества моделиПримеры промптов и ответов (хэшированные)
community-feeds.ai-tools.spaceЗагрузка "полезных" примеров промптовНичего не передает, только получает данные
geoip.proxy-provider.comОпределение региона для "оптимизации"Внешний IP-адрес машины

Самое забавное: в конфиге есть опция disable_telemetry: true. Она отключает только первый домен. Остальные шесть продолжают работать. (Разработчики, вы серьезно?)

💡
Если вы уже сталкивались с похожей проблемой в других инструментах, вам будет полезно наше исследование про настройку true local режима в OpenCode. Там есть рабочие методы блокировки этих вызовов на уровне фаервола.

Зачем это все? Объяснение от самих разработчиков

Когда аудиторы создали issue в репозитории, ответ пришел через два дня. Мол, это все для "улучшения пользовательского опыта". Проверка лицензии — чтобы бороться с пиратством. Сбор метрик — чтобы понять, какие модели лучше работают. Геолокация — чтобы предлагать локализованные советы.

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

Напоминаем: даже если данные "анонимны", комбинация MAC-адреса, хэша имени пользователя и внешнего IP позволяет идентифицировать машину с высокой точностью. В свете последних скандалов, например, со скрытой телеметрией в Claude Code, это серьезный риск для конфиденциальности.

Что делать, если вам нужна настоящая локальность?

Варианта два. Первый — патчить OpenCode самостоятельно. В PR #487 (от 15.03.2026) уже предложили набор патчей, которые отключают все внешние вызовы. Но это требует времени.

Второй вариант — посмотреть на альтернативы, которые изначально создавались с параноидальным подходом к конфиденциальности.

  • Open Cowork — написан на Rust, не имеет никаких внешних зависимостей кроме загрузки моделей. Код на 100% прозрачен.
  • Ollama + локальные модели — классика, но для генерации кода нужно искать специализированные модели типа DeepSeek-Coder-V2-Lite, которые по размеру помещаются на жесткий диск.
  • Старый добрый Whisper + Ollama подход, но адаптированный для кода. Есть скрипты, которые связывают локальную LLM с вашим редактором через API.

Если вы работаете с чувствительными проектами (финансы, госсектор, healthcare), даже мысли об отправке хэшированных промптов на сторонний сервер должны вызывать панику. Помните про недавнюю RCE-уязвимость в OpenCode? Это была только разминка.

Итог: кому теперь можно доверять OpenCode?

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

Если вы разработчик в компании, где есть compliance-отдел или параноидальный CISO — бегите. Или стройте изолированный стенд с жестким фаерволом, который блокирует все исходящие соединения, кроме белого списка.

Мораль проста: в 2026 году слово "локальный" в описании AI-инструмента значит не больше, чем "эко" на бутылке воды. Всегда проверяйте исходный код. Или используйте инструменты, которые прошли независимый аудит — как те, что мы разбирали в руководстве по AI Red Teaming.

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

Подписаться на канал