Így védhetünk ki egy webes alkalmazások elleni gyakori támadástípust

A Sansec blogján tanulságos példát hoz arra, hogy a kiberbűnözők milyen egyszerűen képesek kihasználni egy-egy rossz üzemeltetői gyakorlatot. A cég kifejezetten e-shopok vírusvédelmével foglalkozik, ezért vizsgálatuk alapvetően webshopokra fókuszált, azonban az általuk vázolt probléma más webalkalmazások esetén is érvényes, ezért mindenképp érdemes foglalkozni a témával.

Webadminisztrátorok olykor ad-hoc backupot készítenek a site-jukról, például rendszerkarbantartáskor vagy frissítések telepítésekor. A gond általában azzal szokott lenni, hogy ezek a backupok a webszerver nyilvános könyvtárába kerülnek, azaz lekérdezhetőek a weboldalról.

A Sansec elemzése szerint 9-ből 1 webshopra jellemző volt, hogy privát információkat tartalmazó backup fájlok maradtak elérhetők a weben keresztül.

A Sansec által vizsgált esetekben a támadók módszere az volt, hogy megpróbálták lekérdezni a legvalószínűbb backup elnevezések permutációit (például /db/staging-SITENAME.zip formátumban), amikre a konkrét weboldal nevéből, illetve publikus DNS adataiból következtetnek.

Példa backupok után kutató brute force lekérdezésekre. Forrás: Sansec

Az ilyen támadások azért veszélyesek, mert nem igényelnek sok erőforrást, könnyen automatizálhatók, így akár heteken át tarthatnak. Ha pedig egy támadó sikerrel jár, máris olyan „kincsekre” lelhet, mint az admin oldal URL-je, password hash-ek és mester adatbázisok. Ilyen adatokkal már nem sok választja el attól, hogy az oldalhoz is hozzáférést szerezzen.

Javaslatok

Időközönként érdemes átfésülni a nyilvános könyvtárakat, hogy véletlenül se maradjon benne korábbi backup vagy más szenzitív adat.

Amennyiben ilyet találunk, azt tekintsük kompromittálódottnak, ezért ajánlatos alapos kivizsgálást végezni.

  • Cseréljük le a potenciálisan érintett fiókok jelszavait, illetve az API/SSH kulcsokat!
  • Ellenőrizzük, hogy szerepelt-e a fájl a webszerver naplóállományokban!
  • Illetéktelen admin/felhasználói fiók került-e hozzáadásra?
  • Bizonyosodjunk meg arról, hogy adatbáziskezelői felület (phpMyAdmin, Adminer) nem érhető el az Internet felől!
  • Alkalmazzunk kétfaktoros hitelesítést minimum az admin, de leginkább minden fiók esetében!
  • Végezzünk víruskeresést!

Az ilyen támadások ellen természetesen úgy védekezhetünk, ha kerüljük az ad-hoc backupok készítését. Ezt legegyszerűbben úgy lehet elérni, hogy eleve read-only fájlrendszerre telepítjük a weboldal kódját. Egyes online store platformokon (például: Adobe Commerce) ez már alapértelmezett.

  • Az ad-hoc mentések helyett időzítsünk be előre, hogy mikor készüljön mentés!
  • Konfiguráljuk úgy a webszervert (Apache -> htaccess, Nginx konfig), hogy archív fájlokhoz (ZIP, GZ, TGZ, TAR) ne lehessen hozzáférni!