Terug naar de beginpaginaCentor Homepage

'Als je 24 uur on line bent, word je 24 uur bedreigd'

Hoe afdoend is Oracle 9i beveiligd tegen hackers?

Op donderdag 30 mei gaf Centor aan Pascal de Koning de gelegenheid Oracle-specialisten te wijzen op het belang van beveiliging in het algemeen en dat van Oracle 9i in het bijzonder. Dat we hackers niet met een korrel zout mogen nemen, bleek overduidelijk. En De Koning's opmerking: 'Als je 24 uur on line bent, word je 24 uur bedreigd' bleek absoluut niet overdreven. Eind juni werd dat ook nog eens benadrukt tijdens een symposium van studievereniging Gewis (van de Technische Universiteit Eindhoven), waar specialist Walter Belgers verklaarde: 'Netwerkbeheerders op de universiteit kunnen Windows NT niet eens meer normaal inrichten; het wordt al gekraakt voor ze de veiligheidspatches kunnen installeren..!'

Hoe veilig is de computer waarmee u werkt? Heel veilig denkt u? Vergeet het maar. De enige echt veilige computer is de computer die niet in een netwerk zit en waar geen modem in is geïnstalleerd. Hoewel je dan natuurlijk nog wel bang moet zijn voor fysieke diefstal…
Eén en ander bleek eind juni overduidelijk uit een symposium bij de Technische Universiteit Eindhoven. Een paar statements tijdens die dag:
• Jaap Vos van TNO-TPD (waar bedrijven hun smartcards laten testen op 'hacker-gevoeligheid'): 'Als je genoeg geld en tijd hebt, kom je er altijd in.'; en
Walter Belgers van Giga Computer Consultants: 'Honeypots - computers die speciaal worden opgezet en ingericht om hackers te vangen - worden binnen het uur gekraakt…'

Ervaringen met de 'honeypot'
Ir. Pascal de Koning, security consultant bij PinkRoccade Megaplex bv te Apeldoorn, had zo'n ervaring met zo'n lokdoos. 'We hadden zo'n Honeypot, uitgerust met Red Hat Linux 6.2 default op het kabelnetwerk aangesloten. Aan de machine was een Netwerk Intrusion Detection System gehangen om een aanval te kunnen detecteren. Daarnaast hadden we op de machine zelf ook nog een programma geïnstalleerd dat bijhoudt of er bestanden worden gemuteerd of niet. Gebeurt dat, dan stuurt dat programma ons automatisch een e-mail met een waarschuwing.'
Nog niet tevreden, hing De Koning ook een 'tapkastje' aan de machine, dat alle dataverkeer logt. En toen maar wachten.
'Met collega's onderling hadden we een pool gemaakt hoelang het zou duren voor de machine gehackt zou worden. De schattingen liepen uiteen van vijf tot tien dagen.'
Na tien dagen was er echter nog niets geconstateerd. Men besloot de machine te controleren op zijn werking. Er werd ingelogd, men keek naar het Intrusion Detection System en merkte dat dat niet werkte. Men wilde het opnieuw opstarten, maar… het programma bleek te zijn verwijderd. Men wilde de database raadplegen… De database was ook niet meer aanwezig.
De Koning: 'Achteraf hebben we kunnen constateren, dankzij het "tapkastje", dat er al direct op de eerste dag was ingebroken op de machine en dat men alles er al uit had verwijderd voor het programma ons ook maar had kunnen waarschuwen!'
Op dag vier bleek zelfs de hacker gehacked. Een andere hacker had de spullen van de eerste eraf gegooid en de machine vervolgens ingericht als een uitvalbasis om andere computers te kunnen hacken!

De Koning is terughoudend met het speculeren over de schade die hackers jaarlijks veroorzaken. Maar een FBI/CSI-onderzoek in de USA bij ruim vijfhonderd grote bedrijven maakt duidelijk dat de hacker-schade bij die organisaties in de miljarden loopt. Een recent rapport van het Duitse ministerie van Economische Zaken geeft aan dat de computercriminaliteit bij onze Oosterburen in vergelijking met het voorgaande jaar met ruim 360% is gestegen. Aangezien het ons lijkt dat Nederland daar zeker geen uitzondering op zal vormen, lijkt een schatting van 'vele miljoenen' gerechtvaardigd.

