[My Home Page] [Contact information] [My Bookmark] [Music Page] [Articles] [HackPage] [Sign Guestbook] [My Public PGP Key]


Обвальный рост уязвимостей в ОС Windows NT



В докладе рассматривается положение дел с безопасностью в самой передовой ОС фирмы Microsoft - Windows NT 4.0, недавно выпущенной на рынок. Тот факт, что она может использоваться не только как клиентская, но и сетевая ОС (в т.ч. и в глобальных сетях) в сочетании с ее молодостью, отсутствием исходных текстов и претензией на защищенность, вызвал повышенный интерес к ней со стороны хакеров.

Этот интерес усугубляется тем, что сертификация Windows NT в соответствии с классом C2 носила довольно формальный характер. При этом можно отметить не только явное несоответствие некоторых требований к системе класса С2 с истинной реализацией данной ОС, но и то, что спроектированная как сетевая ОС, она оценивалась в соответствии с требованиями к локальным системам. Также вызывает удивление тот факт, что оценка системы проводилась в конфигурации без дисковода. (Условия эксплуатации без сетевой карты и дисковода по крайней мере снизили бы коммерческий успех данной ОС, и, естественно, она так никогда не используется).

Эти причины и приводят к росту уязвимостей Windows NT, который в 1997 году можно назвать обвальным.

Предметом настоящего доклада являются уязвимости, приводящие к несанкционированному доступу к защищенной информации в Windows NT и не рассматриваются многочисленные уязвимости, приводящие к отказу в обслуживании, хотя их наличие ставит под сомнение претензии фирмы Microsoft на роль Windows NT как сервера масштаба предприятия. Можно отметить, что отказ в обслуживании может быть вызван как локальным пользователем системы, так и незарегистрированным удаленным (иначе говоря, с любого компьютера, подключенного к Internet). Также авторы не рассматривают уязвимости, связанные с вирусами и уязвимости, вызванные некорректным функционированием приложений, "чемпионом" по ошибкам из которых является Internet Explorer фирмы Microsoft.

Рассмотрение уязвимостей ОС Windows NT по аналогии с UNIX-системами начнем с уязвимостей парольной системы.

Информация о всех пользователях Windows NT и их паролях хранится в базе данных системы (registry), а физически расположена в файле %SystemRoot%\SYSTEM32\CONFIG\SAM - базе данных безопасности системы. Данный файл является по умолчанию читаемым, но "запертым", т.к. используется прочими компонентами системы. Копия данного файла содержится в директории %SystemRoot%\REPAIR\ после создания администратором восстановительного (repair) диска и легко может быть скопирована оттуда. После инсталляции ОС база данных безопасности системы содержит только пользователей Administrator и Guest.

Однако сами пароли в открытом виде, естественно, не содержатся в данном файле. Пароль пользователя (в кодировке UNICODE) с использованием хэш-алгоритма MD4 превращается в 16-байтное значение, которое и находится в файле SAM.

Таким образом, для того, чтобы сломать пароль в Windows NT, злоумышленнику необходимо выделить из базы данных безопасности системы имя пользователя и соответствующее ему хэш-значение. Данная процедура может быть выполнена с использованием программы PWDUMP, разработанной Jeremy Allison и свободно распространяемой. Использование данной программы требует привилегий Administrator (для того, чтобы иметь доступ по чтению к соответствующим значениям registry), но она может использоваться в том случае, если с атакуемой системы удалось получить копию базы данных безопасности системы.

После выделения паролей и соответствующих им хэш-значений может быть использована одна из многих программ взлома пароля методом перебора или атаки по словарю - скорость перебора составляет примерно 2500 паролей/сек на компьютере класса Pentium. При этом, в отличие от UNIX, в Windows NT отсутствует понятие salt, вследствие чего словарь может быть предварительно схэширован и скорость тем самым может быть поднята на несколько порядков. В Service Pack 3 хэш-значения зашифрованы алгоритмом DES, причем ключом является значение, легко выводимое из атрибута пользователя RID.

Как было отмечено в начале, Windows NT оценивалась в конфигурации "без дисковода". Существуют нарушения безопасности системы, связанные с получением злоумышленником доступа к консоли, если дисковод все же есть. Может быть получен доступ к любым файлам в системе при загрузке с дискеты ОС MS DOS, если используется файловая система VFAT. При использовании же файловой системы NTFS возможен беспрепятственный доступ по чтению с помощью утилиты NTFSDOS. Аналогично, загрузка с дискеты ОС Linux с последующим монтированием раздела NTFS обеспечивает доступ к нему по чтению и записи.

Как также было отмечено, ОС Windows NT сертифицировалась в конфигурации не только без дисковода, но и в отсутствии сетевого окружения. При этом использование ее как ОС, подключенной к сетям TCP/IP автоматически приводит к успеху типовых удаленных атак, распространенных в этих сетях: подмену IP-адреса (IP spoofing), внедрение ложных объектов через протоколы ARP, DNS и ICMP, предсказание TCP-идентификатора (TCP number prediction) и т.п.

Более того, Windows NT оказалась не только не лучше отражающей эти атаки, чем UNIX, а даже хуже - в частности, она подвержена атаке, связанной с IP-фрагментацией. Эта атака предназначена для проникновения через файрвол (firewall), путем разбиения IP-пакета на пакеты меньшей длины и последующим его восстановлением на атакуемом хосте. Из-за ошибки в ОС, которая не отслуживает накладывающиеся друг на друга фрагменты, может быть получен такой пакет, который иначе был бы не пропущен файрволом.

Существуют также удаленные атаки, специфичные только для Windows NT. В результате атаки, называемой Red Button, база данных registry становится доступной для незарегистрированного пользователя. При этом может быть получен список пользователей системы и список разделяемых объектов системы. Это происходит из-за того, что в системе имеется встроенный пользователь anonymous, обычно используемый при связи между двумя машинами. Данный пользователь является членом группы Everyone. Следовательно:

  • любой, разделяемый группой Everyone объект является уязвимостью;
  • файл аудита системы и приложений может быть прочитан;
  • все элементы базы данных системы, к которым Everyone имеет соответствующий доступ, могут быть записаны и прочитаны;
  • с использованием Lan Manager может быть получен список всех пользователей и разделяемых объектов.

Если группа Everyone имеет доступ к приложениям, в систему может быть встроен троянский конь.

Если все рассмотренные выше уязвимости системы были связаны с ошибками в проектировании, то далее мы рассмотрим уязвимость, связанную с ошибкой в реализации системы. Данная уязвимость приводит к возможности атаки, называемой GetAdmin. Уязвимым является системный сервис NtAddAtom, не проверяющий параметры, переданные ему, и устанавливающий бит 0 по адресу NtGlobalFlag+2. Для этого необходимо открыть файл ntoskrnl.exe и найти точку входа в NtAddAtom. Установка данного бита отключается проверка привилегий отладчика в NtOpenProcess и NtOpenThread. Таким образом, любой пользователь имеет право открыть любой процесс в системе. Атака открывает процесс Winlogon и встраивает dll к нему. Так как данный сервис имеет привилегии SYSTEM, он может добавить пользователя к группе Administrator или удалить его из данной группы. Теоретически возможны и другие нарушения безопасности системы.

Ё


<== Back to main page counter
My Home Page How to contact me My Bookmarks Music Page Articles Hack Page Welcome to Guestbook Windows (1251) encoding Unix  (Koi8) encoding My Public PGP Key