Een arsenaal aan indrukwekkende hulpmiddelen, waaronder ‘brandmuren’, maakt het bedrijfsnetwerk veiliger dan ooit. Inbrekers beschikken echter over een breed scala aan wapens om door de zwakke plekken heen te breken. Remco Bakker van Pointnet Security Systems neemt ze onder de loep, en geeft aan welke strategie de netwerkbeheerder moet volgen om het risico van inbraak zo klein mogelijk te maken.
Netwerkbeheerders zetten steeds vaker ‘brandmuren’ (firewalls) in als eerste verdediging tegen insluipers. Niet zonder reden: indien goed ingezet, is een firewall een zeer effectief beveiligingshulpmiddel, of het nu gebruikt wordt om toegang vanaf Internet te controleren of om gevoelige informatie op interne netwerken te beschermen.
Maar al te vaak veronderstelt men dat een brandmuur op zich veiligheid garandeert. Dat is niet het geval. Een brandmuur die dient om aanvallen via Internet af te slaan, kan bijvoorbeeld niets doen aan aanvallen van binnenuit. Van alle netwerkbeveiligingsproblemen wordt 60 procent veroorzaakt door gebruikers (geautoriseerd of niet) die al op het netwerk zijn, achter de brandmuur. Erger nog: een eenvoudige vergissing tijdens de configuratie van de brandmuur zet de deur wijd open voor inbrekers. Daarbij komt nog dat netwerkbeheerders in een voortdurend veranderende en zich uitbreidende omgeving routinematig brandmuren herconfigureren zonder alle veiligheidsaspecten in ogenschouw te nemen wanneer een nieuwe dienst wordt toegevoegd.
Waarschijnlijk is misconfiguratie van brandmuren en andere netwerkonderdelen de grootste factor bij het kwetsbaar maken van beveiligingsmaatregelen. Sommige brandmuren zijn uitgerust met software voor configuratie checking. Andere waarschuwen bij een potentieel riskante instelling, maar sommige zwakheden blijven onopgemerkt. De beheerder moet deze kwetsbaarheden dan opsporen en er iets aan doen.
‘Source routing’
Het poorten van de source (source porting) kan een probleem geven bij het misconfigureren van een brandmuur. Brandmuren maken over het algemeen keuzes, gebaseerd op de adressering van afkomst en bestemming en op nummers van TCP- of UDP-poorten. Een systeem dat TCP/IP draait, heeft 65.535 mogelijke virtuele poortnummers. Een aantal hiervan is gereserveerd voor standaardservices. Telnet gebruikt bijvoorbeeld vrijwel altijd poort 23, terwijl FTP poort 21 gebruikt voor het opzetten van een verbinding en poort 20 voor transport.
Bijgevolg zal een brandmuur waarschijnlijk externe verbindingen, waarvan de source-poort 20 is, met het netwerk toestaan. Een inbreker kan telnet modificeren door de verbinding met poort 20 op te zetten en zo de brandmuur doorbreken.
Hackers kunnen ook source-routering gebruiken om in het netwerk te komen. Normale TCP/IP-pakketten bevatten een adres van de bestemming en van de afkomst. Een source-routed pakket bevat informatie over de route die het pakket behoort te volgen. Het probleem is dat source- routering prioriteit heeft boven conventionele routering: brandmuren negeren hun eigen filterregels om ‘source-routed’ pakketten door te laten. Routers of IP-hosts waar source-routering geactiveerd is, heffen zo de toegangscontrole op die de brandmuur biedt.
Verder is een optie voor source-routering ingebouwd in de kernel van de meeste versies van router-besturingssystemen en Unix. Netwerkbeheerders zouden audit-gereedschap moeten gebruiken om vast te stellen of de brandmuur source-routering toestaat te passeren en, waar mogelijk, dat moeten uitschakelen.
Gaten
Source-poorten en source-routering zijn slechts twee zwakke gebieden. Eén van de meest voorkomende ontwerpen voor een brandmuur is de applicatie-proxy, die voorkomt dat er direct verkeer bestaat tussen externe en interne netwerken. In plaats daarvan maakt een client aan één kant van de brandmuur verbinding met de brandmuur, die op zijn beurt een tweede verbinding opzet met de server aan de andere kant, handelend namens de client. Socks is zo’n proxy service. Er is speciale software nodig voor elke applicatie op de client en de server. Een systeem dat dient als een web- en FTP- server heeft de Socks-versie nodig van die applicatie. Hetzelfde geldt voor een client die probeert verbinding te maken met dat systeem. Meestal wordt op de brandmuur een poort gereserveerd om toegang te verschaffen aan applicaties die Socks gebruiken.
Mits goed geconfigureerd beschermt Socks een applicatie tegen een aanval. Een netwerkbeheerder zou de regels op een brandmuur zo kunnen instellen dat services, zoals telnet of FTP, beveiligd zijn door Socks. Andere applicaties kunnen echter nog steeds kwetsbaar zijn, terwijl alles prima lijkt te werken.
Een manier om hiertegen bescherming te bieden is ook hier het gebruik van tools voor het controleren van de beveiliging of toepassing van software voor het checken van de configuratie. Deze kunnen een beheerder helpen vaststellen of de brandmuur via zijn Socks-poort toegang geeft tot allerlei services.
Voor de gek houden
Een van de meest notoire vormen van aanval is spoofing (voor de gek houden), over het algemeen gebaseerd op het voorspellen van TCP-volgordes. Een spoofing routine doet een geadresseerd systeem geloven dat het een vertrouwde source is. Als bijvoorbeeld hosts A en B in een bedrijfsnetwerk zijn opgenomen en B vertrouwt A, dan staat B toe dat A bij hem inlogt zonder wachtwoord. Omdat TCP/IP niet zelf over een methode beschikt voor rigide verificatie van bron- en bestemmingsadressen, kan elke inbreker een derde host zich laten voordoen als A en zo zonder wachtwoord inloggen op systeem B.
Een netwerk is op ten minste drie wijzen kwetsbaar voor spoofing. Allereerst moet men zich afvragen of interne systemen met elkaar communiceren via de brandmuur. Dat zou namelijk niet moeten gebeuren. Een brandmuur hoort te weten welke adressen op het interne netwerk horen. Als de brandmuur een pakket ontvangt op zijn externe interface met een intern bron- en bestemmingsadres, dan is er een gerede kans dat een spoofing-aanval op komst is.
Ten tweede is het de vraag of TCP-volgordes te voorspellen zijn. De TCP-volgorde van de onder vuur liggende machine moet voorspelbaar zijn om adres-spoofing goed uit te voeren. Ten derde kunnen hackers gebruik maken van de Unix-commando’s rlogin of rsh om op afstand programma’s uit te voeren. Als deze programma’s draaien op systemen met voorspelbare TCP-volgordes, bestaat het risico dat op deze computer een inbraak plaatsvindt.
Aanvallen gebaseerd op voorspellingen van TCP-volgordes worden voorkomen door het uitschakelen van de rsh– en rlogin-services.
Verdachte scans
Inbrekers baseren hun aanvalsplan vaak op een inventarisatie van beschikbare services, zoals e-mail. Dit is mogelijk door het uitvoeren van een TCP-poort scan, die een volledige verbinding tot stand brengt, en van een directe rpc-scan (remote procedure call) die aan het licht brengt welke rpc-services aanwezig zijn. Verder behoort stealth scanning tot de mogelijkheden, waarbij TCP-services te deteceren zijn zonder dat een directe verbinding opgezet moet worden.
Een inbreker die poort-scannen gebruikt, zou kunnen proberen verbinding te maken met de e-mail-service van het systeem dat hij wil aanvallen. Dat kan door een volledige verbinding op te zetten met TCP poort 25, het poortnummer dat meestal gebruikt wordt door mail-services. Als de verbinding slaagt, weet de aanvaller dat de machine waarschijnlijk een e-mail-service heeft die te misbruiken is. Door meerdere poorten te scannen krijgt hij een idee van de andere services.
Verder zal de bitkraker zijn pijlen richten op de poort-mapper, die aangeeft op welke poorten rpc-applicaties beschikbaar zijn. De poort-mapper draait meestal op poort 111. Veel brandmuren zijn geconfigureerd om hem te blokkeren. Het enige dat een inbreker moet doen om deze blokkade te omzeilen, is een directe scan uit te voeren op deze services in plaats van door de poort-mapper te gaan. Als bijvoorbeeld applicaties met rpc-mogelijkheden draaien op poorten 300 en 400, onthult een routine die rpc-verzoeken doet op alle poortnummers in die reeks deze applicaties. Net als bij spoofing-aanvallen is de basis voor bescherming van rpc-services het vaststellen of ze buiten de brandmuur beschikbaar en uit te buiten zijn.
Stealth-scannen is een geniepige vorm van aanval. In tegenstelling tot poort-scannen is er geen volledige verbinding nodig met het doelwit. Het enige dat moet gebeuren, is het genereren van lagere pakketten om uit te vinden welke TCP-poorten beschikbaar zijn. Brandmuren die de pakketten blokkeren die proberen een volledige verbinding tot stand te brengen, zouden niet in staat kunnen zijn om pakketten voor stealth-scannen te detecteren. De enige oplossing is om auditprogramma’s te draaien die aangeven of de brandmuur ingesteld is op het detecteren en blokkeren van dit type aanval.
Encryptie
Alleen een brandmuur is dus niet voldoende om een netwerk te beschermen. Vaak adviseren specialisten het gebruik van verificatie en encryptie-services. Zelfs dat biedt geen volledige oplossing. Authenticatie-schema’s nemen over het algemeen aan dat alle machines in het netwerk deelnemen aan het authenticatieproces en dat er geen communicatie kan plaatsvinden totdat een aanvraag is geverifieerd. Sommige onderdelen van het netwerk gebruiken echter geen sterke authenticatie. Hackers weten dit. Ze zoeken naar systemen die niet beschermd zijn, zoals printservers.
Hetzelfde geldt voor encryptie. Als informatie alleen maar in versleutelde vorm over het netwerk gaat, hoeft een insluiper slechts naar de server te gaan die de informatie in niet-versleutelde vorm bewaart. Netwerkbeheerders voelen zich misschien veilig door het gebruik van SSL, maar wat heb je aan het transport van versleutelde informatie over het netwerk als de opslag plaatsvindt in pure tekst op een gecompromiteerde computer?
Risico’s lopen
Zelfs het uitgebreidste veiligheidsplan kan zijn kwetsbaarheden hebben. Dat wil nog niet zeggen dat een beheerder dan maar de handdoek in de ring moet gooien. Netwerken zijn wel degelijk veiliger te maken. Daarvoor moet men eerst de prioriteiten van de risiconiveaus aangeven.
Besteed allereerst aandacht aan de kwetsbaarheden met een hoog risico. Dit zijn gaten waardoor een inbreker direct toegang heeft. Sommige zijn zwakheden in algemeen gebruikte applicaties, andere fout geconfigureerde applicaties of weinig gebruikte services die vaak onopgemerkt aanwezig zijn op een systeem.
Een van de bekendste aanvallen is de ‘brute kracht’-aanval, waarbij een bitkraker zoekt naar default accounts, die standaard met het systeem meegeleverd worden. Nieuwe Unix-systemen hebben altijd root– en guest accounts met eenvoudig te raden wachtwoorden, of, erger nog, zonder wachtwoord. Als zo’n account gekraakt is, is het binnenkomen vaak een fluitje van een cent.
Sommige veelgebruikte applicaties zijn ook makkelijk toegankelijk voor inbrekers. Een van de bekendste is sendmail, een e-mail-service die gebruitk wordt door een groot aantal hosts op Internet. Inbrekers houden van sendmail, omdat brandmuren over het algemeen e-mail-verbindingen met het interne netwerk toestaan. Als een inbreker een kwetsbare versie van sendmail vindt, passeert hij moeiteloos de brandmuur en is hij binnen.
E-mail is niet de enige applicatie met risico’s. Een van de populaire webservers, de Http-server van het Ncsa, is ook kwetsbaar tot aan versie 1.3. Elke Internetsurfer kan commando’s op zo’n server uitvoeren en toegang verkrijgen tot het systeem.
Veel webservers gebruiken cgi-scripts (common gateway interface). Kwaadwillenden kunnen deze misbruiken door data te sturen die de webserver ongewild commando’s laat uitvoeren die informatie op de host kunnen beschadigen. Het verwijderen van onnodige CGI-scripts helpt.
Een ander hoog risico vormt het netwerk-bestandssysteem (nfs) dat meerdere computers op een netwerk toestaat om drives en directories te delen. Als het nfs niet goed geconfigureerd is, krijgt in principe iedereen toegang tot deze virtuele schijven. Een aanvaller kan allerlei narigheid veroorzaken, van kopiëren, wijzigen en vernietigen van belangrijke informatie tot het verkrijgen van volledige toegang tot de server. Het is noodzakelijk om zorgvuldig in de gaten te houden welke rechten er voor het delen van nfs zijn. Een audit-tool kan aangeven welke nfs-servers onjuist geconfigureerd zijn.
Microsoft Windows NT en Windows 95 staan ook het delen van bestanden tussen netwerksystemen toe. Helaas zijn, als deze computers eenmaal gekoppeld zijn aan het Internet, ook hun rechten op het delen van bestanden daaraan gekoppeld.
Een netwerkbeheerder doet niets liever dan elk gaatje dichten. Het is echter niet praktisch en ook onuitvoerbaar om alle gaten ineens te dichten. Daarom moet men zich realiseren dat niet elke kwetsbaarheid een netwerk of een computer direct in gevaar brengt. Er zijn ook kwetsbaarheden die te klassificeren zijn als een gemiddeld of laag risico.
Remco Bakker is directeur Pointnet Security Systems te Putten