Skräck och varnagel: Kerberos är sårbart för man-in-the-middle attacker!

På säkerhetskonferensen Black Hat i Las Vegas i förra veckan hölls en mängd intressanta föreläsningar. Många säkerhetsforskare visade upp sina senaste resultat och det var massvis av intressanta, skrämmande, roliga, och kittlande nyheter som spreds. Ett par föreläsningar fick nackhåren att resa sig och känslan av uppgiven skräck och förstämning spred sig bland de åhörande säkerhetsexperterna.

Här följer en sammanfattning av en av de föreläsningarna som jag gillade (och skrämdes av) allra mest.

Rachel Engel, Brad Hill and Scott Stender från iSEC Partners presenterade attacker mot Kerberos 5, ni vet det som gör att man kan logga in i Windowsdomänen, Open Directoryt, få Single Sign On mot SAP systemet, ja allt det där som gör att man får en och samma användaridentitet med rätt rättigheter, spårbarhet o.s.v.

Kerberos 5 kan som bekant växla kryptering och av bakåtkompatibilitetsskäl klarar protokollet av de gamla osäkra algoritmerna såsom DES och Microsofts exporterbara RC4.

Problemet kan konkretiseras med att det inte sker någon egentlig validering av domänkontrollanten (KDC Kerberos Key Distribution Center) eftersom klienten saknar en lista över sina domänkontrollanter, istället broadcastar klienten ut förfrågan och hoppas att det är rätt DC som svarar.

Vid vanlig lösenordsbaserad inloggning kan en angripare "i mitten" helt enkelt förfalska handskakningen och hävda att klienten bara klarar av en äldre och osäkrare krypteringsteknik, exempelvis DES. Specialiserade hårdvaruknäckare knäcker det kryptot inom några timmar och vips har angriparen offrets lösenord. Angriparen tar kontroll över offrets identitet.

Realistisk angreppsvektor mot smartkortsautentisering

Eftersom det inte sker någon egentlig servervalidering i standardkonfigurationen av Windowsdomäner uppstår det även problem vid smartkortsautentisering. Smarta kort är en stark form av 2-faktorautentisering med PKI i botten och vanliga x509 certifikat. Starkt och säkert, de privata nycklarna är skyddade i hårdvara på smartkortschippen. Men... sker ingen servervalidering av KDCn, ja då är den säkra (och säkert dyra) lösningen sårbar för "man-in-the-middle" attacker. Detta beror på att alla Windows XP, och defaultkonfigurerade Vista och Windows 7 klienter bara kontrollerar Server Authentication EKU:n i DCns domänkontrollantcertifikat. Problemet är att den EKUn följer med i både webserver-certifikat och i datorcertifikat. Det gör varje domänmedlem med ett sådant cert (alla datorkonton får automatiskt rätt att auto-enroll:a datorcertet) till en potentiell man-in-the-middle angreppsstation genom möjligheten att spoofa KDCns svar och signera det med sitt eget certifikat så att de verkar komma från en riktig DC.

Ungefär här hördes tunga suckar och kvävda stön bland den samlade åhörarskaran. Själv fick jag en molande huvudvärk. Det här är inte bra.

Attacken beskrivs utförligt i detta white paper. Den går i korthet ut på följande: Användaren loggar in, tror hon. Istället spoofar angriparen en KDC och med hjälp av ett användarkonto angriparen redan har kontroll över loggas användaren istället in som det hackade/knäckta/stulna/lurade kontot. Trojaner maskerade som vanliga uppdateringar installeras på den angripna klienten, PIN koden till kortet stjäls, användaridentiteten tas helt över och den ovetande användaren upplever bara att "det tog lång tid att logga in idag med både uppdateringar och omstart". Angriparen behöver bara iterera detta tills en identitet med tillräckliga rättigheter (tänk: Domain admin) har hittats och tagits över.

Hur skyddar man sig?

Det finns inga enkla genvägar, men här är de viktigaste:

- Uppgradera åtminstone en av domänkontrollanter till 2008R2.

- Uppgradera samtliga klienter till Windows Vista eller Windows 7.

- Uppgradera Issuing CAn till 2008R2
- utfärda nya DC certifikat av typen Kerberos Authentication till samtliga DCs.

- Har man kvar gamla 2003 DCs måste de gamla DC certifikaten tas bort..

Slå på följande grupppolicys

Computer Configuration\Administrative Templates\System\Kerberos
Policy: Require strict KDC validation = ON

Computer Configuration\ Policies \Windows Set-tings\Security Settings\Local Policies\Security Options

Network security: LAN Manager authentication level: Send NTLMv2 response only. Refuse LM & NTLM

Network security: Minimum session security for NTLM SSP based (including secure RPC) clients: and

Network security: Minimum session security for NTLM SSP based (including secure RPC) servers:

Require NTLMv2 session security

Require 128-bit encryption
Network security: Allow Local System to use computer identity for NTLM: Enabled

Network security: Allow LocalSystem NULL session fallback: Disabled

I en ren Server 2008R2 och Windows 7 miljö är det även en bra idé att försöka göra sig av med NTLM helt och hållet (OBS! Detta kan visa sig svårt rent praktiskt om man har gamla system i nätverket som använder sig av NTLM):

NTLM Blocking and You: Application Analysis and Auditing Methodologies in Windows 7


Introducing the Restriction of NTLM Authentication


Peter Swedin
Omegapoint Stockholm

0 kommentarer :: Skräck och varnagel: Kerberos är sårbart för man-in-the-middle attacker!

Skicka en kommentar