Параметры TCP и IP

Опубликовано: 12 Апреля, 2023


Параметры TCP и IP


Ранее я подробно рассказывал о наборе протоколов TCP/IP и его десятках протоколов. Когда люди ссылаются на набор протоколов TCP/IP, они имеют в виду все уровни эталонной модели OSI. Имея это в виду, у нас наверняка есть десятки различных протоколов, которые приходят на ум. Подавляющая часть этих десятков протоколов находится на прикладном уровне. Многие из этих протоколов прикладного уровня имеют множество связанных с ними уязвимостей.


А как насчет «четырех основных протоколов»? Что это такое, что они делают и почему их называют «основными» протоколами? Четыре основных протокола, перечисленных в описании статьи, — это IP для маршрутизации, TCP и UDP для транспорта и, наконец, ICMP для обработки сообщений об ошибках. Эти протоколы считаются базовыми, поскольку каждая операционная система должна иметь их, чтобы иметь возможность разговаривать, т. е. отправлять пакеты. Итак, будь то Mac, BSD или другая операционная система, все они имеют эти основные протоколы, хотя иногда они реализованы другим стеком. Подумайте о Novell в качестве хорошего примера этого.


Это хуже для основного протокола?


Итак, мы знаем, что операционные системы должны иметь эти основные протоколы для связи. Что ж, учитывая, что это сайт, посвященный компьютерной безопасности Windows, он требует дальнейшего изучения, чтобы увидеть, есть ли уязвимости, связанные с основными протоколами или, точнее, с какими-либо их вариантами. Если у вас нет экземпляра хорошей книги по TCP/IP, я бы посоветовал вам загрузить брошюру TCP/IP и tcpdump. Вы увидите его внизу страницы. После того, как вы загрузите эту страницу, вы найдете в нижней части каждого протокола параметры для него, если таковые имеются.


Учитывая, что эти базовые протоколы широко распространены сегодня в компьютерных коммуникациях, вполне логично, что нас могут заинтересовать некоторые из их менее известных аспектов. Вот тут-то и пригодятся их варианты. С этого момента я буду предполагать, что вы загрузили страницу, на которую я только что дал гиперссылку. Мы видим, что внизу страницы для IP перечислены шесть различных вариантов. Теперь мы рассмотрим их по порядку и оценим их с точки зрения компьютерной безопасности.


ИП и его возможности


Конец списка опций
Мы видим, что эта опция IP имеет значение «вида» 0, а ее длина составляет 1 байт. Для этой опции IP нет известных проблем с безопасностью, и она используется только в конце опций IP, используемых в заголовке.


Нет операции
Эта опция IP имеет значение «вида», равное 1, и под видом я имею в виду, что это за опция. Эту опцию IP не следует путать с инструкцией NOP языка ассемблера. Инструкция NOP на ассемблере используется разработчиком эксплойта, чтобы позволить себе большое окно в стеке, в которое можно вернуть вредоносный код. Инструкция NOP, используемая в заголовке IP, используется для заполнения другой опции, которая использовалась, чтобы заполнить 32-битную границу. Это было забавно, так как я неправильно написал эту часть, пока не понял, что пишу об опции IP, а не об идемпотентной инструкции NOP, используемой в ассемблере.


Запись маршрута
Эта опция IP имеет значение вида семь и имеет переменную длину. Этот маршрут записи используется в сочетании с двумя другими параметрами IP «Свободный исходный маршрут» и «Строгий исходный маршрут». Их значения типа равны соответственно 131 и 137. Маршрут записи или, точнее, пакеты Loose Source Record Route долгое время были проблемой компьютерной безопасности. Еще в 2002 году я смог определить, что W2K и XP все еще реверсируют первый переход пакета LSRR. Это было разрешено по умолчанию в этих стеках TCP/IP.


Хотя это может не звучать как конец света, потому что это не так. Хотя это тоже не очень хорошо, так как полезно для атак. То же исследование в то время также показало мне, что большинство поставщиков брандмауэров, таких как Norton Firewall от Symantec, также разрешали входящие пакеты LSRR. Достаточно сказать, что на самом деле нет никакой законной причины видеть пакеты LSRR в современных сетях. Нет реальной причины, по которой кто-то захочет указать серию переходов в пути пакетов.


Отметка времени
Этот параметр имеет значение вида 68 и используется маршрутизаторами для вставки временной метки в пакет. Практическая ценность этой опции IP действительно невелика, и я редко видел, чтобы она использовалась. Я также никогда не видел и не слышал о каких-либо проблемах с компьютерной безопасностью, связанных с использованием или злоупотреблением этой опцией.


TCP и его параметры


Конец списка опций
Эта опция такая же, как и для IP с таким же номером типа и использованием.


Нет операции
Это имеет значение типа 1 и также имеет длину один байт. Подобно параметру NOP заголовков IP, он также используется для заполнения другого параметра, который использовался, чтобы убедиться, что он попадает в 32-битное слово. Есть несколько опций, используемых TCP, которые не полностью укладываются в 32-битное слово, т.е. не все они используют четыре байта.


Масштаб окна
Этот параметр имеет значение типа три и размер байта также равен трем. Он используется для увеличения размера окна с 16-битного значения до 32-битного. Нет никаких известных способов использования этой опции, поскольку она влияет на безопасность компьютера. Тем не менее, это очень удобный вариант, который при использовании также известен как «скользящее окно». Вы должны видеть эту опцию только во время трехэтапного рукопожатия TCP/IP.


Выборочный ACK в порядке
Эта опция TCP имеет значение вида 4 и длину два байта. Насколько мне известно, с этой опцией не связано никаких известных проблем с компьютерной безопасностью. Этот параметр должен отображаться только во время трехэтапного рукопожатия TCP/IP.


Отметка времени
Этот параметр TCP имеет значение вида, равное восьми, и переменную длину. Есть два варианта использования этой опции в протоколе TCP. Один из них предназначен для расчета RTT или времени обратного пути, а второй используется для предотвращения PAWS, также известного как защита от обернутых последовательностей, атаки. Это вариант, который можно увидеть в пакете.


Заворачивать


Мы рассмотрели все варианты, доступные в настоящее время как для TCP, так и для IP. Вы можете сказать себе, а как насчет UDP и ICMP? На данный момент нет вариантов ни для того, ни для другого. Если вы хотите поэкспериментировать с некоторыми из этих опций для TCP и IP, вам рекомендуется загрузить программу для создания пакетов. Хорошая программа для создания пакетов позволит вам манипулировать почти всеми полями TCP или IP. Что ж, я искренне надеюсь, что эта статья была вам полезна, и, как всегда, буду рада вашим отзывам. До следующего раза!