Firewall (огненная стена — англ) — для веба — это межсетевой фильтр/щлюз между внешним интернетом и внутренней сетью. Эти фильтры защищают локальную сеть и сервера от внешних атак.
Практически каждый хостер имеет грамотно настроенный firewall и практически все хакерские вторжения блокируются.
Немудрено, что злоумышленники перенесли вектор атак на веб приложения. И если в защите хостинга у хостеров свой шкурный интерес (репутация как-никак), то в защите сайтов вебмастера каждый сам за себя. Более того если в открытом доступе есть критическая уязвимость CMS или плагина — хостеры требуют обновления движка или плагинов, поскольку это может угрожать всему серверу. За неустранение — бан. Нет критических уязвимостей — они дружно молчат.
Короче, безопасность сайта в целом и защита от хакерских атак — дело добровольное для каждого вебмастера.
Спасение утопающих — дело рук самих утопающих
Для защиты сайтов был разработан Web Application Firewall (WAF) — защитный экран для приложений, выявляющий и блокирующий атаки на веб-приложения.
Главная задача WAF — защита сайта от несанкционированного доступа, даже при наличии критичных уязвимостей в приложении:
- SQL Injection — sql инъекции;
- PHP Injection — php инъекции;
- Remote Code Execution (RCE) — удаленное выполнение кода;
- Cross Site Scripting (XSS) — межсайтовый скриптинг;
- Cross Site Request Forgery (CSRF) — межстайтовая подделка запросов;
- Remote File Inclusion (RFI) — удалённый инклуд;
- Local File Inclusion (LFI) — локальный инклуд;
- Auth Bypass — обход авторизации;
- Bruteforce — подбор паролей.
На данный момент существует немало готовых WAF, которые могут как встраиваться в сайт, так и работать на стороннем сервере. В большинстве случаев такое решение будет снижать скорость загрузки сайта, что не есть хорошо.
Хотели как лучше, а получилось как всегда
В. С. Черномырдин
Однако вы можете сделать WAF для вашего сайта за 5 минут в файле .htaccess. Что может наш fairwall? Функция всего одна — блокировка зловредных GET и POST запросов, вернее определенных наборов символов, которые могут привести к SQL/PHP инъекции, XSS атаке, инклудам. Это такие символы как \.\ или ./
Код WAF для сайта выглядит так:
# LiveMonet BLACKLIST/FIREWALL
# @ https://livemonet.ru/web-firewall-na-htaccess-oni-ne-projdut.html
# LiveMonet:[QUERY STRINGS]
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (environ|localhost|mosconfig|scanner) [NC,OR]
RewriteCond %{QUERY_STRING} (menu|mod|path|tag)\=\.?/? [NC,OR]
RewriteCond %{QUERY_STRING} boot\.ini [NC,OR]
RewriteCond %{QUERY_STRING} echo.*kae [NC,OR]
RewriteCond %{QUERY_STRING} etc/passwd [NC,OR]
RewriteCond %{QUERY_STRING} \=\\%27$ [NC,OR]
RewriteCond %{QUERY_STRING} \=\\\'$ [NC,OR]
RewriteCond %{QUERY_STRING} \.\./ [NC,OR]
RewriteCond %{QUERY_STRING} \? [NC,OR]
RewriteCond %{QUERY_STRING} \: [NC,OR]
RewriteCond %{QUERY_STRING} \[ [NC,OR]
RewriteCond %{QUERY_STRING} \] [NC]
RewriteRule .* - [F]
# LiveMonet:[USER AGENTS]
SetEnvIfNoCase User-Agent ^$ keep_out
SetEnvIfNoCase User-Agent (casper|cmsworldmap|diavol|dotbot) keep_out
SetEnvIfNoCase User-Agent (flicky|ia_archiver|jakarta|kmccrew) keep_out
SetEnvIfNoCase User-Agent (libwww|planetwork|pycurl|skygrid) keep_out
SetEnvIfNoCase User-Agent (purebot|comodo|feedfinder|turnit) keep_out
SetEnvIfNoCase User-Agent (zmeu|nutch|vikspider|binlar|sucker) keep_out
Order Allow,Deny
Allow from all
Deny from env=keep_out
# LiveMonet:[REQUEST STRINGS]
RedirectMatch 403 (https?|ftp|php)\://
RedirectMatch 403 /(cgi|https?|ima|ucp)/
RedirectMatch 403 /(Permanent|Better)$
RedirectMatch 403 (\=\\\'|\=\\%27|/\\\'/?|\)\.css\()$
RedirectMatch 403 (\,|//|\)\+|/\,/|\{0\}|\(/\(|\.\.\.|\+\+\+|\||\\\"\\\")
RedirectMatch 403 \.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$
RedirectMatch 403 /(contac|fpw|install|pingserver|register)\.php$
RedirectMatch 403 (base64|crossdomain|localhost|wwwroot|e107\_)
RedirectMatch 403 (eval\(|\_vti\_|\(null\)|echo.*kae|config\.xml)
RedirectMatch 403 \.well\-known/host\-meta
RedirectMatch 403 /function\.array\-rand
RedirectMatch 403 \)\;\$\(this\)\.html\(
RedirectMatch 403 proc/self/environ
RedirectMatch 403 msnbot\.htm\)\.\_
RedirectMatch 403 /ref\.outcontrol
RedirectMatch 403 com\_cropimage
RedirectMatch 403 indonesia\.htm
RedirectMatch 403 \{\$itemURL\}
RedirectMatch 403 function\(\)
RedirectMatch 403 labels\.rdf
RedirectMatch 403 /playing.php
RedirectMatch 403 muieblackcat
Скопируйте код и вставьте в файл .htaccess. Я постарался учесть все нежелательные символы, которые можно использовать для хакерских атак. Если что и не учел — поделитесь в комментах. Я дополню farewall и буду вам очень признателен.
Да прибудет с вами сила и пусть ваш сайт станет неприступной крепостью.
Добавить комментарий