Waarom is een firewall niet toereikend?
“Thanks firewall, but we need more.” Duidelijker kun je het niet stellen. Maar waarom hebben we eigenlijk niet genoeg aan een firewall?
Hoe een firewall werkt
Een firewall beslist op basis van vaste regels welk verkeer wel of niet doorgang krijgt. Een goed geconfigureerde firewall blokkeert alles, behalve verkeer dat benodigd is voor een goede werking van bedrijfstoepassingen. De firewall zal bijvoorbeeld inkomende e-mail doorlaten. Een firewall doet dit op basis van een simpel kenmerk van het verkeer dat langs hem stroomt. Bijvoorbeeld “poort 25″ voor e-mail. Een firewall maakt van deze ‘poort’-eigenschap die bij een verbinding hoort handig gebruik. Als je alleen e-mail wilt toestaan, kun je tegen een firewall zeggen: “blokkeer alles, behalve verkeer dat naar poort 25 gaat.”. Met deze regel bereik je dus dat het enige verkeer dat de mailserver kan bereiken verkeer is dat over poort 25 binnenkomt. En dat is in principe dus e-mailverkeer. Maar dan kun je op basis van alleen poortnummer natuurlijk niet zeker weten! Er vindt dus geen inhoudelijke controle op het verkeer plaats. Helaas is dat in de praktijk wel nodig. Omdat een firewall dit niet kan, zijn er dus aanvullende maatregelen nodig. Het probleem zit op verschillende niveau’s. Voor e-mail is algemeen bekend: een e-mail kan een bijlage bevatten met een virus. Een firewall zal dat inkomende virus slechts herkennen als “iets dat op poort 25 binnen komt”. Door de instructies die we hebben gegeven zal de firewall de verbinding toestaan. Toch is de inhoud van de e-mail gevaarlijk. Hiervoor hebben we dus een aanvullende inhoudelijke scan nodig, zoals antivirus. (Tegenwoordig is ook dat niet voldoende, maar dat even terzijde). Dit is echter nog niet alles.
Exploits
Stel, we zijn in staat om een e-mailbijlage inhoudelijk te scannen, en daarmee vast te stellen of de ontvangen email legitiem is. Dan zijn we er nog niet. Tijdens het ontvangen van de email wordt namelijk informatie uitgewisseld tussen de mailserver en de verzender van de email. Dit gaat gestructureerd volgens een vast protocol. (Bij e-mail heet dit protocol SMTP). Als iedereen zich netjes aan het protocol houdt, gaat alles goed. Echter, een aanval doet dit nu juist niet: mailservers bevatten bugs, waar een aanval gebruik van kan maken. Tijdens de communicatie stuurt de verzender bijvoorbeeld het e-mailadres van de ontvanger naar de mailserver. Stel dat je een mailadres van 10000 tekens gebruikt – Hoe gaat de mailserver daarmee om? Sommige bugs in software leiden ertoe dat er in een dergelijk geval een zogenaamde “buffer overflow” optreedt: de mailserver software houdt er simpelweg geen rekening mee dat iemand een e-mailadres van 10000 tekens gebruikt. In sommige gevallen is het zo erg, dat te herproduceren valt dat je hiermee de server kunt laten crashen of zelfs de controle kunt overnemen: dit is een zogenaamde “exploit”. We zeggen dat de server “vulnerable” of kwetsbaar is voor deze exploit. Dit is slechts één voorbeeld van één aanvalstechniek. Er zijn er talloze. Middels Vulnerability Assessment is vast te stellen of in uw netwerk kwetsbare software aanwezig is. Een oplossing is er ook: Intrusion Prevention.