Безопасность

Ответы вашей службе ИБ — до того, как она спросит

Служба безопасности спросит, что именно уходит наружу, кто это видит и что может вернуться обратно. Ниже — ответы по пунктам: что видно в приложении и документации, а что мы подтверждаем письменно в ответе на вашу анкету.

Подключить репозиторий Что уходит наружуАнкету вашей службы ИБ принимаем на info@buff.systems — ответим по пунктам
1вещь нужна для работы — копия кода; ключи, база и доступ в вашу сеть не нужны
0доступов внутрь вашей сети: с git за фаерволом работает коннектор — агент у вас
AES-256токен репозитория хранится зашифрованным и в интерфейсе не показывается
PRединственный путь изменений в ваш репозиторий: новая ветка задачи и pull request — только после вашего решения

Возражение 01

«Что именно уходит наружу и что вы у себя храните?»

Первый вопрос любой анкеты ИБ. Ответ должен быть коротким и проверяемым.

Копия кода — а токен по вашему выбору

Для работы нужен только код. Ключи, база, персональные данные и доступ в вашу сеть остаются у вас; токен git — по вашему выбору: с коннектором он к нам не попадает.

Уходит к нам

  • Копия кодазеркало только тех репозиториев, которые вы подключили, — целиком, со всей историей изменений: секрет или адрес стенда, когда-либо попавший в коммит, уйдёт вместе с кодом, даже если его потом удалили
  • Токен доступа к репозиториюесли работаете без коннектора: с правом записи — чтобы отправить ветку задачи и открыть pull request; хранится зашифрованным
  • Ваши задачи и вопросыто, что вы сами пишете в приложении

Остаётся у вас

  • Рабочая база данных и её содержимое
  • Ключи, пароли и секреты сервисов
  • Персональные данные клиентов вашего продукта — из рабочей базы
  • Доступ к серверам, стендам и внутренней сети
  • Токен доступа к git — если перенос делает коннектор
ВАША СЕТЬисходный gitрабочая базаключи и паролисерверыперсональные данныеваши стендывсё это остаётся у васкопия кодаBuffсреды, тесты, проверка — здесьтолько вашим решением

← прокрутите схему →

Хранится в России

Зеркала кода, материалы организации, данные пользователей и резервные копии — на серверах в Российской Федерации. Список зеркал и их состояние — в разделе «Репозитории».

Удаляем по запросу за 30 дней

Зеркало кода и все материалы организации — задачи, разборы, исследования — удаляются по письменному запросу владельца в течение 30 дней, из резервных копий — в течение 90. Подтверждаем письменно.

После расторжения — сами

Материалы, которые вы не запросили удалить, удаляются через 90 дней после расторжения договора, из резервных копий — в течение следующих 90. Сроки — в политике и соглашении.

Возражение 02

«Чтобы забрать код, вам нужен токен с доступом к нашему git?»

Токен с правами на репозитории — самый чувствительный секрет в этой схеме. Есть два способа, и в одном из них токен к нам не попадает вообще.

Токен может остаться в вашей сети

Коннектор — небольшой агент, который вы запускаете у себя. Он только звонит наружу, трогает ваш git по задаче и переносит репозитории к нам и pull request обратно; токен доступа остаётся на агенте. Привязка — одноразовым кодом, который живёт 15 минут. Работает как с серверами в вашей сети, так и с облачными GitHub, GitLab и Bitbucket — и для них токен можно не отдавать нам вовсе.

Коннекторы

← прокрутите кадр →

Всё, что мы видим о самом агенте, — на этом экране: имя, тип вашего git, разрешённые репозитории, статус «есть доступ / нет», версия и время последнего контакта. Отзыв — одной кнопкой, необратимо.

Если токен всё же передаёте

Нужен токен с правом записи в этот репозиторий — push и создание pull request (в GitLab — роль не ниже Developer и scope write_repository); права администратора, доступ к другим репозиториям и настройкам не нужны. Токен личный: его добавляет тот, кто одобряет изменения, и pull request в вашем git открывается от имени владельца токена. Основную ветку защитите правилами веток у себя.

Как хранится токен

Зашифрованным (AES-256-GCM), ключ — отдельно от базы. В интерфейсе не показывается, расшифровывается только в момент работы с вашим репозиторием.

Интеграции с вашими системами — по тем же правилам

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

