stateful firewall (tsz. stateful firewalls)
A stateful tűzfal a következő elven működik:
Amikor egy új kapcsolat indul el, például egy kliens HTTP-kérést küld egy szervernek, a tűzfal elemzi a kapcsolatot és létrehoz egy bejegyzést a state table (állapottábla) nevű adatstruktúrában.
Az állapottábla tartalmazza az aktív kapcsolatok jellemzőit:
A tűzfal ezután összehasonlítja az érkező csomagokat az állapottábla bejegyzéseivel. Ha egy csomag egy már meglévő, engedélyezett kapcsolat része, akkor a tűzfal automatikusan engedélyezi – anélkül, hogy újra megvizsgálná az összes szabályt.
Amikor egy teljesen új kapcsolat indul el, a tűzfal a konfigurált szabályrendszer alapján dönt arról, hogy engedélyezi vagy elutasítja-e.
Különösen TCP protokollnál az állapotfigyelés fontos, mivel a TCP kapcsolat felépítése és lebontása jól definiált folyamat:
Az állapotalapú tűzfal ezeket az állapotokat követi, és így tudja, hogy egy csomag valóban legitim vagy sem.
Képzeljük el, hogy egy belső hálózati gép (192.168.1.10) HTTP kérést küld egy külső webszervernek (80.80.80.80:80).
Mivel a stateful tűzfal nemcsak a csomag fejlécét, hanem a kapcsolat állapotát is figyeli, jobban felismeri a gyanús tevékenységeket, mint a stateless (csak csomagalapú) tűzfal.
Nem kell minden egyes bejövő válaszcsomagra külön szabályt írni, ha azok már egy meglévő kapcsolat részei.
Mivel nyomon követi a kapcsolatok számát és állapotát, felismerheti a kapcsolatkezdeményezési próbálkozásokkal (SYN flood) járó támadásokat.
Az állapottábla karbantartása memóriát és CPU-t igényel. Nagy forgalom esetén a tűzfal túlterhelődhet, ha túl sok kapcsolatot kell nyilvántartani.
Egy stateful tűzfal nem képes mélyebb elemzésre (pl. HTTP POST tartalma), csak a hálózati és szállítási rétegig (Layer 3–4) működik. Ehhez application layer firewall (Layer 7) vagy NGFW (Next-Generation Firewall) szükséges.
UDP és ICMP protokolloknál nehezebb pontosan követni a kapcsolatokat, mivel ezek nem állapotalapúak, így nagyobb a hamis pozitív/negatív arány.
Tűzfal típus | Működés | Állapotkövetés | Vizsgálati réteg | Példa |
---|---|---|---|---|
Stateless (csomagalapú) | Egyedi csomagokat vizsgál | Nem | Layer 3–4 | ACL, iptables egyszerű szabályai |
Stateful | Kapcsolatokat követ | Igen | Layer 3–4 | Cisco ASA, iptables state modul |
Application Layer (L7) | Teljes alkalmazási réteg elemzése | Igen | Layer 7 | WAF, NGFW |
Next-Gen Firewall (NGFW) | DPI, IDS/IPS integráció | Igen | Layer 3–7 | Palo Alto, Fortinet |
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Ez a szabály engedélyezi a már meglévő vagy kapcsolódó forgalmat. Új kapcsolat csak külön szabály alapján engedélyezett.
A Cisco ASA alapértelmezetten stateful, és automatikusan nyomon követi a kapcsolatokat.
A stateful firewall a klasszikus hálózatbiztonsági modellek egyik legfontosabb eleme. Az állapotalapú működés lehetővé teszi, hogy a tűzfal intelligensebb módon kezelje a forgalmat, mint a stateless megoldások, miközben még nem lép túl az alkalmazásréteg elemzésére. Megfelelő szabályozással és rendszeres karbantartással hatékony védelmet nyújt a legtöbb általános hálózati fenyegetés ellen.