Открыть сервис

Атака на GitHub

Атака на GitHub — это серия распределённых атак типа «отказ в обслуживании» (DDoS-атака), совершённая на платформу для хостинга IT-проектов и совместной разработки GitHub в феврале — марте 2015 года. Атака стала одной из крупнейших в истории интернета на тот момент, достигнув пиковой мощности в 1,35 терабита в секунду (Тбит/с). Она была направлена на серверы GitHub, расположенные в дата-центре компании Equinix в Ашберне (штат Виргиния, США), и привела к частичной недоступности сервиса для пользователей по всему миру на протяжении нескольких часов.

Предпосылки и контекст

GitHub — крупнейший веб-сервис для хранения и управления версиями программного кода, использующий систему контроля версий Git. На момент атаки платформа насчитывала более 10 миллионов пользователей и была критически важной инфраструктурой для разработчиков по всему миру, включая крупные корпорации (Microsoft, Google, Facebook — организация признана экстремистской и запрещена в РФ) и открытые проекты (Linux, jQuery, Ruby on Rails).

Атака произошла на фоне роста числа DDoS-атак с использованием техники усиления трафика (amplification attack). В 2014 году были зафиксированы атаки мощностью до 400 Гбит/с, однако инцидент на GitHub значительно превзошёл эти показатели, продемонстрировав уязвимость даже крупных, хорошо защищённых платформ.

Хронология событий

Первая волна (28 февраля 2015 года)

Атака началась в субботу, 28 февраля 2015 года, около 18:00 по московскому времени (15:00 UTC). Первоначально трафик был направлен на серверы GitHub через протокол ICMP (ping-флуд), но быстро переключился на более эффективный метод — усиление через протокол NTP (Network Time Protocol). Злоумышленники использовали уязвимость в команде monlist серверов NTP, которая позволяла отправлять запрос небольшого размера (до 64 байт) и получать ответ объёмом до 1000 раз больше (до 68 килобайт). Это создавало эффект «усиления» (amplification factor), многократно увеличивая мощность атаки.

Пиковая мощность первой волны составила около 1,35 Тбит/с. Трафик генерировался с тысяч скомпрометированных серверов NTP по всему миру, которые были предварительно взломаны или настроены злоумышленниками для рефлексии. GitHub зафиксировал, что атака длилась примерно 2 часа 30 минут, после чего трафик начал спадать. В это время сервис был частично недоступен: пользователи не могли загружать репозитории, открывать pull-запросы или просматривать код.

Вторая волна (1 марта 2015 года)

На следующий день, 1 марта, около 14:00 UTC, атака возобновилась. На этот раз мощность была ниже — около 1,2 Тбит/с, но продолжительность составила около 4 часов. Злоумышленники использовали те же методы усиления через NTP, но с изменённой конфигурацией атакующих серверов. GitHub снова применил фильтрацию трафика на уровне провайдера (Equinix) и собственные системы защиты, что позволило частично смягчить последствия.

Третья волна (2 марта 2015 года)

Третья волна атаки произошла 2 марта. Она была менее мощной (около 800 Гбит/с), но более длительной — около 5 часов. К этому моменту GitHub уже подключил дополнительную защиту от DDoS-атак через сервис Cloudflare (компания зарегистрирована в США, не признана нежелательной в РФ), который предоставил фильтрацию трафика на уровне DNS и HTTP. Это позволило полностью отразить атаку и восстановить доступность сервиса для всех пользователей.

Технические детали атаки

Метод усиления через NTP

Основным инструментом атаки стала техника усиления трафика через протокол NTP (Network Time Protocol). Злоумышленники отправляли запросы с поддельным IP-адресом (спуфинг) на уязвимые серверы NTP, которые отвечали на адрес жертвы (GitHub) объёмным ответом. Команда monlist (или MON_GETLIST) возвращала список последних 600 клиентов, подключавшихся к серверу, что создавало ответ в десятки раз больше запроса.

Используемые серверы