Возражение 03

«Что попадает обратно в наш репозиторий и кто это решает?»

Автоматика, которая пишет в основную ветку, — то, чего ИБ боится больше всего. Здесь её нет.

Обратно — только pull request, и только после вашего решения

Обратный путь один: pull request после решения «Одобрить». Что это значит на практике — ниже.

Синхронизация односторонняя

Изменения из вашего репозитория подтягиваются к нам по вашей команде. В обратную сторону сама синхронизация ничего не пишет.

Существующие ветки не меняются

Изменение приходит отдельной новой веткой задачи вместе с pull request. Ваши существующие ветки, включая основную, не трогаются.

Слияние делаете вы

Мы pull request не сливаем — решение о слиянии остаётся за вашим инженером.

Без решения ничего не уходит

Нельзя одобрить с открытыми замечаниями. Отправка на доработку перезапускает работу, а не публикует.

Замечания перед решением
Замечания со статусами: пока есть открытые, решение «Одобрить» заблокировано.

Возражение 04

«Где обрабатывается наш код и какие модели его видят?»

Вопрос, на который часто отвечают уклончиво. Мы отвечаем по тарифам.

Где работает ИИ, определяет тариф — и выбираете его вы

Данные клиентов мы для обучения не используем ни на одном тарифе. Нужна гарантия в российской юрисдикции — выделенные мощности в РФ или индивидуальный сетап; ограничен бюджет — выделенные мощности вне РФ. Ниже — по каждому тарифу: где работает модель и уходит ли код стороннему провайдеру; условия по обучению и по хранению запросов у провайдеров подтверждаем письменно в ответе на вашу анкету.

Через провайдера моделей

Тарифы «OpenRouter (Сбалансированные модели)» и «OpenRouter (свой выбор модели)»: код, ваши задачи и вопросы уходят через OpenRouter моделям, размещённым у сторонних провайдеров. Провайдеров и модели отбираем только с признаком «не обучается на запросах» — в том числе когда модель выбираете вы.

Выделенные мощности вне РФ

Отдельная машина под вашу организацию за пределами российской юрисдикции: код не уходит провайдеру моделей. Машина не открывает наружу ни одного порта — к модели снаружи не подключиться. Кому принадлежит машина и кто имеет к ней доступ — подтверждаем письменно в ответе на вашу анкету.

Выделенные мощности в РФ

То же, но в российской юрисдикции и под NDA: гарантия, что код не уходит стороннему провайдеру моделей и не используется для обучения, действует в российском правовом поле. Подключается по заявке, условия обсуждаются индивидуально.

Индивидуальный сетап

Отдельный контур под вашу компанию с доступом через VPN: код не уходит стороннему провайдеру моделей и не используется для обучения — та же гарантия, что на выделенных мощностях в РФ. Подписываем NDA. Условия обсуждаются индивидуально.

Возражение 05

«Где выполняются код и тесты? Исполнители не утащат лишнего?»

Автономный исполнитель с широкими правами — сам по себе риск. Поэтому прав у него нет.

Каждая задача — в своей среде, без ключей и без вашей базы

Среда создаётся под задачу и удаляется после неё. Исполнители работают вне вашей сети и не имеют доступов к вашей инфраструктуре.

Своя среда под каждую задачу

Одна задача не видит среду другой; после завершения от среды ничего не остаётся.

Исполнители вне вашей сети

Ни паролей, ни ключей, ни адресов стендов у них нет. Запустить их со снятыми ограничениями нельзя.

Тесты без вашей базы

Данные для тестов создаются по структуре базы, а не копируются из рабочей.

Возражение 06

«Кто внутри сервиса видит наш код?»

Изоляция между клиентами и права внутри команды — то, что ИБ проверяет следом.

Ваша организация, ваши роли, ваш вход

У каждой организации отдельное пространство: данные и трафик не пересекаются с другими. Внутри организации доступ раздаёт владелец — по ролям и по каждому репозиторию отдельно.

2 роливладелец и участник организации; приглашает, повышает и удаляет — владелец
2 праваMaintainer или Contributor — выдаются отдельно на каждый репозиторий
2 факторавход подтверждается кодом на почту — или проходит через ваш корпоративный SSO (OIDC / SAML 2.0)

Единый вход через ваш провайдер

OIDC или SAML 2.0: Keycloak, AD FS, Entra ID, Avanpost и любой другой. Настраивает владелец сам; аккаунты создаются при первом входе с нужной ролью, вход по паролю участникам можно закрыть. Пароли сотрудников не покидают вашу компанию.

Журнал аудита — у вас, а не по запросу

Кто вошёл и откуда, кто изменил права, отправил задачу, одобрил публикацию, что сделал пайплайн и что сделали мы с вашей организацией — включая отказы. Записи не редактируются, связаны хэшами, выгружаются целиком в CSV и JSON Lines. Читает владелец; офицеру безопасности выдаётся отдельное право.

Сотрудники Buff не заходят в ваш код

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

Участники и доступ

← прокрутите кадр →

Роли участников и доступ к репозиториям — в одном окне у владельца организации.
Роли и доступ в документации

Возражение 07

«Что вы не обещаете?»

Анкета ИБ ценит честное «нет» больше, чем размытое «да».

Говорим прямо о том, чего нет

Три вещи, о которых лучше знать до разговора со службой безопасности, а не после.

Это облачный сервис

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

Через OpenRouter код видят сторонние модели

На обоих тарифах через OpenRouter код, задачи и вопросы обрабатывают модели у сторонних провайдеров. Как это ограничено.

NDA — не на всех тарифах

На обоих тарифах через OpenRouter и на выделенных мощностях вне РФ — договор с юрлицом, отдельный NDA не подписываем. NDA — только при индивидуальном сетапе и выделенных мощностях в РФ.

Безопасность в документации

Вопросы службы ИБ

Что спрашивают дальше

Как отозвать доступ?

Токен репозитория удаляется в настройках приложения; отзовите его и у себя в GitHub, GitLab, Bitbucket или Gitea — это надёжнее любой кнопки у нас. Коннектор отзывается кнопкой «Отозвать»: доступ прекращается сразу, вернуть агент можно только новой привязкой; при удалении агента удалите и его конфиг, и каталог состояния — там лежат токен git и ключ агента. Копия кода при этом у нас остаётся — удаляем её безвозвратно по письменному запросу владельца организации в течение 30 дней, из резервных копий — в течение 90.

Где хранятся данные и кто к ним имеет доступ?

Зеркала кода, материалы организации и данные пользователей — на серверах в Российской Федерации; через провайдера моделей и на арендованные машины уходят код (включая историю изменений с именами и адресами авторов), задачи, вопросы, исследования и вложения к ним, а также идентификатор организации и название проекта в путях к коду — на время работы. Доступ сотрудников к материалам без вашего обращения не предоставляется, кроме случаев из пункта 8.5 соглашения — технические операции без просмотра содержимого, разбор инцидента и требования закона. Подробно — в политике обработки персональных данных.

Сотрудник ушёл из компании. Что делать?

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

Есть ли единый вход через наш корпоративный провайдер?

Да. Владелец организации подключает провайдер по OIDC или SAML 2.0 — Keycloak, AD FS, Entra ID, Avanpost и другие — сам, в настройках, за несколько минут. Пароли сотрудников остаются у вас, аккаунты создаются при первом входе с нужной ролью, вход по паролю участникам можно закрыть. Уволенный сотрудник, отключённый в провайдере, новую сессию не откроет.

Можно ли получить журнал действий для нашей службы безопасности?

Он у вас уже есть — в настройках организации, раздел «Журнал аудита»: кто, когда, откуда и что сделал, включая отказы во входе и в действиях без права. Выгружается в CSV и JSON Lines целиком, без ограничений по глубине; записи не редактируются и связаны хэшами, целостность проверяется кнопкой или вашим скриптом. Ничего запрашивать у нас не нужно; офицеру безопасности можно выдать отдельное право на журнал, не делая его владельцем.

Как убедиться, что скачанный агент подлинный?

Перед установкой проверьте контрольную сумму и подпись агента — порядок описан в документации, раздел «Коннектор → Установка».

Анкета ИБ

Проверьте нас своей анкетой

Пришлите вопросы вашей службы безопасности на info@buff.systems — ответим письменно, по пунктам, со ссылками на документацию. А начать знакомство можно без единого изменения в коде: подключите репозиторий и задайте вопрос о своём проекте.

Юрлицам и ИП — оплата переводом по реквизитам и закрывающие документы