Защита информации в Интернет

Корни проблемы Translate f протокол WebDAV и канонизация



Корни проблемы Translate: f - протокол WebDAV и канонизация

При первом выявлении этой проблемы вокруг ее причин разгорелись бурные споры. Официальная позиция компании Microsoft сводилась к тому, что причиной является некорректное поведение внутреннего обработчика файлов в ядре US (что в прошлом действительно приводило к некоторым проблемам). Эта позиция была обнародована в разделе MSOO-58, посвященном вопросам безопасности по адресу http: //www.microsoft.com/technet/security/bulletin/fq00-058.asp.
Однако Даниель Дочкал (Daniel Docekal) считает, что причиной проблемы является протокол WebDAV (Web Distributed Authoring and Versioning) — протокол обеспечения стандартов Internet, поддерживаемый преимущественно компанией Microsoft и позволяющий удаленным авторам создавать, удалять, перемещать, находить и изменять атрибуты файлов и каталогов на Web-серверах (чувствуете, с какими проблемами это может быть сопряжено?). Протокол WebDAV Web-сервером IIS 5 поддерживается по умолчанию. И хотя заголовок HTTP Translate: не описан в спецификации протокола WebDAV (RFC 2518) или других известных авторам документах, Даниель Дочкал утверждает, что встречал ссылку на него в библиотеке сети MSDN компании Microsoft. По его словам, там рассказывалось об использовании этого заголовка для получения файлового потока путем указания значения F (false) в поле заголовка Translate.
В процессе обсуждения этого вопроса с группой обеспечения безопасности продуктов Microsoft выяснилось, что это действительно так. По их словам протокол WebDAV реализован в динамической библиотеке httpext.dll в виде фильтра ISAPI, интерпретирующего Web-запросы до их передачи ядру IIS. Заголовок Translate: f предполагает обработку этого запроса, а обратная косая вводит фильтр в заблуждение, и он направляет этот запрос непосредственно операционной системе. Система Win 2000 благополучно возвращает этот файл системе злоумышленника, а не выполняет его на сервере (как положено по всем правилам).
Здесь мы вплотную подошли к вопросу канонизации (canonicalization). Это понятие описано специалистами компании Microsoft в разделе MSOO-57 по адресу http://www.microsoft.com/technet/security/bulletin/fq00-057.asp. Там говорится следующее: "Канонизация — это процесс приведения различных эквивалентных форм имени к единому стандартному имени, называемому каноническим именем (canonical name) . Например, на данном компьютере имена c:\dir\test.dat и . . \. . \test.dat могут ссылаться на один и тот же файл. Канонизация — это процесс приведения таких имен к виду c:\dir\test.dat."
Использование одной из различных эквивалентных форм канонического имени файла может привести к обработке запроса другими средствами IIS или операционной системы. Хорошим примером проблемы канонизации является вскрытие исходного кода с помощью выражения : :$DATA. Если к некоторому файлу обратиться по специальному имени, то файл будет возвращен броузеру в некорректном виде (Более подробная информация об этом содержится в главе 15).
Подобным образом работает и заголовок Translate: f. Значение f вводит службу WebDAV в заблуждение, в результате чего файловый поток возвращается броузеру.



Содержание раздела