ІТ-інфраструктура для вашого підприємства
Додаткові заходи захисту від атак з TCP
Параметри TCP / IP в реєстрі
Екран 1. Генеруються елементи управління для TCP / IP.
Екран 2. Елементи управління TCP / IP, специфічні для адаптера.
У розділі TcpipParameters містяться елементи, що визначають поведінку TCP / IP для всіх інтерфейсів. Під час налаштування конфігурації адаптера, що забезпечує зв'язок через протокол TCP / IP, система копіює багато з цих параметрів в розділ Interfaces даного адаптера. Якщо один і той же елемент входить в TcpipParameters і в розділ конкретного адаптера, то можна змінити режим TCP / IP окремого адаптера, відредагувавши відповідні параметри. Розглядаючи зміни реєстру, за допомогою яких можна зменшити вразливість системи, слід пам'ятати про загальні параметри і параметрах, специфічних для кожного адаптера.
Якщо згаданий мною елемент у відповідному розділі відсутня, його слід створити. Створюючи елементи реєстру, необхідно звернути увагу на коректність типу і значень, що вводяться. Неможливо передбачити, яким чином система відреагує (якщо відреагує взагалі) на введення некоректних даних. Змінені параметри конфігурації TCP вступлять в силу після перезавантаження системи.
Захист від атаки типу SYN DoS
Напади по TCP SYN DoS - улюблена зброя зломщиків. Перш ніж розглядати способи захисту від подібних атак, необхідно зрозуміти механізм роботи TCP / IP.
Ініціюючи сеанс TCP в з'єднанні IP, система A посилає системі B пакет синхронізації (SYN). Система B відповідає, посилаючи машині A в якості підтвердження пакет SYN-ACK. Якщо система B не отримує підтвердження про отримання SYN-ACK від системи A, то відправка SYN-ACK повторюється до п'яти разів. Не отримавши від системи А відповіді, система B збільшує інтервал перед черговою спробою послати SYN-ACK. Завдяки цим затримок, системам невдалої спроби здійснити дзвінок по повільних каналах зв'язку.
Якщо система A не відповідає, то після закінчення певного часу система B розриває з'єднання. Процес тайм-ауту може зайняти 3-4 хв, так як, перш ніж припинити сеанс, система B повинна певне число раз звернутися до системи A. Коли система B розриває з'єднання, TCP звільняє ресурси, виділені входить з'єднанню. Процес звільнення ресурсів може зайняти ще від 3 до 5 хв.
За допомогою команди
Екран 3. Йде атака типу SYN - DoS.
На системах, підключених до Internet, цим параметром слід привласнити значення 1 або 2. В результаті зменшуються число повторних пересилань пакету SYN-ACK, інтервал між ними і, як наслідок, скорочується час, відведений на очікування нормальних і помилкових запитів. Для найбільш надійного захисту від атак SYN DoS необхідно привласнити параметру значення 2.
Для систем, до яких можна безпосередньо звернутися з Internet (особливо не захищених брандмауером), елементу SynAttackProtect слід привласнити значення 1 або 2. Дізнатися про реалізовані в брандмауері заходи захисту від атак SYN і Ping of Death зверніться до свого постачальника. Слід мати на увазі, що при збільшенні значення SynAttackProtect змінюється поведінка системи при обробці як нормальних, так і DoS-запитів на встановлення з'єднань.
Захист від атак типу Dead-Gateway
З «мертвими» шлюзами пов'язані два елементи реєстру. Перший, DeadGWDetectDefault, знаходиться в розділі TcpipParameters і визначає стандартний режим виявлення «мертвого» шлюзу. Він використовується для активізації і блокування процедури пошуку «мертвих» шлюзів у всіх інтерфейсах TCP / IP. При необхідності можна скористатися другим елементом, EnableDeadGWDetect з розділу Tcpip Parameters Interfaces adapterclassID, щоб активізувати або блокувати режим виявлення «мертвого» шлюзу для конкретного адаптера. У режимі виявлення «мертвого» шлюзу механізм TCP передає в IP вказівку використовувати резервний шлюз в разі, якщо TCP не отримує відповіді від шлюзу після кількох спроб передачі пакета. Якщо режим виявлення відключений, то TCP не може пересилати пакети в інший шлюз.
Щоб вручну дозволити або заборонити виявлення «мертвих» шлюзів механізмом TCP, потрібно привласнити параметру DeadGWDetectDefault значення 0 (заборонити) або 1 (дозволити). Для окремого мережевого адаптера з цією метою слід додати або змінити параметр DeadGWDetect в розділі InterfacesadapterclassID.
Якщо режим виявлення «мертвого» шлюзу відключений, то в разі відмови основного шлюзу механізм TCP не може динамічно перенаправити пакети на інші маршрутизатори. Неможливість передати пакети за межі локальної підмережі призводить до розриву всіх з'єднань, за винятком локальних. З цієї причини, а також тому, що напад через резервний шлюз - подія набагато більш рідкісне, ніж атаки SYN DoS і Ping of Death, я рекомендую відключати режим виявлення «мертвих» шлюзів лише на тих ділянках мережі, в яких потрібно особливо строгий режим конфіденційності .
Захист від атак PMTU
Як видно з Таблиці 1, для мережі кожного фізичного типу, наприклад Ethernet і X.25, встановлений максимальний розмір кадру, званий Maximum Transmission Unit (MTU) - максимальний розмір переданого блоку даних. Він визначає обсяг даних, який можна передати по мережі окремим блоком. Коли повідомлення перетинають кордон мереж різних типів (наприклад, Ethernet і Token Ring), MTU мережі-джерела може бути менше або більше, ніж MTU мережі-приймача.
Коли мережевий пакет розміром 16 Кбайт перетинає кордон мережі з MTU 1500 байт, то між комп'ютерами в обох мережах відбувається обмін інформацією MTU. Потім передає машина розбиває (фрагментірует) повідомлення на кілька пакетів, кожному з яких присвоюється порядковий номер, який визначає послідовність малих пакетів в більшому оригінальному повідомленні.
Фрагментація пакетів - важливий фактор зниження продуктивності. При розподілі пакета на кілька фрагментів передає машина витрачає такти процесора і пам'ять, вводить порядковий номер і передає зменшений пакет. Система-приймач витрачає такти процесора і ресурси пам'яті, зберігаючи пакети в буфері, впорядковує пакети по номеру і відновлює кадр.
Щоб уникнути подібної ситуації, слід блокувати процес визначення PMTU. Керувати процесом можна за допомогою елемента EnablePMTUDiscovery розділу TcpipParameters. Параметр має тип REG_DWORD і може приймати значення 0 ( «брехня») і 1 ( «істина»). За замовчуванням, процес визначення PMTU активізований.
При розумному підході заборона визначення PMTU може перешкодити зломщикові привласнити MTU, а отже, і PMTU, неприпустимо мале значення. Але одночасно блокується і важливий алгоритм мережевий оптимізації. Посиливши режим на системі, яка виконує маршрутизацію мережевих повідомлень, адміністратор задає однаковий розмір (576 байт) для всіх пакетів, що пересилаються в підмережі за межами локальної підмережі. Розмір такого пакета становить трохи більше третини стандартного пакета Ethernet (1500 байт).
Захист від звичайних атак DoS
Функцію KeepAlive має сенс активізувати на машинах, що надають ресурси обмеженому числу користувачів. Для управління запитами KeepAlive використовується два елементи розділу TcpipParameters - KeepAliveTime і KeepAliveInterval.
Система з активізованою функцією KeepAlive посилає пакет ACK цільової машині в разі, якщо з'єднання не використовувалося протягом періоду часу, що визначається елементом KeepAliveTime. Стандартне значення KeepAliveTime - 7 200 000 мс (2 ч). Якщо віддалена машина відповідає на повідомлення KeepAlive, але в іншому з'єднання не активно, система-джерело пошле черговий запит ACK через 2 ч.
Якщо система-джерело не отримує відповіді, вона повторює запит ACK через інтервал часу, визначений параметром KeepAliveInterval. Стандартне значення KeepAliveInterval - 1000 мс (1 с). Система-джерело направляє віддаленої системи до п'яти запитів з інтервалом в одну секунду (число повторів визначається елементом TCPMaxDataRetransmissions розділу TcpipParameters). Якщо віддалена система не відповідає після максимального числа спроб, система-джерело закриває з'єднання.
Значення KeepAliveTime можна зменшити з 2 ч до 30-45 хв, щоб скоріше закрити невикористовувані TCP-з'єднання і звільнити ресурси для інших користувачів. Слід пам'ятати, що цей параметр впливає на всі з'єднання TCP, в тому числі і локальні, тому необхідно ретельно зважити наслідки цієї зміни. Для захисту від атак DoS розробники Microsoft рекомендують зменшити значення KeepAliveTime до 300 000 мс (5 хв). За винятком особливих випадків, рекомендується використовувати стандартне значення KeepAliveInterval (1 с).
Профілактика нападів по NetBT Name-Release
За допомогою команди Nbstat -n можна перевірити, чи існує насправді конфлікт імен. Ця команда відображає зареєстровані в даний час імена NetBIOS з позначкою Conflict у конфліктуючих імен.
У бюлетені Microsoft Security Bulletin MS00-047 (Patch Available for «NetBIOS Name Server Protocol Spoofing» Vulnerability) міститься попередження, що при активізації елемента NoNameReleaseOnDemand в журнал подій записується безліч повідомлень про подію ID 4320. Система буде реєструвати повідомлення з цим ідентифікаційним номером щоразу при отриманні широковещательного запиту на звільнення імен типових груп. Ці запити надходять від систем, які вже зареєстрували імена груп і звільняють імена в ході стандартного процесу завершення роботи. Повідомлення можна ігнорувати.
Найбезпечніше
Описані в даній статті прийоми орієнтовані на системи спеціального призначення, що містять конфіденційну інформацію. З їх допомогою можна підвищити відмовостійкість систем, але при цьому є небезпека зниження швидкодії і погіршення функціональності мережі. Після кожної зміни машину слід перезавантажувати.
Поділіться матеріалом з колегами і друзями