Безпека tcp

4.6. Затоплення SYN-пакетами

Згадаймо, як працює TCP / IP в разі вхідних з'єднань. Система відповідає на що прийшов C-SYN-пакет S-SYN / C-ACK-пакет, переводить сесію в стан SYN_RECEIVED і заносить її в чергу. Якщо протягом заданого часу від клієнта не прийде S-ACK. з'єднання видаляється з черги, в іншому випадку з'єднання переводиться в стан ESTABLISHED.

Розглянемо випадок, коли черга вхідних з'єднань вже заповнена, а система отримує SYN-пакет, що запрошує до установки з'єднання. За RFC він буде мовчки проігнорований.

Затоплення SYN-пакет засноване на переповненні черги сервера, після чого сервер перестає відповідати на запити користувачів. Найвідоміша атака такого роду - атака на Panix, нью-йоркського провайдера. Panix не працював протягом 2-х тижнів.

У різних системах робота з чергою реалізована по різному. Так, в BSD-системах, кожен порт має свою власну чергу розміром в 16 елементів. У системах SunOS. навпаки, такого поділу і немає і система просто має великий загальною чергою. Відповідно, для того, що б заблокувати, наприклад, WWW-порт на BSD досить 16 SYN-пакетів, а для Solaris 2.5 їх кількість буде набагато більше.

Після закінчення деякого часу (залежить від реалізації) система видаляє запити з черги. Однак нічого не заважає крекерів послати нову порцію запитів. Таким чином, навіть перебуваючи на з'єднання 2400 bps, крекерів може посилати кожні півтори хвилини по 20-30 пакетів на FreeBSD сервер, підтримуючи його в неробочому стані (природно, ця помилка була скоригована в останніх версіях FreeBSD)

Детектування нескладно - велика кількість з'єднань в стані SYN_RECEIVED. ігнорування спроб з'єднається з даними портом. Як захист можна порекомендувати патчі, які реалізують автоматичне "зріджені" черги, наприклад, на основі алгоритму Early Random Drop. Для того, що б дізнатися, якщо до Вашої системи захист від SYN-затоплення, зверніться до постачальника системи.

Інший варіант захисту - налаштувати firewall так, що б всі вхідні TCP / IP-з'єднання встановлював він сам, і тільки після цього перекидав їх всередину мережі на задану машину. Це дозволить Вам обмежити syn-затоплення і не пропустити його всередину мережі.

Схожі статті