The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

09.04.2018 11:35  Инцидент в сервисе непрерывной интеграции Travis CI

Разработчики сервиса непрерывной интеграции Travis CI раскрыли сведения об инциденте с повреждением инфраструктуры проекта 13 марта, в результате которого случайно была инициирована операция удаления всех таблиц из СУБД. В течение 30 минут после удаления сервис оставался доступен с повреждёнными данными, после чего был отключен на пять с половиной часов для проведения восстановления.

После восстановления всплыл неожиданный эффект - пользователи которые подключились к сервису за те 30 минут, что база оставалась повреждена, оказались подключенными под совсем другими аккаунтами. Подобный эффект объясняется тем, что для пользователей, которые вошли при пустой БД, были созданы новые записи и первичные ключи (данные в Travis CI синхронизируются с GitHub).

После восстановления новые токены аутентификации не были очищены и стали указывать на совсем другие записи (в PosgreSQL идентификатор последовательности (sequences) не был сброшен и созданные при пустой базе записи стали указывать на новые записи, созданные после восстановления). После того как проблема была замечена, разработчики Travis CI примерно через сутки после очистки БД удалили проблемные токены. По логу всего один пользователь успел подключиться к чужим данным. Тем не менее, всем пользователям, для которых было обнаружено пересечение, было направлено уведомление с предложением сгенерировать новые токены доступа.

Что касается причины удаления всех данных, то она кроется в давно забытом сеансе tmux на одной из рабочих машин проекта - когда-то давно один из разработчиков выполнял в данном сеансе инспектирование основной базы и оставил выставленной переменную окружения DATABASE_URL, указывающую на первичную БД. Много дней спустя разработчик в том же сеансе запустил локальный тест, в котором вызывался скрипт Database Cleaner, производящий очистку всех таблиц пред генерацией тестовой нагрузки. Так как переменная окружения DATABASE_URL указывала на основную СУБД, то и очистка была запущена в контексте первичной БД.

