• Авторизация


Вам, программисты. 25-06-2005 21:01 к комментариям - к полной версии - понравилось!


По IP-порт выделяется ровно 2 байта. То есть, любое обращение к компьютеру в TCP-IP шестибайтовое: 4 байта адрес и 2 байта номер пора. Но тут кроется самая главная дыра IPv4: нумерация портов для каждой машины единая. То есть, каждая машина может обрабатывать максимум 65536 TCP/IP соединений.


Теперь все просто: моя программа от имени случайно сгенерированных IP-адресов посылала требование открыть сокет (то есть, выделить IP-порт) в бесконечном цикле (генерируется случайный IP-адрес - генерируется от этого IP-адреса запрос ). Понятно, что у мотровских серверов есть защита. tcp_syncookie называется, встроена в ядро Linux. Но она действует только против многочисленных запросов от одного и того же IP-адреса. Против такой атаки защита бессильна.


Такой атакой можно уничтожить ЛЮБОЙ сервер в Интернете. Именно поэтому я программу стерла. Это не баг какой-то конкретной операционной системы. Это баг TCP/IP стека.


 


Кто может прокомментировать?))))))))))))))))))))))))))))))


 

вверх^ к полной версии понравилось! в evernote
Комментарии (3):
dreamerdomain 30-06-2005-02:58 удалить
Баг исключительно tcp стека, ты хочешь сказать.


Во-первых, это подход обычной и широко известной DoS атаки, набери Denial-of-service в гугле и увидишь не только "свою программу", "уничтожающую сервера" (гы), но и гораздо более изощренные и креативные имплементации. Количество ресурсов всегда ограничено - программно и аппаратно, поэтому любой сервер при желании можно зафлудить миллионом способов, что всякие бездельники регулярно и делают. И завалить сервер далеко не самое интересное, гораздо интереснее подменить реального пользователя при установке соединения. И против всего этого, даже в изощренном исполнении, есть весьма эффективные методы борьбы.


Во-вторых, какое отношение имеет единая нумерация, или нет, я не понял. Уникальные интервалы портов для каждого ай-пи поставленной проблемы не решают.


В третьих, количество портов определяемых стеком - теоретический лимит. Допустимое количество одновременно открываемых соединений для каждого IP, и даже для машины, обычно меньше, по многим причинам. И реальная аттака подобного рода съедает количество количество возможных соединений гораздо раньше чем количество свободных портов.

В четвертых, ты живешь в реальном мире, а не в мире теоретичесих изысканий. Ты находишься далеко от жертвы и не можешь генерировать настоящие запросы "со случайного адреса" с того же самого физического подключения, это, как правило, легко обнаруживается. И может повлечь весьма нелегкое наказание. Тут надо очень хитро все делать, пакеты генерировать любой дурак может.


Ну и в пятых, даже если рассматривать исключительно теоретические аспекты, соединение запросто может переводиться на другую машину, где есть еще 65536 портов. И еще. И еще. Подумай на досуге, как это делается. Поэтому никаких теоретических ограничений тут нет.


Ну и еще много чего. Если бы все было так просто :)
Tokaji 30-06-2005-03:27 удалить
Упаси господь, я этим не собиралась заниматься.
Это мне одна сумасшедшая долго рассказывала.

Я не такая умная, всем этим не занимаюсь.
Но логика мне подсказывала, что как минимум где-то на пути оттуда сюда будет проверка на реальность IP.

Ня?
Black_spot 01-07-2005-10:57 удалить
Ой, простите :) Разразился :)

Ну, проверять специально каждый пакет по пути никто не будет, а вот конечный адресат таких вкусных пакетов при желании может много чего узнать, и вполне может от них защищаться (ай-пи можно и реальный генерировать, суть не в нереальности а в несоответствии пути прохождения и прочих мелочах). Опять же, то что Ваша знакомая представила как баг, настоящим ограничением не является. Настоящая проблема в другом, хотя в основе та же идея.


Комментарии (3): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Вам, программисты. | Tokaji - Токайское светлое | Лента друзей Tokaji / Полная версия Добавить в друзья Страницы: раньше»