Защита RPC — второй раунд

История с вирусом MSBlaster (LoveSan) заставила провести строгий анализ процедуры удаленных вызовов — Remote Procedure Call (RPC) — в исполнении компании Microsoft. В результате проведенного анализа несколько фирм, занимающихся вопросами безопасности, вскрыли три весьма опасных пробела, относящиеся к той части кода, который отвечает за обработку неправильно сформированных запросов RPC. Тех, кто еще не читал бюллетень Microsoft Security Bulletin MS03-039 (Buffer Overrun In RPCSS Service Could Allow Code Execution), мне придется огорчить: всем пользователям предстоит заново установить исправления на свои рабочие станции и серверы, чем, вероятно, многие уже занимались вскоре после выхода исправления для защиты от MSBlaster. Самые последние обнаруженные изьяны в RPC относятся ко всем без исключения платформам Windows, в том числе Windows Server 2003, Windows XP, Windows 2000 и Windows NT. В лучшем случае успешное использование одного из таких слабых мест может привести в системах Windows 2000 к отказу в обслуживании (Denial of Service, DoS), а в худшем — позволит полностью захватить контроль над всей системой. Как следует из бюллетеня, в результате успешно проведенной атаки на пораженной системе можно запустить код с привилегиями Local System или спровоцировать сбой в RPCSS Service. После чего атакующий способен произвести над системой любые действия, включая установку программ, просмотр, изменение и удаление данных, а также создание новых учетных записей с административными привилегиями.

