Введение.
Для начала я хотел бы ввести определение навесной защиты в контексте веб-безопасности. Навесная защита — это некая технология, позволяющая выставить дополнительный барьер безопасности со стороны сервера между программным обеспечением (в данном случае — веб-скрипт[ы]) и клиентом, не изменяя при этом схему работы ПО. Под это определение подпадают многие IDS, некоторые модули для Apache [mod_security, mod_dosevasive , в какой-то мере, даже mod_rewrite], и скрипты типа DL Secure, и многие другие. Навесная защита устанавливается поверх ПО, она может обрабатывать вывод, проверять входные данные на предмет вредоносности и, возможно, осуществлять иные действия по повышению безопасности системы.
Я бы классифицировал такие системы, кроме уровня работы, в первую очередь по уровню прозрачности (невидимости/незаметности) их работы для защищаемого ПО — соответственно, высокого уровня прозрачности — внешние IDS, стоящие над веб-сервером и модули защиты веб-сервера, среднего и средне-низкого уровня прозрачности — написанная мною система WSWLP [Web Site White-List Protection], DL Secure, и низкого — mod_rewrite для Apache (и подобные), и предлагаемая мной специально для этой статьи система WSCP [Web Site Crypto Protection].
Навесные защиты высокого уровня прозрачности.
В этой части статьи я мог бы описать различные IDS и прочие системы безопасности, но, по соображениям наличия высокой степени освещенности их возможностей и вопросов использования, делать этого не стану, а проведу лишь краткий обзор, сопровожденный ссылками на наиболее подробные и актуальные материалы по известным средствам защиты.
1. IDS Snort
Одна из наиболее распространенных IDS. Система анализа и слежения (ведения логов) за проходящими пакетами.
Распознаваемые атаки:
- атаки на переполнение буфера
- стелс-сканирование
- CGI атаки
- SMB probes
- Попытки определения типа системы.
В Snort присутствует собственный скриптовый язык для создания пользовательских правил управления пакетами. Основная ставка в Snort делается на кросс-платформенность (Snort может быть установлен на произвольные *nix системы, Windows, распространяется как в бинарном виде, так и в исходных кодах под лицензией GNU GPL) и минимальную загрузку системы.
Документы по IDS Snort:
- http://snort.org/docs/
- http://hackconnect.ru/?module=filesdb&id=2&fid=2&get=1 – русский FAQ в кодировке Windows CP1251.
Скачать Snort:
- http://www.snort.org/dl/current/snort-2.8.0.tar.gz
- http://hackconnect.ru/?module=filesdb&id=2&fid=1&get=1
2. IPAudit
Еще одна система, проверяющая весь трафик на предмет вредоносности. Использует сигнатурный метод для обнаружения атак, в этом случае она может вывести предупреждение администратору и занести данные об атаке в лог – пассивная IDS.
Документы:
- http://www.securityfocus.com/infocus/1842
Скачать IPAudit:
- http://ovh.dl.sourceforge.net/sourceforge/ipaudit/ipaudit-0.95.tgz
- http://hackconnect.ru/?module=filesdb&id=2&fid=3&get=1
3. mod_security для Apache HTTP Web Server
Mod_Security - модуль Apache, добавляющий возможности обнаружения и предотвращения вторжений на веб-сервер.
Основные возможности:
- Фильтрация данных «на-лету» - несколько режимов работы – сигнатурный, вайт- и блек-листы.
- встроенный движок правил
- может работать на произвольных веб-серверах, базирующихся на Apache.
- интересный режим блокирования – переадресация на Honeypot.
- защита от DDoS атак средней мощности.
Скачать mod_security:
- https://bsn.breach.com/ - требуется регистрация.
- http://hackconnect.ru/?module=filesdb&id=2&fid=4&get=1
- http://hackconnect.ru/?module=filesdb&id=2&fid=5&get=1 – правила для модуля.
4. mod_dosevasive для Apache HTTP Web Server
Модуль созданный специально для защиты от DDoS атак. Простой в использовании, практичный в применении). Осуществляется контроль интенсивности запросов с одного IP за период времени и числа параллельных запросов. После превышения определенного в конфигурации лимита, осуществляется временная блокировка доступа злоумышленника, возможен вызов внешнего скрипта для блокирования через фаерволл.
Скачать mod_dosevasive:
- http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz
- http://hackconnect.ru/?module=filesdb&id=2&fid=6&get=1
Навесные защиты среднего уровня прозрачности.
1. XND Web-Site White-List Protection
Эта система была написана мной [dm] в мае 2007 года, последняя версия датируется 3им июля 2007. До текущего времени она ходила в привате, тестировалась на нескольких сайтах, в итоге я все таки решил опубликовать ее в этом номере HackConnect.Ezine.
WSWLP это универсальная система защиты для любых скриптов, написанных на PHP
и предназначенных для работы с протоколом HTTP, таких как движки сайтов, форумов,
магазинов и прочих подобных.
Основные возможности:
- Как видно из названия, работает в режиме вайт-листа. Почему – потому что у этого режима нет особых недостатков, кроме как уменьшенной удобности использования. Сигнатурный метод узок – ловит только то, что знает. Блек-листы ловят еще меньше, так как в сигнатурном режиме бывают расширения в виде эвристических функций анализа, немного расширяющих его возможности.
- Перехватывает входные данные, поступающие через POST и GET-запросы в параметрах, а также значения cookie, и анализирует их на предмет наличия недопустимых символов.
- Движок пользовательских правил, базированный на регулярных выражениях PHP.
- 2 режима работы – «Симулирование ошибок» и удаление.
- Создание бан-листа для неосторожных взломщиков.
Скачать XND WSWLP:
- http://xndcrew.org/index.php?module=filesdb&id=1&fid=18&get=1
Буду рад любой критике, особенно конструктивной.
2. DL Secure
Позиционируется также как модуль защиты от атак через входящие POST, GET и COOKIE запросы. Модуль достаточно громоздок в плане использования системных ресурсов в виде MySQL – все, для чего он использован в системе, можно было реализовать на файлах. Хорошо хоть, что разработчики решили не хранить в базе данных лог, правда это немного странно – используешь MySQL – используй везде. Опустим мелкие ошибки типа неиспользованных переменных и прочего - модуль имеет право на жизнь.
Не понравилось:
- Аляповатость и пафосность картинки с сообщением о вредоносном действии.
- Параноидальность скрипта, когда он видит пустой параметр.
Скачать DL Secure:
- http://hackconnect.ru/?module=filesdb&id=2&fid=7&get=1
Навесные защиты низкого уровня прозрачности.
1. mod_rewrite
Изначально этот модуль предназначался для преобразования URL-адресов в более логичный и понятный вид с точки зрения, в первую очередь, поисковиков и, во вторую, пользователей (т.н. понятие ЧПУ == Человеко-Подобные УРЛы). Но, мы рассмотрим его применение в качестве навесной защиты.
Как известно, модуль может преобразовать строку вида, например,
http://example.com/index.php?product=wodget&color=green&size=large&texture=smooth&maker=wodgetsinc
в такую:
http://example.com/product/wodget/green/large/smooth/wodgetsinc
После этого мы можем рассчитывать на то, что некоторая часть потенциальных взломщиков оставит попытки провести какую-либо атаку. Мы же разберемся с другими. Обычно, скриптовые системы, использующие mod_rewrite, построены так, что не используют спецсимволы в параметрах, соответственно, используя всего-лишь одну небольшую функцию проверки на наличие потенциально-вредоносных символов, мы сможем надолго обезопасить свой сайт, по крайней мере, с одной стороны.
Что же по поводу функции – приведу простой ее пример:
if(ereg("[^a-zA-Z0-9/]",$_SERVER['PATH_INFO']))
die('Hack Attempt!');
Документы:
- http://www.opennet.ru/docs/RUS/mod_rewrite/ - перевод документа ниже на русский
- http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
Скачивать mod_rewrite отдельно не требуется, он включен в дистрибутив веб-сервера Apache.
2. XND Web-Site Crypto Protection
Эту систему защиты я написал специально для HC.Ezine #2, как пример возможной реализации подобной навесной защиты. Не совместима с mod_rewrite без напильника (стучите мне в Асю – расскажу как и что сделать, а может даже и напишу позже).
В этой системе основная идея состоит в защите от URL-анализа методом симметричного шифрования. Все параметры, передаваемые через GET в адресах, выводящихся на сайте, будут зашифрованы, при открытии каждой страницы они автоматически будут расшифрованы и записаны в системные массивы PHP.
Взять WSCP можно в папке ‘stuff’. Позже он появится и на сайте команды.
Заключение.
Как видим, навесные защиты являются большим подспорьем в организации защиты уже существующего сайта. Но, как говорится, чисто не там где убирают, а там где не сорят, поэтому лучше просто не допускать ошибок и следить за действиями вашего скрипта во всех возможных случаях, а не только в тех, которые вы предусмотрели. Не чихайте) ваш dm.
|
/* ----------------------------------------------------[contents]----------------------------------------------------- */ |
|