Er zijn diverse soorten hackers
Wat de beweegredenen van de 'hackers' zijn? Dat valt moeilijk te zeggen. De Koning (software-ontwikkelaars achtergrond, nu twee jaar gespecialiseerd in beveiliging) test met vijf collega's bij PinkRoccade systemen van bedrijven op de beveiliging. Echter alleen op verzoek.
'De klant die om zo'n onderzoek vraagt, tekent een vrijwaringsverklaring zodat men je niet van rechtswege kan vervolgen voor jouw acties. We geven de klant een seintje als we gaan beginnen en ook als we ermee ophouden. We leveren een compleet verslag aan de klant van wat er allemaal is gedaan en doen aanbevelingen om de beveiliging te kunnen optimaliseren.'

Script Kiddies vormen aparte categorie
Die opstelling maakt dat Pascal de Koning en zijn collega's tot de zogenaamde 'ethische hackers' behoren. Verder heb je ook 'White Head Hackers'. Dat zijn mensen die computers kraken voor de sport, voor de uitdaging. Zij berokkenen geen echte schade, maar maken vaak wel melding van hun succes en dat kan het imago van een organisatie een aardige deuk bezorgen. Dan zijn er de 'Black Head Hackers'. Zij zijn kwaadaardiger, doen het voor het geld en worden meestal ingehuurd door concurrenten van een organisatie (voor bedrijfsspionage, het verlammen van een organisatie, wraak enzovoort). Er is ook nog een andere categorie, maar De Koning kan daar niet echt een etiketje opplakken. Deze groepering valt onder de categorie 'Vandalen'. Zij hebben niet echt een reden nodig. Zij zijn, volgens De Koning, te vergelijken met de pukkelige pubers die in fietsenstallingen van school de achterlichtjes van fietsen trappen of alle ventielen losdraaien.
Een heel aparte categorie vormen de 'Script Kiddies': Tieners die programmaatjes downloaden van internet waarmee ze kunnen hacken. Zonder te worden gehinderd door enige kennis van zaken en zonder te beseffen wat voor schade ze aanrichten, starten die zo'n programma op dat vervolgens hele reeksen internetcomputers afzoekt op bekende zwakheden in een systeem.
Tijdens het symposium in Eindhoven werd gesteld dat deze 'Script Kiddies' een ware plaag zijn op internet.
Pascal de Koning kan dat alleen maar bevestigen: 'Het zijn aanvallen waar je je absoluut tegen moet verdedigen. Je hebt er geen idee van hoeveel je er daarvan voor je kiezen krijgt op een dag! Die verdediging daartegen begint door regelmatig de nieuwste security-patches te downloaden en te installeren. Dat is eigenlijk de beste methode om de Script Kiddy steeds een stapje voor te blijven.'
Wat dan overblijft, zijn die andere typen hackers, de mensen van wie je echt last kunt hebben.
De Koning: 'Daar moet je je dan op applicatieniveau tegen verdedigen. We hebben het dan over programmeerfouten. Die komen namelijk verschrikkelijk veel voor. Dat niveau van beveiliging krijgt nu eenmaal niet zoveel aandacht. De firewall, die krijgt aandacht! Maar het programmeren..? Daarbij wordt er vaak vanuit gegaan dat dat wel goed zit. Mijn ervaring is juist dat het daar helemaal niet zo goed mee zit.'

Oracle 9i: Unbreakable..?
Op de vraag hoe het met de beveiliging staat van Oracle's 9i, kan Pascal de Koning het niet nalaten te glimlachen: 'Je kent het, 9i is "unbreakable" als we Oracle mogen geloven'.
Volgens Pascal is dat standpunt destijds geventileerd omdat Oracle qua beveiliging wel eens de proef op de som wilde nemen. 'Op zo'n moment vraag ik me af: Waar ontlenen ze dat aan? Bij 8 riepen ze dat niet, dus moeten er aan 9i extra's zijn toegevoegd die dat rechtvaardigen. Die hebben wij hier allemaal doorgenomen. Onze mening: Slechts een paar echt nieuwe dingen, verder hooguit verbeterde bestaande zaken. Ik durf op grond daarvan dan ook wel te beweren dat ook Oracle 9i waarschijnlijk de nodige kwetsbaarheden kent die een hacker kan benutten.'
Functioneel gezien is er volgens De Koning sprake van implementatie van een sterke authenticatiemethode op een server.
'Er kan gebruik worden gemaakt van een wachtwoord, maar ook van een digitaal cliëntcertificaat. Encryptie van het Oracle-netwerkverkeer. Dat heette vroeger SQL-net, toen Net8, vervolgens… Daar is versleuteld dataverkeer gebruikt, maar dat is niet nieuw. Dat is al zeker twee jaar zo.'

