Jump to content

Носокстресс

Sockstress — это метод атаки на серверы и другие устройства, которые принимают TCP- соединения в Интернете и других TCP - сетях . [1] Этот метод истощает локальные ресурсы, чтобы привести к сбою службы или всей машины, по сути функционируя как атака типа «отказ в обслуживании».

Sockstress был разработан в качестве внутреннего доказательства концепции покойным Джеком К. Луисом из Outpost24. Луи обнаружил аномалии, используя Unicornscan для тестирования сетей на предмет корпоративной безопасности, что привело к разработке Sockstress. [2] Впервые концепция была продемонстрирована в сентябре 2008 года. [3] [4] [5] [6] Исследователи планировали опубликовать более подробную информацию на конференции T2 в Финляндии, где они продемонстрировали атаки. [7] [8] Вместо этого они решили продолжать тесно сотрудничать с поставщиками и сообществами по стандартизации и уделять им больше времени. В записи в блоге они заявили: «Мы не подвергаем их [поставщиков] неоправданному давлению, требуя срочного устранения плохо реализованных исправлений».

Инструмент для проверки концепции Nkiller2, демонстрирующий атаку, похожую на носокстресс, был опубликован Фотисом Шанцисом, также известным как ithilgore, в электронном журнале Phrack . [9] Nkiller2 работает полностью без сохранения состояния, используя методы анализа пакетов и виртуальные состояния, а также использует внутренний механизм TCP, постоянный таймер, что позволяет выполнять и бесконечно продлевать стандартную DoS-атаку с минимальным объемом сетевого трафика.

О Сокстрессе

[ редактировать ]

Sockstress — это инфраструктура стресса TCP-сокетов на уровне пользователя, которая может выполнять произвольное количество открытых сокетов без типичных накладных расходов на отслеживание состояния. Как только сокет установлен, он способен отправлять TCP-атаки, нацеленные на определенные типы ресурсов ядра и системы, такие как счетчики, таймеры и пулы памяти. Некоторые из описанных здесь атак считаются «хорошо известными»; однако полные последствия этих атак менее известны. Кроме того, еще предстоит обнаружить или задокументировать еще несколько атак. По мере того, как исследователи документируют способы истощения конкретных ресурсов, модули атак могут быть добавлены в дерево платформы Sockstress.

Инструмент атаки на носокстресс состоит из двух основных частей:

1) Фантап: Фантап [10] — это программа, которая подделывает IP-адреса для использования с Sockstress. Это достигается путем отправки ответов ARP хостам, которые выполняют запрос на поддельный IP-адрес. Чтобы использовать fantaip, введите «fantaip -i интерфейс CIDR», например «fantaip -i eth0 192.168.0.128/25». Эта функция ARP/уровня 2 может дополнительно обеспечиваться другими средствами в зависимости от требований топологии локальной сети. Поскольку Sockstress завершает TCP-сокеты на пользовательском уровне, не рекомендуется использовать Sockstress с IP-адресом, настроенным для использования ядром, так как тогда ядро ​​будет выполнять RST для сокетов. Это не является строго обязательным, поскольку использование брандмауэра для отбрасывания входящих пакетов с первым флагом может использоваться для достижения той же цели и предотвращения вмешательства ядра в вектор атаки.

2) Sockstress: в самом простом использовании sockstress просто открывает TCP-сокеты и отправляет указанный TCP-стресс-тест. При необходимости он может отправлять полезную нагрузку TCP для конкретного приложения (например, HTTP-запрос). По умолчанию после атаки он игнорирует последующие соединения через установленный сокет. Опционально он может проверять ACK для активных сокетов. Атаки используют открытые ресурсы, которые цель предоставляет после рукопожатия.

Клиентские файлы cookie, широко обсуждаемые в блогах, новостях и списках обсуждений, являются частью реализации sockstress и не являются строго необходимыми для проведения этих атак.

Сценарии атак

[ редактировать ]

