Сетевая безопасность в Windows 2000 за 15 минут в неделю:
 

Универсальная инструкция обеспечения структуры безопасности для Web

от Leonard Loro

 

Web-сервер является лакомой целью для организации атак. По сути, Web-сервер является программой, которая принимает запросы http на TCP/IP порт. Обычно это порт 80 или 443 для безопасного соединения. В настоящее время на рынке можно найти множество web-серверов. Наиболее популярными из них являются IIS (Internet Information Server фирмы Microsoft), Apache и web-сервер iPlanet.

Разработка безопасных реализаций web-серверов повышает их стоимость, но не приносит прибыли. Время и терпение, вот те вещи, которые необходимо затратить для построения надежной схемы безопасности.

«Дыры» в безопасности web-серверов

В безопасности любого web-сервера есть «дыры». Начиная с запуска httpd с правами root (super-user со всеми привилегиями) и заканчивая неправомочным проверкой и переполнением буфера данных пользователя при помощи сценариев, запущенных на сервере. В первом из перечисленных случаев любой пользователь, подключенный к web-серверу, получает все административные права как root. Неплохо, если даже вы не найдете в системе никаких других уязвимостей.

Другой распространенной проблемой является ошибочная конфигурация самого сервера или web-сервера, позволяющая получать доступ к файлам, не предназначенным для широкой публики. В системе могут быть компилирующие файлы, такие как perl.exe и другие исполняемые файлы. Если на целевом сайте разрешена работа файла perl.exe, например, в папке /cgi-bin/, то атакующий может послать целый сценарий для файла perl.exe для выполнения операционной системой команд и запуска приложений.

Обеспечение безопасности «любого» web-сервера

Эта «Универсальная инструкция обеспечения структуры безопасности для Web» написана для ISP, ASP или больших сетей, администраторы которых обычно имеют дело с различными операционными системами. Это действительно универсальная инструкция структуры безопасности web-серверов. Не имеет значения, работаете ли вы с Internet Information 4 или 5, используете ли маршрутизаторы Unix или Cisco или Vignette для управления содержанием web-сервера. Вам все равно потребуется эта инструкция для уменьшения количества служб доступных в вашей сети.

Для начала, должна быть разработана политика безопасности. Это заложит основу для дальнейших действий по обеспечению безопасности и определит уровень стандартов безопасности. После этого, необходимо провести планирование и подготовку разделов для каждого компонента (сеть, web, базы данных) в зависимости от выбранной web-архитектуры. Прочтите инструкцию и ответы на вопросы, шаг за шагом:

Действие

Описание

Разработка политики безопасности

Если у вас пока нет политики безопасности, самое время разработать ее. Лучше один раз поработать сейчас, чем кусать локти потом.

Подготовка сетевой архитектуры

Хотите ли вы, чтобы ваш web-сервер находился на собственном сетевом сегменте? Есть ли другие сервера на данном сегменте, безопасность которых не обеспечена?

Если вы находитесь в среде, использующей брандмауэры, будет ли ваш сервер находиться за брандмауэром или в DMZ (демилиторизованной зоне)?

Если у вас несколько брандмауэров, то куда вы планируете поместить ваш web-сервер?

Будет ли ваш web-сервер работать в переключаемой среде?

Будет ли сниффинг главной проблемой для вашей сети?

Подготовка Web-архитектуры

Какой тип web-сервера вы хотите запустить? Статический? Управляющий базой данных? Какой либо иной динамический?

Если ваша машина будет управлять базой данных, будет ли база данных расположена на той же машине?

Как вы собираетесь управлять машиной? Удаленно или с консоли?

Собираетесь ли вы делать сайт электронной коммерции?

Базы данных и управление содержанием

Если вы используете базы данных на вашем сервере для обеспечения содержания web-сервера, удостоверьтесь, что либо база данных расположена на том же сервере, что и сам web-сервер (что может быть проблематично), либо что ваша база данных полностью безопасна и что запросы к ней от web-сервера поступают по внутренним коммуникациям или являются зашифрованными, если поступают по внешним.

Безопасность HTTP

Безопасность может быть улучшена при помощи SSL. Пары имя пользователя/пароль являются повсеместно используемыми и часто могут быть определены подбором. Также будьте уверены, что главное хранилище данных об именах пользователей и паролях хранится в зашифрованном виде.

Используйте SSL на вашем сервере, что обеспечит защиту ваших данных от сетевого сниффинга.

Защита операционной системы

Не зависимо от того, на какой системе вы работаете (Windows, Unix или Macintosh), необходимо довести до минимума количество служб доступных на вашей машине. Запускайте только те службы, без которых сервер просто не может обойтись.

Избавьтесь от всего, что вам не потребуется. Например, от анонимных ftp-серверов, если они не принадлежат вашему web-серверу и не являются абсолютно необходимыми. Тоже самое относится к базам данных, серверам новостей, gopler-серверам, почтовым серверам и так далее. Web-сервера должен быть отдельной выделенной машиной. Укрепление OS завершено, но оно того стоило.

Защита данных

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

Храните пленки с резервными копиями в надежном безопасном месте.

Распределение нагрузки

Если вы хотите распределить нагрузку между несколькими web-серверами, подумайте, как вы скопируете содержание на эти сервера.

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

Если вы находитесь во внутренней среде, будьте уверены, что внутренняя безопасность так же хорошо организована, как и внешняя. Данные могут быть похищены и из внутренней сети.

Шифрование сетевого трафика при помощи SSL

SSL (secure socket layer) обеспечивает выполнение стандартов шифрования и аутентификации пользователей для Web. Базовая идея шифрования состоит в кодировании текста сообщений при помощи специальных ключей. Есть два способа шифрования: симметричный – использующий один и тот же ключ для шифрования и дешифрования и асимметричный – при котором один ключ используется для шифрования и другой для расшифровки. Типичные реализации могут использовать оба метода – асимметричные системы могут использовать передачу симметричного ключа для текущего сеанса.

Обеспечение надежной безопасности для пользователей и клиентов вашего web-сервера зависит от времени, которое вы уделяете ее обеспечению. Атака или попытка вторжения для сервера, подключенного к Интернету, обычно длится 15 минут, так что не стоит пренебрегать этой задачей, т.к. безопасность вашего бизнеса постоянно находится под угрозой.

Леонард Лоро, MCSE, MCSD, ISS, MCT, CCNA.