Jump to content

Атака фрагментации IP

Атаки фрагментации IP — это своего рода атака на компьютерную безопасность, основанная на том, как Интернет-протокол (IP) требует передачи и обработки данных. В частности, он вызывает фрагментацию IP — процесс, используемый для разделения сообщений ( блока служебных данных (SDU); обычно пакета ) с одного уровня сети на несколько более мелких полезных данных (PDU) нижнего уровня , которые могут поместиться в блок данных протокола . Каждое сетевое соединение имеет максимальный размер сообщений передаваемых , называемый максимальной единицей передачи (MTU). Если SDU плюс метаданные, добавленные на канальном уровне, превышают MTU, SDU должен быть фрагментирован. Атаки фрагментации IP используют этот процесс в качестве вектора атаки .

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

Согласно [Kurose 2013], при одном типе атаки фрагментации IP «злоумышленник отправляет на целевой хост поток небольших фрагментов, ни один из которых не имеет смещения, равного нулю. Цель может разрушиться при попытке восстановить датаграммы из вырожденные пакеты». [1] Другая атака включает отправку перекрывающихся фрагментов с невыровненными смещениями, что может привести к тому, что уязвимые операционные системы не будут знать, что делать, что приведет к сбою некоторых из них. [1]

Алгоритм фрагментации в IPv4.

IP-пакеты инкапсулируются в кадры канала передачи данных, и, следовательно, MTU канала влияет на более крупные IP- пакеты и заставляет их разделяться на части, равные или меньшие, чем размер MTU.

Этого можно добиться несколькими подходами:

  • Установить размер IP- пакета равным или меньшим размера непосредственно подключенного носителя и делегировать всю дальнейшую фрагментацию пакетов маршрутизаторам. Это означает, что маршрутизаторы решают, следует ли повторно фрагментировать текущий пакет или нет. Это перекладывает большую часть работы на маршрутизаторы, а также может привести к сегментации пакетов несколькими IP-маршрутизаторами один за другим, что приводит к очень своеобразной фрагментации.
  • Чтобы просмотреть все ссылки между источником и пунктом назначения и выбрать наименьший MTU на этом маршруте, при условии, что маршрут уникальный. Таким образом, мы гарантируем, что фрагментация выполняется отправителем с использованием размера пакета, меньшего, чем выбранный MTU, и что дальнейшая фрагментация на маршруте отсутствует. Это решение, получившее название Path MTU Discovery , позволяет отправителю фрагментировать/сегментировать длинный интернет- пакет , вместо того, чтобы полагаться на маршрутизаторы для выполнения фрагментации на уровне IP. Это более эффективно и масштабируемо. Поэтому в настоящее время в Интернете это рекомендуемый метод. Проблема этого подхода в том, что каждый пакет маршрутизируется независимо; они могут обычно следовать по одному и тому же маршруту, но могут и не следовать, и поэтому пробный пакет для определения фрагментации может следовать по пути, отличному от путей, используемых более поздними пакетами.

Три поля в заголовке IP используются для реализации фрагментации и повторной сборки. Поля «Идентификация», «Флаги» и «Смещение фрагмента».

Формат заголовка IPv4
Смещения Октет 0 1 2 3
Октет Кусочек 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 Версия МГП ДСКП ECN Общая длина
4 32 Идентификация Флаги Смещение фрагмента
8 64 Время жить Протокол Контрольная сумма заголовка
12 96 Исходный IP-адрес
16 128 IP-адрес назначения
20 160 Варианты (если МГП > 5)
24 192
28 224
32 256

Флаги:

3-битное поле, которое сообщает, является ли пакет частью фрагментированного кадра данных или нет.
Бит 0: зарезервирован, должен быть равен нулю (если пакет не соответствует RFC 3514).
Бит 1: (AF) 0 = можно фрагментировать, 1 = не фрагментировать.
Бит 2: (AF) 0 = последний фрагмент, 1 = больше фрагментов.
Кусочек 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Поле 0 ДФ МФ Смещение фрагмента

Смещение фрагмента определяет положение фрагмента в исходном пакете, измеряемое в 8-байтовых единицах.

Соответственно, каждый фрагмент, кроме последнего, должен содержать данные, кратные 8 байтам. Очевидно, что смещение фрагмента может содержать 8192 (2 ^ 13) единиц, но пакет не может содержать 8192 * 8 = 65 536 байт данных, поскольку поле «Общая длина» IP -заголовка записывает общий размер, включая заголовок и данные. Длина IP-заголовка составляет не менее 20 байт, поэтому максимальное значение «Смещение фрагмента» ограничено значением 8189, что оставляет место для 3 байтов в последнем фрагменте.