Каждая атака в рамках Sockstress оказывает определенное влияние на атакуемую систему/сервис. Однако некоторые атаки против конкретной комбинации системы и службы более эффективны, чем другие.

Стресс соединения

[ редактировать ]

В Sockstress нет специального модуля атаки для выполнения простой атаки лавинной рассылки соединений, но любой из модулей атаки может использоваться как таковой, если указаны параметры -c-1 (максимальное количество подключений неограничено) и -m-1 (максимальное число неограниченных подключений). использовал.

Примеры команд:

  1. fantaip -i eth0 192.168.1.128/25 -vvv
  2. sockstress -A -c-1 -d 192.168.1.100 -m-1 -Mz -p22,80 -r300 -s192.168.1.128/25 -vv

Нулевая нагрузка на оконное соединение

[ редактировать ]

Создайте соединение с прослушивающим сокетом и после трехстороннего рукопожатия (внутри последнего ACK) отправьте 0 окно.

       syn -> (4k window)
               <- syn+ack (32k window)
       ack -> (0 window)

Теперь серверу придется «зондировать» клиента, пока не откроется нулевое окно. Это самый простой для понимания тип атаки. Результат аналогичен лавинной атаке соединений, за исключением того, что сокеты остаются открытыми потенциально бесконечно (когда включен -A/ACK). Это описано в документе CPNI в разделе 2.2. Вариантом здесь может быть PSH полезных данных клиента (т. е. «GET / HTTP/1.0») перед установкой окна в 0. Этот вариант будет аналогичен тому, что описано в разделе 5.1.1 документа CPNI. Еще одним вариантом может быть время от времени объявлять окно TCP больше 0, а затем возвращаться к 0-окну.

Хорош против:

  • Службы с длительными тайм-аутами

Примеры команд:

  1. fantaip -i eth0 192.168.1.128/25 -vvv
  2. sockstress -A -c-1 -d 192.168.1.100 -m-1 -Mz -p22,80 -r300 -s192.168.1.128/25 -vv

Небольшое оконное напряжение

[ редактировать ]

Создайте соединение с прослушивающим сокетом и после трехстороннего рукопожатия (внутри последнего ACK) установите размер окна в 4 байта, затем создайте пакет ACK/PSH с полезной нагрузкой TCP (в окне, которое, как мы надеемся, будет достаточно большим, чтобы его принять) с помощью окно по-прежнему имеет размер 4 байта. Это потенциально может привести к потреблению памяти ядра, поскольку оно принимает ответ и разбивает его на крошечные 4-байтовые фрагменты. Это не похоже на лавину соединений, поскольку память теперь расходуется для каждого сделанного запроса. Это привело к тому, что системы Linux/Apache и Linux/sendmail оказались в нерабочем состоянии. Он также эффективен против других систем. Ожидается, что это будет иметь последствия, аналогичные тем, которые описаны в документе CPNI в предпоследнем абзаце на стр. 17.

Посмотрите файл payload.c в исходном коде sockstress. Найдите оператор переключения hport. В этом разделе вы можете указать полезную нагрузку для отправки на определенные порты. Наиболее эффективно отправлять полезную нагрузку, которая сгенерирует как можно больший ответ (например, «GET /largefile.zip»).

Хорош против:

  • Сервисы, содержащие баннеры начального подключения
  • Службы, которые принимают первоначальный запрос и отправляют большой ответ (например, запрос GET к большой веб-странице или загрузка файла).

Примеры команд:

  1. fantaip -i eth0 192.168.1.128/25 -vvv
  2. sockstress -A -c-1 -d 192.168.1.100 -m-1 -Mw -p22,80 -r300 -s192.168.1.128/25 -vv

Напряжение сегментного отверстия

[ редактировать ]

