Атака на 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 →