Системы обнаружения вторжения, чтобы функционировать должным образом, должны быть способны расшифровать различные кодируемые формы HTTP запросов типа hex и UTF. Большинство коммерческих и свободно распространяемых IDS (Система Обнаружения Вторжения) имеют способность проверять кодируемый запрос UTF и Hex. Microsoft's IIS Web server включает оба из этих типов кодирования, однако он также включает третий стиль кодирования, который не является стандартом HTTP. Поэтому большинство IDS систем не знает этого дополнительного кодирования и поэтому не пытается его расшифровать. Этот "отличительный" стиль кодирования известен, как кодирование %u. %u
кодирование предназначено для представления истинных строк символа Unicode/wide. Так как %u кодирование
не стандарт, и IDS системы не расшифровывают строки %u, это позволяет нападающим использовать
%u при нападении на IIS WEB сервер в обход IDS систем.
Хороший пример того, как это может использоваться в реальных атаках, является скрытость CodeRed. CodeRed, саморазмножающийся вирус, использовал уязвимость переполнения буфера .ida, чтобы заражать системы и распространять самого себя. CodeRed был обнаружен, потому что IDS системы имели сигнатуры для .ida нападений. Однако если бы CodeRed имел бы полиморфный %u механизм кодирования, большинство IDS систем пропустили бы его, так как не смогли бы правильно сравнить сигнатуры для этой атаки.
Запрос примерно выглядел бы так:
GET /himom.id%u0061 HTTP/1.0
вышеупомянутый запрос переведет himom.id%u0061 к himom.ida, и поэтому запрос будет работать должным образом, но при этом IDS не обнаружит ничего подозрительного.
Уязвимость пока обнаружена в:
1 Cisco Secure Intrusion Detection System.
2. Cisco Catalyst 6000 Intrusion Detection System Module
3. ISS RealSecure Network Sensor 5.x and 6.x before XPU 3.2
4. ISS RealSecure Server Sensor 6.x prior to 6.0.1
5. ISS RealSecure Server Sensor 5.5
6. Dragon Sensor 4.x
7. Snort prior to 1.8.1
8. NFR (Network Flight Record)
и скорее всего, в других подобных системах.