Создайте соединение с прослушивающим сокетом и после трехстороннего установления связи (внутри последнего ACK) отправьте 4 байта в начало окна, как объявлено удаленной системой. Затем отправьте 4 байта в конец окна. Затем 0-окнное соединение. В зависимости от стека это может привести к тому, что удаленная система будет выделять несколько страниц памяти ядра для каждого соединения. Это не похоже на лавину соединений, поскольку память теперь расходуется для каждого установленного соединения. Эта атака была создана для Linux. Он также весьма эффективен против Windows. Эта атака использовалась в демоверсиях sec-t и T2. Ожидается, что это будет иметь последствия, аналогичные тем, которые описаны в документе CPNI в пятом абзаце раздела 5.2.2 и разделе 5.3.

Хорош против:

  • Стеки, которые выделяют несколько страниц памяти ядра в ответ на этот стимул.

Примеры команд:

  1. fantaip -i eth0 192.168.1.128/25 -vvv
  2. sockstress -A -c-1 -d 192.168.1.100 -m-1 -Ms -p22,80 -r300 -s192.168.1.128/25 -vv

REQ FIN пауза стресс

[ редактировать ]

Создайте соединение с прослушивающим сокетом. PSH — это полезная нагрузка приложения (т. е. «GET/HTTP/1.0»). FIN соединение и 0-окно. Эта атака будет иметь разные результаты в зависимости от стека/приложения, на которое вы нацелены. Используя это для веб-сервера Cisco 1700 (IOS), было замечено, что сокеты оставались в состоянии FIN_WAIT_1 на неопределенный срок. После достаточного количества таких сокетов маршрутизатор больше не мог правильно обмениваться данными TCP.

Посмотрите файл payload.c в исходном коде sockstress. Найдите оператор переключения hport. В этом разделе вы можете указать полезные данные для отправки на определенные порты. Вы должны отправить полезную нагрузку, которая будет выглядеть как обычный клиент, в приложение, с которым вы взаимодействуете. Против Cisco 1700 при использовании этой атаки важно было атаковать с очень низкой скоростью.

Примеры команд:

  1. fantaip -i eth0 192.168.1.128/25 -vvv
  2. sockstress -A -c-1 -d 192.168.1.100 -m-1 -MS -p80 -r10 -s192.168.1.128/25 -vv

Активировать стресс давления Рено

[ редактировать ]

Создайте соединение с прослушивающим сокетом. PSH — это полезная нагрузка приложения (т. е. «GET/HTTP/1.0»). Тройной дубликат ACK.

Посмотрите файл payload.c в исходном коде sockstress. Найдите оператор переключения hport. В этом разделе вы можете указать полезные данные для отправки на определенные порты. Вы должны отправить полезную нагрузку, которая будет выглядеть как обычный клиент, в приложение, с которым вы взаимодействуете.

Хорош против:

  • Стеки, поддерживающие этот метод активации reno или аналогичных функций планировщика.

Примеры команд:

  1. fantaip -i eth0 192.168.1.128/25 -vvv
  2. sockstress -A -c-1 -d 192.168.1.100 -m-1 -MR -p22,80 -r300 -s192.168.1.128/25 -vv

Другие идеи

[ редактировать ]
  • FIN_WAIT_2 стресс

Создайте соединение с прослушивающим сокетом. PSH — полезные данные приложения, которые, скорее всего, заставят приложение на другой стороне закрыть сокет (Target отправляет FIN). ПОДТВЕРДИТЬ ФИН.

Хорош против:

  • Стеки, у которых нет тайм-аута FIN_WAIT_2.
  • Большой стресс окна перегруженности
  • Сокращение пути MTU стресс
  • MD5 стресс

Последствия атак

[ редактировать ]

Если атаки успешны в инициировании постоянно зависающих соединений, таблица соединений сервера может быстро заполниться, что фактически создает состояние отказа в обслуживании для конкретной службы. Во многих случаях мы также видели, как атаки потребляют значительные объемы очередей событий и системной памяти, что усиливает последствия атак. Результатом этого стали системы, в которых больше нет таймеров событий для TCP-связи, зависание систем и перезагрузка системы. Атаки не требуют значительной пропускной способности.

