Minulá týden jsem spustil nový web postavený na Drupalu, který slouží pro testování funkčnosti WEDOS Global Protection šablony WAF pravidel pro Drupal. Úplně čerstvý web, zatím bez jakékoliv indexace ve vyhledávačích, bez backlinků, bez návštěvníků. Přesně takové prostředí, kde můžu v klidu sledovat každý request. Což doufám, že se ale brzy změní.
Nasadil jsem základní Generic šablonu WAF šablonu z WEDOS Global Protection. Ta fungovala překvapivě dobře. V porovnání s WordPress, který má svá "speficika" a vyžaduje ohnout pravidla.
Následně jsem začal šrouby postupně utahovat, ladit filtry, aby mohla vzniknout Drupal šablona, která se má stát součástí oficiální ochrany WEDOS Global Protection. Cílem je mít stejně robustní a chytrou vrstvu, jakou už teď používáme pro WordPress.
Web bez indexace přesto chodí útoky
Web není nikde propagovaný. Není v Google ani Seznamu. Nemá žádný externí odkaz. Přesto během pár dnů proběhlo 616 požadavků, z toho 242 zablokovala ochrana. A to se bavíme pouze o požadavcích přes HTTPS. Většina legitimních jsou navíc moje, kde jsem si testoval jestli nedochází ke kolizi pravidel.
V každém případě data ukazují jasný vzorec - první, kdo si všimne nového webu, nejsou lidi, ale skenery a automatizované skripty, které zkouší různé exploity.
Nejaktivnější IP adresy za poslední týden
Dominují tři zdroje:
- 157.143.30.12 (AS8758, iway AG, CH) — 208 požadavků
- 35.88.97.166 (Amazon.com, Inc., US) — 183 požadavků
- 202.120.37.109 (AS4538, China Education and Research Network, CN) — 93 požadavků
Tyto tři IP adresy dohromady tvoří 77 % celého provozu. Čisté scanning / probing chování.
Hned po spuštění: pokusy o .env, .git a další klasiky
Nejčastější testované cesty:
//.git/config/.env
Naprosto typické chování robotů, které nečekají indexaci Google - prostě testují každý nový serverový fingerprint, který objeví.
.git, .env atd. jsou pro útočníky low hanging fruits, snadné na test.
První ostré testy nové filtrace
Během testů se chytila první sada low-level validací:
- invalid_te_h1 – nevalidní Transfer-Encoding
- te_on_h2_h3 – zakázané TE na H2/H3
- cl_multi / cl_invalid – pokusy o manipulaci s Content-Length
- zero_cl_modifiable_method – zero-length u modifikovatelných metod
Tento druh útoků často projde bez povšimnutí.
User-Agent sanitizace: největší úspěch filtrace
Největší slabinou útočníků je User-Agent. To mám odpozorované z logu stovek tisíc aktivních webů. Na internetu jsou rozsáhlé seznamy, které adresují tento problém, nicméně z reálných dat dokážete postavit takový, který bude nejen o krok dále, ale také méně náchylný na false positive.
UA blacklist tak zachytil více než třetinu všech požadavků. Což odpovídá webu v této fázi.
| Filtr | Počet | Popis |
| ua_blacklist | 215 | Pravidlo pro blacklistované UA |
| ua_old | 5 | Pravidlo pro zastaralé UA |
| ua_short | 3 | Pravidlo pro krátké UA |
| ua_missing | 2 | Pravidlo pro requesty bez UA |
Na rozdíl od WordPress prozatím nebylo nutné řešit nějaké specifické výjimky.
Ochrana souborů a detekce útoků (protected_files)
Zafungovaly i pravidla pro chráněné soubory. protected_files = 17 blokací.
To byly přímé pokusy o:
.git/config.envskryté konfigy
historicky zranitelné endpointy
Výsledky přesně potvrzují očekávání - první, co boti hledají, jsou soubory, které vývojáři nikdy neměli nechávat v produkci. Možná si říkáte, že to není problém, ale jakmile nějaký scanner projede během pár minut 30 tisíc takových souborů, tak se modlete, aby váš hosting/server zvládl dobře odbavit 404.
Drupal-specific: ochrana
V tomto týdnu byla implementována první pravidla pro Drupal šablonu. Zatím tato pravidla nic nezachytila. Ale nečekám, že to tak zůstane dlouho.
Výsledek týdne: nová Drupal šablona se postupně testuje
Za první týden:
616 požadavků
242 blokace (cca 39 %)
3 hlavní útočníci
okamžité pokusy o
.git,.envefektivní UA filtrování
stabilní behaviorální vrstva
žádné falešné pozitivy v základním CMS provozu
A to všechno bez toho, aby web nebyl jakkoliv indexován.
Komentáře