Для того чтобы подобное не повторилось в будущем в БД было отозвано право очистки таблиц. Во внутренние скрипты добавлен обработчик (spec_helpers), проверяющий наличие переменной окружения DATABASE_URL, а в утилитах обеспечен вывод соответствующего предупреждения. В gem-пакет Database Cleaner добавлена проверка на наличие переменной DATABASE_URL.

  1. Главная ссылка к новости (https://blog.travis-ci.com/201...)
  2. OpenNews: Инцидент с СУБД проекта GitLab
  3. OpenNews: Инфраструктура проекта Jenkins, возможно, подверглась взлому
  4. OpenNews: Критическая уязвимость в системе непрерывной интеграции Jenkins
  5. OpenNews: Серия уязвимостей в системе непрерывной интеграции Jenkins
  6. OpenNews: Атакующие заработали 3.3 млн долларов, организовав майнинг на уязвимых серверах Jenkins
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: travis, github
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 11:59, 09/04/2018 [ответить] [смотреть все]    [к модератору]
  • +18 +/
    Красивая история :) Бывает когда нажмёшь энтер и через секунду мозг понимает что ты допустим в правилах фаервола допустил ошибку а уже придётся ехать :)
     
     
  • 2.7, myhand, 12:36, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]
  • +/
    iptables-apply в Debian уже десятилетие, наверное, но мозги продолжают ехать...
     
     
  • 3.8, Аноним, 12:45, 09/04/2018 [^] [ответить] [смотреть все]    [к модератору]
  • +6 +/
    Он написал "допустим", так что ..
     
  • 2.10, Еще анон, 12:57, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]
  • +3 +/
    Причем, не просто ехать, а вот прям быстро-быстро ехать, пока звонки не начались... весь текст скрыт [показать] [показать ветку]
     
  • 2.15, Вы забыли заполнить поле Name, 13:14, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –5 +/
    Скорее очередная грустная история о хиптсерах, которые не могу настроить разгран... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.23, ананим.orig, 16:04, 09/04/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +3 +/
    да-да, нужно позвать эффектного манагера.
     
  • 2.19, Anon123, 13:54, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +21 +/
    Народная примета: удалённая настройка фаервола - к дороге.
     
  • 2.25, kleem_head, 16:58, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • –1 +/
    это когда в правой панеле mc выделенные файлы ненужного бэкапа, а в правой - выд... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.26, kleem_head, 16:59, 09/04/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    в левой и правой, попутался от остроты вспомненного
     
  • 2.27, Fomalhaut, 17:07, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +2 +/
    Нередко осознание приходит уже в процессе полёта пальца к кнопке, но сознание уж... весь текст скрыт [показать] [показать ветку]
     
  • 2.29, KonstantinB, 17:34, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +2 +/
    Купите IP-KVM или настройте аварийный PXE boot Хотя, может, вам ездить проще Н... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.30, klalafuda, 17:41, 09/04/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    Ну если вы в Нижнем Уренгое а датацентр в Ларнаке... Может и не все так плохо
     
     
  • 4.42, Аноним, 07:56, 10/04/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Нижний Уренгой? O_o
     
  • 2.55, Аноним, 01:16, 11/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Я себе в таких случаях делаю watchdog timer Запускается нечто, что ожидает по... весь текст скрыт [показать] [показать ветку]
     
  • 1.2, Аноним, 12:02, 09/04/2018 [ответить] [смотреть все]    [к модератору]  
  • +4 +/
    DATABASE_URL указывала на основную СУБД (смех нельсона)
     
  • 1.3, Аноним, 12:16, 09/04/2018 [ответить] [смотреть все]    [к модератору]  
  • +1 +/
    "бывает"
     
     
  • 2.5, rshadow, 12:32, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    Не хватает на опеннете стикеров, да?
     
  • 1.6, Gremlin, 12:32, 09/04/2018 [ответить] [смотреть все]    [к модератору]  
  • +2 +/
    Никогда не понимал все эти сервисы непрерывной интеграции. Зачем это? Интеграция ради интеграции? А когда же отдыхать?
     
     
  • 2.9, Аноним, 12:52, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +5 +/
    Серьезно Непонятно зачем автоматизировать то, что можно автоматизировать Хотя ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.14, пох, 13:13, 09/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –6 +/
    это вы CT описали А travis это все же больше к CI, и там выгоды от автоматизац... весь текст скрыт [показать]
     
  • 2.11, llolik, 12:58, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +2 +/
    Чего там не понимать-то Если совсем упрощённо - это автомат, который работает п... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.31, klalafuda, 17:44, 09/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +2 +/
    Это хорошо можно прочувствовать только если проект собирается прогоняется под N ... весь текст скрыт [показать]
     
  • 2.13, myhand, 13:12, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Ага А писание рукой не путать с рукоблудием , причем православными школьными... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.40, Michael Shigorin, 23:30, 09/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    А уж когда лекцию наговаривают, не особо тормозя на поворотах как у нас в лицее... весь текст скрыт [показать]
     
     
  • 4.44, myhand, 12:14, 10/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    Ну раз за пару - смело увольняйте умников , которые каждый раз заново наговари... весь текст скрыт [показать]
     
  • 2.17, anonymous, 13:26, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +3 +/
    Если ты не понимаешь, зачем тебе CI, тогда тебе она не нужна Ты не программист ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.20, Аноним, 14:05, 09/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Наверное он не понимает, как можно доверять важные вещи какому-то мутному подели... весь текст скрыт [показать]
     
     
  • 4.35, Аноним, 19:41, 09/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    да вы поехавшие Какие вещи Доверять Это всего лишь триггер Условие выполн... весь текст скрыт [показать]
     
     
  • 5.36, Аноним, 19:49, 09/04/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    ты новость-то читал?
     
     
  • 6.37, пох, 20:19, 09/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    это уровень понимания кодошлепами и их тимлидами как новостей, так и вообще испо... весь текст скрыт [показать]
     
     
  • 7.46, Аноним, 12:47, 10/04/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    ct? вы хотя бы аббревиатуры расшифровывайте что ли
     
     
  • 8.47, Аноним, 13:12, 10/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Вот да CI знаю, CD знаю, CT 8212 что-то внезапно родившееся в мозге нашего д... весь текст скрыт [показать]
     
  • 6.48, Аноним, 13:15, 10/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Отвал CI на несколько часов разработке не помеха, многие его наверняка вообще не... весь текст скрыт [показать]
     
  • 2.39, Michael Shigorin, 23:27, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Когда дезинтегрируется, а чинить вон тому парню ... весь текст скрыт [показать] [показать ветку]
     
  • 1.16, Аноним, 13:18, 09/04/2018 [ответить] [смотреть все]     [к модератору]  
  • +5 +/
    А я вот всегда если вижу старый терминал -- делаю новый Кто его знает какие там... весь текст скрыт [показать]
     
     
  • 2.43, J.L., 11:59, 10/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    а монитор из спящего включаете по пробелу ентеру или по контролу ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.52, Вы забыли заполнить поле Name, 14:45, 10/04/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    только NumLock, только хардкор
     
  • 1.18, YetAnotherOnanym, 13:28, 09/04/2018 [ответить] [смотреть все]    [к модератору]  
  • +6 +/
    Сеансы - это дефицитнейший ресурс! Их надо сохранять и многократно повторно использовать!
     
  • 1.21, Аноним, 14:07, 09/04/2018 [ответить] [смотреть все]    [к модератору]  
  • +3 +/
    Мда,терминальные окна надо экономить, а то закончатся - придется покупать новые
     
     
  • 2.41, Michael Shigorin, 23:32, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Вот Вы ёрничаете, а у них, поди, терминальные лицензии и так заканчиваются PS ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.45, myhand, 12:17, 10/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • –2 +/
    У них тестовое окружение - на org, который для нищ бродов Максим, ну это дик... весь текст скрыт [показать]
     
  • 1.22, Адекват, 14:40, 09/04/2018 [ответить] [смотреть все]    [к модератору]  
  • –2 +/
    Представил такую ситуацию в гугл - "аккаунты всех пользователей удалены, потому что один из инженеров случайно стер бд с аккаунтами, теперь разобраться кому какие данные принадлежат - невозможно"
     
     
  • 2.24, Аноним, 16:57, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +10 +/
    Восстановят из архивной копии АНБ.
     
     
  • 3.33, АНБ, 18:39, 09/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    это еще зачем Все что вы разболтали в гугле, может быть использовано против вас... весь текст скрыт [показать]
     
  • 2.32, Аноним, 18:29, 09/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +1 +/
    Инженеры гугла могут только скрывать, удалять запрещено решением АНБ Та же ерун... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.34, АНБ, 18:41, 09/04/2018 [^] [ответить] [смотреть все]     [к модератору]  
  • +/
    вот еще Пусть хоть обудаляются - наша копия никуда не денется кстати, забавная... весь текст скрыт [показать]
     
  • 1.38, Аноним, 20:42, 09/04/2018 [ответить] [смотреть все]     [к модератору]  
  • +1 +/
    Какая милая попытка загладить вину ... весь текст скрыт [показать]
     
     
  • 2.49, Аноним, 13:28, 10/04/2018 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]  
  • +/
    Да какая разница, сколько времени эта сессия висела Цимес не в этом, а в том, ч... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.56, zoonman, 01:23, 11/04/2018 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    Вполне себе нормальная ситуация, когда разработчик проверяет, что происходит на прод или запускает какую-либо аналитику для компании.
     
  • 1.57, Аноним, 13:39, 11/04/2018 [ответить] [смотреть все]     [к модератору]  
  • +/
    Никогда не доверял этим конфигурациям через переменные окружения Больные люди э... весь текст скрыт [показать]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor