NЯкщо другий фрагмент повністю потрапить всередину першого, то 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

NЯкщо другий фрагмент повністю потрапить всередину першого, то



¨end<offset, і fp–>len стає від’ємною

nТаку перевірку розробники не передбачили!

¨структура fp заповнювалась відповідними даними і відбувався виклик функції memcpy()

¨функція сприймала третій параметр, що мав від’ємне значення, як велике додатне ціле

¨в результаті здійснювалась спроба копіювання занадто великої області пам’яті, що призводило до краху системи

Фрагментація IP як засіб проникнення через брандмауер

NІдея атаки

¨Під час аналізу заголовків брандмауер спочатку визначає, чи не є досліджуваний пакет фрагментом

¨Якщо ні — то за заголовком IP, з якого визначають як мінімум адреси джерела та призначення і тип протоколу, повинен знаходитись заголовок відповідного транспортного протоколу, наприклад, TCP

¨З нього брандмауер визначає порти джерела і призначення (а також, якщо необхідно, іншу інформацію)

¨Ідея полягала у тому, що перший пакет повинен містити у заголовку TCP дозволені значення портів, а наступний пакет, що позначений як фрагмент, повинен мати мінімальне зміщення і містити в собі нові, недозволені параметри (головною метою, звичайно, є підміна порту призначення)

¨Вперше на цю вразливість у 1995 р. вказав Фред Коен (Fred Cohen) у своєму онлайн-журналі “Internet Holes”

NНасправді

¨У такому вигляді загроза є міфічною

¨І кінцеві вузли, і брандмауери визначають перший фрагмент пакета за нульовим зміщенням. Тобто, якщо вказати зміщення “0”, то пакет буде сприйнятий, як перший фрагмент, і брандмауер проаналізує номери портів, що сховані у його заголовках

¨Мінімальне зміщення, яке можна вказати для фрагмента, що не є першим, — це “1”. Це зміщення на вісім байт

¨У заголовку TCP номери портів розміщені таким чином, що перекрити їх шляхом збирання IP-пакета з фрагментів неможливо

¨Оскільки заголовок протоколу UDP має повну довжину у 8 байтів, модифікація жодних його полів подібним шляхом взагалі неможлива

NАле

¨Повна (найменша, без опцій) довжина заголовка TCP становить 20 байтів, і останні 12 з них саме таким чином можна модифікувати

¨З тих полів, які можуть бути модифіковані, потенційно цікавими для порушників є прапорці SYN, ACK, RST, FIN

¨Певні нестандартні комбінації цих прапорців у минулому використовувались для здійснення “прихованого” сканування портів і навіть для деяких атак

Транспортний протокол UDP

16 біт Номер порту відправника 16 біт Номер порту одержувача
16 біт Довжина повідомлення 16 біт Контрольна сума

 

NПротокол UDP є дуже простим дейтаграмним протоколом

¨Стандарт його визначений у RFC 768

¨Його основні функції обмежуються мультиплексуванням і демультиплексуванням інформаційних потоків

¨Ідентифікація програм-відправників і програм-одержувачів здійснюється за номерами UDP-портів

NМожна констатувати, що протокол UDP не має вбудованих засобів безпеки

¨Він повністю покладається на ідентифікацію відправника засобами мережного рівня, тобто за IP-адресою

¨16-розрядна контрольна сума захищає від помилок при передаванні даних, але жодним чином не захищає від цілеспрямованої модифікації даних

¨Протокол UDP не гарантує доставку і не має засобів контролю доставки — це покладається на протокол вищого (прикладного) рівня

NПротокол UDP виконує покладені на нього функції. Слід добре розуміти його обмеження і не покладатись на нього, коли міркування безпеки є суттєвими.

¨Цей протокол дуже часто використовують як транспортний для різних протоколів керування мережею.

¨Розробники протоколу керування повинні чітко розуміти, що цей транспортний протокол є ненадійним і не захищає від підроблення даних і атрибутів відправника, тому засоби захисту необхідно включити до самого протоколу керування.

Безпека протоколу TCP

NПротокол TCP описаний у RFC 793

¨Протокол TCP є протоколом із встановленням логічного з’єднання

¨У межах з’єднання здійснюються

Nреєстрація послідовності пакетів,

Nпідтвердження доставки кожного пакета,

Nкерування потоком пакетів,

Nповторна передача спотворених пакетів.

¨Деякі із зазначених функцій надають сервіс із захисту від підміни суб’єктів з’єднання