Поскольку IP-Интернет может работать без установления соединения, фрагменты одного пакета могут чередоваться с фрагментами другого пакета в пункте назначения. «Поле идентификации» однозначно идентифицирует фрагменты конкретного пакета .

Исходная система устанавливает в поле «Идентификация» в каждом пакете уникальное значение для всех пакетов , которые используют один и тот же IP-адрес источника, IP-адрес назначения и значения «Протокол» на протяжении всего времени существования пакета в Интернете. Таким образом, пункт назначения может различать, какие входящие фрагменты принадлежат уникальному пакету , и помещать их все в буфер до тех пор, пока не будет получен последний фрагмент. Последний фрагмент устанавливает бит «Больше фрагментов» в 0, и это сообщает принимающей станции начать повторную сборку данных, если все фрагменты были получены.

Ниже приведен реальный пример фрагментации:

Следующее было получено с помощью анализатора протоколов Ethereal для захвата ICMP пакетов эхо-запросов . Чтобы смоделировать это, откройте терминал и введите ping ip_dest -n 1 -l 65000.

Результаты следующие:

      No. Time      Source                Destination           Protocol Info
      1 0.000000    87.247.163.96         66.94.234.13          ICMP     Echo (ping) request
      2 0.000000    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=1480)
      3 0.002929    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=2960)
      4 6.111328    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=4440)
      5 6.123046    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=5920)
      6 6.130859    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=7400)
      7 6.170898    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=8880)
      8 6.214843    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=10360)
      9 6.239257    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=11840)
     10 6.287109    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=13320)
     11 6.302734    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=14800)
     12 6.327148    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=16280)
     13 6.371093    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=17760)
     14 6.395507    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=19240)
     15 6.434570    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=20720)
     16 6.455078    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=22200)
     17 6.531250    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=23680)
     18 6.550781    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=25160)
     19 6.575195    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=26640)
     20 6.615234    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=28120)
     21 6.634765    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=29600)
     22 6.659179    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=31080)
     23 6.682617    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=32560)
     24 6.699218    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=34040)
     25 6.743164    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=35520)
     26 6.766601    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=37000)
     27 6.783203    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=38480)
     28 6.806640    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=39960)
     29 6.831054    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=41440)
     30 6.850586    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=42920)
     31 6.899414    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=44400)
     32 6.915039    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=45880)
     33 6.939453    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=47360)
     34 6.958984    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=48840)
     35 6.983398    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=50320)
     36 7.023437    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=51800)
     37 7.046875    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=53280)
     38 7.067382    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=54760)
     39 7.090820    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=56240)
     40 7.130859    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=57720)
     41 7.151367    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=59200)
     42 7.174804    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=60680)
     43 7.199218    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=62160)
     44 7.214843    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=63640)
     45 7.258789    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=65120)

The first packet details:
      No.Time        Source                Destination          Protocol Info
      1 0.000000    87.247.163.96         66.94.234.13          ICMP     Echo (ping) request

Frame 1 (1514 bytes on wire, 1514 bytes captured)
Ethernet II, Src: OmronTat_00:00:00 (00:00:0a:00:00:00), Dst: 40:0f:20:00:0c:00 (40:0f:20:00:0c:00)
Internet Protocol, Src: 87.247.163.96 (87.247.163.96), Dst: 66.94.234.13 (66.94.234.13)
Internet Control Message Protocol
    Type: 8 (Echo (ping) request)
    Code: 0
    Checksum: 0x6b7d
    Identifier: 0x0600
    Sequence number: 0x0200
    Data (1472 bytes)

The second packet details:
     No. Time        Source                Destination          Protocol Info
      2 0.000000    87.247.163.96         66.94.234.13          IP       Fragmented IP protocol (proto=ICMP 0x01, off=1480)

Frame 2 (1514 bytes on wire, 1514 bytes captured)
Ethernet II, Src: OmronTat_00:00:00 (00:00:0a:00:00:00), Dst: 40:0f:20:00:0c:00 (40:0f:20:00:0c:00)
Internet Protocol, Src: 87.247.163.96 (87.247.163.96), Dst: 66.94.234.13 (66.94.234.13)
Data (1480 bytes)

Обратите внимание, что только первый фрагмент содержит заголовок ICMP, а все остальные фрагменты генерируются без заголовка ICMP.

