Xakep #305. Многошаговые SQL-инъекции
В минувший понедельник, 12 ноября 2018 года, между 13:12 и 14:35 (PST) в BGP-маршрутизации произошел сбой, повлиявший на работу сервисов Google. Сбой затронул G Suite, Поиск и Аналитику, а также коснулся внутренних систем компании и сторонних сервисов, включая Spotify. Виновником произошедшего стал небольшой нигерийский провайдер MainOne Cable Company (AS37282), анонсировавший соседним провайдерам, что хостит IP-адреса, обычно принадлежащие дата-центрам Google.
BGP (Border Gateway Protocol, протокол граничного шлюза) — в настоящее время основной протокол динамической маршрутизации в интернете, функционирует поверх TCP (порт 179). Наряду с DNS, является одним из главных механизмов, обеспечивающих функционирование интернета. В отличие от других протоколов динамической маршрутизации, BGP предназначен для обмена информацией о маршрутах не между отдельными маршрутизаторами, а между целыми автономными системами. Под «автономной системой» понимается набор маршрутизаторов, которые работают под управлением одного администратора, или одной группы администраторов, и используют общую стратегию маршрутизации.
По данным аналитического сервиса BGPmon, который следит за потоками трафика в интернете и первым обнаружил проблему, нигерийский провайдер анонсировал для своей автономной системы 212 префиксов. На всё потребовалось пять заходов и 74 минуты реального времени. Неверная информация распространилась среди других провайдеров, включая российский «ТрансТелеКом» (AS 20485) и государственного китайского провайдера China Telecom (AS 4809).
По информации специалистов компании ThousandEyes, анонс в основном распространился среди транзитных провайдеров бизнес-класса. «Весь трафик разбился о “Великий китайский файрвол” и был ликвидирован граничным маршрутизатором China Telecom», — пишут аналитики и добавляют, что происшествие имело выраженный DoS-эффект.
Инцидент вызвал множество обсуждений среди специалистов. В том числе и потому, что не далее чем в прошлом месяце исследователи из Военно-морского колледжа США и Тель-Авивского университета обвиняли China Telecom в намеренном устроении BGP-сбоев. Якобы провайдер много лет некорректно направляет трафик западных стран, без каких-либо видимых причин. Позже выводы исследователей подтвердили и аналитики компании Oracle.
Впрочем, на этот раз, произошедшее, похоже, действительно было лишь случайностью. По крайней мере, представители MainOne уже принесли извинения за случившееся и сообщили, что в ходе запланированного апгрейда сети были неверно сконфигурированы BGP-фильтры, что и привело к вышеописанной ситуации.
We have investigated the advertisement of @Google prefixes through one of our upstream partners. This was an error during a planned network upgrade due to a misconfiguration on our BGP filters. The error was corrected within 74mins & processes put in place to avoid reoccurrence
— MainOne (@Mainoneservice) November 13, 2018
Кстати, в тот же день сотрудники MainOne допустили аналогичную ошибку и относительно префиксов Cloudflare.
In addition to @Google downstream networks from The Nigerian ISP AS37282 Mainone, were affected. Including for example this @Cloudflare prefixhttps://t.co/wq8x4kl3w2 pic.twitter.com/z4Ep2lcyxQ
— BGPmon.net (@bgpmon) November 13, 2018
Нужно сказать, что это далеко не первый подобный инцидент, и сбои BGP-маршрутизации происходят регулярно, так как BGP был разработан в 80-х годах и не имеет соответствующих сегодняшним нормам механизмов безопасности. К примеру, из-за похожего сбоя еще в 2012 году Австралия случайно осталась без связи с остальным интернетом.