W dzisiejszym świecie, gdy coraz więcej firm i osób prywatnych przenosi swoją działalność do internetu, kwestia cyberbezpieczeństwa staje się kluczowa. Każdego dnia popularne systemy zarządzania treścią, takie jak WordPress czy Drupal, stają się celem ataków hakerskich. Na szczęście istnieją rozwiązania, które mogą pomóc w ochronie przed takimi zagrożeniami. Jednym z nich jest CrowdSec – otwartoźródłowe narzędzie do wykrywania i blokowania złośliwych działań w sieci.
CrowdSec to darmowy, otwartoźródłowy system wykrywania i reagowania na zagrożenia, który działa na zasadzie “kolektywnej obrony”. Jego główna idea opiera się na współpracy - informacje o atakach są udostępniane między wszystkimi użytkownikami platformy, tworząc swego rodzaju “odpornościowy system” sieci.
W przeciwieństwie do tradycyjnych zapór sieciowych (firewall), CrowdSec nie tylko blokuje podejrzane adresy IP, ale również analizuje zachowania użytkowników, identyfikując potencjalne zagrożenia na podstawie ich działań. Co więcej, gdy system wykryje atak, informacja o nim jest udostępniana całej społeczności CrowdSec, dzięki czemu wszyscy użytkownicy mogą być chronieni przed danym zagrożeniem.
WordPress i Drupal to bardzo popularne systemy zarządzania treścią, które ze względu na swoją powszechność często stają się celem ataków. CrowdSec może znacząco zwiększyć ich bezpieczeństwo poprzez:
Jednym z najczęstszych typów ataków na strony WordPress i Drupal są próby siłowego logowania (brute force), polegające na wielokrotnym próbowaniu różnych kombinacji haseł. CrowdSec monitoruje logi dostępowe i wykrywa takie próby, automatycznie blokując adresy IP, z których pochodzą.
Hakerzy często skanują strony w poszukiwaniu znanych podatności w popularnych wtyczkach czy motywach. CrowdSec potrafi rozpoznać takie zachowania i zablokować adresy IP, które wykazują wzorce typowe dla skanowania.
Dzięki systemowi współdzielenia informacji o zagrożeniach, CrowdSec ma dostęp do obszernej bazy danych adresów IP, które zostały zidentyfikowane jako źródła ataków. Twoja strona może być chroniona przed atakami, nawet jeśli wcześniej nie były one skierowane bezpośrednio na nią.
CrowdSec może pomóc w zabezpieczeniu panelu administracyjnego przed nieautoryzowanym dostępem, monitorując podejrzane próby logowania i blokując dostęp z nietypowych lokalizacji czy w nietypowych godzinach.
Wdrożenie CrowdSec w środowisku opartym na Dockerze jest stosunkowo proste, nawet dla osób bez rozległej wiedzy technicznej. Poniżej prezentujemy podstawowe kroki:
Najprostszym sposobem jest wykorzystanie pliku docker-compose.yml
. Oto przykładowy plik:
version: '3'
services:
crowdsec:
image: crowdsecurity/crowdsec:latest
container_name: crowdsec
environment:
- GID=1000
- UID=1000
volumes:
- ./crowdsec/config:/etc/crowdsec
- ./crowdsec/data:/var/lib/crowdsec/data
- ./logs:/var/log
restart: unless-stopped
crowdsec-firewall-bouncer:
image: crowdsecurity/cs-firewall-bouncer:latest
container_name: crowdsec-firewall-bouncer
environment:
- CS_API_URL=http://crowdsec:8080
network_mode: host
depends_on:
- crowdsec
restart: unless-stopped
Ten plik tworzy dwa kontenery:
crowdsec
- główny kontener odpowiedzialny za analizę logów i wykrywanie zagrożeńcrowdsec-firewall-bouncer
- kontener odpowiedzialny za faktyczne blokowanie złośliwych adresów IPAby CrowdSec mógł skutecznie działać, potrzebuje dostępu do logów aplikacji. W środowisku Dockerowym możemy to osiągnąć, montując odpowiednie katalogi z logami do kontenera CrowdSec.
Na przykład, jeśli używamy WordPress w Dockerze, możemy dodać:
volumes:
- ./wordpress/logs:/var/log/wordpress
Po uruchomieniu CrowdSec, musimy skonfigurować analizatory odpowiednie dla naszych aplikacji. Można to zrobić za pomocą komendy:
docker exec -it crowdsec cscli collections install crowdsecurity/wordpress
docker exec -it crowdsec cscli collections install crowdsecurity/drupal
Te komendy instalują gotowe konfiguracje do wykrywania ataków specyficznych dla WordPress i Drupal.
CrowdSec oferuje różne “bouncery” (moduły blokujące) dla popularnych serwerów web. Na przykład dla Nginx możemy użyć:
services:
nginx-crowdsec-bouncer:
image: crowdsecurity/nginx-bouncer:latest
environment:
- CROWDSEC_BOUNCER_API_KEY=YOUR_API_KEY
- CROWDSEC_AGENT_HOST=crowdsec:8080
volumes:
- ./nginx-bouncer:/etc/nginx/conf.d
restart: unless-stopped
Moduł CrowdSec integruje witrynę Drupal z CrowdSec, aby trzymać podejrzanych użytkowników i cyberprzestępców z dala. Nie wymaga posiadania konta w CrowdSec ani instalowania dodatkowego oprogramowania agenta. Ten moduł zawiera wszystko, co potrzebne. Zainstaluj za pomocą composera, włącz moduł i bądź spokojny, że znaczna część złośliwego ruchu i wiele wektorów ataku po prostu zostanie wyeliminowane.
Samo blokowanie ataków często nie wystarcza - ważne jest również otrzymywanie powiadomień o wykrytych zagrożeniach. CrowdSec można łatwo zintegrować z Gotify, lekkim serwerem powiadomień.
Gotify to prosty, samodzielnie hostowalny serwer do wysyłania i odbierania powiadomień. Pozwala na otrzymywanie alertów na urządzeniach mobilnych i komputerach bez konieczności korzystania z usług zewnętrznych firm.
Otrzymywanie powiadomień o atakach w czasie rzeczywistym pozwala szybko reagować na potencjalne zagrożenia, zanim spowodują poważne szkody.
Regularne powiadomienia dają lepszy wgląd w to, co dzieje się w twojej sieci i jakie typy ataków są najczęściej kierowane na twoje systemy.
W przypadku fałszywych alarmów lub gdy potrzebne jest ręczne odblokowanie adresu IP, natychmiastowe powiadomienie pozwala na szybką reakcję.
Najpierw należy zainstalować Gotify jako usługę Docker:
services:
gotify:
image: gotify/server:latest
ports:
- 8070:80
environment:
- GOTIFY_DEFAULTUSER_PASS=silnehaslo
volumes:
- ./gotify/data:/app/data
restart: unless-stopped
Następnie, aby zintegrować CrowdSec z Gotify, należy stworzyć plik konfiguracyjny dla pluginu powiadomień:
type: http
name: gotify_notifications
format: |
CrowdSec Alert:
IP: {{.IP}}
Scenario: {{.Scenario}}
Country: {{.Country}}
url: http://gotify:80/message
method: POST
headers:
X-Gotify-Key: YOUR_GOTIFY_APP_TOKEN
data: |
{
"title": "CrowdSec Alert",
"message": "Wykryto atak z IP {{.IP}} ({{.Country}}), scenariusz: {{.Scenario}}",
"priority": 5
}
CrowdSec stanowi nowoczesne i skuteczne rozwiązanie dla ochrony aplikacji webowych, takich jak WordPress czy Drupal, przed różnorodnymi atakami. Jego główne zalety to:
Dzięki połączeniu CrowdSec z systemem powiadomień, takim jak Gotify, zyskujesz nie tylko skuteczną ochronę przed hakerami, ale również pełną świadomość tego, co dzieje się w twojej sieci. To rozwiązanie jest szczególnie cenne dla małych i średnich firm, które nie mogą sobie pozwolić na zaawansowane, komercyjne systemy bezpieczeństwa.
Wdrożenie CrowdSec w środowisku Docker jest stosunkowo proste i może znacząco zwiększyć poziom bezpieczeństwa twoich aplikacji webowych, chroniąc twoje dane i zapewniając spokój zarówno tobie, jak i twoim użytkownikom.
Jeśli jesteś zainteresowany/-a minimalizacją ryzyk związanych z cyberzagrożeniami dla swoich webaplikacji, napisz do nas.