Echt nieuw: 'row level' authorisaties
Wat volgens De Koning echt nieuw is, zijn de zogenaamde 'row level' authorisaties.
'Daarmee kun je iemand toestaan een bepaald veld in te zien; daarmee wordt op dataniveau aangegeven wie wat mag zien.'
De Oracle-opmerking: 'Databescherming te allen tijde' levert van de zijde van De Koning de opmerking op: 'Datarecovery bedoelen ze. Daar zijn wel verbeteringen in aangebracht. Dat is op zich een goede zaak, maar… niet nieuw. Dat kennen we al vanaf versie 1.'
Encryptie van data op de server zelf dan. Is dat wellicht wel..?
'Ook niet echt nieuw,' meent De Koning. 'Ik vraag me eerlijk gezegd ook af wat je daar echt aan hebt. Dan praten we in feite over iemand die fysiek toegang moet kunnen krijgen tot het systeem. Dat betekent dat er moet worden ingebroken en dat de server moet worden gestolen… Ja, qua fysieke beveiliging is het daarmee goed geregeld.'
Een terechte opmerking tijdens de Centor-presentatie was dat het wel degelijk beschermt tegen administrators die op file-system door de data neuzen. Het beschermt niet tegen hackers die uit de applicatie breken via SQL-injection. In totaal meent De Koning dat Oracle 9i zo'n zeven à acht security-items bevat, waarvan hij de 'row level' beveiligingsauthorisatie wel de meest interessante vindt.
'Dat is een goede. Die is niet zo makkelijk te omzeilen. Het enige dat je in dat geval als hacker kunt doen, is proberen je privileges te verhogen. Door bijvoorbeeld als een andere gebruiker naar de database te gaan, waardoor je meer en hogere privileges krijgt die je wel toestaan de database in te zien. Dat is dan weer een volgende stap. Het maakt het niet onmogelijk om in te breken; het maakt het al wel weer een heel stuk moeilijker.'
Het zijn echter de kwetsbare plekken in de software die hackers gebruiken om een machine binnen te dringen. Ir. Pascal de Koning noemt als voorbeeld de buffer overflow-mogelijkheid in Oracle-software.
'Als die in een programma voorkomt, kun je daar als software-ontwikkelaar weinig tegen doen,' zegt hij. 'Je moet het wel, zodra je ervan hoort, in de gaten blijven houden. Zorg dat je dan zo snel mogelijk de hierop van toepassing zijnde security-patch draait, zodat je op dat punt niet langer kwetsbaar bent.'

Zwakke plekken door ontwerpfouten
Wat dan nog overblijft, zijn de zwakke plekken die ontstaan door ontwerpfouten in de software zelf, in de zelfgebouwde software.
'Neem het voorbeeld van gebruikers die moeten aanloggen om data te kunnen inzien. Zodra ze de data gaan inzien, blijkt dat je niet echt aangelogd had hoeven zijn. Je moet aanloggen om dat menuutje te krijgen en in dat menuutje staat dan de button "Toon mij de data". Als je zou weten hoe dat commando van "Toon mij de data" eruit ziet, zou je niet hoeven aan te loggen. Dat is een ontwerpfout en hackers maken vaak van dat soort dingen gebruik. Of dat er dingen worden gelogd die niet gelogd hadden moeten worden. Denk bijvoorbeeld aan wachtwoorden. Bij het ontwerp is niet goed nagedacht over de log in, dus wordt er maar iets gelogd, een beetje willekeurig. Wachtwoorden worden dan wel gelogd en transacties ook en zo. Het is dan zo dat die log-files heel interessant worden voor hackers. En die log-files, die zijn bijvoorbeeld weer minder goed beveiligd. Die zijn zo leesbaar. Dat maak je ook mee.'

