U bent hier: Home > Blog > security

Wat u moet weten over Oracle’s recente security bug


Marcel-Jan Krijgsman, 11 mei 2012

Vorige week is een security bug in de Oracle database in het nieuws gekomen, bekend onder de code CVE-2012-1675. Omdat we vragen van meerdere klanten hierover gehad hebben, willen we in deze blogpost hier nog even op in gaan.

Wat is de bug?
Volgens de beschrijving van het security lek is het mogelijk buiten je database server een listener te configureren die als een remote listener geregistreerd wordt aan een database. Waarom heeft Oracle die funtionaliteit destijds toegevoegd? Antwoord: Real Application Clusters, of RAC. Een RAC bestaat nu eenmaal uit meerdere machines  met listeners die onderdeel maken van het RAC.

Een hacker kan een remote listener gebruiken om het netwerkverkeer naar de database af te luisteren.

Wat is de oplossing?
Gezien de aard van de bug, is het niet verwonderlijk dat Oracle twee oplossingen heeft: een voor single node databases (Oracle support ID 1453883.1) en een voor RAC databases (Oracle support ID 1340831.1).

Voor single node databases zijn er eigenlijk twee oplossingen. Er is een patch voor bug 12880299 voor TCP verkeer. Na patchen kunt u de parameter “SECURE_REGISTER_<listener_name> = (TCP)” aan de listener.ora toevoegen. De listener moet hiervoor herstart worden. Overigens hebben we nog geen Windows patch kunnen ontdekken. Merk ook op dat deze patch voor bug 12880299 pas in juli verschijnt als onderdeel van de volgende Critical Patch Update.

De andere oplossing voor single node is om de listener te registreren aan de database middels het IPC protocol in plaats van het TCP protocol. Voordeel is dat er geen patch nodig is. Er moeten wel de nodige wijzigingen in de listener.ora gedaan worden en de instance parameter local_listener moet voortaan werken over het IPC protocol. Een herstart van de instance is voor deze parameter niet nodig. De listener moet wel herstart worden.

Voor RAC databases is het onwenselijk dat remote listeners uitgesloten worden. Dus daar heeft Oracle een andere oplossing voor bedacht. Hiervoor wordt een beveiligde SSL verbinding gelegd tussen de listeners. Hiervoor moet een wallet aangemaakt worden op alle machines waar een listener draait. Er moet vervolgens een certificaat aangemaakt worden dat in de wallet wordt opgeslagen. De listener moet aangepast worden en de listeners moeten bekend worden in de instances m.b.v. de parameter remote_listener. Voor de details verwijs ik naar Oracle support ID 1340831.1.

Nu is het zo dat deze met SSL beveiligde verbindingen normaal gesproken vallen onder de Oracle Advanced Security optie en dit is een aparte licentie. Maar speciaal voor deze bug mag je deze functionaliteit van Advanced Security gebruiken zonder dat je de licentie hoeft te betalen. Dit betekent dus niet dat alles van de Advanced Security optie opeens gebruikt kan worden zonder licentie. Volg de instructies van Oracle support ID 1340831.1 dus goed op.

Wat is de impact op de beschikbaarheid van uw systemen?
Voor single node databases zal de listener een keer herstart moeten worden. Op RAC systemen zullen de SCAN listeners twee keer herstart moeten worden.

Moet u deze wijziging implementeren?
Ik zeg “ja”. Waarom? Security is zo sterk als de zwakste schakel. Dat alleen al is een reden om deze bug aan te pakken.

Ook weet ik niet of uw database servers zijn afgeschermd van de rest van uw netwerk en van Internet, of u Wifi verbindingen heeft die al of niet goed beveiligd zijn, of dat iemand binnen uw organisatie gebruik zou wil maken van deze bug om uw klantenbestand of een lijst van credit card nummers of gegevens over burgers mee te nemen, enzovoort, enzovoort. Kortom, om iets over het al of niet dichtzetten van een security bug te kunnen zeggen, moet je de hele stack goed kennen en de risico’s goed weten.

Iets dergelijks zal ik ook zeggen over Critical Patch Updates die Oracle elk kwartaal uitbrengt overigens.

Oracle Database Express Edition: nooit op productie


Marcel-Jan Krijgsman, 7 november 2011

Als je een Oracle database nodig hebt, dan heb je keuze uit verschillende edities. De keuze voor een editie hangt af van de gewenste features en er is een kostenafweging. Enterprise Edition is vaak de keuze voor data warehouses en als je Data Guard nodig hebt. Ook heb je Enterprise Edition nodig als je bepaalde Enterprise Manager packs gebruikt, zoals Diagnostics Pack en Tuning Pack. Standard Edition is een stuk goedkoper en als je geen bijzondere features uit Enterprise Edition nodig hebt, waarom niet? Veel klanten van ons werken er zonder moeite mee.

