Компьютерный мир насквозь пронизан стереотипами. Но я не стану утверждать, что это такое уж зло =) Бесспорно, многие стереотипы (чужие мысли и умозаключения, принимаемые на веру аксиоматично, бездоказательно и, как правило, совершенно бестолково =) существенно облегчают жизнь. Компьютерный мир слишком огромен, разнообразен и труден, чтобы уместиться в голове нормального человека без жирного слоя стереотипов =-)
Немного околофилософской лирики
Но, в зависимости от контекста, один и тот же стереотип может оказаться как доброкачественным, так и вредным. Глуп, к примеру, тот админ, что успокоил свои страхи относительно сетевой безопасности
доверенной ему сети, прикрыв iptables'ом доступ к своему ssh-демону всем, кроме некоторого количества IP-адресов. (SerG, если ты читаешь этот текст, значит ещё не всё для тебя
потеряно =))
Наиболее же вредные стереотипы с течением времени эволюционируют, обрастая жёсткой шёрсткой и, с помощью "сетевых попугаев", бездумно повторяющих едва расслышанные несуразицы, превращаются в весьма злостные, даже, в некоторой степени, социально опасные предрассудки =) Впрочем, можно сколько угодно рассуждать о вреде предрассудков вроде "Linux rulez Windows mustdie" (ты можешь, например, схлопотать войдозером по заднице, если рискнёшь это прокукарекать в каком-нибудь
густозаселённом чате), толку от этого не прибавится. По предрассудкам, как автопробегом по бездорожью, лучше всего ударять аргументами =))
Дружище, если в тебе велико стремление стать хакером (или если ты уже считаешь себя таковым), то прими мой совет: овладей искусством сомнения. В мире компьютеров лучше всего либо иметь собственное мнение относительно какого-то предмета, либо не иметь никакого.
Сегодняшней статьей я хочу расправиться с одним из таких вредных предрассудков. Пролистывая статьи на этом сайте, я наткнулся на публикацию, в которой рассказывается о заголовке протокола IP. Это статья
"IP кодинг
#2" от 18.07.2002. Автор утверждает, что "Options - доп. опции, последние 10 лет никто не нашел их полезного применения".
Корни этого предрассудка уходят далеко в глубину времен... =)
Немного истории
Действительно, уже в конце 80-х годов, когда компьютеры были большими, а InterNet
- маленьким, в полуофициальных документах зазвучали нотки примерно такого содержания: "функции поля Options заголовка IP в настоящее время
не востребованы, они с бОльшим успехом реализуются в ICMP и в различных протоколах динамической маршрутизации".
Это факт. Максимально возможный размер поля опций заголовка IP
- 40 байт, и втиснуть в них что-либо вразумительное весьма проблематично. IP Options может вмещать не
более девяти записей.
Но, тем не менее, RFC791 (он является частью STD0005) гласит: "They [options] MUST be implemented by all IP modules (host and gateway)". И это правило, за исключением некоторых действительно опасных свойств поля опций (например, строгое навязывание маршрута роутеру), повсеместно выполняется.
Пробуем
Если ты - один из счастливых обладателей операционной системы Windows на своём компьютере, то набери в консоли "ping /?" и посмотри список поддерживаемых программой опций. Или, если ты под линуксом, сделай "man ping" и изучи доступные тебе возможности. Помни, что ping в линуксе можно делать только с рута.
Попробуй ping до какого-нибудь узла поближе, с ключом "-r 9". Сравни функциональность такого пинга с работой программы tracert. Обрати внимания: все интерфейсы, "перекладывающие" твои пакеты, на которых сконфигурирована поддержка соответствующей опции заголовка IP, оставляют свои подписи. Это даст тебе дополнительную возможность исследовать
топологию ближайшей сети, в которой ты находишься.
Кроме того, очень интересен теоретический аспект использования поля опций заголовка IP для усиления эффекта распределённой DoS-атаки с умножением траффика.
Предвосхищая упрёки в мой адрес, я не буду заниматься здесь разбором заголовка IP и дотошным описанием поля его опций, а отправлю тебя к rfc791 и rfc1122.