Хотя сделать так, чтобы одна служба стала недоступной за считанные секунды, тривиально, для того, чтобы вывести из строя всю систему, может потребоваться много минут, а в некоторых случаях и часов. Как правило, чем больше сервисов имеется в системе, тем быстрее она поддается разрушительным последствиям (разрыв TCP, блокировка системы, перезагрузка и т. д.). Альтернативно, усиление атаки может быть достигнуто за счет атаки с большего количества IP-адресов. Мы [ ВОЗ? ] в наших лабораториях обычно атакуют от /29 до /25. Атака с /32 обычно менее эффективна при возникновении общесистемных ошибок.

Предостережения по эксплуатации

[ редактировать ]

Атака требует успешного трехстороннего TCP-квитирования для эффективного заполнения таблиц соединений жертвы. Это ограничивает эффективность атаки, поскольку злоумышленник не может подделать IP-адрес клиента, чтобы избежать отслеживания.

Эксплойт в стиле sockstress также требует доступа к необработанным сокетам на атакующей машине, поскольку пакеты должны обрабатываться в пользовательском пространстве Connect() ОС , а не с помощью API-интерфейса . Необработанные сокеты отключены в Windows XP SP2 и выше, но драйверы устройств легко доступны. [11] чтобы вернуть эту возможность обратно в Windows. Эксплойт может быть выполнен «как есть» на других платформах с необработанными сокетами, таких как *nix , и требует привилегий root (суперпользователя).

смягчение последствий

[ редактировать ]

Поскольку для воздействия на цель злоумышленник должен иметь возможность устанавливать TCP-сокеты, внесение в белый список доступа к службам TCP на критических системах и маршрутизаторах является в настоящее время наиболее эффективным средством смягчения последствий. Использование IPsec также является эффективным средством смягчения последствий.

Согласно ответу Cisco [12] Текущий совет по смягчению последствий заключается в том, чтобы разрешить доступ к службам на основе TCP только доверенным источникам. Это смягчение особенно важно для устройств критической инфраструктуры. Red Hat заявила, что «из-за решения разработчиков не выпускать обновления Red Hat не планирует выпускать обновления для решения этих проблем; однако последствия этих атак можно уменьшить». В Linux использование iptables с отслеживанием соединений и ограничением скорости может значительно ограничить влияние эксплуатации. [13]

  1. ^ Безопасность сейчас! подкаст, объясняющий Sockstress
  2. Интервью с Робертом Э. Ли и Джеком К. Луи (первые 8 минут после начала английского языка). Архивировано 2 октября 2008 г. в Wayback Machine.
  3. ^ «Роберт Э. Ли: Обзор Sockstress Sec-T» . Архивировано из оригинала 5 ноября 2008 г.
  4. Сообщение в блоге Карла Норденфельта. Архивировано 5 октября 2008 г. в Wayback Machine.
  5. ^ Сообщение в блоге Амелии Нильссон.
  6. ^ Mikael (FireLynx) blog post Archived 2012-08-02 at archive.today
  7. ^ http://www.t2.fi/
  8. ^ http://radian.org/notebook/van-helsingfors
  9. ^ Использование TCP и бесконечности постоянного таймера
  10. ^ Fantaip поставляется с Unicornscan. Архивировано 16 апреля 2013 г. на archive.today.
  11. ^ «Необработанные TCP-сокеты и Npcap | PingPlotter» .
  12. ^ Ответ Cisco
  13. ^ Влияет ли CVE-2008-4609 на Red Hat Enterprise Linux?
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f47879b2ba782e2417574839f7a9c8df__1715866020
URL1:https://arc.ask3.ru/arc/aa/f4/df/f47879b2ba782e2417574839f7a9c8df.html
Заголовок, (Title) документа по адресу, URL1:
Sockstress - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)