Spis treści:
W darmowym planie Cloudflare można utworzyć 5 własnych reguł w firewall WAF, które zabezpieczą nie tylko Twoją stronę internetową, ale również zapobiegną przeciążeniom serwera. W rezultacie zużycie procesora znacznie się zmniejszy, eliminując ryzyko przestojów. Trzeba jednak pamiętać, że jest limit 4096 bajtów dla operatora: „contains”. Niestety, żeby skorzystać z operatora „Matches” dzięki, któremu bylibyśmy w stanie zoptymalizować nasze wyrażenie, potrzebny jest płatny plan Business lub WAF Advanced. Dlatego w przypadku dużych reguł można je rozbić na 2 reguły.
W większości przypadków atakujący dąży do pobrania plików, wykorzystując powszechne luki w zabezpieczeniach (są to rodzaje ataków typu brute force), aby uzyskać dostęp do strony www.
W tym celu atakujący wysyła dużą liczbę żądań HTTP do Twojej strony. W wyniku licznych żądań HTTP w krótkim czasie, zasoby serwera przydzielone do Twojej strony zostają wyczerpane, co prowadzi do jej awarii. Dzięki zastosowanym zabezpieczeniom, zasoby serwera będą oszczędzane, a strona będzie bezpieczniejsza.
Rodzaje ataków hakerskich:
Blokowanie Brute Force
Atak brute force (siłowy) polega na systematycznym próbowaniu różnych kombinacji loginów i haseł, aż do znalezienia prawidłowych danych umożliwiających dostęp do systemu, konta użytkownika lub zasobu. Atakujący wykorzystuje automatyczne skrypty lub programy, które generują i testują tysiące, a nawet miliony możliwych kombinacji. Ataki brute force mogą być czasochłonne, ale są skuteczne w przypadku słabych haseł lub niedostatecznych zabezpieczeń.
Blokowanie Cross-Site Scripting (XSS)
Blokowanie żądań zawierających potencjalnie złośliwy kod JavaScript. Ataki XSS wstrzykują złośliwy kod JavaScript do stron internetowych. Blokowanie podejrzanych skryptów może zapobiec tym atakom.
Blokowanie Cross-Site Scripting (XSS)
Blokowanie żądań zawierających potencjalnie złośliwy kod JavaScript. Ataki XSS wstrzykują złośliwy kod JavaScript do stron internetowych. Blokowanie podejrzanych skryptów może zapobiec tym atakom.
Blokowanie nieautoryzowanego dostępu do panelu administracyjnego
Ograniczenie dostępu do panelu administracyjnego tylko do zaufanych adresów IP, dzięki temu chrtonimy panel administracyjny przed nieautoryzowanym dostępem poprzez zezwolenie na dostęp tylko z określonych adresów IP.
Przykładowa reguła:
Warunek: Żądanie kierowane do /admin
z adresu IP spoza listy zaufanych
Akcja: Blokuj żądanie
Reguła: if request to /admin AND IP not in [trusted IPs] then block
Blokowanie dostępu do niebezpiecznych plików i katalogów
Blokowanie żądań dostępu do plików konfiguracyjnych, skryptów wykonywalnych i innych wrażliwych zasobów, dzięki temu zapobiegamy dostępowi do plików, które mogą zawierać wrażliwe dane lub umożliwiać wykonanie złośliwego kodu.
Blokowanie skryptów i narzędzi wykorzystywanych do ataków
Blokowanie dostępu do popularnych skryptów i narzędzi używanych przez hakerów, dzieki temu zapobiegamy wykorzystaniu znanych narzędzi hakerskich do ataków na stronę.
Blokowanie w Cloudflare
Prezentowane w tym artykule zabezpieczenia wykorzystuję na swoim blogu pawelmacur.com, który jest na silniku WordPress. Zabezpieczenia trzeba dostosować do własnego silnika.
Blokada pliku wp-config.php
- Logujemy się na konto do cloudflare.com.
- Przechodzimy do zakładki: Security->WAF (Web Application Firewall).
- Klikamy w 'Create Rule’.
- Podajemy nazwę reguły.
- Z rozwijanej listy 'Filed’ wybierze 'URI’ oraz ustaw operator na 'contains’ i w 'Value’ i wpisz: wp-config.php.
- W sekcji 'Then take action…’ z listy wybierz 'Block’ i kliknij 'Deploy’.
- Po wykonaniu wszystkich kroków utworzy nam się reguła:
http.request.uri contains "wp-config.php"
.
TIP: Pamiętaj, że w jednej regule możesz dodać więcej niż jeden plik, który chcesz zablokować. Wystarczy po kroku 5 kliknąć przycisk 'OR’.
TIP: Nie trzeba korzystać z mechanizmu budowania wyrażeń, tylko można wykorzystać edycję wyrażenia i wkleić gotowca.
Blokada XML-RPC
XML-RPC jest często celem ataków brute force. Jeśli nie używasz XML-RPC na swojej stronie np. do zdalnego publikowania postów, zablokuj dostęp do tego pliku.
http.request.uri contains "xmlrpc.php"
Blokada readme.html i license.txt
Pliki zawierające informacje o wersji WordPress, mogą być używane do identyfikacji wersji.
http.request.uri contains "readme.html"
http.request.uri contains "license.txt"
Blokada pliku z błędami: error_log
Plik logów błędów może zawierać cenne informacje dla atakującego.
http.request.uri contains "error_log"
Blokada .htaccess
Plik konfiguracyjny Apache jest wrażliwy na nieautoryzowane zmiany.
http.request.uri contains ".htaccess"
Blokowanie ciągu znaków
Zarówno pliki jak i fragmenty w adresie URL można blokować w ten sam sposób, więc podaję listę 2 reguł, które można wykorzystać. Tylko trzeba pamiętać, żeby sprawdzić, czy po włączeniu reguł strona działa prawidłowo. Każdy CMS jest inny, struktura URL, tematyka prowadzenia strony itp., więc konieczna jest modyfikacja listy reguł pod swoją stronę. Ważne jest również regularne aktualizowanie reguł i monitorowanie ruchu sieciowego, aby skutecznie reagować na nowe zagrożenia.
Dzięki poniższym regułom zablokujemy różne ataki hakerskie, które zostały opisane w sekcji o rodzajach ataków” na samym początku artykułu.
Reguła 1
(http.request.uri contains "/var/") or (http.request.uri contains "/vhosts/") or (http.request.uri contains "/vuln.php") or (http.request.uri contains "/webforms/") or (http.request.uri contains "/wp-config.") or (http.request.uri contains "0x00") or (http.request.uri contains "0x3c62723e") or (http.request.uri contains "://") or (http.request.uri contains ";!--=") or (http.request.uri contains "<") or (http.request.uri contains ">") or (http.request.uri contains "@@") or (http.request.uri contains "@copy") or (http.request.uri contains "@eval") or (http.request.uri contains "GLOBALS%") or (http.request.uri contains "GLOBALS=") or (http.request.uri contains "GLOBALS[") or (http.request.uri contains "REQUEST%") or (http.request.uri contains "REQUEST[") or (http.request.uri contains "[") or (http.request.uri contains "^") or (http.request.uri contains "]") or (http.request.uri contains "function()") or (http.request.uri contains "fwrite(") or (http.request.uri contains "gethostbyname") or (http.request.uri contains "indoxploi") or (http.request.uri contains "input_file") or (http.request.uri contains "javascript:") or (http.request.uri contains "leak(") or (http.request.uri contains "loopback") or (http.request.uri contains "mod=.") or (http.request.uri contains "mosconfig") or (http.request.uri contains "muieblack") or (http.request.uri contains "open_basedir") or (http.request.uri contains "outfile") or (http.request.uri contains "passthru(") or (http.request.uri contains "path=.") or (http.request.uri contains "php://") or (http.request.uri contains "phpinfo(") or (http.request.uri contains "phps://") or (http.request.uri contains "phpshell") or (http.request.uri contains "proc_open") or (http.request.uri contains "remoteview") or (http.request.uri contains "revslider") or (http.request.uri contains "root_path") or (http.request.uri contains "safe_mode") or (http.request.uri contains "select(") or (http.request.uri contains "self/environ") or (http.request.uri contains "sftp://") or (http.request.uri contains "shell_exec(") or (http.request.uri contains "sleep(") or (http.request.uri contains "system(") or (http.request.uri contains "terminate(") or (http.request.uri contains "timthumb") or (http.request.uri contains "union(") or (http.request.uri contains "union+select") or (http.request.uri contains "user_func_array") or (http.request.uri contains "usr/bin/perl") or (http.request.uri contains "var/lib/php") or (http.request.uri contains "win.ini") or (http.request.uri contains "windows/win") or (http.request.uri contains "wp-config.php") or (http.request.uri contains "{") or (http.request.uri contains "{$itemURL}") or (http.request.uri contains "{0}") or (http.request.uri contains "{x.html(") or (http.request.uri contains "xmlrpc.php") or (http.request.uri contains "readme.html") or (http.request.uri contains "license.txt") or (http.request.uri contains "_vti_") or (http.request.uri contains "`") or (http.request.uri contains "allow_url_include") or (http.request.uri contains "base64(") or (http.request.uri contains "base64_") or (http.request.uri contains "bin/bash") or (http.request.uri contains "bitrix") or (http.request.uri contains "boot.ini") or (http.request.uri contains "cast(0x") or (http.request.uri contains "cgi.") or (http.request.uri contains "concat(") or (http.request.uri contains "curl_exec") or (http.request.uri contains "etc/hosts") or (http.request.uri contains "etc/motd") or (http.request.uri contains "etc/passwd") or (http.request.uri contains "etc/shadow") or (http.request.uri contains "eval(") or (http.request.uri contains "execute") or (http.request.uri contains "fckeditor") or (http.request.uri contains "fgets") or (http.request.uri contains "file_get_contents") or (http.request.uri contains "file_put_contents") or (http.request.uri contains "fputs") or (http.request.uri contains "fsockopen") or (http.request.uri contains "ftp://") or (http.request.uri contains "ftps://")
Reguła 2
(http.request.uri contains "$_env") or (http.request.uri contains "$_files") or (http.request.uri contains "$_get") or (http.request.uri contains "$_post") or (http.request.uri contains "$_request") or (http.request.uri contains "$_server") or (http.request.uri contains "$_session") or (http.request.uri contains "&pws=0") or (http.request.uri contains "(0x") or (http.request.uri contains "(function(") or (http.request.uri contains "(null)") or (http.request.uri contains ").html(") or (http.request.uri contains ")select") or (http.request.uri contains "+++") or (http.request.uri contains "+concat+") or (http.request.uri contains "+delete+") or (http.request.uri contains "+select+") or (http.request.uri contains "+union+") or (http.request.uri contains "...") or (http.request.uri contains "../") or (http.request.uri contains ".bak") or (http.request.uri contains ".bash") or (http.request.uri contains ".cfg") or (http.request.uri contains ".cgi") or (http.request.uri contains ".dll") or (http.request.uri contains ".ds_") or (http.request.uri contains ".htaccess") or (http.request.uri contains ".htpas") or (http.request.uri contains ".ini") or (http.request.uri contains ".jsp") or (http.request.uri contains ".mdb") or (http.request.uri contains ".msi") or (http.request.uri contains ".pass") or (http.request.uri contains ".pwd") or (http.request.uri contains ".svn") or (http.request.uri contains ".tmp") or (http.request.uri contains ".zlib") or (http.request.uri contains "/$&") or (http.request.uri contains "/&&") or (http.request.uri contains "/($)/") or (http.request.uri contains "/(*)/") or (http.request.uri contains "/**/") or (http.request.uri contains "/.env") or (http.request.uri contains "///") or (http.request.uri contains "/0day.php") or (http.request.uri contains "/127.0.0.1") or (http.request.uri contains "/3xp.php") or (http.request.uri contains "/70be.php") or (http.request.uri contains "/70bex.php") or (http.request.uri contains "/:/") or (http.request.uri contains "/::/") or (http.request.uri contains "/=") or (http.request.uri contains "/__hdhdhd.php") or (http.request.uri contains "/_mm") or (http.request.uri contains "/apikey.php") or (http.request.uri contains "/c99.php") or (http.request.uri contains "/cgi-") or (http.request.uri contains "/config.") or (http.request.uri contains "/configbak.php") or (http.request.uri contains "/crossdomain.") or (http.request.uri contains "/curltest.php") or (http.request.uri contains "/database/") or (http.request.uri contains "/db.php") or (http.request.uri contains "/dompdf.php") or (http.request.uri contains "/etc/hidden/") or (http.request.uri contains "error_log") or (http.request.uri contains "/etc/secret/") or (http.request.uri contains "/etc/tmp/") or (http.request.uri contains "/eval-stdin.php") or (http.request.uri contains "/file:") or (http.request.uri contains "/filemanager/") or (http.request.uri contains "/fileupload/") or (http.request.uri contains "/fpw.php") or (http.request.uri contains "/ftp:") or (http.request.uri contains "/ftps:") or (http.request.uri contains "/function.array-rand") or (http.request.uri contains "/function.parse-url") or (http.request.uri contains "/htdocs/") or (http.request.uri contains "/http/") or (http.request.uri contains "/http:") or (http.request.uri contains "/httpdocs/") or (http.request.uri contains "/https/") or (http.request.uri contains "/https:") or (http.request.uri contains "/ima/") or (http.request.uri contains "/inurl:/") or (http.request.uri contains "/iprober.php") or (http.request.uri contains "/loopback") or (http.request.uri contains "/mailman/") or (http.request.uri contains "/mailto/") or (http.request.uri contains "/makefile") or (http.request.uri contains "/mobiquo.php") or (http.request.uri contains "/mysql-admin/") or (http.request.uri contains "/mysql/") or (http.request.uri contains "/php-info.php") or (http.request.uri contains "/php:") or (http.request.uri contains "/phpinfo.php")
Blokowanie User Agentów
Blokowanie spamowych user agentów jest kluczowym krokiem w zabezpieczaniu strony internetowej przed niepożądanym ruchem.
Reguła 1
(http.user_agent contains "extract") or (http.user_agent contains "3gse") or (http.user_agent contains "4all") or (http.user_agent contains "archiver") or (http.user_agent contains "base64_decode") or (http.user_agent contains "bluefish") or (http.user_agent contains "botalot") or (http.user_agent contains "ccbot") or (http.user_agent contains "cgichk") or (http.user_agent contains "craftbot") or (http.user_agent contains "datacha0s") or (http.user_agent contains "dcppbot") or (http.user_agent contains "dlman") or (http.user_agent contains "downloader") or (http.user_agent contains "elite") or (http.user_agent contains "emailcollector") or (http.user_agent contains "emerald") or (http.user_agent contains "emailreaper") or (http.user_agent contains "feedfinder") or (http.user_agent contains "feedfetcher") or (http.user_agent contains "filehound") or (http.user_agent contains "flycast") or (http.user_agent contains "getbot") or (http.user_agent contains "goldfire") or (http.user_agent contains "greedy") or (http.user_agent contains "grub") or (http.user_agent contains "hloader") or (http.user_agent contains "hscan") or (http.user_agent contains "htdig") or (http.user_agent contains "imagefetch") or (http.user_agent contains "injector") or (http.user_agent contains "jakarabot") or (http.user_agent contains "joebot") or (http.user_agent contains "keyword") or (http.user_agent contains "killer") or (http.user_agent contains "kraken") or (http.user_agent contains "lapcat") or (http.user_agent contains "larbin") or (http.user_agent contains "linbot") or (http.user_agent contains "linkbot") or (http.user_agent contains "linkextractor") or (http.user_agent contains "linkscan") or (http.user_agent contains "lmcrawler") or (http.user_agent contains "macfret") or (http.user_agent contains "magnum") or (http.user_agent contains "mailorder") or (http.user_agent contains "mass") or (http.user_agent contains "matahari") or (http.user_agent contains "midcrawl") or (http.user_agent contains "moget") or (http.user_agent contains "mozilla") or (http.user_agent contains "musobot") or (http.user_agent contains "netants") or (http.user_agent contains "netcraft") or (http.user_agent contains "netmech") or (http.user_agent contains "netzilla") or (http.user_agent contains "nimbda") or (http.user_agent contains "nstealth") or (http.user_agent contains "openfind") or (http.user_agent contains "openfou") or (http.user_agent contains "ourobouros") or (http.user_agent contains "pavuk") or (http.user_agent contains "prospector") or (http.user_agent contains "queryn") or (http.user_agent contains "queryseek") or (http.user_agent contains "realdownload") or (http.user_agent contains "searchbot") or (http.user_agent contains "semantics") or (http.user_agent contains "sitebot") or (http.user_agent contains "sitecheck") or (http.user_agent contains "sitegrabber") or (http.user_agent contains "sitesnagger") or (http.user_agent contains "slysearch") or (http.user_agent contains "sootle") or (http.user_agent contains "spbot") or (http.user_agent contains "spf") or (http.user_agent contains "spiderman") or (http.user_agent contains "superbot") or (http.user_agent contains "superhttp") or (http.user_agent contains "surveybot") or (http.user_agent contains "suckbot") or (http.user_agent contains "sugam") or (http.user_agent contains "telebook") or (http.user_agent contains "urlbase") or (http.user_agent contains "urlfinder") or (http.user_agent contains "urlywurm") or (http.user_agent contains "vacuum") or (http.user_agent contains "webbandit") or (http.user_agent contains "webcopy") or (http.user_agent contains "webdup") or (http.user_agent contains "webduplication") or (http.user_agent contains "webfetch") or (http.user_agent contains "webstripper") or (http.user_agent contains "webtrends") or (http.user_agent contains "wraebot") or (http.user_agent contains "wwwcopy") or (http.user_agent contains "zeusbot")
Reguła 2
(http.user_agent contains "g00g1e") or (http.user_agent contains "grab") or (http.user_agent contains "harvest") or (http.user_agent contains "httrack") or (http.user_agent contains "icarus6j") or (http.user_agent contains "jakarta") or (http.user_agent contains "libwww") or (http.user_agent contains "loader") or (http.user_agent contains "md5sum") or (http.user_agent contains "miner") or (http.user_agent contains "mj12") or (http.user_agent contains "nikto") or (http.user_agent contains "phpshell") or (http.user_agent contains "python") or (http.user_agent contains "queryseeker") or (http.user_agent contains "remoteview") or (http.user_agent contains "scan") or (http.user_agent contains "seekerspider") or (http.user_agent contains "siclab") or (http.user_agent contains "sux0r") or (http.user_agent contains "unserialize") or (http.user_agent contains "wget") or (http.user_agent contains "winhttp") or (http.user_agent contains "xv6875)") or (http.user_agent contains "youda") or (http.user_agent contains "acapbot") or (http.user_agent contains "alexibot") or (http.user_agent contains "attack") or (http.user_agent contains "backdo") or (http.user_agent contains "binlar") or (http.user_agent contains "blackwidow") or (http.user_agent contains "blexbot") or (http.user_agent contains "blowfish") or (http.user_agent contains "bullseye") or (http.user_agent contains "casper") or (http.user_agent contains "cherrypick") or (http.user_agent contains "cmswor") or (http.user_agent contains "comodo") or (http.user_agent contains "crescent") or (http.user_agent contains "demon") or (http.user_agent contains "diavol") or (http.user_agent contains "discobot") or (http.user_agent contains "dotbot") or (http.user_agent contains "dumbot") or (http.user_agent contains "email") or (http.user_agent contains "exabot") or (http.user_agent contains "finder") or (http.user_agent contains "flicky") or (http.user_agent contains "flaming") or (http.user_agent contains "flashget") or (http.user_agent contains "foobot") or (http.user_agent contains "gigabot") or (http.user_agent contains "gozilla") or (http.user_agent contains "grafula") or (http.user_agent contains "hacker") or (http.user_agent contains "heritrix") or (http.user_agent contains "jetbot") or (http.user_agent contains "kmccrew") or (http.user_agent contains "leacher") or (http.user_agent contains "leech") or (http.user_agent contains "libweb") or (http.user_agent contains "linkwalker") or (http.user_agent contains "majestic") or (http.user_agent contains "morfeus") or (http.user_agent contains "netspider") or (http.user_agent contains "ninja") or (http.user_agent contains "nutch") or (http.user_agent contains "octopus") or (http.user_agent contains "postrank") or (http.user_agent contains "proximic") or (http.user_agent contains "purebot") or (http.user_agent contains "reaper") or (http.user_agent contains "scooter") or (http.user_agent contains "semalt") or (http.user_agent contains "shellshock") or (http.user_agent contains "sistrix") or (http.user_agent contains "skygrid") or (http.user_agent contains "snoopy") or (http.user_agent contains "sosospider") or (http.user_agent contains "spankbot") or (http.user_agent contains "stripper") or (http.user_agent contains "sucker") or (http.user_agent contains "suzukacz") or (http.user_agent contains "teleport") or (http.user_agent contains "turnit") or (http.user_agent contains "vampire") or (http.user_agent contains "vikspi") or (http.user_agent contains "voideye") or (http.user_agent contains "webvac") or (http.user_agent contains "woxbot") or (http.user_agent contains "xaldon") or (http.user_agent contains "zeus") or (http.user_agent contains "zmeu") or (http.user_agent contains "zyborg") or (http.user_agent contains "asterias") or (http.user_agent contains "backdoorbot") or (http.user_agent contains "batchftp") or (http.user_agent contains "bbrawler") or (http.user_agent contains "becomebot") or (http.user_agent contains "bdbot") or (http.user_agent contains "bdfetch")
Monitorowanie ruchu sieciowego
Monitorowanie ruchu sieciowego w WordPress jest kluczowe dla bezpieczeństwa i wydajności Twojej strony. Poniżej znajdziesz różne metody i narzędzia, które możesz wykorzystać do monitorowania ruchu sieciowego na stronie WordPress.
Używanie wtyczek bezpieczeństwa
Wtyczki bezpieczeństwa mogą monitorować ruch sieciowy, wykrywać podejrzane aktywności i oferować szczegółowe raporty. Oto dwie popularne wtyczki:
Wordfence Security
Wordfence oferuje kompleksowe rozwiązania bezpieczeństwa, w tym monitorowanie ruchu sieciowego.
Funkcje np.:
Live Traffic: Pokazuje w czasie rzeczywistym aktywność użytkowników i botów na stronie.
Firewall: Blokuje podejrzane żądania.
Skany: Regularnie sprawdza stronę pod kątem zagrożeń.
Sucuri Security
Sucuri oferuje szeroki zakres funkcji związanych z bezpieczeństwem, w tym monitorowanie ruchu.
Funkcje np:
Audyt aktywności: Śledzi zmiany w plikach i konfiguracji.
Monitoring zewnętrzny: Sprawdza stronę pod kątem infekcji i zmian DNS.
Firewall: Ochrona przed atakami DDoS i innymi zagrożeniami.
Narzędzia do monitorowania serwera
New Relic
New Relic oferuje zaawansowane monitorowanie wydajności aplikacji, w tym stron WordPress.
Funkcje np:
- Monitorowanie czasu odpowiedzi serwera.
- Wykrywanie wąskich gardeł w kodzie i bazie danych.
- Szczegółowe raporty i alerty w czasie rzeczywistym.
Uptime Robot
Narzędzie do monitorowania dostępności strony.
Funkcje np:
- Sprawdza dostępność strony co 5 minut.
- Powiadomienia o awariach przez e-mail, SMS, Slack.
- Historia awarii i raporty.
Logi serwera Apache/Nginx
Analizowanie logów serwera WWW (Apache, Nginx) może dostarczyć szczegółowych informacji o ruchu.
Funkcje np:
- Dostęp do surowych logów żądań HTTP.
- Analiza logów pod kątem podejrzanych aktywności.
- Narzędzia do analizy logów, takie jak AWStats lub GoAccess.
CDN i WAF z funkcjami monitorowania
Cloudflare to usługa CDN z wbudowanym WAF, która oferuje monitorowanie i zabezpieczenia. Logi można podejrzeć klikając w liczbę kolumnie: „Activity last 24hr”.
Jeden komentarz
Dzięki! Dodałem u siebie na stronie.