IDS (Intrusion Detection System) или система предотвращения вторжений является одним из средств защиты от различных атак. Среди типов IDS можно выделить сетевые и локальные IDS. Сетевая IDS обеспечивает безопасность целой подсети; как правило, она работает на аппаратном уровне, т.е. встроена в маршрутизатор или другие сетевые устройства. Локальная IDS располагается непосредственно на том компьютере, который необходимо защищать от различных атак извне. В этом случае контроль обеспечивается на программном уровне. Многие файрволы и брэндмауэры так или иначе включают в себя модуль IDS, а самой известной системой подобного рода является Snort. Главное назначение IDS – это предотравщение таких атак, как переполнение буфера, сканирование портов, отказ в обслуживании (DoS).
PHPIDS в этом отношении выделяется среди традиционных систем обнаружения вторжений, так как проводит контроль на уровне web-приложений и распознает следующие виды атак: XSS, SQL-инъекции, header-инъекции, directory traversal, инклуды и многие другие. Стоит отметить, что благодаря большому набору правил PHPIDS справляется со своей задачей довольно хорошо: провести XSS, даже используя различные методы обхода фильтрации, вам не удастся, не говоря уже о простейших SQL-инъекциях, основанных на UNION SELECT; в то же время количество ложных срабатаваний практически сведено к нулю. Попробовать обхитирить IDS можно на этой странице. Однако любая IDS – это система, которая прежде всего распознает и фиксирует факт атаки, т.е. проводит проверку данных, но не фильтрацию. Это значит, что обнаружив в одном из параметров запроса строку 0′ OR 1=1/*, сработает правило, в результате которого PHPIDS завершит выполнение скрипта и выдаст предупреждение (при стандартной конфигурации). Безусловно, в данном примере более грамотным подходом была бы фильтрация с помощью функции intval(). Тем не менее, результат в обоих случаях будет одинаков: любые попытки провести какую-либо атаку завершатся неудачей.
Таким образом, я рекомендую данное решение тем, кто использует веб-приложения с открытым исходным кодом и не силен в программировании. Многие опытные веб-разработчики скорее всего откажутся от PHPIDS, так как только сам программист точно знает какие данные должны поступать и как эти данные должны обрабатываться.
Ссылки:
Leave a Reply