U bent hier: Home > Transfer Solutions| Oracle technologie blog | TS Blog | > Database & extensies > Inbraak detecteren in de Oracle listener log

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.

Een tool waarmee dit soort aanvallen uitgevoerd kunnen worden, is de open source tool nmap in combinatie met het meegeleverde script oracle-sid-brute. Met oracle-sid-brute kan een lijst van voor de hand liggende en algemeen bekende instancenamen als ORCL, PROD, PROD10G, TEST, OEMREP, DWHPROD en XE afgewerkt worden. Nmap is ook goed te gebruiken om te kijken of je je eigen omgeving goed beschermd hebt.

Het is handig om de listener log te monitoren op dit soort errors. Het is meteen een duidelijke waarschuwing aan de DBA dat iemand aan het rommelen is. Andere meldingen in de listener log die kunnen wijzen op verdachte handelingen zijn:

TNS-01190: The user is not authorized to execute the requested listener command.
TNS-12508: The listener could not resolve the COMMAND given

Iemand probeert listener commando’s uit te voeren. Buiten de DBAs zou niemand daartoe in staat mogen zijn.

TNS-01189: The listener could not authenticate the user
TNS-01169: The listener has not recognised the password

Iemand probeert in te loggen op de listener. Alleen DBA’s kunnen zich daar soms mee bezig houden.

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

Iemand zoekt een instance die niet bij de listener bekend is. Dit hoeft geen opzet te zijn. Het kan zijn dat de instance zich nog niet bij de listener gemeld heeft. Wel is het interessant dat gebruikers kennelijk die melding krijgen.

Dan is het zaak om notificatie in te stellen op deze errors. Het ligt er aan wat je voorkeur is op dit gebied. Misschien is er al een scriptje dat de alertlog checkt en dat omgebouwd kan worden. Hou er dan wel rekening mee dat het datumformaat in de listener log anders is. Het is ook mogelijk om de listener log als external table in de database leesbaar te maken, zoals beschreven in dit artikel op de Pythian blog. Persoonlijk ben ik daar niet zo’n voorstander van, want als de database bereikt kan worden door SQL injection lekken, dan kunnen hackers nu al te gemakkelijk hun sporen wissen.

Deze check detecteert bepaald niet alle vormen van inbraak. Een populaire methode als SQL Injection vind je hier bijvoorbeeld niet mee. Maar het is toch mooi middel om vroegtijdig te detecteren of iemand naar gegevens op de database server zit te vissen.

0 reacties »

Nog geen reacties.

RSS feed voor reacties op dit bericht. TrackBack URL

Plaats reactie