Месяц назад Github столкнулся с мощной многодневной DDoS-атакой, которую предположительно инициировали китайские киберотряды через внедрение DDoS-скриптов в веб-страницы поисковой системы baidu.com. Это весьма необычная техника DDoS-атаки, потому что она предполагает MiTM-внедрение в массовом масштабе. Такое возможно только в странах, где установлены системы глубокой инспекции и фильтрации трафика, как в Китае.
К чести Github, сервис достойно выдержал наплыв флуда и продолжал работу в нормальном режиме для абсолютного большинства пользователей. Небольшая часть аудитории отсеклась DDoS-защитой, да и то на кратковременные промежутки времени.
Но что произошло на самом деле? Свет на эту проблему проливает исследование, которое провела Google. Она задействовала статистику, собранную сервисом Safe Browsing («Безопасный просмотр»). Тот создан, чтобы выявлять небезопасные сайты и уведомлять об этом пользователей и веб-мастеров. Сервис интегрирован в браузеры Chrome, Firefox и Safari.
Итак, был проведён анализ трафика с 1 марта по 15 апреля 2015 года. Первые признаки инъекций скриптов в контент Baidu замечены 3 марта 2015 года. Последний случай — 7 апреля 2015 года. На графике показано распределение инъекций JS и HTML по дням и доля от общего количества инъекций.
Google обращает внимание, что атака проходила в несколько этапов. Сначала был этап тестирования (3-6 марта) с использованием IP-адреса 114.113.156.119:56789 и ограничением на количество запросов.
Затем был промежуточный этап, а основная фаза началась 14 марта с мишенью d3rkfw22xppori.cloudfront.net и использованием как HTTP, так и HTTPS-запросов.
18 марта список мишеней на *.cloudfront.net расширился, а в трафике впервые появились «устаревшие» нефункционирующие скрипты.
25 марта атака против Cloudfront прекратилась. Началось нападение на Github. Первой мишенью выбрали github.com/greatfire/wiki/wiki/nyt/, затем github.com/greatfire/ и github.com/greatfire/wiki/wiki/dw/.
С начала до окончания атаки применялись 19 разных JS-скриптов. Их MD5-хэши показаны на диаграмме вверху (кликабельна). Размер инъекций составлял от 995 до 1325 байт. Изменялись страницы следующих доменов:
- cbjs.baidu.com (123.125.65.120)
- eclick.baidu.com (123.125.115.164)
- hm.baidu.com (61.135.185.140)
- pos.baidu.com (115.239.210.141)
- cpro.baidu.com (115.239.211.17)
- bdimg.share.baidu.com (211.90.25.48)
- pan.baidu.com (180.149.132.99)
- wapbaike.baidu.com (123.125.114.15)
«Если бы весь веб перешёл на TLS, такие атаки стали бы невозможны», — пишут специалисты Google в заключении своего отчёта.