Een SPI-firewall (Stateful Packet Inspection) zal een TCP SYN-segment anders verwerken dan een eenvoudiger pakketfilterende firewall. Hier is het proces:
1. Initieel SYN-pakket: Wanneer de SPI-firewall een TCP SYN-pakket ontvangt, kijkt hij niet alleen naar de poortnummers en IP-adressen voor toegangscontrole. In plaats daarvan controleert het of het pakket legitiem is door de headerinformatie ervan te onderzoeken.
2. Aanmaken van statustabelinvoer: Als het SYN-pakket geldig lijkt (juiste controlesom, geen duidelijke kwaadaardige kenmerken), maakt de SPI-firewall een nieuw item in zijn statustabel. In deze tabel worden de kenmerken van de verbinding bijgehouden:
* Bron-IP-adres en poort
* IP-adres en poort van bestemming
* Protocol (TCP)
* Volgnummer
* Status (bijvoorbeeld SYN_SENT, SYN_RECEIVED, ESTABLISHED)
3. Het pakket toestaan: Omdat de firewall nu *op de hoogte* is van deze verwachte inkomende verbindingspoging, zal deze waarschijnlijk toestaan dat het SYN-pakket doorgaat naar de bestemmingshost. De firewall "verwacht" nu in wezen de overeenkomstige SYN-ACK- en ACK-pakketten.
4. Volgende pakketten: Verdere pakketten die verband houden met deze verbinding (SYN-ACK, ACK, datapakketten) zijn alleen toegestaan als ze overeenkomen met de statustabelinvoer. Pakketten die niet overeenkomen (bijvoorbeeld een SYN-pakket van een andere bronpoort dat zich op dezelfde bestemming richt) worden verwijderd als onverwacht of potentieel schadelijk. Dit is het 'stateful'-gedeelte:de firewall houdt de context over het gesprek bij.
5. Time-out en statuswijzigingen: De statustabelinvoer blijft gedurende een bepaalde periode actief. Als de verwachte volgende pakketten (SYN-ACK, ACK) niet binnen een redelijk tijdsbestek worden ontvangen, treedt er een time-out op voor de invoer en wordt deze uit de tabel verwijderd. De status zal ook veranderen naarmate de verbinding vordert (bijvoorbeeld van SYN_RECEIVED naar ESTABLISHED). Zodra de verbinding is verbroken (met FIN-pakketten), wordt de vermelding uiteindelijk verwijderd.
6. Implicaties voor de beveiliging: Door de staat van de verbinding te inspecteren, helpt een SPI-firewall veel TCP SYN-flood-aanvallen te voorkomen. Een eenvoudige SYN-flood probeert een server te overweldigen door veel SYN-pakketten te verzenden zonder de daaropvolgende ACK's te verzenden. Een SPI-firewall, met zijn statustabel, zal deze onwettige SYN-pakketten detecteren en blokkeren. Het blokkeert ook andere aanvallen die afhankelijk zijn van vervalste adressen en onverwachte pakketreeksen.
Kortom, een SPI-firewall filtert niet alleen passief pakketten; het bewaakt actief de status van netwerkverbindingen, laat alleen pakketten toe die voldoen aan de verwachte patronen en voorkomt veel voorkomende aanvallen. |