Безопасность
Ответы вашей службе ИБ — до того, как она спросит
Служба безопасности спросит, что именно уходит наружу, кто это видит и что может вернуться обратно. Ниже — ответы по пунктам: что видно в приложении и документации, а что мы подтверждаем письменно в ответе на вашу анкету.
Возражение 01
«Что именно уходит наружу и что вы у себя храните?»
Первый вопрос любой анкеты ИБ. Ответ должен быть коротким и проверяемым.
Копия кода — а токен по вашему выбору
Для работы нужен только код. Ключи, база, персональные данные и доступ в вашу сеть остаются у вас; токен git — по вашему выбору: с коннектором он к нам не попадает.
Уходит к нам
- Копия кода — зеркало только тех репозиториев, которые вы подключили, — целиком, со всей историей изменений: секрет или адрес стенда, когда-либо попавший в коммит, уйдёт вместе с кодом, даже если его потом удалили
- Токен доступа к репозиторию — если работаете без коннектора: с правом записи — чтобы отправить ветку задачи и открыть pull request; хранится зашифрованным
- Ваши задачи и вопросы — то, что вы сами пишете в приложении
Остаётся у вас
- Рабочая база данных и её содержимое
- Ключи, пароли и секреты сервисов
- Персональные данные клиентов вашего продукта — из рабочей базы
- Доступ к серверам, стендам и внутренней сети
- Токен доступа к git — если перенос делает коннектор
← прокрутите схему →
Хранится в России
Зеркала кода, материалы организации, данные пользователей и резервные копии — на серверах в Российской Федерации. Список зеркал и их состояние — в разделе «Репозитории».
Удаляем по запросу за 30 дней
Зеркало кода и все материалы организации — задачи, разборы, исследования — удаляются по письменному запросу владельца в течение 30 дней, из резервных копий — в течение 90. Подтверждаем письменно.
После расторжения — сами
Материалы, которые вы не запросили удалить, удаляются через 90 дней после расторжения договора, из резервных копий — в течение следующих 90. Сроки — в политике и соглашении.
Возражение 02
«Чтобы забрать код, вам нужен токен с доступом к нашему git?»
Токен с правами на репозитории — самый чувствительный секрет в этой схеме. Есть два способа, и в одном из них токен к нам не попадает вообще.
Токен может остаться в вашей сети
Коннектор — небольшой агент, который вы запускаете у себя. Он только звонит наружу, трогает ваш git по задаче и переносит репозитории к нам и pull request обратно; токен доступа остаётся на агенте. Привязка — одноразовым кодом, который живёт 15 минут. Работает как с серверами в вашей сети, так и с облачными GitHub, GitLab и Bitbucket — и для них токен можно не отдавать нам вовсе.
← прокрутите кадр →
Если токен всё же передаёте
Нужен токен с правом записи в этот репозиторий — 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
«Кто внутри сервиса видит наш код?»
Изоляция между клиентами и права внутри команды — то, что ИБ проверяет следом.
Ваша организация, ваши роли, ваш вход
У каждой организации отдельное пространство: данные и трафик не пересекаются с другими. Внутри организации доступ раздаёт владелец — по ролям и по каждому репозиторию отдельно.
Единый вход через ваш провайдер
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 — ответим письменно, по пунктам, со ссылками на документацию. А начать знакомство можно без единого изменения в коде: подключите репозиторий и задайте вопрос о своём проекте.
Юрлицам и ИП — оплата переводом по реквизитам и закрывающие документы