Спуфинг и предательство – разные вещи
Система, которая доверяет своим пользователям, может стать жертвой предательства, порой очень коварного. В этом заключается один из рисков чрезмерного доверия к обслуживаемым пользователям. В идеале риск можно численно оценить для определения достоинств и недостатков подобного доверия. Если пользователи злоупотребляют своими полномочиями и наносят ущерб безопасности системе, то это еще не спуфинг, поскольку система предоставила им определенные полномочия и свободу их использования. То, что пользователи злоупотребили своими полномочиями, свидетельствует или о предоставлении им слишком больших полномочий, или о чрезмерном доверии к ним. В лучшем случае в результате предоставления пользователям слишком больших полномочий они могут обмануть себя, но до тех пор, пока не предпримут попытки обмануть кого-либо другого, это не будет являться спуфингом.
Спуфинг не обязательно злонамерен
Говоря о спуфинге, важно понимать, что он не обязательно является следствием атаки. Избыточные системы, как, например, протокол «горячей» (оперативной) замены маршрутизатора HSRP (Hot Swappable Router Protocol) или проект Fake Линукса (www.au.vergenet.net/linux/fake), максимизируют период работоспособного состояния системы при помощи исключения получаемых от группы серверов символов точки, вставляемых вместо ошибочных символов. Проблема заключается в том, что при разработке протоколов IP и Ethernet в них было предусмотрено выделение каждому хосту только одного адреса. И если хост отказывает, то адрес становится недоступным. Без фальсификации адресов подключения были бы утеряны, а необходимую надежность можно обеспечить только переключением серверов. В случае фальсификации адресов время простоя можно сделать настолько малым, что для пользователя оно станет практически невидимым.
Предложенная компанией IBM системная сетевая архитектура SNA (системная сетевая архитектура SNA (Systems Network Architecture) содержит общее описание структуры, форматов, протоколов, используемых для передачи информации между программами IBM и оборудованием) является примером извлечения пользы из фальсификации передаваемых по сети данных. В архитектуре предусмотрен повторяющийся каждую секунду запрос дежурных пакетов (keepalive packets) по выделенной линии. Если один из таких пакетов будет пропущен, то связь разорвется. Предложенная архитектура приемлема для выделенных линий связи, чью пропускную способность можно прогнозировать, а туннелирование SNA через Интернет со свойственными ему непредсказуемыми задержками передаваемых данных часто приводит к приостановке передачи дежурных пакетов. В результате истекает короткий период времени тайм-аутов. В этом случае подключение должно быть разорвано и восстановлено заново, что требует значительных накладных расходов при туннелировании архитектуры SNA через Интернет. Для разрешения описанной ситуации в многочисленных системах были реализованы средства фальсификации либо дежурных пакетов, либо работы универсальных ЭВМ в локальной архитектуре SNA.
Вопрос заключается в том, что если эти системы получают сообщения, которые, по мнению их пользователей, они и должны получать, то при чем здесь спуфинг? Ответ состоит в том, что при проектировании этих систем были заложены определенные допущения относительно идентификации обрабатываемых потоков данных. В случае архитектуры SNA терминал предполагает, что дежурные пакеты были присланы универсальной ЭВМ. Если полученный терминалом пакет не был прислан универсальной ЭВМ, то заложенное на этапе проектирования предположение было фальсифицировано.
Иногда спуфинг на одном из уровней сводится к простой ссылке на другой уровень. Например, многие Web-сервера с независимыми различными именами на самом деле могут являться виртуальными машинами, обслуживаемыми одной инсталляцией Apache. Даже несмотря на то что каждое доменное имя службы имен доменов DNS (механизм, используемый в сети Интернет, при помощи которого устанавливается соответствие между числовыми IP-адресами и текстовыми именами) каждой виртуальной машины разрешается к одному и тому же IP-адресу, при поступлении запроса Apache знает, какой сервер ему обслуживать. Знает, потому что протокол уровня приложений HTTP сохраняет ожидаемое пользователем имя DNS. Протоколы нижнего уровня также ожидают эту информацию, хотя она и была утеряна при разрешении адресов. Поскольку протокол HTTP восстанавливает ее, то тем самым он предоставляет серверу возможность фальсифицировать виртуальные хосты, представляя их одним и тем же доверенным сервером по заданному IP-адресу.
В спуфинге нет ничего нового
Существует ошибочное мнение о том, что если что-либо имеет отношение к компьютерной сети, то это что-то обязательно новое. В истории существования человечества атаки на данные идентификации не новы. Они основаны на жизненном опыте людей и добровольной зависимости одних людей от других.