Добавить в корзинуПозвонить
Найти в Дзене
IT Еxtra

История взлома: Как один бит в памяти телефонной станции обрушил всю восточную часть США в 1990

15 января 1990 года, 14:25 по восточному времени. Вы поднимаете трубку, чтобы позвонить — решить вопрос с клиентом, предупредить родных, забронировать отель. В ответ — гудки, щелчки и ледяное: «All circuits are busy now. Please try your call later». Вы перезваниваете снова. И снова. И снова — безрезультатно. За девять часов эта ледяная запись прозвучала более 50 миллионов раз. AT&T, гордость американской телекоммуникационной отрасли, транспортная артерия страны, рассыпалась за пять секунд — и всё из-за одной строчки кода, пропущенного слова «break». Сегодня мы вскроем этот инцидент до голого железа. Без общих слов — только хронология падения титана и урок, который мы, разработчики, должны были усвоить 35 лет назад, но продолжаем игнорировать до сих пор. Чтобы понять масштаб катастрофы, нужно представить себе сеть AT&T образца 1990 года. Это не просто «провайдер связи». На тот момент AT&T обрабатывала более 70% всей дальней связи США — от личных разговоров до банковских транзакций и ави
Оглавление

15 января 1990 года, 14:25 по восточному времени. Вы поднимаете трубку, чтобы позвонить — решить вопрос с клиентом, предупредить родных, забронировать отель. В ответ — гудки, щелчки и ледяное: «All circuits are busy now. Please try your call later». Вы перезваниваете снова. И снова. И снова — безрезультатно.

За девять часов эта ледяная запись прозвучала более 50 миллионов раз. AT&T, гордость американской телекоммуникационной отрасли, транспортная артерия страны, рассыпалась за пять секунд — и всё из-за одной строчки кода, пропущенного слова «break».

Сегодня мы вскроем этот инцидент до голого железа. Без общих слов — только хронология падения титана и урок, который мы, разработчики, должны были усвоить 35 лет назад, но продолжаем игнорировать до сих пор.

Анатомия гиганта

Чтобы понять масштаб катастрофы, нужно представить себе сеть AT&T образца 1990 года. Это не просто «провайдер связи». На тот момент AT&T обрабатывала более 70% всей дальней связи США — от личных разговоров до банковских транзакций и авиабилетов. В обычный рабочий день через сеть проходило от 80 до 115 миллионов звонков.

Сердцем этой махины были 114 коммутаторов 4ESS — компьютерных гигантов, каждый из которых обрабатывал до 700 тысяч звонков в час. Они располагались в ключевых точках по всей стране и общались между собой через протокол SS7 (Signalling System No. 7) — «мозг» телефонной сети, который занимался маршрутизацией, в то время как голос шёл по отдельным каналам.

Система SS7 была спроектирована с избыточностью: у каждого элемента был резервный. Единых точек отказа быть не могло. Или всё-таки могло?

Первые ласточки падения

Всё началось в Нью-Йорке. Один из 114 коммутаторов запустил штатную процедуру самопроверки, обнаружил, что приближается к пределу нагрузки, и корректно выполнил четырёхсекундный перезапуск. На время перезагрузки он отправил соседям сообщение: «Не давайте мне новые звонки, я сейчас».

После перезагрузки нью-йоркский коммутатор начал разбирать накопившуюся очередь и информировать сеть о своём возвращении. В этот момент и произошёл сбой — и снова по совершенно банальной причине. Настоящий виновник появился задолго до 15 января: в декабре 1989 года инженеры AT&T обновили программное обеспечение всех 114 коммутаторов.

Одна строчка против всей сети

В коде обновления, написанном на C, содержалась ошибка — не просто банальная, а смешная по своей простоте. Внутри вложенных условий был неверно размещён оператор break.

Для непосвящённых: представьте себе сложную блок-схему, где после выполнения одного действия программа должна либо остановиться, либо перейти к следующему. Из-за того, что break стоял не на своём месте, процесс в определённый момент «выпадал» из нужной ветки и вместо обработки данных просто перезаписывал критическую информацию.

На единичном коммутаторе этот сбой был бы почти незаметен — система самодиагностики просто перезагрузила бы его, и он продолжил бы работу. Но беда заключалась в том, что ошибочный код был абсолютно идентичен на всех 114 коммутаторах.

Цепная реакция

Вернёмся в Нью-Йорк. Когда первый коммутатор перезагрузился, он отправил лавину служебных сообщений соседям. Одно из сообщений пришло в момент, когда другой коммутатор ещё обрабатывал предыдущее. Из-за ошибки в коде это второе сообщение не было поставлено в очередь, а перезаписало жизненно важные данные.

Система самодиагностики обнаружила «битые» данные и — как и было задумано — инициировала аварийную перезагрузку. Перезагрузившийся коммутатор отправил свой «привет» дальше, вызвав такую же реакцию у следующего. И так по цепочке.

За девять часов этот эффект домино повторился на всех 114 коммутаторах, заблокировав более 50 миллионов звонков. Более 60 тысяч абонентов остались полностью без связи. 500 авиарейсов были задержаны, затронув 85 тысяч пассажиров. Потери AT&T превысили 60 миллионов долларов.

Финал оказался антиклиматичным и почти курьёзным: спустя девять часов инженеры просто откатили коммутаторы на предыдущую версию ПО. При этом потребовалось ещё две недели непрерывного поиска, чтобы команда разработчиков поняла, где именно находится ошибка. Как вспоминают очевидцы, в тот день в операционном центре AT&T в Бедминстере, штат Нью-Джерси, царил хаос, сравнимый с объявлением воздушной тревоги.

Прошлое не уходит

Вы думаете, SS7 остался в прошлом? Ничего подобного. Современные сети 4G и 5G до сих пор используют логику, унаследованную от SS7, адаптированную для IP — через протоколы SIGTRAN и Diameter.

Главная проблема в том, что архитектура этих протоколов изначально строилась на доверии между операторами. Сегодня это доверие стало главной уязвимостью, причём для злоумышленников — неважно, в Китае, России или США.

На протяжении последнего десятилетия исследователи безопасности демонстрировали атаки на SS7 снова и снова: перехват SMS, подмена местоположения абонента, прослушка звонков. И всё это возможно с использованием устаревшего, но всё ещё работающего протокола.

Что мы не усвоили за 35 лет

Кейс AT&T — это не ностальгическая байка для гиков. Это жёсткое напоминание о том, что:

  1. Избыточность убивает, если ошибка общая. Сеть была спроектирована без единой точки отказа — но никто не подумал о том, что единой точкой отказа может стать сам код, идентичный на всех устройствах.
  2. Тестирование не панацея. Обновление прошло все мыслимые проверки AT&T, но ошибка выжила и ждала своего часа.
  3. Legacy не умирает. SS7, SIGTRAN и Diameter всё ещё в деле — и продолжают создавать риски.

15 января 1990 года титаническая сеть AT&T рухнула из-за одного пропущенного слова в коде. История умалчивает о том, успел ли после этого инцидента кто-то из разработчиков, написавших злополучную строчку, выпить свой кофе в полной тишине. Но для всей отрасли этот звонок прозвучал громко и отчётливо.

❤️ Поддержите автора Донатом — это лучший способ сказать спасибо всей команде IT Extra. Ваша поддержка очень вдохновляет нас на создание интересного и качественного контента!

👍 Ставьте лайки если хотите разбор других интересных тем.

👉 Подписывайся на IT Extra на Дзен чтобы не пропустить следующие статьи

Если вам интересно копать глубже, разбирать реальные кейсы и получать знания, которых нет в открытом доступе — вам в IT Extra Premium. Это — ваш личный доступ к экспертизе, упакованной в понятный формат. Не просто теория, а инструменты для роста.

👉 Переходите на Premium и начните читать то, о чем другие только догадываются.