В протоколе TCP данный уровень защиты является стандартным. Он встроен в протокол в виде трехэтапного установления соединения. По существу трехэтапное установление соединения выглядит следующим образом. «Здравствуйте, я – Боб». «А я Алиса. Вы говорите, что Вы – Боб?» «Да, Алиса, я – Боб». Если Боб сообщает Алисе: «Да, Алиса, я – Боб», а Алиса перед этим с Бобом не разговаривала, то протокол может решить, что имеет место атака спуфинга вслепую (blind spoofing). (В действительности протоколы редко ищут случаи нападения. Скорее они функционируют только при отсутствии нападений. Это происходит из-за того, что большинство протоколов предназначены для установления соединения, а не для отражения атаки. В результате это приводит к невозможности работы по протоколу из-за аварийного завершения его функций, за исключением случаев обработки данных, предусмотренных протоколом. В итоге протоколы повышают уровень своей безопасности простым способом: значительно сокращают число хостов, которые могли бы легко атаковать их. Простое сокращение числа хостов, которые могли бы осуществить прямое нападение «с любой машины в Интернете» на «любую машину Интернета при наличии десятка подсетей между сервером и клиентом» часто на многие порядки сокращает число хостов, способных к эффективной атаке!)
Если на сетевом уровне рассматривать направленную против сети фальсификацию, целью которой является нейтрализация способности системы ответить на переданные ей данные, то существуют два типа атаки спуфинга: спуфинг вслепую и активный спуфинг (active spoofs). При спуфинге вслепую злоумышленник имеет смутные представления о входящем и выходящем трафиках атакуемого хоста (в особенности относительно неопознанных им переменных, с помощью которых протоколом предусмотрен ответ получателя данных их отправителю). При активном спуфинге у злоумышленника, по крайней мере, есть возможность прослушивания выходного трафика атакуемого хоста и, вероятно, возможность влиять в той или иной мере на трафик. Эти два вида атаки далее будут обсуждены отдельно.
Спуфинг вслепую. Для типовой реализации атаки спуфинга вслепую более чем достаточно того, что было сказано в главе ll по поводу перехвата сеанса. Но чисто теоретически спуфинг вслепую преследует одну цель – найти способ предсказания изменений значения прогнозируемой переменной, а затем установить столько возможных соединений, сколько протокол может выдержать, и случайным способом правильно выбрать одно из них для успешного ответа на данные, которые никогда не были получены.
Одним из наиболее интересных результатов, полученным при развитии спуфинга вслепую, является открытие способов сканирования удаленных хостов вслепую. Конечно, невозможно проверить соединение с выбранным хостом или портом без посылки ему пакета и анализа на него реакции (нельзя заранее знать реакцию на пакет, который фактически не был отправлен), но сканирование вслепую позволяет исследовать ничего не подозревающий хост без его ведома. Попытки установления соединения проводятся обычным способом, но если они исходят от другого компьютера, так называемого компьютера зомби, то они фальсифицированы. Подобные зомби имеют связь с Интернетом, которая практически ими не используется, как, например, забытый всеми сервер. Поэтому злоумышленник может предполагать, что весь входящий и исходящий трафик этого зомби является результатом его косвенных или непосредственных действий.
Конечно, косвенный трафик является результатом возврата зомби пакетов исследуемому хосту.