На поиск компьютеров с известными лазейками в системе безопасности хакеры не жалеют времени, поскольку для взлома такой машины требуется лишь терпение и фрагмент программного кода. Для поиска потенциальных жертв по IP-адресу или имени домена обычно используется Ping или другая утилита. Затем требуется выяснить, какая операционная система и приложения работают на компьютере, и запустить соответствующую программу. Изготовленный взломщиком «червь» может странствовать по Internet, стучаться во все двери и нападать на все машины, даже не пытаясь выяснить, есть ли на них подходящие программы. Судя по ущербу, который нанес «червь» SQL Slammer (он же Sapphire), эта стратегия весьма эффективна.
Инструменты оценки уязвимости автоматизируют процедуру поиска и позволяют сетевым администраторам определить уровень безопасности своих систем. Политики безопасности, списки управления доступом (ACL) и подписанные пользователями обязательства не помогут, если в сети много пробелов. Но если администратор обнаружит бреши прежде взломщика и устранит их, сеть станет гораздо надежнее. В данной статье речь пойдет об общих характеристиках инструментов оценки уязвимости, широко распространенных продуктах для Windows (см. Таблицу) и основных направлениях развития средств борьбы со взломщиками.
Два года назад на рынке средств оценки уязвимости действовало всего несколько крупных поставщиков, сегодня же их более 40. Появилось и исчезло несколько продуктов, а некоторые поставщики средств сетевой безопасности ушли с рынка, не встретив энтузиазма со стороны потребителей. Наиболее популярными по-прежнему остаются инструменты, размещаемые на серверах провайдера услуг, но быстрее всего растет рынок специализированных программ сканирования, в частности предназначенных для проверки баз данных Microsoft SQL Server, Web-серверов и беспроводных локальных сетей. Большинство инструментов относятся к одной из следующих категорий: серверные продукты, средства прикладного уровня (база данных или Web) и контроля паролей и учетных записей.
Серверные инструменты оценки уязвимости
Когда говорят об оценке уязвимости, обычно имеют в виду инструменты, размещаемые на компьютерах провайдера. Программа на сервере обнаруживает и идентифицирует операционную систему на конкретной машине, а затем проверяет известные изъяны. Такой инструмент отличает систему Windows 2000 от машины UNIX и применяет соответствующую процедуру тестирования. Большинство продуктов отыскивают и проверяют широко распространенные приложения и службы на каждой платформе. Например, на компьютере UNIX тестируются демоны, Sendmail и разделяемые ресурсы Samba. На машинах Windows 2000 проверяется Microsoft IIS, открываются общие ресурсы NetBIOS и выявляются слабые пароли.
Инструмент для Windows должен учитывать различия между версиями Windows. Например, бессмысленно имитировать атаку IIS или отказ в обслуживании (DoS) при вызове удаленных процедур (RPC) на машине Windows 98. Несколько широко распространенных инструментов первоначально предназначались для UNIX; они превосходно тестируют системы UNIX и Linux и дополнительно — системы Windows. Если в сети нет других машин, кроме Windows, необходимо убедиться, что выбранный инструмент ориентирован на платформы Microsoft.
Инструменты прикладного уровня
Большая часть средств прикладного уровня ориентирована на Web-серверы и базы данных. Понятно, что защитить общедоступный Web-сервер очень трудно. За последние несколько лет был проведен ряд «соревнований», в ходе которых разыгрывались денежные призы за взлом особенно надежно укрепленных Web-серверов. Команды высоковалифицированных специалистов настраивали конфигурацию Web-серверов с использованием аппаратных средств защиты, недоступных большинству компаний. Тем не менее, по моим подсчетам, в пяти случаях из шести системы были взломаны за несколько дней. Большинство Web-серверов уязвимы из-за ошибок в операционной системе или пробелов в программе электронной коммерции. Если лучшие из лучших специалистов не могут абсолютно надежно защитить Web-сервер, то как справится с этой задачей непрофессиональный Web-мастер? Только воспользовавшись инструментом оценки уязвимости, предназначенным специально для тестирования Web-серверов.
Средства оценки уязвимости Web-серверов обычно проверяют IIS, Apache или iPlanet. IIS-ориентированные инструменты обнаруживают плохо настроенные анонимные учетные записи пользователей, некорректные разрешения доступа к каталогам, остатки тестовых программ и привилегированные службы, такие как фильтры Internet Server API (ISAPI). Инструменты Apache и iPlanet отыскивают фрагменты кода, способные поражать файлы, моделируют нападения на каталог cgi-bin и атаки с переходом через границы каталога /etc/passwd. Инструменты для любого Web-сервера обязательно проверяют конфиденциальную информацию в скрытых полях, сохраненные пароли, кросс-сайтовые сценарии, неконтролируемый ввод данных и переполнение буферов.
После того как взломщики начали применять метод встраивания в операторы SQL и появился «червь» Slammer, несколько поставщиков выпустили инструменты прикладного уровня специально для тестирования широко распространенных баз данных: SQL Server, Microsoft Exchange Server, Oracle, IBM Lotus Domino, Oracle PL/SQL, Sybase, IBM DB2 и MySQL. Проверяются отсутствующие и стандартные пароли, возможности встраивания и настройка параметров безопасности.
Программы проверки паролей и учетных записей
Небольшое число продуктов атакует систему, отгадывая пароли. Этот подход может показаться слишком упрощенным, но нередко пароли — самое слабое звено в системе безопасности сети. Даже самый мощный алгоритм шифрования бесполезен, если применяется частный ключ со слабым паролем, так как учетную запись администратора нельзя блокировать после определенного числа неудачных попыток ввода пароля, и взломщик может провести целый день, незаметно подбирая пароль для доступа к разделяемому каталогу. Некоторые серверные инструменты составляют список бездействующих учетных записей, своевременно не удаленных с компьютера. Комбинируя программы проверки паролей и статуса учетных записей, можно быстро протестировать и укрепить любую сеть с минимальными затратами времени и средств.
Конечно, многие инструменты оценки уязвимости решают целый ряд задач. Редкий серверный инструмент, распознав операционную систему, не исследует приложения, которые часто становятся мишенью взломщиков. Многие хост-инструменты для Windows проверяют пароль и статус учетных записей. Но иногда универсальные инструменты плохо справляются с каждой отдельно взятой задачей. Как правило, специализированный анализатор Web-сервера или сервера баз данных более тщательно исследует системы определенного типа, чем универсальный сканер, хотя бывают и исключения. Независимо от категории, к которой принадлежит инструмент, он должен выполнять три функции: составлять карту сети и идентифицировать приложения, проверять уязвимые места и генерировать отчеты.
Серверные инструменты начинают тестирование, запрашивая IP-адрес конкретной машины или диапазон адресов подсети, к которой принадлежат исследуемые компьютеры. Хороший хост-инструмент обнаруживает все машины, физически соединенные с сетью, и генерирует отчет о типе и версии операционной системы. Обычно за ping-тестированием машины (по протоколу Internet Control Message Protocol — ICMP) следует идентификация активных портов TCP и UDP. Некоторые инструменты по умолчанию исходят из того, что служба, работающая через стандартный (хорошо известный) порт, принадлежит к определенному типу. Например, даже при исследовании SMTP-сервера слабый инструмент предпримет попытку атаки на все службы через порт 80, как на HTTP-сервере. Некоторые решения пытаются идентифицировать приложение, работающее через конкретный порт (например, определить активного клиента Instant Messaging). В идеальном случае (в целях ускорения работы), если определены приложение и его версия, инструмент проводит только атаки, специфичные для данного приложения.
К сожалению, инструменты оценки уязвимости в целом неточно определяют приложения и порты. Как обнаружить уязвимые места, не имея возможности определить соответствующие параметры? Некоторые инструменты тестируют все слабые места, даже такие, которые не относятся к конкретному приложению и порту. Такой подход не всегда плох, хотя и отнимает много времени. Лучше иметь достаточно точный инструмент анализа, нежели быстрый.
Выбор продукта
Средства оценки уязвимости предназначены для поиска слабых мест операционных систем компьютеров и приложений. Как утверждают поставщики, их продукты обеспечивают тестирование от десятков до
30 000 всевозможных пробелов в системе безопасности. Любой инструмент для Windows должен различать несколько сотен сигнатур атак. Инструменты тестируют все известные уязвимые места каждой платформы (приведенные в списке стандартизованных названий Common Vulnerabilities and Exposures, CVE, организации MITRE, перечнях Microsoft и координационного центра CERT Coordination Center — CERT/CC), но более мощные продукты должны обнаруживать проблемы, возникающие из-за ошибок в конфигурации. Например, администратору необходима информация о пустых паролях, неправильно назначенных разрешениях, открытых сетевых разделяемых ресурсах и активных гостевых учетных записях. Некоторые инструменты позволяют составить специальные сценарии атаки, чтобы точно настроить тесты взлома или избежать ложных положительных срабатываний.
Хороший продукт не только генерирует отчеты и выдает итоговую сводку об обнаруженных пробелах конкретной системы, но и помогает администратору устранять недостатки. Мне приходилось работать с инструментами, которые сообщают об открытых разделяемых ресурсах, но не указывают их имен и причин, по которым они признаны открытыми. О каталогах идет речь или о принтерах? Может быть, они не защищены паролем или администратор забыл применить исправление от Microsoft? В лучших инструментах имеются ссылки на Web-узел поставщика, где приведена подробная информация о конкретной угрозе, уровне риска и мерах обеспечения безопасности. С помощью некоторых инструментов можно даже подготовить сценарии, чтобы ликвидировать пробелы в сети.
Выбрать инструмент оценки уязвимости также трудно, как корпоративную антивирусную программу. Существует несколько проверенных поставщиков, но прежде чем приобретать продукт, следует договориться об испытательном сроке. Иногда программа, которая отлично работает на одной платформе, совсем не подходит для другой. Выбирая инструмент, следует руководствоваться несколькими общими правилами.
Продукт должен соответствовать информационной среде и уровню квалификации сотрудников предприятия. Необходимо выяснить, на какой платформе он работает и выполняет поиск. Как уже отмечалось, для чистой среды Windows нужно выбирать инструмент с акцентом на Windows, который работает на машинах с этой операционной системой. Nessus — широко распространенный бесплатный инструмент для тестирования более чем 140 уязвимых мест Windows. В состав Nessus входит клиент мониторинга на базе Windows, но серверная часть программы работает на компьютерах UNIX или Linux.
Многие анализаторы для Windows устарели и больше подходят для тестирования Windows NT, чем Windows XP и Windows 2000. Важно убедиться, что анализатор различает новые операционные системы и учитывает их особенности (например, Universal Plug and Play, UPnP — трафик NetBIOS через порт 445, групповые политики). Кроме того, большинство инструментов работают только с протоколом TCP/IP. В сети Novell или Macintosh необходимо учитывать последствия, к которым приведет возможность исследовать лишь компьютеры по IP, при работе с другими или дополнительными протоколами.
Следует убедиться, что выбранный инструмент располагает эффективными тестами для определения структуры и проникновения в сеть и приложения. Как узнать возможности инструмента? Можно провести поиск в Web, почитать рецензии в журналах, поинтересоваться мнением других клиентов данного поставщика. Перед покупкой инструмент нужно протестировать. Большинство поставщиков бесплатно предоставляют на испытательный период полнофункциональные программы, в которых ограничен лишь диапазон IP-адресов.
Если на предприятии требуется исследовать несколько машин одновременно, необходимо попросить у поставщика для тестирования полнофункциональный продукт. Некоторые инструменты превосходно справляются с проверкой одной или нескольких машин, но работают очень медленно или отказывают при исследовании крупных подсетей. Большинство решений корпоративного класса можно разместить на нескольких серверах, распределенных по всей организации. При этом отчеты поступают в единую внешнюю базу данных.
Следует учесть, каким количеством сценариев для исследуемых платформ располагает инструмент и как часто он обновляется. Важно обращать внимание не только на количественные показатели, так как один поставщик может объединить множество родственных проверок в общий тест, а другой считает каждую проверку отдельным тестом. Мне нравятся такие инструменты, как CVE, которые присваивают каждому тесту идентификационный номер на базе стандартов. Кроме того, нужно учесть, как часто обновляются используемые продуктом тесты. Проводится ли модернизация автоматически или же пользователю предстоит делать это вручную? Как долго придется ждать после появления очередной угрозы, такой как Slammer, чтобы протестировать всю сеть? Можно ли добавлять новые элементы вручную и изменять существующие тесты, чтобы настроить их и избежать ложных положительных срабатываний?
Следует выяснить, сколько отчетов генерирует продукт, какая информация содержится в этих отчетах и можно ли экспортировать их. Поначалу администратора могут устроить шаблонные отчеты, но если тесты проводятся часто, то данные стоит экспортировать во внешние базы данных для дальнейшего анализа и выявления тенденций. Большинство инструментов не могут связать результаты различных сеансов, но эта функция очень важна, так как многим администраторам необходимо продемонстрировать руководству эффективность мер по обнаружению уязвимых мест и внедрению исправлений.
Инструмент должен обеспечивать различные уровни проникновения, чтобы предотвращать сбои. Все поставщики предупреждают, что тесты преодоления защиты могут привести к отказам в обслуживании или зависанию операционной системы на исследуемой машине. Нельзя тестировать важные производственные серверы, когда они работают с интенсивной нагрузкой. В этом случае инструменты проверки уязвимости вызовут нарушения в работе служб и сбои. В большинстве хороших инструментов предусмотрены режимы с низкой степенью сканирования, при которых риск нарушения работоспособности невелик. Интенсивное тестирование рекомендуется применять во время начальной проверки в нерабочее время, а для повторных проверок выбирать смягченный режим.
Цену на свои продукты компании определяют по-разному. Одни поставщики назначают цену по числу исследуемых компьютеров, другие исходят из размера подсети. Большинство поставщиков предоставляют продукты по подписке с годовой оплатой. Несколько лет назад я столкнулся с проблемой лицензирования, когда развернул сеть класса C с адресацией по классу A. Поставщику пришлось внести в программу специальные исправления, чтобы я смог развернуть сеть, не приобретая тысячи лишних лицензий. Большинство компаний позволяют проводить неограниченное число проверок в течение лицензионного периода, некоторые взимают плату за каждый сеанс. Во время переговоров о цене имеет смысл задать и другие вопросы: как изменяется оплата при добавлении новых машин? сколько времени уходит на получение лицензий? в течение какого времени предоставляются бесплатные исправления и обновления для инструмента?
Что касается инструмента без агентов, то самые требовательные специалисты убеждены, что это наиболее правильный вариант. Таким программам ничего не известно о проверяемых машинах, и они совершают те же действия, что и настоящий взломщик. Инструменты без агентов дают более реалистичную оценку безопасности конкретной машины. В некоторых продуктах для повышения эффективности требуется установить агентов на клиентской стороне. Инструменты с агентами обеспечивают более высокую точность результатов, так как работают на обеих сторонах сетевого интерфейса и контролируют процессы, службы и порты, которые не могут быть обнаружены внешней службой. В нескольких решениях реализованы оба режима.
Оперативная служба
Для оценки уязвимости можно задействовать оперативную службу. Достоинство этого подхода заключается в том, что для таких инструментов не нужно аппаратных средств, ими можно пользоваться и получать отчеты из любого места, обновления вносятся автоматически, а общая стоимость эксплуатации ниже. Недостатки — как правило, длительное время сканирования и то, что в целом оперативную службу нельзя настроить на конкретное применение так же гибко, как клиентские продукты. Кроме того, при использовании оперативной службы обо всех уязвимых местах будет известно посторонним лицам.
Надежная стратегия тестирования
Большинству сетевых администраторов необходимо проводить, по крайней мере, ежегодные или ежеквартальные проверки всех важных производственных систем. Перед развертыванием требуется выполнить исчерпывающее тестирование компьютеров, относящихся к зоне риска, таких как Web-серверы в Internet или демилитаризованной зоне (DMZ), и часто повторять проверки. Это позволит обнаружить уязвимое место быстрее взломщика. Нельзя ограничиться лишь разовой проверкой с устранением недостатков в начале эксплуатации. При правильно организованном аудите последующие проверки будут проходить быстрее, так как старые недостатки будут устранены и программе придется выполнять меньше работы.
Потребители предъявляют все более высокие требования к средствам оценки уязвимости. Прежде всего пользователи надеются, что инструменты помогут автоматически устранить обнаруженные пробелы безопасности. Поставщики предлагают различные решения: одни продукты указывают администратору на соответствующее исправление, другие даже составляют сценарии настройки слабо защищенных рабочих станций или сценарии для взаимодействия с другими устройствами обеспечения безопасности, такими как брандмауэры и системы обнаружения взлома (Intrusion Detection Systems — IDS). Кроме того, в ответ на требования админстраторов поставщики интегрируют инструменты поиска уязвимых мест в корпоративные системы мониторинга с централизованными отчетами, предупреждениями и управлением. Крупная система управления документирует политики безопасности компании, а инструмент оценки уязвимости обеспечивает применение этих политик. Из централизованной консоли безопасности можно отслеживать работу инструмента оценки уязвимости, брандмауэра, IDS, антивирусной программы и координировать реакцию всех этих продуктов. Обнаружив опасность, инструмент оценки уязвимости должен установить степень риска для компании.
Роль средств поиска уязвимых мест для тестирования и укрепления сетевой безопасности переоценить трудно. Они исследуют сеть, отображают имеющиеся компьютеры и проверяют обнаруженные системы и программное обеспечение. Некоторые заслуживающие внимания корпоративные продукты перечислены в Таблице. Отыскав инструмент, совместимый с конкретными платформами и приложениями, следует испытать его, установив в сети тестовые машины с известными нарушениями в системе безопасности. Идеальных инструментов нет, поэтому следует просто выбрать продукт с подходящей функциональностью, удовлетворяющий требованиям информационной среды и бюджета компании.
Роджер А. Граймз — консультант по антивирусной защите. Имеет сертификаты CPA, MCSE, CNE, A+ и является автором книги «Malicious Mobile Code: Virus Protection for Windows» (изд-во O?Reilly & Associates). Его адрес: roger@rogeragrimes.com.