Здесь два важных момента:

  • В некоторых протоколах передачи данных, таких как Ethernet, только первый фрагмент содержит полный заголовок верхнего уровня, а это означает, что другие фрагменты выглядят как обезглавленные пакеты .
  • Дополнительные издержки, налагаемые на сеть, поскольку все фрагменты содержат собственный IP-заголовок. Дополнительные издержки = (number_of_fragments - 1) * (ip_header_len);

Эксплойты

[ редактировать ]
Фрагмент IP перекрылся
перекрытия IP-фрагментов Эксплойт возникает, когда два фрагмента, содержащиеся в одном IP- пакете, имеют смещения, которые указывают на то, что они перекрывают друг друга в позиционировании внутри пакета . Это может означать, что либо фрагмент A полностью перезаписывается фрагментом B, либо фрагмент A частично перезаписывается фрагментом B. Некоторые операционные системы неправильно обрабатывают фрагменты, которые перекрываются таким образом, и могут вызывать исключения или вести себя другим нежелательным образом. при получении перекрывающихся фрагментов. Это основа каплевидной атаки . Перекрывающиеся фрагменты также могут использоваться в попытке обойти системы обнаружения вторжений. В этом эксплойте часть атаки отправляется фрагментами вместе с дополнительными случайными данными; будущие фрагменты могут перезаписать случайные данные остатком атаки. Если готовый пакет не будет правильно собран в IDS, атака останется незамеченной.
Буфер фрагментации IP заполнен
Эксплойт переполнения буфера IP-фрагментации возникает, когда в защищенной сети обнаруживается чрезмерное количество неполно фрагментированного трафика. Это может быть связано с чрезмерным количеством неполных фрагментированных пакетов , большим количеством фрагментов для отдельных пакетов или сочетанием количества неполных пакетов и размера/количества фрагментов в каждом пакете . Этот тип трафика, скорее всего, является попыткой обойти меры безопасности или системы обнаружения вторжений путем преднамеренной фрагментации атакующей активности.
Переполнение IP-фрагмента
Эксплойт переполнения IP-фрагмента возникает, когда повторно собранный фрагментированный пакет превышает заявленную длину IP-данных или максимальную длину пакета . По определению ни один IP-пакет не должен превышать 65 535 байт. Системы, которые пытаются обработать эти большие пакеты , могут выйти из строя, что может указывать на попытку отказа в обслуживании.
IP фрагментирует слишком много пакетов
Эксплойт «Слишком много пакетов» идентифицируется по чрезмерному количеству неполных фрагментированных пакетов , обнаруженных в сети. Обычно это либо атака типа «отказ в обслуживании», либо попытка обойти меры безопасности. Примером «Слишком много пакетов», «Неполный пакет» и «Слишком маленький фрагмент» является атака розы. [2]
IP-фрагмент неполный пакет
Этот эксплойт возникает, когда пакет не может быть полностью собран из-за отсутствия данных. Это может указывать на атаку типа «отказ в обслуживании» или попытку обойти политики безопасности фильтров пакетов.
IP-фрагмент слишком мал
Если IP-фрагмент слишком мал, это указывает на то, что этот фрагмент, вероятно, создан намеренно. Любой фрагмент, кроме последнего, размером менее 400 байт может считаться слишком маленьким. Небольшие фрагменты могут использоваться для атак типа «отказ в обслуживании» или в попытке обойти меры безопасности или обнаружения.

Фрагментация для уклонения

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

Оборудование сетевой инфраструктуры, такое как маршрутизаторы , балансировщики нагрузки , межсетевые экраны и IDS, имеет непостоянную видимость фрагментированных пакетов. Например, устройство может подвергнуть первоначальный фрагмент тщательной проверке и аудиту, но может позволить всем дополнительным фрагментам пройти без проверки. Некоторые атаки могут использовать этот факт, чтобы избежать обнаружения, помещая компрометирующие полезные данные во фрагменты. Устройства, работающие в «полном» режиме прокси, обычно не подвержены этой уловке.

  1. ^ Jump up to: а б Куросе, Джеймс Ф. (2013). Компьютерные сети: нисходящий подход . Росс, Кейт В., 1956- (6-е изд.). Бостон: Пирсон. п. 338. ИСБН  9780132856201 . OCLC   769141382 .
  2. ^ Холлис, Кен. «Объяснение атаки фрагментации розы» . Архивировано из оригинала 24 февраля 2012 г. Проверено 25 ноября 2013 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f1c673d4f6f065292fb08d348c979425__1680627900
URL1:https://arc.ask3.ru/arc/aa/f1/25/f1c673d4f6f065292fb08d348c979425.html
Заголовок, (Title) документа по адресу, URL1:
IP fragmentation attack - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)