A webalkalmazások tűzfala ( angolul Web application firewall , WAF ) a webalkalmazások elleni hálózati támadások észlelésére és blokkolására tervezett monitorok és szűrők halmaza . A WAF-ok az OSI modell alkalmazási rétegébe tartoznak [1] .
Egy webalkalmazást magának az alkalmazásnak a fejlesztői védhetik WAF használata nélkül. Ez további fejlesztési költségeket igényel. Például az információbiztonsági osztály tartalma . A WAF magába szívta az összes ismert információs támadás elleni védelem képességét, amely lehetővé teszi a védelmi funkció átruházását rá. Ez lehetővé teszi a fejlesztők számára, hogy az alkalmazás üzleti logikájának megvalósítására összpontosítsanak , így több idejük marad a sebezhetőségek kijavítására [2] .
A webalkalmazások tűzfalát fedvényvédelemként használják. Ez azt jelenti, hogy a fő webalkalmazás előtt ül, és elemzi a bejövő és kimenő forgalmat. Valós időben dönt arról, hogy engedélyezi vagy megtagadja a hozzáférést [1] .
Bármilyen biztonsági modell támogatható a WAF-ban: pozitív, negatív vagy ezek kombinációja. A modern WAF-ekre a PCI DSS -ben leírt követelmények vonatkoznak . Ellenőrzik az adatátviteli protokoll HTTP/HTTPS kéréseit és válaszait is a biztonsági szabályzatnak megfelelően [3] . Ezenkívül az OWASP nyílt projekt a világ minden tájáról gyűjt adatokat a kompromisszumokról, és minősíti a webes alkalmazások támadási vektorait – OWASP Top Ten [4] . A WAF-okat úgy tervezték, hogy sikeresen reagáljanak az ebben a minősítésben leírt fenyegetésekre [3] .
Meg kell jegyezni, hogy a WAF-ok nem abszolút eszközei az információ védelmének. Általában a teljes webalkalmazás-biztonsági rendszerben más elemekkel kombinálva szerepelnek, például olyan elemekkel, amelyek a HTTP / HTTPS-től eltérő protokollok, incidens-ellenőrző rendszerek, csalás elleni szolgáltatások problémáit oldják meg [5] .
Az SQL injekciók régóta a sikeres támadások fő vektorai [6] . A különféle adatokkal való munkavégzéshez - törlése, módosítása, hozzáadása - az alkalmazás adatbázist használ . Az adatbázis elérésekor az alkalmazás létrehoz egy lekérdezési szöveget, amelyet a támadó meghamisíthat [7] . Ennek eredményeként például adatok kiszivároghatnak, törölhetők vagy megírhatók. A védelem érdekében a felhasználótól kapott adatokat gondosan ellenőrzik, a karaktersorozatok fekete vagy fehér listáit használják, a kérés szövegét kihagyják [8] .
A felhasználók megkülönböztetése érdekében, amikor egy felhasználó jogosult az oldalon, munkamenet-süti kerül beállításra, vagy engedélyezési token kerül kiadásra, amelyet a böngésző minden alkalommal elment és elküld a szervernek, hogy megbizonyosodjon arról, hogy ez a megfelelő felhasználó. Ezt a kulcsot egy támadó megszerezheti, és a fiók eléréséhez használható [9] . A védelem érdekében a kulccsal együtt ellenőrzik a kapcsolódó információkat, például IP-címet, böngészőt. A szekciókulcs viszonylag rövid élettartammal is rendelkezik [10] .
Ez a fajta támadás abból áll, hogy a támadó Java-Script vagy Html kódot ad át a felhasználó böngészőjének, ahol ez a kód lefut [7] . Így a támadó cookie-kat vagy adatokat kaphat egy fertőzött oldal formájában. A védelem érdekében a bemeneti és kimeneti adatok kihagyásra kerülnek. A mezők érvényesítésére reguláris kifejezéseket használnak [11] .
Az ilyen típusú támadásokat érzékeny adatok ellopására tervezték. Ez leggyakrabban akkor történik, amikor a kliensről a szerverre egy nem biztonságos HTTP vagy FTP protokollon keresztül továbbítják őket. Útban a szerver felé, egy csomóponton, miután hozzáfért, a támadó beolvashat egy nyitott, nem védett kérést bizalmas felhasználói adatokkal [12] . Az ilyen információk átviteléhez biztonságos HTTPS, TLS átviteli protokollokat használnak. Ezenkívül, ha szükség van ilyen adatok tárolására, akkor azokat titkosított formában tárolják [12] .
A hozzáférés-vezérlési sérülékenységek bizonyos adatokhoz való hozzáférési jogok ellenőrzésének elégtelen alaposságával járnak. Ha rendelkezik bizonyos jogokkal, a támadó hozzáférhet azokhoz az adatokhoz, amelyek ezen jogok miatt zárva vannak [13] .
Például, ha egy támadó azonosítója 1, és a hivatkozás segítségével láthatja üzeneteinek listáját
mysite.com/messages?id=1
majd a jogok elégtelen ellenőrzésével az id értéket 2-re cserélve
mysite.com/messages?id=2
a szerver üzeneteket ad ki az id = 2 felhasználótól. A fehérlistákat a hozzáférés ellenőrzésére használják. Bár egyes WAF-ok felvállalnak ilyen ellenőrzési funkciókat, ezeket a műveleteket túlnyomórészt a szerveren hajtják végre [14] .
Az OWASP 2017-es jelentésében az olyan támadási vektor, mint az XML External Entities (XXE) [15] , a webalkalmazások lehetséges legnagyobb kockázatai közé tartozott . Az ilyen támadások lehetősége akkor merül fel, ha egy alkalmazás lehetővé teszi a felhasználó számára XML dokumentumok használatát adatátvitelre, amelyek tartalmát egy rosszul konfigurált értelmező elemzi. Ennek eredményeként a támadó az XML-ben egy külső entitásra való hivatkozást adhat át, ami adatvesztéshez vagy egyéb nemkívánatos hatásokhoz vezethet a szerveren [16] [17] . A védelem érdekében gondosan konfigurált XML-sorosítót használnak, vagy lecserélik egy másikra, például JSON-ra. Vagy a külső XML entitások támogatása le van tiltva [18] .
A brute-force támadások a webalkalmazások elleni támadások egy fajtája, amelyben a támadó nyers erővel próbál hozzáférni egy webalkalmazáshoz vagy adatokhoz (fiókok, jelszavak, munkamenetadatok).
Például a jelszó paraméter értékének rendezésével a támadó a válaszkód [19] alapján meghatározhatja a sikeres engedélyezést :
GET /vulnerabilities/brute/?username=admin&password=123456&Login=Login
Meg kell jegyezni, hogy egyes szabványos támadások ellen minden modern böngészőbe beépített megfelelő fejlécek és jelzők segítségével lehet védekezni. Például az X-XSS-Protection fejléc vagy a HTTPonly jelző a Set-Cookie [20] [21] fejlécen .
A WAF-ok aktívan használják az aláíráselemzést a forgalom szűrésére. Az aláírási módszer a megvalósításában a rosszindulatú forgalom szótárát használja összehasonlítás céljából [22] . Ha a kérés (aláírás) egy része a bejövő forgalomban megtalálható, ami rosszindulatú forgalomnak felel meg, akkor a WAF-ok blokkolják ezt a kérést. Egy példa az aláírásokra [23] .
A módszer az IP-címek és tartományok fehér és fekete listáin alapul. Ezekre a listákra hivatkozva a WAF-ok kiértékelik a bejövő kéréseket [2] .
Néhány népszerű blokkolista:
A viselkedéselemzés a gépi tanuláson alapul. Ez lehetővé teszi a viselkedés anomáliáinak észlelését a megértés mély szintjén. Egy ilyen mechanizmus tanárral és tanár nélkül is betanítható a hozzáférési azonosítókra. A bejövő paraméterek lehetnek hozzáférési azonosítók, például HTTP paraméterek, erőforrás azonosító (URL, URN), munkamenet azonosító [1] . Így az érvényes hozzáférési azonosítók referencia-matematikai modellje kerül kiosztásra. Ha ez a modell nem egyezik, a következő kérés blokkolva lesz [5] . Ez lehetővé teszi mind az ismert, mind a nulladik napi támadások tükrözését [2] .
A WAF-ok az információk védelmén túlmenően az elérhetőségükhöz kapcsolódó funkciókat is elláthatnak, és leküzdhetik a DoS támadásokat. Ha támadást észlel, a forgalomterhelésben részt vevő felhasználókat korlátozzák vagy blokkolják. A WAF-ok a captcha-t is implementálhatják a szerver válaszában, ezáltal leállítják az automatikus kéréseket, és lehetővé teszik a valódi felhasználókat [5] .
A mellékelt WAF-ok saját sebezhetőségi szkennerrel rendelkezhetnek. A szkenner felhívja az alkalmazásfejlesztők figyelmét azokra a hiányosságokra, amelyek később javíthatók, illetve ezekért a felelősség a WAF-ra hárítható. Az elemzés során a szkenner olyan kéréseket generálhat, amelyek meghatározott paraméterértékekkel rendelkeznek, amelyek lehetővé teszik a talált sebezhetőség kihasználását. Ismerve a webalkalmazások gyenge pontjait, a WAF-ok virtuális foltokat generálnak, amelyek bezárják az ilyen helyeket [24] .
A WAF többféle kelléket kínál.
Ezen esetek bármelyikében a WAF-ok a következő lehetőségek egyikében telepíthetők: transzparens híd , transzparens vagy fordított proxyszerver [25] .
Az interneten található webalkalmazások számának növekedésével egyre nő az igény minősített védelmükre [26] . Ez egy tényező a vállalatok ilyen irányú fejlődésében. Számos cég vesz részt az ipar fejlesztésében. Végezzen nyílt elemzést a piacról, a technológiákról és a fenyegetésekről. Mivel a webvédelem fejlesztése során biztonsági alapelveket és szabványokat dolgoztak ki, a különböző cégek WAF termékei funkcionalitásukban hasonlóak, és csak a grafikus héjban térnek el egymástól [3] .
A legnépszerűbb megoldások:
WAF nyílt forráskódú: