>>>

Проектирование, разработка и оптимизация веб-приложений

Основы безопасности

Первый этап проектирования, создания или использования безопасного вебсайта — это обеспечение максимального уровня безопасности сервера, на котором он размещается.

Вебсервер формируется несколькими слоями ПО, каждый из которых подвержен разнообразным способам атаки, как показано на диаграмме ниже. Помните: целью атаки может стать любой из блоков.

Основа любого сервера — это операционная система. Обеспечить ее безопасность сравнительно просто: достаточно вовремя устанавливать последние обновления системы безопасности. Это не самое трудоемкое занятие, поскольку системы Microsoft и многие представители семейства Linux позволяют организациям устанавливать исправления автоматически или запускать их одним щелчком мыши.

Следует помнить, что хакеры также склонны автоматизировать свои атаки, используя вредоносное ПО, перебирающее один сервер за другим в поисках сервера, где обновление не было установлено. В связи с этим важно следить за тем, чтобы обновления устанавливались своевременно и надлежащим образом; любой сервер, на котором установлены устаревшие версии обновлений, может подвергнуться атаке.

Также следует вовремя обновлять все программное обеспечение, работающее на вебсервере. Любое ПО, не относящееся к необходимым компонентам (например, DNSсервер либо средства удаленного администрирования наподобие VNC или служб удаленных рабочих столов), следует отключить или удалить. Если средства удаленного администрирования все же необходимы, следите за тем, чтобы не использовались пароли по умолчанию или пароли, которые можно легко угадать. Это замечание относится не только к средствам удаленного администрирования, но и к учетным записям пользователей, коммутаторам и маршрутизаторам.

Следующий важный момент — это антивирусное ПО. Его использование является обязательным требованием для любого вебсервера вне зависимости от того, используется в качестве платформы Windows или Unix. В сочетании с гибким межсетевым экраном антивирусное ПО становится одним из самых эффективных способов защиты от угроз безопасности. Когда вебсервер становится целью атаки, злоумышленник без промедления пытается загрузить инструменты взлома или вредоносное ПО, чтобы успеть использовать уязвимость системы безопасности до того, как она будет закрыта. При отсутствии качественного антивирусного пакета уязвимость системы безопасности может долгое время оставаться незамеченной.

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

Подведем итоги:

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

Следующий по важности компонент программного обеспечения — сам HTTPсервер; самыми популярными альтернативами здесь являются IIS и Apache.

Internet Information Services (IIS)

IIS — это компонент Microsoft Windows, популярный и распространенный в силу простоты конфигурации вебсервер.

Тем не менее при его развертывании требуется помнить о следующем:

HTTPсервер Apache

Apache — это вебсервер с открытым исходным кодом, отличающийся широкими возможностями конфигурации и должным уровнем поддержки. Для его успешного развертывания требуется более детальная настройка, но это в то же время обеспечивает большую степень контролируемости вебсервера. Обычно серверы Apache работают под управлением Linux или BSD, но они также могут работать и в Windows.

Ввиду сложности полная процедура настройки Apache здесь не рассматривается. Тем не менее имеет смысл воспользоваться следующими рекомендациями:

Если для вебсайтов требуется расширенная функциональность, HTTPсервер зачастую дополняется серверным интерпретатором PHP или ASP, или работающим с помощью интерфейса CGI.

PHP и MySQL

PHP является одним из наиболее распространенных серверных скриптовых языков. Он отличается обширнейшей базой функционального кода, простым синтаксисом, адаптируемым кодом и, что наиболее важно, возможностью взаимодействия с самыми разными базами данных. MySQL — это одна из наиболее популярных СУБД, используемых в сочетании с PHP; причина заключается в ее эффективности, богатой функциональности, а также простоте настройки и использования.

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

Вот несколько советов по настройке (разработка безопасного кода обсуждается ниже), касающихся переменных в файле «php.ini»:

При установке MySQL создается база данных «test», используемая по умолчанию, и открытая учетная запись «root» без пароля. Данной учетной записи автоматически предоставляется полный доступ ко всем прочим базам данных на сервере. В связи с этим необходимо проделать следующее:

Active Server Pages (ASP)

ASP — это надстройка для IIS, созданная Майкрософт, хотя также существует реализация для Apache. Поддержка ASP встроена в IIS, в связи с чем дополнительные требования по конфигурации минимальны или отсутствуют.

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

Обычно антивирус выступает последней линией обороны в случае атаки. В связи с этим на вебсерверах (в особенности там, где используется динамически формируемый контент) должна быть включена проверка файлов при обращении. Как показано в приведенной ниже диаграмме, от вредоносного ПО не застрахован ни один сервер. Вне зависимости от вашей уверенности в безопасности вебсервера всегда есть шанс успешной атаки. Проверка файлов при обращении позволяет существенно снизить вероятность запуска вредоносного кода в системе, поскольку она может вестись как в режиме «при чтении», так и в режиме «при записи», что позволяет своевременно уведомить администратора о попытке размещения вредоносного кода на сервере.

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

Атаки вебсерверов можно разделить на две категории: локальные и глобальные.

Несмотря на то, что в некоторых кругах системы Linux и BSD считаются безопаснее Windows, использование этих операционных систем также не является гарантией защиты от организованной преступности. В них можно (и нужно) установить антивирусное ПО. Даже в случае, когда вредоносная программа не может быть запущена на самом сервере, если он защищен антивирусным ПО, она все же может передаваться под видом обычного контента посетителям вебсайтов, поскольку хакеры зачастую загружают такие программы с помощью PHP или ASP, что исключает необходимость заражения операционной системы вебсервера.

Серверы также могут заражаться через локальную сеть. К примеру, семейство червей Fujacks способно заражать HTML, PHP и ASPфайлы, расположенные на сетевых дисках.


Размер шрифта:
А
А
А
Цвет сайта:
A
A
A
Изображение:
Вкл.
Выкл.
Обычная версия