En dan is er nog Oracle Database Express Edition (XE) en die is gratis. Er zijn wat beperkingen aan (max 1 Gb geheugen en 11Gb user data), maar voor een gemiddelde applicatie voldoet hij prima. Bovendien is Oracle 11g Release 2 XE al uit.

Toch zal ik Express Edition nooit aanbevelen voor een productie systeem. De reden is beveiliging. Bij Oracle XE heb je geen support contract en dus kun je geen patches downloaden. Dus kun je qua beveiliging loop je meer en meer achter. (meer…)

Inbraak in een Oracle database detecteren met een honeypot


Marcel-Jan Krijgsman, 16 mei 2011

In februari kwam een inbraak in het nieuws bij beveiligingsbedrijf HBGary Federal. Dit bedrijf adviseert de Amerikaanse overheid hoe hun websites beveiligd moeten worden. Er waren voor die tijd aanvallen geweest van hackerscollectief Anonymous op bedrijven die WikiLeaks dwars zaten. De CEO van HBGary zei in de pers te weten wie de leiding achter Anonymous was en dat hij dit in de openbaarheid zou brengen. Hij had het nog niet gezegd of Anonymous begon een aanval tegen de websites van HBGary. Die aanval lukte op de site van HBGary Federal.

Om extra zout in de wonden de wrijven, deed een lid van Anonymous, een 15-jarig meisje, tegenover de site Ars Technica uit de doeken hoe de aanval gelukt was. Ze was begonnen met het zoeken van SQL injection lekken in de website. SQL injection is een methode waarin een hacker in een invoerveld of URL, of een andere plek waar data ingevoerd wordt, een stuk SQL toevoegt. Als de website/applicatie lek is voor SQL injection, kan het zijn dat een hacker met een UNION ALL een andere tabel kan uitlezen. Op deze manier las zij een gebruiker tabel uit, waaruit ze e-mail adressen van alle gebruikers haalde en ook versleutelde wachtwoorden. Die wachtwoorden wist ze te ontsleutelen, waarna ze met dat wachtwoord ook de mail van de CEO kon lezen en sturen, maar dat is een ander verhaal. Lees het artikel van Ars Technica maar eens.

(meer…)

Inbraak detecteren in de Oracle listener log


Marcel-Jan Krijgsman, 28 april 2011

Ik heb wel eerder beschreven dat je uit de listener log auditing informatie kunt halen. Maar er is meer uit de listener.log te halen. In de listener log komen soms ook foutmeldingen voor. Sommige meldingen echter, zouden in een normale situatie niet voor mogen komen. Bijvoorbeeld deze:

TNS-12505: TNS: listener does not currently know of SID given in connect descriptor.

Dit betekent dat iemand een connectie probeert te maken, maar de instancenaam niet goed kent of gespeld heeft. Het kan een teken zijn dat iemand zit te rommelen. Als er waslijsten van TNS-12505 meldingen langs komen, dan is iemand bezig een brute force aanval uit te voeren.

05-APR-2011 15:45:24 * (CONNECT_DATA=(SID=SA2)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=server1)(PORT=6014)) * establish * SA2 * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor.
05-APR-2011 15:45:24 * (CONNECT_DATA=(SID=SA3)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=server1)(PORT=6015)) * establish * SA3 * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor.
05-APR-2011 15:45:24 * (CONNECT_DATA=(SID=SA4)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=server1)(PORT=6016)) * establish * SA4 * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor.

(meer…)

Beveiligingslek geconstateerd? Trakteer op taart!


Marcel-Jan Krijgsman, 10 januari 2011

Als beveiligingsbewuste IT-er kom je allerlei zaken tegen waarvan de beveiliging een stuk beter kan. Om een voorbeeld te geven: een applicatie logt in met een user die eigenaar is van alle tabellen, views, packages en procedures en het wachtwoord is niet alleen niet complex, maar ook al jaren niet gewijzigd. En niemand durft dat wachtwoord aan te passen, want niemand weet precies meer welke  applicaties en  jobs inloggen met dat wachtwoord. Klinkt bekend?

Ik kwam zelf ook eens zo’n situatie tegen. Ik wist dat het wachtwoord van een belangrijke applicatie-user niet gewijzigd was sinds deze aangemaakt was. Pleidooien om het wachtwoord eens te veranderen stuiten op verzet van het management. Men vond het risico voor de continuïteit te groot. (meer…)

Zo hack je Java in de Oracle database


Marcel-Jan Krijgsman, 14 december 2010

