Безопасность и Internet



Результаты - часть 2


Много различий в обработке было связано с решением о том, какие данные оставить. Это достаточно интересный факт, так как при разработке IDS, необходимо по максимуму приблизить реализацию стека к стеку той операционной системы, на которой будет работать IDS. Если использование различий в обработке заголовков для проведения атаки не всегда очевидно для разработчиков, то различия в обработке фрагментов должны быть учтены в первую очередь. В противном случае проведение скрытой атаки существенно упрощается.

Это же относится и к обработке потока TCP-фрагментов, например Dragon 5.0 и RealSecure 6.0 были не в состоянии обработать некоторые случаи: Dragon 5.0 просто выходил из строя после получения повторяющихся TCP-фрагментов и не обрабатывал поток TCP-фрагментов, пришедших в обратном порядке; RealSecure 6.0 не смог обработать TCP-фрагменты, пришедшие в произвольном порядке. Получается, что для нарушения работы IDS можно просто послать сигнатуру атаки в различной последовательности TCP-фрагментов. Dragon 5.0 не рассматривал TCP-сегменты с установленным флагом FIN, даже если они несли полезную информацию.

Особо следует отметить тот факт, что IDS Snort (как для Win32, так и для Linux), не смогла обработать HTTP-запрос, начинающийся с двух символов возврата строки. Целевая система смогла это сделать после правильного подбора номеров очереди (она просто «отрезала» эти символы в начале запроса), что делает Snort также уязвимым к проведению сокрытой атаки методом уклонения. Помимо этого, Snort еще имел восемь несоответствий при работе с Linux и Windows 2000, три из которых связаны с обработкой некорректных заголовков и пять — с различными комбинациями IP- и TCP-фрагментов.

Итак, тестирование выявило следующее количество различий в работе стеков.

  • Snort 1.8.4 for Linux с RedHat Linux 7.2 - 10 различий: 4 основаны на разной обработке некорректных заголовков, 1 - на обработке неправильного HTTP-запроса и 5 - на обработке фрагментированного трафика.
  • Snort 1.8 for Win32 с Windows 2000: те же различия плюс еще одно при обработке фрагментированного трафика.
  • Dragon 5.0 с Linux Red Hat 7.2 - 10 различий: 5 связаны с фрагментами, 1 - с установленным флагом FIN и 4 - с обработкой некорректных заголовков.
  • eTrust ID 1.0 с Windows 2000 - 8 различий: 5 - фрагментированный трафик, 3 - некорректные заголовки.
  • Real Secure 6.0 с Windows 2000 - 8 различий: 5 - фрагментированный трафик, 3 - некорректные заголовки пакетов.
  • Как показали дальнейшие исследования, все обнаруженные различия можно использовать при проведении сокрытых сигнатурных атак при помощи методов вставки и уклонения.




    Содержание  Назад  Вперед