Для атаки были задействованы тысячи серверов NTP, которые были предварительно взломаны или настроены без ограничения доступа к команде monlist. По данным GitHub, около 80% трафика генерировалось с серверов, расположенных в Китае, США, Германии и России. Однако точное количество атакующих машин не раскрывалось.

Распределение трафика

Трафик был равномерно распределён по всем IP-адресам GitHub, что затрудняло фильтрацию на основе блокировки отдельных подсетей. Атака использовала протокол UDP, который не требует установления соединения, что делало её сложной для обнаружения на ранних этапах.

Реакция и последствия

Действия GitHub

GitHub оперативно отреагировал на атаку, опубликовав в своём блоге детальный отчёт о происшествии 2 марта 2015 года. Команда инженеров платформы совместно с провайдером Equinix и сервисом Cloudflare (компания зарегистрирована в США) применила следующие меры:

  • Фильтрация трафика на уровне пограничных маршрутизаторов (BGP-фильтрация) для блокировки пакетов с подозрительными источниками.
  • Перенаправление трафика через scrubbing-центры (очистные центры) Cloudflare, которые отфильтровывали вредоносные пакеты.
  • Увеличение пропускной способности каналов связи для поглощения избыточного трафика.

Влияние на пользователей

Атака привела к частичной недоступности GitHub для пользователей по всему миру. По данным сервиса мониторинга, около 10% пользователей не могли получить доступ к платформе в пиковые моменты. Основные проблемы:

  • Невозможность загрузки репозиториев через Git (HTTP/HTTPS).
  • Задержки при открытии веб-интерфейса.
  • Сбои в работе API GitHub.

Меры безопасности

После атаки GitHub усилил защиту от DDoS-атак, внедрив:

  • Постоянное использование Cloudflare для всех HTTP-запросов.
  • Автоматическое обнаружение аномалий трафика с помощью машинного обучения.
  • Улучшение мониторинга NTP-серверов и других протоколов, подверженных усилению.

Критика и уроки

Критика реакции GitHub

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

Уроки для интернет-инфраструктуры

Атака на GitHub стала катализатором для внедрения мер по защите от усиления через NTP. После инцидента:

  • Многие администраторы серверов NTP отключили команду monlist или ограничили доступ к ней.
  • Провайдеры начали активнее внедрять фильтрацию спуфинга (BCP 38) на уровне своих сетей.
  • Были разработаны обновлённые версии NTP (например, NTP 4.2.8), которые по умолчанию отключают опасные команды.

Значение для кибербезопасности

Атака на GitHub показала, что даже крупнейшие интернет-платформы уязвимы перед DDoS-атаками с использованием техники усиления. Она продемонстрировала необходимость:

  • Коллективных усилий провайдеров, хостинг-компаний и разработчиков протоколов для защиты от таких атак.
  • Использования распределённых систем защиты (CDN, scrubbing-центры).
  • Регулярного обновления и конфигурирования сетевых сервисов (NTP, DNS, SSDP).

Интересные факты

  • Атака на GitHub стала первой в истории DDoS-атакой, мощность которой превысила 1 Тбит/с. До этого рекорд принадлежал атаке на Spamhaus в 2013 году (300 Гбит/с).
  • Злоумышленники, стоящие за атакой, так и не были идентифицированы. Предположительно, это могла быть группа хактивистов или киберпреступников, тестирующих новые методы атак.
  • После инцидента GitHub начал использовать Cloudflare в качестве основного провайдера защиты от DDoS-атак, что позволило отражать последующие атаки значительно меньшего масштаба.

Источники

  • Отчёт GitHub о DDoS-атаке (блог GitHub, 2 марта 2015 года)
  • Анализ атаки от компании Cloudflare (блог Cloudflare, 2015 год)
  • Статья в журнале «Wired»: «The DDoS Attack on GitHub Was the Largest Ever Recorded» (март 2015 года)
  • Документация по протоколу NTP и уязвимости monlist (RFC 5905, CVE-2013-5211)
  • Отчёт компании Arbor Networks (ныне Netscout) о DDoS-атаках в 2015 году

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →