Если вы работаете с облачным сервисом, отказ в обслуживании будет сильно отличаться от того, что происходит с небольшим умным устройством, где объем памяти довольно ограничен. Некоторые устройства реализуют буферы фиксированного размера для таких вещей, как «известные устройства». Недавно я арендовал машину, где мне нужно было выяснить, как отсоединить предыдущий набор сотовых телефонов, прежде чем я смогу подключить музыку по Bluetooth. К счастью, когда я ехал по шоссе, атака «отказ в обслуживании» на мое внимание оказалась не слишком губительной, потому что машину вел не я, а я «развлекался» с развлекательной системой.
Кстати, некоторые библиотеки сжатия, по-видимому, передают полные пути, чтобы указать, где должны храниться данные. Совсем недавно они были вновь обнаружены под названием zipslip [Snyk, 2018]. Это еще один пример сбитого с толку представителя, когда распаковщик работает на человека, который создал zip-файл, а не на человека, который хотел распаковать zip-файл.
Есть такие угрозы, когда кто-то отправляет много данных, часто со своих устройств, и есть другие, которые отправляют немного данных, а кто-то их усиливает. IP-сети имеют функции, которые можно использовать в качестве усилителей, такие как проверка связи (pinging) с широковещательным адресом. Они рассматриваются в разделе «Усиление» далее в этой главе. Конечно, эти атаки не ограничиваются IP; маркерное кольцо (token ring) не работает, если вы не отдаете маркер (token).
В век избытка пропускной способности IP, такой как «оптоволокно до дома», мы можем забыть, что пропускная способность всегда ограничена. Полоса пропускания радиосвязи более ограничена, чем связь по проводам. В самолетах, где все пассажиры пользуются одной радиостанцией, полоса пропускания резко ограничена. Даже локальные радиостанции с меньшей мощностью имеют важные ограничения. По мере увеличения использования полосы пропускания растет и конкуренция. Спросите любого, кто отлаживал Wi-Fi в многоквартирном доме. Zigbee, Wave и другие системы с очень низким энергопотреблением также могут быть перегружены. В одном случае они были ошеломлены (кхм) умными лампочками, которые являются полезным инструментом атаки, потому что их радиоприемники подключены к источнику питания. Даже не сказав ничего полезного, они могут зафлудить локальную сеть или помешать доставке сообщений. Эти помехи легче всего представить в беспроводном широковещании, но MITM также может вмешиваться в доставку или изменять сообщения таким образом, что они не проходят проверку целостности. Это вмешательство может привести к отказу в обслуживании в качестве побочного эффекта.
Текущий раздел главы называется «Сети», а не «Пропускная способность», потому что отказ в обслуживании сети может работать как с использованием очень больших пакетов, так и очень маленьких. Очень большие потребляют пропускную способность, в то время как очень маленькие потребляют вычислительную мощность маршрутизаторов и коммутаторов [Emmons, 2020].
Помимо атак на пропускную способность сети, существуют атаки на потоки данных. К ним относится повреждение сообщений. Если у вас есть хорошая проверка целостности сообщений, поврежденные пакеты могут быть отброшены. Результирующий путь выполнения кода, вероятно, будет менее оптимизирован, и может возникнуть каскад проблем с вычислениями или хранением при управлении и регистрации странных пакетов.
Большинство устройств потребляют не так много энергии, как притягивающий луч. (Стоит задаться вопросом: когда злоумышленник отключает питание, является ли это угрозой отказа в обслуживании? Это, безусловно, угроза доступности системы, даже если она кажется отличной от других угроз, которые мы обсуждаем.)
Когда энергопитание обеспечивается батареями, разрядка батареи может стать существенной проблемой. Устройства с батарейным питанием могут быть подвергнуты вычислительным атакам, поскольку, конечно, вычисления требуют энергии, и они могут подвергаться атакам на другие потребители энергии. Если просто попросить устройство просыпаться чаще, чем планировалось, это может разрядить как батарею, так и периферийные устройства, такие как экраны, радиоприемники или жесткие диски.
Есть также батареи, до которых трудно добраться. Они могут быть в камере видеонаблюдения, высоко на стене или на расстоянии, обнаруживая что-то в глубине дикой местности или даже в глубинах открытого космоса. И хотя мы думаем, что добраться до них – это болезненная процедура, еще больнее будет вскрывать чью-то грудь, чтобы заменить батарейку в кардиостимуляторе.
Чаще всего электроэнергия поступает из розетки, и в большинстве случаев за пределами центра обработки данных потребляемая мощность не изменяется настолько, чтобы можно было проводить DoS-атаки. Любой, кто работал в центрах обработки данных, знает, что они быстро усложняются, и эта сложность может привести к сбоям. Этими сбоями, как и теми, которые вызвают ураганы, как правило, занимаются люди, строящие центры обработки данных.
Облако подвергает риску исчерпание нового ресурса – вашего бюджета. Поставщик облачных услуг может допустить немало злоупотреблений в своих каналах, развернуть для вас новые вычислительные узлы и предоставить вам невообразимые объемы хранилища, и все это за невообразимые и, вероятно, неуправляемые счета.
Поставщики облачных услуг с радостью продадут вам больше облака, и, как правило, они будут рады продать вам столько облака, сколько вы хотите или можете себе позволить. Это здорово до тех пор, пока ваши компьютеры делают прибыльную работу. Ваша потребность в масштабировании, в идеале, коррелирует с ростом бизнеса. Но когда ваши системы подвергаются ресурсоемким атакам, эти атаки могут выйти за рамки хранилища, вычислений и пропускной способности и ударить прямо по вашему кошельку.
Когда вы покупаете эти ресурсы небольшими порциями, в первую очередь могут закончиться не ресурсы, а ваш бюджет. Как заметили обанкротившиеся люди из Long-Term Capital Management, «рынок может оставаться иррациональным гораздо дольше, чем вы можете оставаться платежеспособным», но рынок даже не был иррациональным; фирма подверглась скоординированной атаке на свой бюджет.
Деньги, конечно, отличный мотиватор. Злоумышленники предпочитают забрать ваши деньги себе, чем заставить вас заплатить облачному провайдеру. Таким образом, если вы используете текстовые сообщения для уведомлений, напоминаний и т. п., злоумышленники могут дать вам номер премиум-класса. Это номера, по которым с отправителя взимается плата за отправку сообщения, например те, которые используются для взимания платы за голосование в реалити-шоу. Эта атака настолько распространена, что существует аббревиатура IRSF (international revenue sharing fraud, международное мошенничество с разделением доходов). Эта атака также применима к использованию текстовых сообщений для аутентификации, что всегда было плохой идеей, как обсуждалось в главе 1 «Спуфинг и аутентичность». Описанная в ней ситуация усугубляется такими атаками. Составление бюджета на отправку текстовых сообщений может послужить защитой (после проверки кодов городов по списку или использования сервиса, который это делает). Если из-за бюджета перестают отправляться текстовые сообщения, вы, вероятно, должны иметь доступ к состоянию вашего бюджета в режиме реального времени. Обнаружение того, что ваш бюджет был полностью израсходован, только когда ваш сервис отключен или появляется ежемесячный счет, является еще одним видом отказа в обслуживании, на этот раз со стороны вашей защиты.
Многие из этих атак логичнее было бы сгруппировать как мошенничество и, следовательно, как отказ от ответственности. Но имейте в виду, что все модели в конечном итоге неверны, и если размышления о том, «как кто-то подъедает наш бюджет», приводят к хорошим открытиям, вам следует ими заняться.
У всех систем есть ограничения по ресурсам, которые могут быть исчерпаны, часто неожиданным образом. Пять слотов для SYN (обсуждавшиеся ранее в разделе «Хранилище») были неожиданным ограничением. Существуют ограничения на количество файловых дескрипторов, идентификаторов процессов и объем памяти, и большинство из них могут быть атакованы. Например, форк-бомба – это простая программа, которая многократно вызывает fork() для запуска новых копий самой себя до тех пор, пока процессы больше не смогут создаваться.
Активация защит как средство отказа в обслуживании кому-то другому может быть довольно эффективной. Пароли, которые блокируются после пяти попыток, означают, что злоумышленники могут заблокировать вас. В главе 3 «Отказ от ответственности и доказательства» мы узнали о покупке заведомо фальшивых отзывов о конкурентах, чтобы их аккаунты были закрыты. Конечно, существуют средства защиты, которыми нельзя злоупотреблять для отказа в обслуживании, такие как тщательно контролируемая выдача цифровых подписей, но они встречаются реже, чем можно было бы надеяться. Преднамеренное ухудшение качества обслуживания при атаке может быть эффективным компромиссом, если эти компромиссы не являются случайными.
Не все атаки типа «отказ в обслуживании» направлены против технических целей. Все ресурсы конечны. Некоторым клиентам требуется гораздо больше контроля, чем другим. Террористы совершают несколько одновременных нападений, чтобы нагрузить службы оперативного реагирования – скорую помощь, полицию и больницы. Проблемы с цепочками поставок в 2021 и 2022 годах выявили множество мест, где «оптимизация» предполагала, что все будет идти гладко, а когда этого не происходило, производственные мощности оставались незадействованными, а клиенты либо не обращали внимания на используемые бренды (если вообще пользовались брендированной продукцией), либо меняли предпочтения. Часто ведутся дискуссии о том, что доверие и устойчивость истощаются, и это выходит за рамки этой книги.