Чтобы ограничить поражающую способность «червя» MSBlaster и уязвимость системы из-за найденных трех новых уязвимых мест, Microsoft выпустила обновление программы коррекции системы безопасности, описание которой приведено в статье «MS03-039: A Buffer Overrun in RPCSS Could Allow an Attacker to Run Malicious Programs» (http://support.microsoft.com/?kbid=824146) от 10 сентября. Данная программа заменяет и поглощает оригинальную RPC Worm Fix 823980, описанную в бюллетене Security Bulletin MS03-026 (Buffer Overrun In RPC Interface Could Allow Code Execution). Чтобы иметь гарантии, что ваши системы не подвергнутся атакам ни оригинального MSBlaster, ни его вариаций, необходимо установить еще одно обновление программы коррекции системы безопасности на всех компьютерах с Windows 2003, XP, Windows 2000 и NT. Вот сводный перечень файлов, необходимых для названных платформ.

  • Windows 2003. Файл WindowsServer2003-KB824146-x86-ENU.exe обновляет все 32-разрядные версии Windows 2003. Для обновления 64-разрядных версий Windows 2003, Enterprise Edition и Windows 2003, Datacenter Edition нужно использовать файл WindowsServer2003-KB824146-ia64-ENU.exe. Этот же файл используется для обновления систем XP 64-bit 2003.
  • XP. Файл WindowsXP-KB824146-x86-ENU.exe обновляет версии XP Professional Edition, XP Home Edition, XP Tablet PC Edition, а также XP Media Center Edition (MCE). Для обновления XP 64-bit 2002 нужно загрузить файл WindowsXP-KB824146-ia64-ENU.exe. Для обновления XP 64-bit 2003 — файл WindowsServer2003-KB824146-ia64-ENU.exe.
  • Windows 2000. Файл Windows2000-KB824146-x86-ENU.exe обновляет Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, а также Windows 2000 Datacenter Server — все версии Windows 2000 вплоть до Service Pack 4 (SP4).
  • NT. Для данной версии используются специфические версии программ коррекции для RPC — вам может понадобиться до трех различных версий: одна для рабочих станций NT, одна для серверов NT Server и одна для NT Server 4.0, Terminal Server Edition (WTS).

Если на системе нет независимой программы — анализатора установленных исправлений, можно использовать две различные утилиты для идентификации систем, которые нуждаются в обновлении. Microsoft Baseline Security Analyzer (MBSA) может сканировать одну, несколько или все системы в подсети или домене на предмет выявления систем, на которых не установлены необходимые исправления. Преимущество программы MBSA заключается в том, что она предоставляет один отчет для всех систем и для всех отсутствующих исправлений. Недостаток — в поиске станций, нуждающихся в обновлении RPC: обрабатывать представленный отчет придется вручную. Программное обеспечение KB 824146 Scanner, файл для загрузки DCOM-KB827363-X86-ENU.exe — обновленная версия сканера Microsoft, реализованная специально для поиска станций, подверженных атакам оригинального «червя» MSBlaster. Эта версия сканера просматривает все системы и формирует список статуса исправления KB823980 плюс статус только что вышедшего исправления KB824146. Программа запускается с командной строки. Можно указать системы для сканирования с помощью имен NetBIOS, TCP/IP Fully Qualified Domain Name (FQDN) или адресов TCP/IP; переназначить вывод в дисковой файл; запросить подробный отчет о результатах проведенного сканирования. В документации Microsoft указано, что данный сканер также устанавливает программу коррекции системы безопасности KB824146, однако это не так. Когда я проводила тестирование работы сканера, статус обоих исправлений для RPC был задан правильно, но ни одно из отсутствующих исправлений так и не было установлено. В статье Microsoft «How to Use the KB 824146 Scanning Tool to Identify Host Computers That Do Not Have the 823980 (MS03-026) and the 824146 (MS03-039) Security Patches Installed» (http://support.microsoft.com/?kbid=827363) приводится описание этой утилиты и разъясняется, как интерпретировать результаты ее работы.

Microsoft выпустила специальный шаблон, написанный на VBScript, patchinstall.vbs, который может использоваться для распространения программы коррекции на компьютеры, входящие в состав доменов Windows 2003, Windows 2000 и NT. Данный сценарий обновляет системы Windows 2003, XP и Windows 2000, но не обновляет станции Windows NT. Если требуется распространить исправления на системы NT, придется самостоятельно дописать код, который бы распознавал NT и все ее редакции, т. е. NT Workstation 4.0, NT Server 4.0 и WTS, и загружал свой код для каждой редакции. Данный сценарий принимает два аргумента: имя файла, в котором содержится адрес TCP/IP для каждой системы, нуждающейся в обновлении, и путь к локальному каталогу, где хранятся файлы исправлений для Windows 2000, XP и Windows 2000. В соответствии с документацией на сценарий, необходимо переименовать каждое исправление таким образом, чтобы по имени можно было идентифицировать обновляемую платформу; версия программы коррекции для Windows 2003 должна быть переименована в Patch_W2k3.exe, для XP — в Patch_XP.exe и для Windows 2000 — в Patch_W2k.exe. В сценарии используется выходной файл сканера KB824146scan.exe в качестве входного, поэтому теоретически необходимо сначала запустить программу сканирования, сохранить результаты ее работы в файле, а потом передать его на вход patchinstall.vbs. Когда сценарий начинает работу, он устанавливает соединение с каждой системой, найденной во входном файле, определяет версию ее операционной системы, копирует исправление в корневой каталог на локальном диске (т. е. C:patchinstall.exe), устанавливает программу коррекции в автоматическом режиме (quiet mode), перезагружает станцию и после перезапуска системы пытается удалить исходный файл с локального диска. У меня не было возможности протестировать этот сценарий для всех платформ, поэтому мне остается только предложить читателям поверить в то, что данный сценарий устанавливает корректное исправление для 64-разрядных версий Windows 2003 и XP. В статье Microsoft «How to Use a Visual Basic Script to Install the 824146 (MS03-039) or 823980 (MS03-026) Security Patch on Remote Host Computers» (http://support.microsoft.com/?kbid=827227) содержится текст данного шаблона сценария и приводится описание принципов его работы.


Сбой в Windows Server 2003 Lsass

В Windows 2003 имеется одна скрытая ошибка, которая в ряде случаев приводит к сбою в работе LSA с признаком access violation. Как говорится в статье Microsoft «The Server Stops Responding and an Access Violation Occurs in Lsass.exe When the Server Reloads Certain Policy Parameters» (http://support.microsoft.com/?kbid=826819), когда DC повторно загружает политику Lightweight Directory Access Protocol (LDAP) во время обработки подключения Simple Authentication and Security Layer (SASL), система может ошибочно заблокировать поток планировщика — Scheduler Service, что, в свою очередь, приводит к нарушению доступа — access violation. Служба PSS имеет соответствующее исправление, новую версию secure32.dll, дата создания файла — 23 августа.


Утечка памяти в Windows 2000 из-за Lsass

Если контроллер домена Windows 2000 работает без перезагрузки на протяжении нескольких месяцев и для мониторинга системной активности используется программа Performance Monitor, работа последней может привести к утечке памяти через службу Local Security Authority (LSA) (lsass.exe). Как и во всех остальных случаях, связанных с утечкой памяти, со временем утечка памяти приводит к увеличению времени отклика системы на запросы пользователей либо невозможности зарегистрироваться в системе. В данном случае также можно увидеть сообщение об ошибке в System Event Log с Event ID 1168, в котором говорится, что в системе произошла ошибка NT Directory Service (NTDS) Intersite Messaging. Чтобы избавиться от утечки памяти, систему всегда можно перезагрузить. Кардинальное решение проблемы — установка исправления. Программа коррекции большая, в нее входит 37 обновленных файлов, большинство датировано серединой сентября. В статье Microsoft «Memory Leak in Lsass.exe» (http://support.microsoft.com/?kbid=828297) перечислены все файлы, изменяемые при установке исправления.

Паула Шерик — редактор Windows & .NET Magazine и консультант по вопросам планирования, реализации и взаимодействия сетей. С ней можно связаться по адресу: paula@winnetmag.com.