Nдеякі протоколи прикладного рівня, в тому числі FTP, TELNET, HTTP, що надають користувачам віддалений доступ, використовують саме TCP як транспортний протокол

NTCP як транспортний протокол використовує один з основних протоколів маршрутизації в Інтернеті — BGP

Nдеякі служби, як, наприклад, DNS, можуть використовувати (як транспорт) і UDP, і TCP

Nяк правило, дають рекомендацію щодо обов’язкового використання саме TCP для підвищення стійкості служби проти атак

Формат заголовка TCP-пакета

16 біт Номер порту відправника 16 біт Номер порту одержувача
32 біт Номер послідовності
32 біт Номер підтвердження
4 біт Довжина заголовка 6 біт Зарезервовано 6 біт Прапорці 16 біт Розмір вікна
16 біт Контрольна сума TCP 16 біт Покажчик терміновості
Опції та вирівнювання
       

 

Керування з’єднанням у TCP

NУ заголовку присутні командні біти — прапорці, за допомогою яких здійснюється керування з’єднанням

¨URG (Urgent Pointer field significant) – термінове повідомлення;

¨ACK (Acknowledgment field significant) – квітанція на сегмент, що був прийнятий;;

¨PSH (Push Function) – запит на відправлення повідомлення без очікування заповнення буфера;

¨RST (Reset the connection) ­– запит на відновлення з’єднання;

¨SYN (Synchronize sequence number) – повідомлення, що використовується для синхронізації лічильників переданих даних при встановленні з’єднання;

¨FIN (No more data from sender) – признак передачі останнього байта переданих даних.

nНайважливішу роль в керуванні потоком інформації через TCР-з’єднання грають два 32-розрядних поля:

¨Номер послідовності

¨Номер підтвердження

NЦі поля відіграють роль ідентифікаторів пакета, з’єднання і суб’єкта з’єднання, а також відіграють роль лічильника пакетів

NТакож важливу роль має поле Розмір вікна, яке інформує про розмір вільного буфера на боці приймача

Процедура встановлення TCР-з’єднання

nДля встановлення TCР-з’єднання передбачена спеціальна процедура рукостискання (Handshake) у три кроки

¨Припустімо, що хост А намагається утворити TCР-з’єднання з хостом В

¨Першим кроком є відправлення хосту В на обраний TCР-порт пакета, в якому з прапорців встановлений лише SYN (так званий SYN-пакет)

NSYN-пакет завжди є найпершим пакетом у будь-якому TCР-з’єднанні

nПри цьому в полі Номер послідовності установлено початкове 32-розрядне значення ISSa, або ISN (Initial Sequence Number)

¨Другий крок — відповідь від В до А. У цій відповіді повинні бути

Nвстановлені прапорці SYN і ACK

Nу полі Номер послідовності повинно міститися початкове значення ISSb, обране хостом В

Nу полі Номер підтвердження повинно міститися значення, яке підтверджує одержання хостом В першого пакета. Значення підтвердження — це значення, яке хост В очікує в наступному пакеті

¨На третьому кроці хост А завершує процедуру рукостискання, відсилаючи хосту В пакет, в якому

Nвстановлено прапорець ACK

nполе Номер послідовності містить ISSa+1

nполе Номер підтвердження містить ISSb+1

¨Коротко ці три стадії записують таким чином:

nA → B: SYN, ISSa
B → A: SYN, ACK, ISSb, ACK(ISSa+1)
A → B: ACK, ISSa+1, ACK(ISSb+1)

NПісля встановлення з’єднання лічильники Номер послідовності і Номер підтвердження відраховують кількість переданих/прийнятих байтів інформації

Захисні функції TCP

NПрипустимо, що ми намагаємось встановити з’єднання від імені іншого хосту

NДля цього підставимо як адресу відправника чужу IP-адресу (атака IP spoofing)

NПрипустимо, наш пакет успішно потрапив до хосту-одержувача

NУ відповідь хост надсилає SYN-ACK-пакет на ту адресу, яка була вказана як адреса відправника

nДля того, щоби завершити встановлення з’єднання, ми повинні надіслати пакет, в якому міститься правильне значення ISSb+1

NДля цього ми або повинні мати змогу перехопити пакет SYN-ACK, або повинні вгадати це значення.

¨Перехопити пакет можна лише в тому разі, якщо ми



Поделиться:


Последнее изменение этой страницы: 2016-09-13; просмотров: 120; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.48.135 (0.012 с.)