Dan zijn er ook nog de zogenaamde programmeerfouten. Een voorbeeld: Iemand heeft een zoekmachine gebouwd. Als daar dan wat velden worden ingevuld, worden er wat commando's aan elkaar geplakt tot een geldig SQL-statement. Dat wordt dan aan de database doorgegeven. Een veel voorkomende situatie. Maar.., door die SQL-statement gewoon uit te breiden - wat niet de bedoeling was, maar vaak wel mogelijk blijkt - wordt de database op een heel andere, oneigenlijke manier benaderd.
De Koning: 'Ik ga bijvoorbeeld zoeken op de naam van een auteur. Zeg maar Jansen. Dan breid ik dat uit met or select alle wachtwoorden uit een bepaalde tabel. Dat wordt dan de hele zoekterm die aan de database wordt doorgegeven. Doe ik dat goed, dan krijg ik op mijn scherm netjes alle wachtwoorden uit de tabel te zien.'

Het is voor ontwikkelaars uiterst belangrijk te begrijpen hoe zoiets werkt. En - nog belangrijker - hoe je dat afschermt.
'Je moet weten hoe dat soort aanvallen plaatsvinden, van welk mechanisme gebruik wordt gemaakt en hoe je je daar dan tegen kunt verdedigen,' aldus De Koning, die op de vraag welke adviezen hij de Oracle-ontwikkelaars op dat gebied kan geven, antwoordt: 'Om eens een training Secure Programming te volgen. Dan zie je de fouten en hoe hackers dat gebruiken. Als je dat eenmaal ervaren hebt, weet je ook hoe je het kunt voorkomen.'

Niets is 'unbreakable'
Hoe staat het nu met Oracle-programmatuur. Is die nu 'unbreakable' of niet? Dat is een vraag waar we toch wel graag een eenduidig antwoord op zouden willen. Maar ook op dat punt houdt De Koning (net als bij de presentatie die hij donderdag 30 mei voor bij Centor geregistreerde Oracle-specialisten hield) een slag om de arm.
'Oracle heeft zelf een aantal vergelijkende onderzoeken laten uitvoeren. Daarbij komen zij als beste uit de bus. Je kunt daar natuurlijk je vraagtekens bij zetten aangezien zij die onderzoeken zelf hebben aangevraagd en opgezet. Maar feit blijft dat zij het hebben laten onderzoeken. Mijn mening? Oracle is niet "unbreakable"; niets is "unbreakable". Maar Oracle is gewoon een heel goede RDBMS. Ik heb zelf met diverse Oracle-producten gewerkt; ik weet waar ik over praat. Oracle is niet feilloos, maar ze besteden veel aandacht aan beveiliging. Zeker bij 9i. Het is prettig te weten dat ze daar serieus werk van maken. Maar dat neemt niet weg dat je zelf ook alert moet zijn.' En dat kan hij niet hard genoeg benadrukken.
'Mensen zeggen als je het over beveiliging hebt: Ja, maar… dat doet Oracle toch? Die leggen dus de verantwoordelijkheid voor beveiliging bij de software die ze gebruiken. Zij staan er niet bij stil dat wat ze zelf doen ook verschrikkelijk onveilig kan zijn. Dat is ontwikkelaars eigen. Die zijn te sterk gericht op het realiseren van functionaliteit, terwijl je voor beveiliging juist vaak dingen onmogelijk moet maken. Uiteindelijk wordt er een programma opgeleverd en je vraagt: "Is het goed?" en het antwoord is: "Ja, want het doet precies wat er in het Functioneel Ontwerp (FO) staat". Dan vraag je of het ook veilig is. En dan zeggen ze dat dat geen eis was aan het Functioneel Ontwerp (FO)...'

Dus veiligheid wordt vaak bij software neergelegd of bij de Firewall en het Intrusion Detection System. Het overgrote deel van de Nederlandse bedrijven vertrouwt op de firewall als beveiliging. Niet terecht, volgens De Koning, die meldt dat een firewall enkel dient voor het tegenhouden van bepaalde datastromen op een heel laag niveau.

Het antwoord tegen de activiteiten van hackers is dus: zorg voor de juiste software, configureer de machine veilig, harden de software door het toepassen van de nieuwste veiligheidspatches en zorg dat er geen dingen openstaan die niet horen open te staan. De deur even op een kiertje laten staan is genoeg voor een hacker om een machine binnen te dringen. Met alle gevolgen vandien.