Перейти к содержанию

🥷 Защита данных⚓︎

Я понимаю, что в GitLab содержится множество конфиденциальной информации, которую не хотелось бы раскрывать. Эта страница пытается ответить на все вопросы, которые могут вас смущать.

Об авторе бота⚓︎

Давайте знакомится. Меня зовут Стручков Марк, я тимлид небольшой команды. В свободное время веду блог и "блокнот." Это приложение в первую очередь должно помогать мне работать, оптимизируя мое взаимодействие с GitLab.

В какой-то момент я решил подлиться своими наработками со всеми желающими. И пытаться кому-то что-то доказать у меня нет желания. Что-то смущает? Не пользуйтесь. В этом весь Open Source.

Вы можете самостоятельно изучить код, он полностью открыт, доступен, и не сложен. После проверки можно самостоятельно собрать jar и упаковать его в Docker. Либо запускать прямо из Idea.

На мой взгляд довольно очевидно, что если бы я преднамеренно замышлял какую-нибудь пакость, то не стал бы делать это от своего имени. Однако некоторые вектора атаки существуют, и я постараюсь описать их на этой странице.

Защита токена GitLab⚓︎

Для работы ассистента необходим персональный токен GitLab. Достаточно токена с правами только на чтение. Он указывается в переменные среды и нигде дополнительно не хранится и не передается. Таким образом токен не попадает в Telegram, никуда не передается, и хранится только у вас на компьютере и в контейнере приложения.

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

А что, если ты украдешь токен?

Я еще раз повторяю, что в мои планы не входит что-то кому-то доказывать. Это open source, детка, изучайте код и позорьте мое честное имя перед сообществом, если что-то найдете.

Задайте себе вопрос: насколько полезен токен от вашего корпоративного self-host гитлаба без подключения к корпоративному VPN.

Уровни конфиденциальности⚓︎

Некоторые уведомления могут содержать множество чувствительной информации. Например, уведомления о новых сообщениях в тредах. Возможно вы не захотите раскрывать столько информации о вашей разработке телеграму, ведь через него идет получение уведомлений. Специально для таких случаев предусмотрены уровни конфиденциальности разных типов уведомлений.

Возьмем для примера уведомление о новом сообщении в треде. При минимальном уровне конфиденциальности вы получите уведомление с текстом комментария и сможете сразу ответить на него в телеграм, а при максимальном уровне конфиденциальности будет сообщаться только о факте нового комментария, без содержания. Все это настраивается при первом запуске.

Сохранение в БД⚓︎

Для работы ассистента ему нужно сохранять предыдущее состояние GitLab сущностей. Для этого используется БД. Приложение старается не хранить в БД больше данных, чем необходимо. Как только необходимость в данных теряется, например MR мержится, данные из БД удаляются.

Прочитать подробнее можно в разделе: Работа с базой данных

Несанкционированный доступ⚓︎

Все боты в Telegram являются публичными. Это значит, что ваш бот может быть найден через поиск в Telegram. Поэтому не рекомендуется давать название боту, которое может раскрыть его предназначение.

Даже если кто-то случайно напишет вашему боту ничего не случится. В боте встроена проверка прав доступа. Вот как она работает:

  1. При запуске вы указываете ваш идентификатор в Telegram. В отличие от логина, идентификатор уникален для каждого пользователя и нет возможности его подменить.
  2. Когда бот получает сообщение, он проверяет идентификатор отправителя
  3. Если идентификатор отправителя не совпадает с указанным при запуске, бот не обрабатывает команду
  4. Вы получаете уведомление о том, что такой-то пользователь пытался написать в ваш бот. Вам доступен логин этого пользователя в Telegram, а также текст его сообщения. Это поможет понять является ли попытка доступа злонамеренной и принять меры.

unauth-access.png

уведомление о несанкционированном доступе

Для злоумышленника все выглядит так, как будто бот не работает. Никаких ответных сообщений ему не отправляется.

Взлом Telegram⚓︎

Если ваш Telegram аккаунт взломают, то взломщику станет доступна вся переписка с ботом. Поэтому рекомендую нажимать на быстрое действие о просмотре сообщения (👀), а также периодически удалять историю переписки.

Комментарии