Краткое содержание
- GitHub сообщила, что распределённая атака типа «отказ в обслуживании» началась около 02:00 UTC 26 марта 2015 года и использовала браузеры людей, не имевших отношения к атаке, для отправки запросов к целевым страницам, размещённым на GitHub. [1]
- GreatFire описала более раннюю атаку на свои сервисы, а затем сообщила, что вредоносный JavaScript был подставлен вместо ресурсов, связанных с Baidu Analytics. GreatFire приписала эту активность китайским властям; Baidu отрицала, что её продукты были скомпрометированы. Это атрибутивные утверждения, а не установленные судом выводы. [7][8]
- Citizen Lab и сотрудничавшие с ней исследователи сообщили о системе, размещённой на сетевом пути, которая могла перехватывать отдельные незашифрованные HTTP-запросы, подставлять подменные ответы и заставлять браузеры за пределами Китая отправлять повторяющиеся запросы. Они назвали её Great Cannon и оценили вероятную государственную эксплуатацию, сохранив неопределённость. [2][3][4][5]
- Механизм не был обычной отражённой атакой с подменой источника. Браузеры отправляли прикладные запросы со своих реальных адресов после выполнения внедрённого кода, поэтому проверка адресов источников оставалась важной, но сама по себе не устраняла этот класс трафика. [6][11][12][13][14]
- Ответственность распределялась между операторами путей, издателями сторонних ресурсов, браузерами, GitHub, транзитными провайдерами и партнёрами по противодействию атакам — в зависимости от того, что каждый из них мог фактически наблюдать, изменить и доказать.
- Аутентифицированное шифрование повышает стоимость подмены ответов, поскольку защищает целостность содержимого, но не устраняет любые формы цензуры, компрометации конечных точек, отказа в обслуживании или анализа трафика. [15][16]
- Долговременный стандарт подотчётности — это доказательства из работающей сети: сравнение ответов с нескольких точек наблюдения, записи транспортной аутентификации, маршрутный и транзитный контекст, классификация на границе сети, действия по противодействию, влияние на клиентов и хронология, отделяющая наблюдение от атрибуции.
В марте 2015 года GitHub стала заметной целью атаки, самой важной чертой которой был не просто её масштаб. Согласно сообщениям, событие превращало браузеры непричастных пользователей в генераторы запросов, изменяя то, что эти браузеры получали на сетевом пути. Человек мог открыть постороннюю страницу, запросить незашифрованный сторонний ресурс, получить подменённый JavaScript, после чего браузер начинал отправлять повторяющиеся запросы к страницам, размещённым на GitHub. Соединение браузера было настоящим. Его адрес источника был настоящим. Намерение пользователя отсутствовало.
Это различие меняет саму проблему подотчётности. Обычное обсуждение отказа в обслуживании часто начинается с вредоносных хостов, подделанных адресов источников, усилителей отражения или ботнета, управляемого через скомпрометированные устройства. Эти модели остаются важными, но они не полностью описывают публичную реконструкцию события с GitHub в 2015 году. Здесь предполагаемая точка контроля находилась на пути доставки обычного веб-трафика. По сообщениям, она меняла прикладной контент и использовала охват браузеров, которые ни GitHub, ни их владельцы не предоставляли для атаки добровольно.
GitHub контролировала сервис, находящийся под давлением. Она могла классифицировать трафик, выделять пропускную способность на границе сети, координировать работу с провайдерами противодействия, ограничивать частоту вредоносных запросов, защищать целевые репозитории и сообщать об операционном статусе. Она не контролировала удалённый путь, на котором, как сообщалось, был изменён сторонний ответ. Сайт, обслуживавший или встраивавший ресурс, определял, использовала ли эта зависимость аутентифицированное шифрование. Поставщики браузеров контролировали часть исполнения и границы смешанного контента.
Транзитные операторы и операторы доступа контролировали разные сегменты пути, журналы и технические возможности. Пользователи почти не контролировали ни один из этих механизмов.
Поэтому событие не сводится к объяснению «одна жертва — один атакующий». Это случай сетевой подотчётности, потому что ответственность следует за практическим контролем над доставкой, целостностью, маршрутизацией, исполнением и противодействием. Имена, адреса, статусные уведомления и договоры описывают предполагаемые отношения. Они не доказывают, какой код прошёл по пути или что именно выполнил браузер. Решающее доказательство — это поведение работающей сети.
Что устанавливает открытая информация
Первичное уведомление GitHub — самая надёжная отправная точка. Компания заявила, что атака началась примерно в 02:00 UTC в четверг, 26 марта 2015 года. Она описала событие как крупнейшую DDoS-атаку в истории GitHub на тот момент и сообщила, что применялась комбинация векторов, включая методы, которые использовали браузеры непричастных людей для перегрузки сайта. GitHub также заявила, что доступные ей отчёты привели компанию к мнению, что целью было убедить её удалить определённый класс контента. [1]
Это заявление фиксирует наблюдение GitHub за событием со стороны жертвы и её интерпретацию предполагаемой цели. Оно не устанавливает точную интенсивность пакетов, общее число браузеров, всех затронутых клиентов, точное время окончания, денежный ущерб или личность конкретного лица, принимавшего решения. Оно также не превращает интерпретацию мотива компанией GitHub в судебный вывод о заказчике атаки.
GreatFire представила связанную хронологию с позиции другой цели. Она сообщила, что её сервисы находились под крупной атакой типа «отказ в обслуживании» с 17 марта. В более поздней публикации GreatFire заявила, что браузеры направлялись через вредоносный JavaScript на контент GreatFire и на две страницы GitHub. Она приписала атаки китайским властям и упомянула использование ресурсов, связанных с Baidu Analytics. GreatFire также зафиксировала отрицание Baidu того, что её продукты были скомпрометированы. [7][8]
Эти заявления важны, потому что связывают более раннюю фазу с GreatFire и более поздние цели на GitHub. Тем не менее их следует рассматривать как заявления затронутой стороны. Технические наблюдения и атрибуция GreatFire — это доказательства для оценки, а не замена независимых измерений. Отрицание Baidu должно оставаться видимым, потому что компрометация сервера, осознанное участие, неправомерное использование третьей стороной и подмена на пути — это разные фактические утверждения.
Наиболее сильная публичная техническая реконструкция поступила от Citizen Lab, Международного института компьютерных наук, Калифорнийского университета в Беркли, исследователей из Принстона и их соавторов. Их отчёт отличал систему, названную ими Great Cannon, от «Великого китайского файрвола», одновременно указывая на сходство кода и сетевого расположения. Они описали выборочный перехват незашифрованных запросов и внедрение подменного контента, который заставлял браузеры отправлять запросы к целевым сайтам. Их анализ использовал измерения, побочные каналы и наблюдаемое поведение, чтобы локализовать систему и оценить её вероятную эксплуатацию.
[2][3][4][5]
Вывод исследователей поддерживал оценку вероятного оператора — китайского правительства. Это не то же самое, что публичное уголовное суждение, раскрытый приказ или доказательство в отношении конкретного лица. Ответственный анализ сохраняет уровень уверенности и метод, который его дал. Важно то, что измерения поддерживали оценку вероятного оператора, а не то, что доказана каждая институциональная или личная связь.
Таким образом, открытая информация устанавливает узкую, но значимую цепочку. Незашифрованный сторонний веб-трафик пересекал путь, на котором система, как сообщалось, могла подменять исполняемый контент. Браузеры, получавшие этот контент, генерировали трафик к целям. GitHub наблюдала крупную атаку на доступность. Исследователи воспроизвели и измерили характеристики, согласующиеся с отдельной системой внедрения в сеть. Затронутые стороны и исследователи приписывали ответственность с разными уровнями уверенности. Важные детали остались нераскрытыми.
Сетевой механизм — ядро подотчётности
Ключевое событие произошло между предполагаемым ресурсом и теми байтами, которые браузер фактически выполнил. Веб-страница могла ссылаться на скрипт или аналитический ресурс по незашифрованному HTTP. Браузер отправлял запрос. Система, размещённая на пути, по сообщениям распознавала выбранные запросы и внедряла подменный ответ. Подмена содержала код, который предписывал браузеру отправлять повторяющиеся запросы к заданным целям.
Браузер не нужно было заражать на постоянной основе. Пользователю не нужно было устанавливать вредоносное ПО или присоединяться к ботнету. Сервер-источник не обязательно было компрометировать. Подменный ответ мог выиграть гонку с легитимным ответом или иным образом попасть в позицию, в которой браузер его принимал. После принятия обычное поведение браузера создавало трафик прикладного уровня с реального сетевого адреса пользователя.
Этот механизм разделяет три идентичности, которые отчёты об инцидентах часто смешивают.
Первая — идентичность ресурса, указанного на странице. URL и резолвинг DNS показывают, откуда браузер намеревался получить контент. Вторая — идентичность сетевой конечной точки, которая фактически передала принятые байты. При использовании незашифрованного HTTP браузер не имел криптографического доказательства того, что эти байты без изменений поступили от предполагаемого издателя. Третья — идентичность браузера, который позже обращался к GitHub. Его адрес источника идентифицировал клиентское соединение, но не намерение пользователя и не происхождение внедрённой инструкции.
Эти различия важны с операционной точки зрения. Если аналитики считают каждый источник запросов добровольным атакующим, они неверно классифицируют пользователей, чьи браузеры были вовлечены. Если они считают издателя ресурса обязательно скомпрометированным, они могут пропустить изменение на пути. Если они рассматривают запись DNS или маршрут как доказательство подлинности контента, они путают достижимость с целостностью. Если они называют событие отражённой атакой с подменой источника, они выбирают средства защиты, рассчитанные на другое свойство трафика.
Поэтому реконструкция Great Cannon создаёт проблему цепочки владения для сетевого контента. Подотчётное расследование должно показать, что было запрошено, какие пути несли запрос и ответ, какие байты пришли в несколько точек наблюдения, присутствовала ли транспортная аутентификация, какие тайминги отличали внедрённые и легитимные ответы и какое поведение браузера последовало. Без этой цепочки ярлыки вроде «атака», «компрометация», «цензура» или «сбой платформы» могут быть направленно правдоподобными, но операционно неполными.
Работающий код важнее предполагаемых записей
Доктрина Heng.lu полезна здесь как операционный тест, а не как источник исторических фактов. Запись в реестре, запись DNS, URL репозитория или договор хостинга — это запись о предполагаемой идентичности и полномочиях. Это может быть важным доказательством. Но она не главенствует над тем, что реально доставила работающая сеть.
Событие 2015 года делает этот принцип конкретным. Браузер мог разрешить ожидаемое имя хоста и отправить запрос к ожидаемому сервису, но при этом выполнить байты, предположительно внедрённые на пути. Административная запись оставалась узнаваемой, а результат выполнения расходился с ней. Подотчётность требует согласования этих двух слоёв, а не рассмотрения записи как окончательного доказательства.
Примат работающего кода не означает, что записи не важны. DNS, таблицы маршрутизации, данные RPKI при наличии, транзитные отношения, назначения интерфейсов, цепочки сертификатов, заголовки HTTP и статусные уведомления помогают восстановить предполагаемый путь и наблюдаемое отклонение. Суть в том, что их нужно проверять по захватам пакетов, хешам ответов, таймингам, выполнению в браузере и наблюдениям с нескольких точек.
Поэтому концептуальная поверхность статьи имеет прямо сетевой и инфраструктурный характер. Пиринг и транзит определяют, какие операторы и интерфейсы могли нести трафик. Хостинг и сетевая идентичность определяют, какой контент и какие конечные точки ожидали клиенты. Непрерывность работы оператора определяет, могла ли GitHub оставаться доступной, сохраняя целевой материал. Уберите эти элементы — и тезис о подотчётности исчезнет.
Слой реальности также ограничивает адвокатирование. Техническая запись не требует поддерживать GitHub, GreatFire, Baidu, какое-либо правительство, обязательное шифрование или конкретную стратегию обхода цензуры. Она требует точных утверждений о контроле и доказательствах. Кто мог изменить незашифрованную доставку? Кто мог обнаружить несовпадающие ответы? Кто мог аутентифицировать контент? Кто мог поглотить или отфильтровать возникший трафик? Какие записи можно проверить независимо? Эти вопросы остаются в силе независимо от мнения читателя о размещённом материале или политическом споре.
Почему проверка адресов источников была необходимой, но недостаточной
Проверка адресов источников — одна из важнейших защит от атак типа «отказ в обслуживании», опирающихся на поддельные адреса. BCP 38 и связанные рекомендации описывают фильтрацию трафика с адресами источников, которые не должны легитимно появляться за интерфейсом. Улучшенная проверка обратного пути с одноадресной пересылкой по допустимым путям развивает операционные методы применения проверки источников в сетях с несколькими путями. Руководство NIST по междоменной устойчивости ставит проверку адресов источников рядом с безопасностью маршрутизации и противодействием DDoS-атакам. [12][13][14][17]
Эти средства снижают способность атакующего отправлять пакеты, которые делают вид, что исходят от жертвы. Это, в свою очередь, ограничивает атаки отражения и усиления, при которых публичные сервисы отвечают на поддельный адрес жертвы. Интернет выигрывает, когда операторы доступа, хостинга и транзита правильно внедряют эти средства.
Описанный механизм Great Cannon имеет другое свойство. Браузер выполнял внедрённый код и открывал настоящие соединения со своего собственного адреса. Адрес источника не обязательно был подделан. Фильтр проверки источника мог корректно заключить, что трафик топологически правдоподобен, и всё равно пропустить его. Вредная цель возникала из инструкции, заставлявшей браузер отправлять запросы, а не из фальсифицированного поля источника на сетевом уровне.
Это не делает защиту от спуфинга нерелевантной для более широкой среды DDoS. Инцидент может сочетать векторы. Надёжная проверка источников сокращает другие классы трафика и сохраняет ресурсы противодействия. Она также повышает доказательную ценность адресов источников, уменьшая явную подделку. Но утверждать, что один только BCP 38 остановил бы механизм вовлечения браузеров в 2015 году, значило бы путать уровни.
Поэтому подотчётная карта средств защиты должна связывать каждое средство с тем свойством, которое оно меняет. Проверка источников ограничивает поддельные адреса. Аутентифицированное шифрование ограничивает незаметную подмену контента между аутентифицированными конечными точками. Политика браузера ограничивает исполнение кода и смешанный контент. Средства на границе сети ограничивают частоту запросов и потребление ресурсов. Управление трафиком и ёмкость противодействия ограничивают потерю доступности. Ни одно средство не покрывает всю цепочку.
Аутентифицированный транспорт меняет возможность внедрения
Незашифрованный HTTP не даёт браузеру криптографической уверенности в том, что ответ остался неизменённым между названным сервером и клиентом. Система на пути может наблюдать запрос и попытаться подменить ответ. Публичная реконструкция Great Cannon опиралась именно на эту уязвимость.
Аутентифицированное шифрование меняет это состязание. TLS предназначен для установления аутентифицированного зашифрованного канала, который в рамках своей модели угроз защищает сообщения от перехвата, подмены и подделки. Более поздний стандарт TLS 1.3 выражает эти цели ясно. RFC 7258 также рассматривает постоянное наблюдение как атаку, которую следует снижать при проектировании протокола. [15][16]
Если браузер корректно проверяет аутентифицированное TLS-соединение с предполагаемым источником, система на пути не может просто изменить защищённый ответ и получить действительный результат, не преодолев аутентификацию или не скомпрометировав конечную точку либо доверенную зависимость. Это повышает операционную стоимость метода подмены и создаёт более ясные доказательства сбоя. Поддельный или изменённый ответ должен не пройти проверку, а не молча выполниться как предполагаемый ресурс.
Ограничение важно так же, как и выгода. HTTPS не делает сервис невосприимчивым к объёмным DDoS-атакам. Он не защищает конечную точку, которая сама скомпрометирована. Он не предотвращает блокировку, сброс соединений, манипуляции маршрутами, анализ трафика или давление на посредников. Он не гарантирует, что сторонний код безопасен. Он не устраняет ошибки проверки сертификатов, политики браузера или конфигурации источника.
Поэтому подотчётное утверждение имеет границы: аутентифицированное шифрование существенно защищает целостность ответов от прямой подмены на пути. Это не универсальное лекарство от цензуры или отказа в обслуживании. Операторы должны документировать, какие ресурсы были зашифрованы, какие нет, создавало ли поведение смешанного контента пути понижения защиты и как сбои сертификатов или транспорта проявлялись в разных точках наблюдения.
Доказательства с нескольких точек наблюдения необходимы
Система внедрения на пути может вести себя выборочно. Она может нацеливаться только на определённые имена хостов, пути ресурсов, строки запросов, сети источников, направления или время. Она может внедрять на одних маршрутах и отсутствовать на других. Одна точка наблюдения не может показать, возник ли аномальный ответ на сервере, появился ли на сегменте пути или стал результатом локального устройства.
Измерения с нескольких точек решают это ограничение. Исследователи могут запрашивать один и тот же ресурс из разных сетей и регионов, сравнивать байты и хеши ответов, записывать тайминги и метаданные IP, а также сохранять доказательства на уровне пакетов, где это законно и соразмерно. Если одна точка получает изменённый контент, а другая — ожидаемый ответ, разница сужает возможные точки контроля. Если первый ответ отличается, а более поздний совпадает с источником, тайминги могут поддерживать гипотезу гонки с внедрением.
Если журналы источника не показывают подменённые байты, компрометация сервера становится менее вероятной, хотя и не невозможной автоматически.
Пакет доказательств должен отделять сырые наблюдения от выводов. К сырым доказательствам относятся таймстампы, детали запросов, полученные полезные нагрузки, криптографические хеши, результаты проверки сертификатов, трассировки пакетов, наблюдения за маршрутами и ответы резолверов. К выводам относятся вероятное расположение системы внедрения, её связь с известной фильтрующей инфраструктурой и вероятный оператор. Заключения должны указывать, какая комбинация измерений их поддерживает и какие альтернативы остаются.
Качество часов особенно важно. Сопоставление получения ресурса браузером с выполнением внедрённого кода и последующими запросами к GitHub требует таймстампов, которые можно сравнивать между системами. Следует фиксировать задержки сбора, локальную ошибку часов и преобразование часовых поясов. Убедительная схема без целостности времени всё равно может скрывать ложную последовательность.
Политика хранения тоже важна. Захваты пакетов могут содержать чувствительные данные пользователей, а трассировки браузера могут раскрывать поведение при просмотре. Подотчётное расследование минимизирует сбор, ограничивает доступ, хеширует артефакты, записывает преобразования и сохраняет только необходимое. Приватность — не повод отказаться от доказательств, но сбор доказательств — не лицензия хранить постороннюю активность пользователей.
Граница контроля GitHub
GitHub была оператором инфраструктуры на стороне жертвы. Её непосредственной обязанностью было сохранять доступность сервиса, защищать целостность размещённого контента, отличать враждебную нагрузку от легитимного использования и сообщать пользователям то, что им нужно знать. Компания не могла напрямую изменить удалённый незашифрованный ответ, внедрённый на другом сетевом пути, но контролировала, как её собственная граница и приложение реагируют на возникающие запросы.
Более ранний рассказ GitHub о защите от отказа в обслуживании даёт полезный контекст. В нём обсуждались многоуровневые меры, включая настройку сетевого стека, лимиты балансировщика, фильтрующее оборудование и работу с внешним провайдером противодействия. [9] Этот рассказ предшествует инциденту 2015 года. Он показывает типы средств, которые GitHub публично обсуждала; он не доказывает, что каждое средство было активно, настроено одинаково или эффективно во время атаки Great Cannon.
Для события 2015 года подотчётная запись со стороны жертвы включала бы классификацию запросов, распределение источников и сетей, целевые URL, поведение соединений, нагрузку на кеш и приложения, решения о фильтрации, передачу трафика провайдеру противодействия, насыщение границы сети, частоту ошибок и видимую клиентам производительность. Она также фиксировала бы, как средства защиты избегали наказания легитимных пользователей, чьи браузеры были вовлечены без их ведома.
Это создаёт трудную проблему классификации. Запросы браузеров были нежелательными с точки зрения GitHub, но могли выглядеть как валидный HTTP-трафик. Блокировка каждого источника после всплеска могла затронуть пользователей, разделяющих адреса или сети. Отправка дорогих ответов могла усилить потребление ресурсов. Удаление целевого контента могло снизить стимул атакующего, но передало бы контроль над политикой хостинга атакующему.
Публичное заявление GitHub показывает, что компания понимала давление как направленное на контент. [1] Это делает непрерывность отчасти вопросом управления, но технический ответ всё равно требует сетевых доказательств. Вопрос не в том, сделала ли GitHub смелый или правильный политический выбор. Вопрос в том, поддерживали ли её средства обслуживание и целостность контента при атаке, призванной сделать обычный клиентский трафик дорогим.
Лучшая запись об инциденте показала бы пороги решений. При какой частоте запросов GitHub меняла фильтрацию? Какие индикаторы отличали трафик вовлечённых браузеров? Когда подключалось внешнее противодействие? Каков был эффект каждого изменения на доступность целей и посторонний трафик? Какие средства были отменены после события? Публичное раскрытие может опускать чувствительные детали, но внутренние доказательства должны их сохранять.
Операторы путей и бремя проверяемого контроля
Сообщаемая возможность внедрения существовала потому, что у системы была позиция на пути доставки. Эта позиция создавала техническую власть: способность наблюдать отдельные незашифрованные запросы и пытаться подменять ответы. С властью приходит бремя доказательств.
Оператор, отвечающий за интерфейсы, способные изменять контент, должен уметь указать политику, разрешающую эту функцию, системы, которые её реализуют, людей или роли, которые могут её менять, журналы, фиксирующие активацию, и средства, предотвращающие несанкционированное использование. Если оператор отрицает причастность, независимо проверяемые записи убедительнее категоричного заявления без технической поддержки.
Это не значит, что каждый транзитный провайдер, передавший пакет, отвечает за каждое изменение. Пути в интернете пересекают несколько административных доменов. Маршрутизация может меняться во время инцидента. Некоторые операторы могут не иметь видимости зашифрованного прикладного контента или возможности идентифицировать вышестоящую систему внедрения. Ответственность должна привязываться к фактическому контролю и доказательствам, а не к физической близости или политическому предположению.
Маршрутные данные могут сузить исследование, но не решить его сами по себе. Наблюдения BGP могут показать, какие автономные системы анонсировали и распространяли достижимость и какие пути видели внешние коллекторы. Обычно они не могут доказать расположение подмены контента на прикладном уровне. Трафик может проходить через внутренние каналы или политические системы, невидимые в публичных данных плоскости управления. Подотчётная реконструкция сочетает маршрутный контекст с активными измерениями и поведением пакетов.
Та же осторожность относится к IP-геолокации и записям о владельцах. Регистрация адреса указывает на выделение или административный контакт. Она не доказывает, какое устройство отправило пакет, кто контролировал это устройство в тот момент и был ли видимый источник частью гонки. Данные реестра — важный реестр, а не вердикт.
Пиринговые и транзитные отношения осложняют раскрытие. Коммерческие договоры могут ограничивать публикацию, а провайдеры могут опасаться раскрытия защитной архитектуры. Однако отсутствие публичной карты топологии не устраняет необходимость в проверяемых внутренних записях. Операторы могут сохранять идентификаторы интерфейсов, снимки маршрутов, согласования изменений и хеши событий, раскрывая лишь ограниченные выводы.
Издатели сторонних ресурсов и целостность зависимостей
Путь атаки, по сообщениям, опирался на браузеры, запрашивавшие сторонние ресурсы по незашифрованному HTTP. Это делает издателей ресурсов и сайты, их встраивающие, частью карты контроля, но не автоматическими виновниками.
Издатель контролирует, как он обслуживает свои ресурсы, доступен ли и применяется ли аутентифицированный транспорт, как настроены кеширование и целостность, а также как он расследует сообщения о несовпадающем контенте. Сайт, встраивающий ресурс, контролирует, добавляет ли он незашифрованную зависимость в страницу, в остальном защищённую. Политика браузера может предупреждать, блокировать или изолировать некоторые паттерны смешанного контента.
Эти обязанности не следует превращать в безосновательные обвинения. В материалах сохраняется отрицание Baidu того, что её продукты были скомпрометированы. [8] Подмена на пути особенно важна, потому что может заставить легитимного издателя выглядеть так, будто он отдал код, который, по его словам, он не отдавал. Правильный подход — доказательный: что записал журнал источника, что получили клиенты на разных путях, какая транспортная защита использовалась и какие существуют хеши или подписанные артефакты?
Целостность подресурсов и средства контроля контента могут помочь в некоторых проектах, но у них есть рамки и пределы развёртывания. Браузер должен получить надёжное значение целостности, страница должна его применять, а динамические ресурсы могут осложнять использование. Эти средства следует оценивать как части системы, а не цитировать как волшебную защиту задним числом.
Инвентаризация зависимостей — ещё одно требование подотчётности. Организации должны знать, к каким внешним скриптам, аналитическим ресурсам и конечным точкам доставки контента их страницы заставляют обращаться браузеры. Следует фиксировать схему, имя хоста, владельца, ожидаемое поведение, метод обновления и режим отказа. Зависимость, способная выполнять код, заслуживает более пристальной проверки, чем статичное изображение.
Отсутствие у пользователя самостоятельности здесь центрально. Люди, чьи браузеры генерировали запросы, не обязательно выбирали GitHub как пункт назначения, понимали внедрённый код или знали, что их пропускная способность используется. Советовать пользователям вести себя безопаснее — значит не реагировать на систему уровня пути, которая меняла обычный трафик. Ответственность в первую очередь лежит на субъектах, контролирующих путь, ресурс, среду выполнения и границу противодействия цели.
Средства браузеров и платформ
Браузеры опосредуют границу между полученным кодом и сетевым действием. Они решают, выполнять ли скрипты, как применять политику одинакового источника, как обрабатывать смешанный контент, как применять проверку сертификатов и как ограничивать повторяющиеся запросы. Эти решения распределены между стандартами, поставщиками, авторами сайтов и настройками пользователей.
Браузер не может вывести злой умысел из каждого повторяющегося запроса. Современные веб-приложения легитимно делают много асинхронных вызовов. Слишком строгие ограничения частоты могут сломать обычные сайты. Слишком мягкие ограничения могут позволить странице потреблять пропускную способность и нагружать целевые ресурсы. Событие Great Cannon показывает, почему средства защиты браузеров от злоупотреблений нуждаются в порогах на основе доказательств и механизмах изоляции.
Полезные средства включают чёткие ограничения смешанного контента, аутентифицированный транспорт по умолчанию, ограничения вредоносной фоновой активности, видимость неожиданных межсайтовых паттернов запросов и быстрые обновления безопасности. Поставщики браузеров также могут предоставлять диагностические инструменты, помогающие исследователям сохранять доказательства без раскрытия посторонних личных данных.
Подотчётность оператора платформы не безгранична. Браузер не может помешать сети отбрасывать пакеты. Он не может гарантировать честность каждого аутентифицированного источника. Он не может поглотить атаку за GitHub. Но он может снизить лёгкость, с которой внедрённый код молча превращает пользователя в источник запросов.
Разбор инцидента должен фиксировать версии браузеров, поведение политик и различия в выполнении. Если одни браузеры принимали внедрённый код, а другие нет, это операционное доказательство о поверхности атаки. Если поведение изменилось после обновлений, хронология должна отличать возможности на момент события от более поздних защит.
Противодействие DDoS без ложного отождествления
Руководство IETF по отказу в обслуживании подчёркивает проектирование протоколов, истощение ресурсов, усиление и операционную защиту. [11] Это полезный контекст для понимания, почему сервисам нужны средства контроля частоты, планирование ёмкости, фильтрация и координация. Это не доказательство точного вектора 2015 года.
Паттерн вовлечения браузеров генерирует прикладные запросы, выглядящие легитимно. Поэтому противодействие должно действовать на нескольких уровнях. Сетевые средства могут поглощать или распределять трафик. Транспортные средства могут ограничивать давление соединений. Прикладные средства могут выявлять повторяющиеся запросы, дорогие пути и аномальное поведение. Доставка контента может кешировать безопасные ответы. Люди-операторы могут координироваться с вышестоящими сетями и провайдерами противодействия.
У каждого вмешательства есть издержки. Агрессивная фильтрация может блокировать легитимных пользователей. Проверки могут накладывать бремя на доступность или приватность. Ограничения частоты могут наказывать сети с общим доступом. Перенос трафика может перегрузить чистое направление. Удаление контента может поощрить принуждение. Заслуживающая доверия запись о реагировании объясняет эти компромиссы, а не сообщает лишь, что противодействие сработало.
Провайдеры противодействия также хранят доказательства. Они могут видеть трафик до и после фильтрации, классифицировать паттерны запросов, менять анонсы маршрутов и управлять ёмкостью очистки. Договоры должны сохранять доступ клиента к доказательствам инцидента и определять хранение, целостность часов, обработку данных и поддержку после события. Передача противодействия на аутсорсинг не передаёт подотчётность.
Реагирование следует проверять при реалистичном трафике. Настольные учения могут подтвердить контакты и права решений, но не могут доказать, что фильтры, маршруты, кеши и приложения ведут себя безопасно под нагрузкой. Контролируемые учения должны измерять время до классификации, запас чистой ёмкости, ложные срабатывания, насыщение приложений и поведение отката.
Публичное уведомление 2015 года не раскрывает каждый шаг противодействия GitHub. Это отсутствие должно оставаться неизвестным, а не приглашением выдумать героическое или халатное реагирование. Стандарт подотчётности касается того, какие доказательства оператор должен сохранять и какие утверждения может поддерживать открытая информация.
Разделение атрибуции и противодействия
Операционным командам часто нужно действовать до того, как атрибуция станет зрелой. GitHub должна была реагировать на трафик и эффекты для сервиса независимо от того, кто управлял системой внедрения. Исследователи могли позже анализировать сетевое расположение, сходство кода и поведение. Эти хронологии следует связывать, но не смешивать.
Решения о противодействии должны опираться на наблюдаемые свойства трафика: пути запросов, частоту, поведение соединений, распределение источников, заголовки, стоимость ответов и здоровье сервиса. Они не должны зависеть только от геополитической атрибуции, которая может оспариваться. Напротив, оценку атрибуции не следует выводить лишь из того факта, что метод противодействия сработал.
Доказательства атрибуции могут включать техническую инфраструктуру, характеристики кода, место развёртывания, выбор целей, операционные тайминги и исторический контекст. У каждой категории есть альтернативы и пределы уверенности. Сильная оценка объясняет, почему совокупность доказательств поддерживает одну гипотезу и какие доказательства изменили бы вывод.
Работа Citizen Lab ценна тем, что не остановилась на политическом ярлыке. Она описала механизм, различила системы и представила измерения. [2][3] Рецензируемые доклады и связанные исследования добавили техническую проверку. [4][5][6] При этом анализ всё равно не следует переписывать как судебное решение.
Атрибуция GreatFire отражает взгляд затронутой организации. [7][8] Заявление GitHub отражает интерпретацию давления со стороны платформы-жертвы. [1] Отрицание Baidu касается её собственных продуктов. Эти версии могут сосуществовать в таблице доказательств, не сливаясь в ложный консенсус.
Такое разделение защищает и справедливость, и качество реагирования. Оно не даёт операторам откладывать противодействие до наступления политической определённости и не позволяет рассматривать экстренные наблюдения за трафиком как окончательное доказательство заказчика.
Минимальный пакет доказательств для подотчётного реагирования
Оператор, столкнувшийся с сопоставимым событием, должен сохранить связанный пакет доказательств. Пакет не обязан публично раскрывать чувствительные данные, но должен поддерживать независимую внутреннюю проверку и ограниченные внешние утверждения.
1. Идентичность события и целостность времени
Создайте стабильный идентификатор инцидента. Зафиксируйте время наступления в UTC, время сбора, источники часов, известный дрейф и задержку поступления. Хешируйте экспортированные артефакты. Сохраняйте различие между первым наблюдением, подтверждённым инцидентом, действием по противодействию, стабилизацией и закрытием.
2. Идентичность ресурса и транспорта
Зафиксируйте запрошенный URL, схему, имя хоста, результат резолвера, ожидаемый источник, детали сертификата при наличии, заголовки ответа, хеш полезной нагрузки и решение браузера. Сохраняйте как внедрённые, так и легитимные образцы, когда это законно доступно. Не считайте, что имя хоста доказывает байты.
3. Контекст пути с нескольких точек наблюдения
Зафиксируйте точку измерения, сеть, приблизительный маршрутный контекст, поведение резолвера и тайминги ответа. Сравнивайте результаты на разных путях. Сохраняйте публичные наблюдения BGP и снимки маршрутов оператора, указывая, что одни маршрутные данные не могут доказать место внедрения.
4. Доказательства выполнения в браузере
Зафиксируйте поведение скрипта, запросы к пунктам назначения, паттерн повторения, версию браузера, соответствующую политику безопасности и требовалось ли действие пользователя. Отделяйте временное выполнение от постоянной компрометации. Не называйте пользователя или устройство вредоносными без доказательств.
5. Доказательства сервиса со стороны жертвы
Сохраните частоту запросов, целевые пути, состояние границы и приложений, действия фильтрации, передачу противодействию, частоту ошибок, задержки и влияние на клиентов. Связывайте каждое действие с измеренным изменением. Фиксируйте ложные срабатывания и побочные эффекты.
6. Доказательства контроля оператора
Для систем, способных к инспекции или изменению трафика, сохраните разрешение политики, изменения конфигурации, идентификаторы развёртывания, записи доступа и журналы целостности. Для операторов за пределами подозреваемого пути сохраните достаточно доказательств, чтобы показать их фактическую границу, а не выдавать безосновательное общее отрицание.
7. Оценка атрибуции
Отделяйте наблюдаемые факты, аналитические выводы, уверенность и альтернативы. Атрибутируйте внешние утверждения. Указывайте неизвестное. Фиксируйте более поздние доказательства, не меняя молча современную версию.
8. Раскрытие и хранение
Определите, какие выводы могут быть публичными, какие требуют ограниченной проверки и как долго базовые артефакты остаются доступными. Удаляйте персональные данные, не разрушая техническую цепочку. Публикуйте исправления, когда более поздние доказательства существенно меняют утверждение.
Такой пакет превращает подотчётность из риторики в воспроизводимость. Он позволяет платформе, транзитному оператору, издателю ресурсов, поставщику браузера или регулятору проверить, следует ли утверждение из наблюдаемого контроля.
Экономические и управленческие стимулы
Сетевые защиты формируются стимулами. Оператор, способный внедрить средство защиты, может не нести убыток, возникающий, когда это средство отсутствует. Издатель стороннего ресурса может экономить операционные усилия, оставляя доступным устаревший незашифрованный конечный пункт, в то время как цели и пользователи несут риск подмены. Транзитный оператор может не видеть коммерческой выгоды в сохранении подробных доказательств. Платформа может нести издержки поглощения трафика, создаваемого браузерами, которые она не контролирует.
Договоры могут сократить часть пробелов. Соглашения о хостинге и противодействии могут требовать доступа к данным событий, записей изменений маршрутов, сроков хранения, поддержки тестов и сотрудничества при раскрытии. Закупка ресурсов может требовать аутентифицированной доставки и инвентаризации. Политики браузеров и платформ могут делать небезопасные зависимости видимыми. Ни один из этих инструментов сам по себе не доказывает техническое соответствие; они создают обязательства, которые должны проверяться работающими доказательствами.
Страхование и отчётность об инцидентах также могут искажать стимулы, если поощряют грубые ярлыки вместо точных механизмов. Называть каждое событие ботнет-атакой может быть административно удобно, но это может скрыть точку контроля, сделавшую возможным вовлечение браузеров. Отчётность должна сохранять механизм, даже когда категория нужна для агрегирования.
Регуляторам следует избегать требования невозможной атрибуционной определённости во время реагирования. Вместо этого они могут требовать ограниченные факты: какой сервис пострадал, какое средство отказало или было обойдено, какие доказательства сохранены, какие субъекты уведомлены, какие пользовательские данные затронуты и какое восстановление проверено. Когда предполагается государственная активность, независимая техническая проверка становится важнее, а не менее важной.
Политика в отношении контента добавляет ещё одну проблему стимулов. Если атакующий может заставить платформу удалить материал, налагая издержки на доступность, техническая устойчивость платформы влияет на свободу выражения. Это не значит, что каждое решение о хостинге выше критики. Это значит, что подотчётность не должна описывать выбор жертвы размещать контент как сетевую причину атаки.
Более поздние повторения не переписывают 2015 год
Более поздние технические отчёты описывали повторное развёртывание систем, называемых Great Cannon. [10][18] Эта история поддерживает инвестиции в долговременное обнаружение, зашифрованный транспорт и междоменный обмен доказательствами. Она не доказывает, что каждое более позднее событие использовало идентичную инфраструктуру, цели, операторов или командные полномочия.
Поэтому записи об инцидентах должны сохранять идентичность события. Последовательность GreatFire — GitHub в марте 2015 года имеет собственные даты, цели, измерения и публичные утверждения. Более поздние наблюдения могут подсказывать гипотезы или показывать, что метод оставался актуальным. Их не следует сливать в один непрерывный инцидент без доказательств.
Эта граница защищает точность. Нарративы о безопасности часто становятся чище со временем, когда повторяющиеся ярлыки заменяют неаккуратные наблюдения. Цена в том, что неопределённость исчезает, а технические различия теряются. Подотчётность требует обратного: стабильных записей событий, явных обновлений и версионированных выводов.
Более позднее техническое обсуждение NTT полезно как независимая аналитическая перспектива на Great Cannon и защиту от DDoS. [10] Более поздний отчёт AT&T Alien Labs даёт границу повторения. [18] Оба относятся к контексту, а не к замене записи жертвы и измерений 2015 года.
Контрфактические средства и их пределы
Дисциплинированный разбор может спросить, как конкретные средства изменили бы событие, не утверждая определённости о ненаблюдаемой альтернативе.
Если бы сторонний ресурс доставлялся через корректно аутентифицированное шифрование, прямая подмена ответа на пути была бы труднее, потому что браузер ожидал бы действительный защищённый ответ. Контрфакт не доказывает, что атакующий отказался бы от цели. Блокировка, компрометация конечной точки, другие возможности внедрения или иной метод DDoS всё равно могли быть доступны.
Если бы у браузеров были более сильные ограничения на неожиданные повторяющиеся фоновые запросы, генерируемая нагрузка могла бы снизиться. Контрфакт должен учитывать легитимные приложения и возможность того, что код мог варьировать тайминги или направления.
Если бы у GitHub было больше ёмкости на границе и в противодействии, сервис мог бы поглотить больше трафика. Ёмкость не исправляет удалённый сбой целостности контента, и ни один публичный источник не устанавливает точную дополнительную ёмкость, которая требовалась.
Если бы у операторов был более богатый мониторинг с нескольких точек, исследователи и затронутые стороны могли бы быстрее локализовать внедрение или получить более сильные доказательства атрибуции. Мониторинг сам по себе не предотвращает изменение и должен проектироваться с учётом ограничений приватности.
Если бы универсальная проверка источников была развёрнута, многие атаки отражения с подменой адресов были бы труднее. Описанные здесь запросы, создаваемые браузерами, всё равно несли бы правдоподобные адреса источников. Этот контрфакт усиливает необходимость многоуровневых средств, а не умаляет работу против спуфинга.
Цель этих вопросов — проектирование средств, а не запоздалые обвинения. Полезный контрфакт называет изменённое свойство, необходимые доказательства и оставшиеся пути атаки.
Стандарт подотчётности для внедрения на пути
Атака на GitHub в 2015 году предлагает практический стандарт для операторов и платформ.
Во-первых, аутентифицируйте исполняемые ресурсы. Незашифрованная доставка кода создаёт возможность подмены на уровне пути. Проводите инвентаризацию сторонних зависимостей и устраняйте смешанные или неаутентифицированные пути исполнения, где это возможно.
Во-вторых, измеряйте из более чем одной сети. Журналы источника сервиса не могут показать каждый ответ, который получает клиент. Внешние точки наблюдения и хеши ответов помогают отличать поведение источника от поведения пути.
В-третьих, картируйте контроль по уровням. Назовите, кто контролирует публикацию ресурсов, DNS, маршрутизацию, транзит, выполнение в браузере, границу цели, противодействие и коммуникацию с клиентами. Не возлагайте полную ответственность на самый заметный бренд.
В-четвёртых, сохраняйте доказательства, привязанные к действиям. У каждого фильтра, изменения маршрута, сдвига ёмкости и политического решения должны быть владелец, таймстамп, причина, ожидаемый эффект, наблюдаемый эффект и условие отката.
В-пятых, сохраняйте видимость уверенности атрибуции. Техническое расположение и сходство кода могут поддерживать сильную оценку, не доказывая конкретную цепочку команд. Публичный язык должен соответствовать доказательствам.
В-шестых, защищайте непричастных пользователей при проектировании противодействия. Источники с вовлечёнными браузерами не эквивалентны добровольным атакующим. Средства должны минимизировать побочную блокировку и сохранять приватность.
В-седьмых, проверяйте непрерывность, не уступая решения о контенте давлению трафика. Платформа должна знать, как она сохранит сервис и законно размещённый материал, когда запросы превращаются в оружие против конкретной цели.
В-восьмых, связывайте административные записи с доказательствами выполнения. DNS, сертификаты, записи маршрутизации и договоры важны, потому что определяют ожидания. Их ценность для подотчётности появляется только тогда, когда их можно согласовать с наблюдаемой доставкой и поведением сервиса.
Вопросы, которые должны задавать советы директоров, операторы и рецензенты
- Какие ресурсы могли выполнять код в браузерах пользователей, и все ли они доставлялись по аутентифицированному транспорту?
- Какие доказательства отличали бы компрометацию источника, подмену на пути, локальное вредоносное ПО и обычное поведение издателя?
- Какие сети и пути давали аномальные ответы, а какие — ожидаемые байты?
- Были ли часы, захваты, хеши полезных нагрузок, сертификаты, результаты резолверов и наблюдения за маршрутами сохранены на одной хронологии?
- Какая сторона могла изменить подозреваемую систему внедрения, и какие проверяемые записи документируют этот контроль?
- Как жертва классифицировала запросы, созданные браузерами, не предполагая, что каждый пользователь-источник намеревался атаковать?
- Какие действия по фильтрации, ограничению частоты, кешированию, ёмкости и привлечению провайдера противодействия были предприняты и какой эффект последовал за каждым действием?
- Какие легитимные пользователи или посторонние сервисы пострадали от противодействия?
- Какие факты поддерживают атрибуцию оператора, какие альтернативы остаются и какой уровень уверенности оправдан?
- Сохранялись ли отдельно утверждения GreatFire, интерпретация GitHub, отрицание Baidu и независимые измерения?
- Какие средства направлены на подмену источников, какие — на целостность контента и какие — на доступность цели?
- Может ли квалифицированный рецензент воспроизвести границы инцидента, не полагаясь на институциональное доверие?
Заключение
DDoS-атака на GitHub в 2015 году стала проверкой сетевой подотчётности, потому что предполагаемая точка контроля находилась между ожидаемым веб-ресурсом и кодом, который браузеры фактически выполняли. Атака заимствовала обычных клиентов, реальные адреса и общие пути. Она обнажила пределы рассмотрения имён конечных точек, адресов источников или административных записей как полных описаний поведения сети.
Открытая информация поддерживает осторожный вывод. GitHub пережила крупную DDoS-атаку, направленную на контент. GreatFire описала предшествующую и связанную последовательность со стороны жертвы. Исследователи измерили систему, способную к выборочному внедрению в незашифрованные ответы, и оценили вероятного оператора. Baidu отрицала, что её продукты были скомпрометированы. Важные детали реализации, объёма, издержек и командования остаются неизвестными.
Подотчётность следует за контролем над этими фактами. Операторы путей должны сохранять проверяемые доказательства для систем, способных к изменению. Издатели ресурсов и встраивающие сайты должны управлять исполняемыми зависимостями и аутентифицированной доставкой. Браузеры должны снижать тихое вовлечение. GitHub и партнёры по противодействию должны связывать действия на границе с измеренными результатами. Исследователи и публичные органы должны отделять наблюдение, вывод и атрибуцию.
Непреходящее правило просто и требовательно: сеть нужно судить по контенту, маршрутам и поведению сервиса, которые она фактически произвела. Записи определяют предполагаемые полномочия. Работающие доказательства показывают, сохранились ли эти полномочия. В инциденте, построенном на разрыве между ними, подотчётность начинается с того, чтобы сделать этот разрыв видимым.
Источники
- https://github.blog/news-insights/company-news/large-scale-ddos-attack-on-github-com/
- https://citizenlab.ca/research/chinas-great-cannon/
- https://citizenlab.ca/wp-content/uploads/2009/10/ChinasGreatCannon.pdf
- https://www.usenix.org/conference/foci15/workshop-program/presentation/marczak
- https://www.usenix.org/system/files/conference/foci15/foci15-paper-marczak.pdf
- https://www.usenix.org/system/files/conference/woot15/woot15-paper-pellegrino.pdf
- https://en.greatfire.org/blog/2015/mar/we-are-under-attack
- https://en.greatfire.org/blog/2015/mar/chinese-authorities-compromise-millions-cyberattacks
- https://github.blog/news-insights/the-library/denial-of-service-attacks/
- https://www.ntt-review.jp/archive/ntttechnical.php?contents=ntr201512fa2.html
- https://datatracker.ietf.org/doc/rfc4732/
- https://datatracker.ietf.org/doc/rfc2827/
- https://www.rfc-editor.org/rfc/rfc4948.html
- https://www.ietf.org/rfc/rfc8704.html
- https://www.rfc-editor.org/info/rfc7258/
- https://www.rfc-editor.org/info/rfc8446/
- https://www.nist.gov/publications/resilient-interdomain-traffic-exchange-bgp-security-and-ddos-mitigation
- https://cybersecurity.att.com/blogs/labs-research/the-great-cannon-has-been-deployed-again
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
