Onverwachte bescherming bij het kraken van SAP paswoorden Er bestaan verschillende hacktools die iedereen kan downloaden. Er bestaan zelfs linux distributies met verzamelingen van hacktools. Geheel onverwacht kunnen SAP paswoord hashes niet gekraakt worden met een van de bekendste linux distributies Kali. Laat ik bij het begin beginnen. Paswoorden worden bij voorkeur niet in plain text over de lijn gestuurd, want het zou kunnen dat iemand onderweg het paswoord onderschept. Daarom wordt niet het paswoord verstuurd, maar alleen de hash van het paswoord. Een hash is een korte samenvatting van een woord of een lange tekst die altijd even lang is. Als er een letter in het paswoord verandert, dan verandert de hash ook. Een systeem wil niet het paswoord weten, maar of twee paswoorden gelijk zijn. Daarvoor kun je ook alleen de hashes vergelijken en dat wordt zo al tientallen jaren gedaan. In een database is alleen de paswoord hash opgeslagen. De user tikt het paswoord in en de hash wordt naar de database gezonden. Daar worden de twee hashes met elkaar vergeleken en als ze overeenkomen, dan mag de user verder. Linux Kali Er bestaan verschillende soorten hashes. Een MD5 hash ziet er bijvoorbeeld zo uit: ”f94520fbfe86aac690a5c61d5a39a40f”. Hashes kunnen gekraakt worden door een paswoord te verzinnen, deze te hashen en te vergelijken met de te kraken hash. Er bestaan verschillende tools die dat kunnen zoals Hashcat, Pyrit of “John the ripper”. In de laatste paar jaar zijn deze tools erg geavanceerd geworden. In de linux distributie Kali zijn deze ook nog eens allemaal verzameld, zodat je niet eens meer hoeft te zoeken. Je hebt dus een gratis Operating Systeem met alle hacktools die het schuim van deze aarde met boosaardige geesten en snode plannen heeft kunnen verzinnen. Daar zitten ook tools tussen, waarmee SAP aangevallen kan worden. 1 Hashcat De Kali distributie: “4.5.0-kali1-amd64” bevat onder meer de tool Hashcat-2.0. Deze hashkraker maakt gebruik van de GPU (grafisch processor) om hashes te kunnen kraken. Zoals gezegd, krijg je hashcat meegeleverd met Kali. Je moet het dus zien als een soort Zwitserszakmes dat voor iedereen beschikbaar is. Echter in deze hashcat versie zit een verrassing…. Hashcat is werkelijk erg geavanceerd en kan hashes kraken van Windows, OS X (Apple), Cisco, MySQL en veel meer. Maar ook van SAP. Nu heeft SAP de laatste jaren erg veel moeite gedaan om de hashes waarmee de Paswoorden worden opgeslagen te verbeteren. SAP gebruikt een letter om het type hash aan te geven, de code versie. SAP begon met CODNV=B en intussen zitten we bij CODNV=I. Deze laatste versie is werkelijk moeilijk te kraken maar dat is niet het geval voor CODNV=B. SAP gaf eerder al aan dat het echt tijd werd om oude Paswoorden te vervangen. De praktijk is echter anders. SAP beheerders worden geplaagd door projecten die gisteren af hadden moeten zijn en krijgen niet altijd de tijd om Paswoorden te vervangen. Het probleem zijn dus alle oude paswoordhashes van type CODVN=B in het SAP systeem. Je kunt niet terug in de tijd. Schurken in spe met duistere plannen en voldoende tijd die met Kali hashes van SAP willen kraken, ontdekken een typisch geval van het fenomeen “jammer”. 2 De hand van SAP in Hashcat De SAP hashes die het makkelijkst te kraken zijn, zitten op mysterieuze wijze niet in Hashcat. Gods wegen zijn ondoorgrondelijk, maar die van SAP zijn dat ook. Hashcat kan alles kraken wat ouder is dan paar maanden maar geen CODNV=B. Intussen geloof ik ook niet meer in toeval en neem ik aan dat er een relatie is tussen het makkelijk kunnen kraken van deze hashes en de afwezigheid van deze hash typen in de Kali versie van hashcat. Het zal zo zijn dat sommige van de door aanvallers gemompelde vragen door SAP beantwoord kunnen worden. In het plaatje boven is goed te zien hoe het zit. De nummers van code versie B en F/G, respectievelijk 7700 en 7800, zitten er vreemd genoeg niet tussen (rode pijl). SAP hash type H kan wel gekraakt worden, maar deze is veel zwaarder te kraken (zwarte pijl). Wat betekent dit? Dit betekent dat de standaard boef met het standaard gereedschap Kali met het plan: “ik zie wel of het lukt” met hashcat bij SAP geen kans heeft. Maar variatie maakt het leven leuk. Heeft de boef iets duistere plannen, is hij iets slimmer of bijkans iets handig in Linux, dan heeft hij snel een hashcat versie gevonden waar wel de twee hashtypes in voorkomen. Zie onder hashcat 3.10: Als deze hashcat versie gebruikt wordt tegen SAP CODVN=B dan is de hash gekraakt in minder tijd dan het kost om een kop koffie te zetten (speciale koffiesoorten met nabewerking uitgesloten). Als we daar even goed over nadenken, betekent dit het volgende: Het is zeer belangrijk om van de oude SAP hashes af te komen Alle interfaces waarmee hashes uit het SAP systeem getrokken kunnen worden, zijn kritiek Dit laatste is eigenlijk mijn hoofdpunt. Veel SAP systemen die ik gezien heb, hebben interfaces die direct SAP tabellen benaderen en die in staat zijn ook SAP paswoord hashes te lezen. Het is dus niet alleen belangrijk de oude CODVN=B te verwijderen, maar ook om oude interfaces na te lopen en de autorisatie die ze gebruiken. Om dit handmatig te doen, is een hele klus. Hoe sterk zijn de hashes van SAP? Dat is natuurlijk wat iedereen wil weten. Als ik met hashcat-3.10 op een standaard laptop met een NVIDIA GPU en instelling “ga helemaal los”[1] een CODVN H hash van een eenvoudig paswoord van 7 karakters wil kraken, dan duurt dat nog steeds 2 dagen. [1] dat is: hashcat64 -w 4 3 Mocht er iemand zijn die er toch helemaal voor wil gaan en met een aan autisme grenzend fanatisme een SAP hash van type H van 12 karakters wil kraken, dan ben je 10 jaar1 in blijde afwachting van een event dat niet gaat plaatsvinden. Binnen 10 jaar zijn paswoorden allang veranderd of bestaan zelfs al niet meer. Dit betekent concreet dat de kans groter is dat Roodkapje de wolf opeet, dan dat het paswoord gevonden wordt. Met code versie H of hoger zit je dus wel goed, maar zeg inderdaad nooit “nooit”. Het zou kunnen dat een staat geïnteresseerd is in een bepaalde hash en super computing ter beschikking stelt of dat er gebruik wordt gemaakt van een netwerk van gekoppelde computers die samen een hash kraken zoals met ‘Hashtopus’. Tot zo ver het goede nieuws. Nu het slechte nieuws. De hashes zijn op zich sterk, maar je kunt in het SAP systeem instellen dat oudere hashes ook nog gebruikt mogen worden. Dat betekent dat je Ferrari ineens tot een brommer reduceert. Het systeem genereert de super veilige lange hash, maar ook nog de makkelijk te kraken oude hash typen. De oude hash is in seconden te kraken, dus bedrijven die deze instellingen hebben, zijn zeer kwetsbaar. login/password_downwards_compatibility = 1 De verantwoordelijkheid van het bedrijf is ook om te zorgen dat de SAP systeem parameters goed staan. Ook als de parameter correct wordt ingesteld, blijven oude hashes kwetsbaar totdat het paswoord wordt aangepast. Daarmee kom ik op mijn hoofdpunt terug: het is heel belangrijk dat paswoord hashes niet uit SAP gehaald kunnen worden, wat de codeversie ook is. 1 De tijd om alle voorgaande woord lengtes te kraken, is niet eens meegeteld 4 Wie gaat SAP hacken? De wereld is in maar een paar jaar erg veranderd: botnets van meer dan een miljoen zijn geen uitzondering meer. Er hoeft maar een aantal pc’s met een botnet binnen een bedrijf te zijn en criminelen krijgen al inzicht in de activiteiten binnen het bedrijf. De SWIFT hack van 2016 toonde aan dat criminelen heel goed geobserveerd hebben hoe bepaalde software werkt. Deze hack is van een magnitude die niemand eerder voor mogelijk had gehouden. Toch is het de hackers met SWIFT gelukt. Het valt te verwachten dat door bedrijven zelf gemaakte zwakke SAP interfaces uiteindelijk door criminelen ontdekt zullen worden. Hoe oplossen? Het is belangrijk dat de parameter goed staat en dat oude paswoorden worden vervangen. Onderzoek hierbij welke users en welke interfaces de hashes uit het systeem zouden kunnen trekken. Users worden vaak onderzocht, interfaces zo goed als nooit. Er zijn maar weinig tools die daar een antwoord op hebben. Newitera gebruikt SAST InterfaceAnalyser om te analyseren welke interfaces van en naar SAP er zijn en wat ze precies doen. Daarnaast zijn de SIEM2 applicaties goed in het correleren van data, maar hebben zij geen goed zicht op SAP, omdat dit nu eenmaal erg groot en divers is. Om te weten of een hacker met SAP iets aan het proberen is, is een SIEM nodig die SAP door en door kent. SAST Security Radar is het enige product dat dat kan en ook eens aan een bestaande SIEM gekoppeld kan worden. Heeft u vragen over onbekende en gevaarlijke RFC verbindingen of wilt u meer voorbeelden of verhalen horen, laat het ons weten. Mark Deiss, [email protected] 2 SIEM = Security Information Event Management zoals ArcSight en Splunk 5