Over het al of niet installeren van Oracle’s Critical Patch Updates is altijd veel discussie. Zijn hacks die zo’n CPU oplost niet veel te moeilijk voor normale mensen? Zijn die niet meer iets voor zeer gespecialiseerde hackers? Ikzelf zou zeggen dat,  zolang je dat niet zeker weet, dat je de CPU zeker moet installeren. Tel daarbij mijn eerder gemaakte punt over mogelijke Oracle wormen op.

Maar misschien gaat het idee meer leven als je zelf eens een hack uitprobeert. Op een veilige oefenomgeving uiteraard. De nu volgende hack is al sinds februari 2010 bekend. Hij is gepresenteerd en gepubliceerd door David Litchfield, een bekende onderzoeker van database security. De volgende hacks lijken misschien wat moeilijk (of niet), maar al deze code is dus gewoon voor handen op Internet. Voor ik beschrijf hoe de hack werkt, moet ik echter nog een ding kwijt.
(meer…)

Waarom de Stuxnet-worm ons ook aan gaat


Marcel-Jan Krijgsman, 21 oktober 2010

Virussen zijn niets nieuws. Je wordt ermee besmet door een bijlage van een mail te openen of het virus wordt doorgegeven via USB-sticks en dergelijke. Wormen kunnen na een besmetting zichzelf doorgeven via lekken in het operating system of in applicaties. Ook een RDBMS kan in principe een speciaal daarvoor geschreven worm doorgeven. Zo was er in 2002 en 2003 de Slammer/Saphire worm die een lek in MS SQL Server en MSDE 2000 gebruikte en het default sa-wachtwoord (het admin account van SQL Server). Binnen heel veel organisaties had men dat wachtwoord nooit gewijzigd. De Slammer/Sapphire worm kon in razendsnel tempo zoeken naar nieuwe SQL Server systemen en wist daarmee in januari 2003 binnen een half uur grote delen van Internet plat te leggen.

(meer…)

Hoe paspoortgegevens van Engelse voetbalfans gestolen werden


Marcel-Jan Krijgsman, 30 september 2010

Vrijdag 10 september kwam in het nieuws dat de paspoortgegevens en aanverwante gegevens van 35.000 Engelse voetbalfans – die op het WK 2006 waren geweest – gestolen zijn bij de FIFA en verkocht op de zwarte markt. Met welk doeleinde weten we niet, maar kennelijk was er een markt voor.

Hoe kregen de daders dat voor elkaar? Niet met een hack op de firewall, niet met SQL injection, niet door de beveiliging uit te zetten met een denial-of-service attack. Nee, er zijn aanwijzingen dat de kraak is gepleegd door één of meer medewerkers van de FIFA zelf, met als doel zichzelf te verrijken. Het vermoeden bestaat dat medewerkers gebruik gemaakt hebben van bestaande privileges die hen ter beschikking stonden en die privileges waren waarschijnlijk veel ruimer dan de medewerkers strikt nodig hadden. (meer…)

De keuze van een wachtwoord


Marcel-Jan Krijgsman, 20 september 2010

Laatst zag ik de Bond-film Casino Royale (2006). In de film moet 007, gespeeld door Daniel Craig, een wachtwoord verzinnen waarmee hij de meer dan honderd miljoen Engelse ponden die hij heeft gewonnen met een “spelletje poker” moet beveiligen. Aan het eind van de film blijkt welk wachtwoord dat was. Zal ik het verklappen? Ach, zo moeilijk is het ook weer niet. Het was gewoon de voornaam van de dame die in zijn gezelschap was. Verrassend.

James Bond is niet de enige die zwakke wachtwoorden kiest. Ik zie het overal. Na de film bedacht ik dat bij goede security de volgende Bond-film (als die er komt. MGM zit op zwart zaad) er heel anders komt uit te zien. (meer…)

Een geleerde les over security: bewustzijn


Marcel-Jan Krijgsman,

Als Oracle database specialist heb ik me in de loop van de jaren toegelegd op performance tuning en database security. Ik moet er wel eens om glimlachen in hoeverre die vakgebieden totaal van elkaar verschillen. Vooral op politiek gebied. Als een organisatie lijdt onder de slechte performance van een applicatie, gaat de rode loper uit. Niets zal u in de weg lopen, als u het maar oplost.

Security is een andere wereld. Organisaties moeten steeds vaker voldoen aan beveiligingsstandaarden en wetten, zoals PCI-DSS (credit cards), ISO 27001 en NEN 7510 (patiëntendossiers). Standaards en richtlijnen zijn een stok achter de deur, maar geen garantie voor enthousiasme. (meer…)