Geschreven door: Patrick Maes

In samenwerking met pentester Martin Knuijsting

De kwetsbaarheid van deze week gaat over de IBM Data Risk Manager. IBM Data Risk Manager (IDRM) is een beveiligingssoftware voor ondernemingen, van IBM. IDRM voegt alle beveiligingsrisico’s van een onderneming samen en geeft een volledig beeld, dit is vergelijkbaar met een elektronisch risicoregister. Het product ontvangt informatie van vulnerability scans voor het scannen van kwetsbaarheden en andere risicomanagement tools. Deze onderdelen worden samengevoegd zodat een gebruiker deze kan onderzoeken om vervolgens een uitgebreide analyse uit te voeren.

De virtuele IDRM Linux distro is geanalyseerd door Pedro Ribeiro en bleek vier kwetsbaarheden, drie kritieke risico’s en een hoog risico te bevatten.

Melding kwetsbaarheden

Er is geprobeerd contact op te nemen met CERT/CC om de openbaarmaking te coördineren met IBM, maar IBM heeft het kwetsbaarheidsrapport geweigerd en kwam met de volgende reactie:

“We hebben dit rapport beoordeeld en afgesloten als zijnde buiten het bereik van ons kwetsbaarheid openbaarmaking programma. Aangezien dit product alleen bedoeld is voor “verbeterde” ondersteuning die door onze klanten wordt betaald. Dit staat beschreven in ons beleid: https://hackerone.com/ibm. Om in aanmerking te komen voor deelname aan dit programma moet u niet onder contract staan als werknemer bij IBM Corporation, een dochteronderneming van IBM of een IBM cliënt. Dit geldt voor tenminste 6 maanden voordat u het rapport publiceert.”

Dit is een onbegrijpelijke reactie van IBM. Het feit dat een miljardenbedrijf dat wereldwijd beveiligingsproducten en beveiligingsadviezen verkoopt aan grote bedrijven, een gratis kwalitatief hoogstaand kwetsbaarheidsrapport over één van hun producten weigert te accepteren is zacht gezegd opvallend. Dit terwijl ze wel de volgende citaten op hun website plaatsten:

“Als elke seconde telt, heb je een gezamenlijke verdediging nodig om bedreigingen te kunnen identificeren, te orkestreren en te automatiseren. IBM Security Threat Management oplossingen helpen u te gedijen in het licht van de cyber security onzekerheid.

Het opbouwen van een op maat gemaakt beveiligingsplan dat zowel sectorspecifiek is als afgestemd op uw beveiligingsniveau, vereist een partner met diepgaande expertise en een wereldwijd bereik. Het IBM Security Strategy and Risk services team is die gewaardeerde partner.”

Opgemerkt moet worden dat IBM geen bounties aanbiedt op hun “bug bounty programma”, alleen maar kudo’s.

Kwetsbaarheid 1: Authentication Bypass

IDRM heeft een API-eindpunt op /albatross/saml/idpSelection dat een door de aanvaller verstrekte ID associeert met een geldige gebruiker op het systeem. De methode die dit eindpunt afhandelt wordt hieronder weergegeven:

Zoals te zien is in de bovenstaande code, accepteert deze methode een willekeurige sessionId en gebruikersnaam uit het HTTP-verzoek. Als er een gebruikersnaam bestaat in de gebruikersdatabase van de applicatie, dan associeert het die sessionId met de gebruikersnaam. Dit kan worden bereikt door een niet-geauthenticeerde aanvaller met het volgende verzoek: 

GET /albatross/saml/idpSelection?id=SOMETHING&userName=admin

De server zal reageren met een 302 redirect naar https://localhost:8765/saml/idpSelection, maar dat maakt niet echt uit. De applicatie geeft een nieuw willekeurig gegenereerd wachtwoord voor de gebruikersnaam. 

In de vorige aanvraag werd de “admin” gebruiker geassocieerd met de sessie “SOMETHING”. Dus als we het volgende verzoek uitvoeren:

Zal de server reageren met: 

{“httpStatus”:”200″,”serverCode”:”2001″,”requestedUrl”:”https://10.0.10.25:8443/albatross/user/login”,”data”:”b6e1a82b-3f33-4297-86e1-ca780d16cb02“}                                                

Dit is nu een geldig wachtwoord voor de “admin” gebruiker, zoals het vorige stukje code laat zien.

Kwetsbaarheid 2: Command Injection

IDRM laat de volgende API zien: /albatross/restAPI/v2/nmap/run/scan
Dit stelt de aanvaller in staat nmap scans uit te voeren. De API code is hieronder te zien:

Zoals vermeld in GTFObins, is het met toegang tot nmap mogelijk willekeurige commando’s uit te voeren als de aanvaller een scriptbestand kan uploaden. Dan kan dat als argument doorgeven worden aan nmap met “–script=<FILE>”. Aangezien hij geen commando’s in een parameter kan injecteren, is de beste kans om de commando’s naar een bestand te schrijven en dat in het –script-argument door te geven aan nmap.

Kwetsbaarheid 3: Insecure Default Password

De administratieve gebruiker in de IDRM is “a3user”. Deze gebruiker mag inloggen via SSH en sudo-opdrachten uitvoeren. Het account is ingesteld met een standaard wachtwoord van “idrm”. In combinatie met kwetsbaarheden #1 en #2, staat dit een ongeauthenticeerde aanvaller toe om code op afstand uit te voeren(RCE), als root op de IDRM applicatie. Dit leidt tot een compleet gecomprimeerd systeem.

Kwetsbaarheid 4: Arbitrary File Download

IDRM legt een API bloot op /albatross/eurekaservice/fetchLogFiles waarmee een geauthenticeerde gebruiker logbestanden kan downloaden van het systeem. Echter, de logFileNameList parameter bevat een basis directory traversal fout die een aanvaller toelaat om alle bestanden van het systeem te downloaden.

Bij het combineren van exploit #1, #2 en #3 kan een aanvaller een ongeauthenticeerde remote command execution (RCE) uitvoeren als root gebruiker. Hiervan is er is ook een Metasploit module uitgebracht

Zorg dat u niet kwetsbaar bent

Met een kwetsbaarheid als deze kan uw organisatie grote financiële schade oplopen. Zorg dan ook voor een goed update beleid, waarbij frequent updates worden geïnstalleerd op kritische systemen. 

Om er zeker van te zijn dat uw netwerk zo min mogelijk kwetsbaarheden bevat, is het scannen van uw systemen noodzakelijk. Tijdens deze scan worden kwetsbaarheden blootgelegd en krijgt u handvatten hoe u uw netwerk beter te beveiligen tegen incidenten. Onze pentesters hebben de juiste kennis en kunde in huis om u hierbij van dienst te zijn. Zij zullen zorgvuldig uw netwerk scannen op kwetsbaarheden en u voorzien van een duidelijk advies waarmee u direct aan de slag kunt. 

Meer weten

Wil u meer informatie over onze pentesten of vulnerability scans? Kijk dan even op onze diensten pagina. Of bel direct met onze medewerkers via: 020 7881030, we zijn u graag van dienst.


Deel artikel via: