Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
Prijevodi ove stranice:

Napadi na kerberos autentifikaciju

Sažetak

U ovom radu istražen je Kerberos autentifikacijski protokol, njegove ranjivosti i napadi. Kerberos je protokol za autentifikaciju zahtjeva između vjerovanih pružatelja usluga preko nepovjerljive mreže. Radi na klijent-server modelu, koristi secret-key kriptografiju, te zahtjeva autorizaciju od third-party entiteta za verifikaciju identiteta korisnika. Radi na principu zahtijevanja i dodjeljivanja ulaznica (ticket) raznim entitetima (nodes) povezanim u mrežu kako bi ih identificirao i dao im privremenu autorizaciju. Obrađeni si brojni poznati napadi na Kerberos autentifikaciju poput Pass-The-Ticket, Golden Ticket, Silver Ticket, DCShadow, Kerberoasting, Encryption downgrade.

Uvod

Pristupanje mrežnim resursima predstavlja razne izazove. Jedan od tih izazova je i autorizacija, tko koji resurs smije koristiti. Problem autorizacije se rješava dodjeljivanjem raznih uloga koje su povezane s pojedinim identitetom. No tu dolazimo do novog problema, sigurnosti. Repetitivno dokazivanje identiteta preko mreže ne samo oduzima mnogo vremena nego uključuje i stalne razmjene korisničkih imena i lozinki putem ne uvijek sigurnih kanala. Taj problem pokušava riješiti Kerberos autentifikacijski protokol koji na siguran način svojim korisnicima pruža pristup određenim resursima unutar ograničenog vremenskog perioda izdavanjem posebnih ulaznica (ticket). Nažalost, kao i sve, on ima svoje mane, ranjivosti i poznate napade te se u ovom radu njima bavimo.

Kerberos autentifikacija

Kerberos autentifikacija je protokol za autentifikaciju zahtjeva između vjerovanih pružatelja usluga preko nepovjerljive mreže[1]. Kerberos je mrežni protokol koji radi na klijent-server modelu, koristi tajni ključ kriptografiju, te zahtjeva autorizaciju od vjerovane treće stranke (third-party) za verifikaciju identiteta korisnika. Radi na principu zahtijevanja i dodjeljivanja ulaznica (ticket) raznim entitetima (nodes) povezanim u mrežu kako bi ih identificirao[8].

Kerberos zahtjeva tri entiteta za autentifikaciju, te je iz tog razloga i dobio ime. Tri “glave” Kerberosa su[3]:

  • korisnikov uređaj
  • server s uslugom kojoj korisnik želi pristupiti
  • Key Distribution Center(KDC)- proces koji se odvija na svakom kontroleru domene u Active Directory domeni. On pruža dvije ključne usluge: Ticket Granting Service (TGS) i Authentication Service (AS)

Kerberos protokol koristi ulaznice za sigurnu autentifikaciju korisnika i uređaja bez slanja 'plaintext' lozinki preko mreže. Te ulaznice su enkriptirane uporabom tajnog ključa između korisnika i autentifikacijskog servera[1]. Korisnici, sustavi i usluge koji koriste Kerberos protokol moraju samo vjerovati KDC-u[5].

KDC se sastoji od tri elementa[4]:

  • server za dodjeljivanje ulaznica (TGS) koji povezuje korisnika sa serverom usluge
  • Kerberos bazu podataka koja sprema lozinke i identifikacije svih ovjerenih korisnika
  • autentifikacijski server (AS) koji provodi inicijalnu autentifikaciju

Tijekom autentifikacije, Kerberos sprema specifične ulaznice za svaku sesiju na uređaju krajnjeg korisnika. Umjesto lozinke, usluga koja koristi Kerberos protocol traži ulaznicu[4]. Razlikujemo dvije vrste ulaznica[8]:

  • Ticket Granting Ticket (TGT) - ulaznica koja se prva dodjeljuje klijentu ili korisniku koji traži pristup određenoj usluzi. Izdaje ju autentifikacijski server.
  • Service Granting Ticket (ST) - ova ulaznica se koristi da se provjeri ima li klijent koji zahtjeva pristup određenoj usluzi dozvolu za uporabu te usluge.

Kerberos autentifikacija se odvija u dvije autentifikacijske faze koje su vidljive na slici [16], a ovdje će biti okvirno opisane[8]:

[16]

Inicijalna autentifikacija
Korisnik se prijavljuje u aplikaciju za uslugu kojoj želi pristupiti. Aplikacija enkriptira vremensku oznaku uz pomoć tajnog ključa (korisnikove lozinke) te ju šalje autentifikacijskom serveru skupa s UID-om. Autentifikacijski server traži lozinku u svojoj bazi podataka sa istim UID-om te dekriptira primljenu vremensku oznaku uz pomoć lozinke. Zatim generira Ticket Granting Ticket(TGT) i enkriptira ga uz pomoć tajnog ključa, te ga šalje nazad korisniku. Enkriptirani TGT se sastoji od pravog TGT-a i ključa sesije. Nakon što primi taj paket, aplikacija ga dekriptira uz pomoć tajnog ključa, to jest lozinke korisnika. Korisnik sada ima TGT.

Sekundarna autentifikacija
Nakon primanja TGT-a, aplikacija šalje TGT Ticket Granting Serviceu(TGS) skupa s Service Principal Name(SPN) od usluge kojoj korisnik želi pristupiti, kako bi dobila Service Granting Ticket(ST). TGS verificira TGT sa autentifikacijskim serverom za aktivnu sesiju i nakon verifikacije šalje ST nazad serveru aplikacije. Zatim autentifikacijski server generira TGT koji sadrži korisnikov ID, adresu njegove mreže, vremensku oznaku, trajanje ulaznice i SK1. Nakon toga se ST šalje aplikaciji usluge kojoj korisnik želi pristupiti, server provjerava ST s TGS-om te nakon verifikacije daje korisniku pristup željenoj usluzi.

Rad na Kerberosu je započeo u kasnim '80-ima na MIT-u. Trenutna verzija 5 je prvi put objavljena 1993. godine. U rujnu 2007. osnovan je MIT Kerberos konzorcij za daljnji razvoj i održavanje tehnologije protokola, te je 2013 proširen i preimenovan u MIT Kerberos and Internet Trust Consortium. Od Windowsa 2000, Microsoft koristi Kerberos protokol kao defaultnu metodu autentifikacije na Windowsima, te je integralni dio Windows Active Directory (AD) usluge. Implementacije Kerberosa se koriste i na Apple OS, FreeBSD, UNIX, Linux i drugim distribucijama[5]. Također je postao standard za web stranice i Single-Sign-On implementacije[2]. Projekt se održava kao open-source projekt te se službena dokumentacija može pronaći na [15].

Prednosti

Primarna prednost Kerberos protokola je uporaba jakih enkripcijskih algoritama za zaštitu lozinki i autentifikaciju ulaznica, te činjenica da korisnici ne moraju stalno unositi svoja korisnička imena i lozinke i ne moraju se direktno uslugama koje žele koristiti autentificirati[3].

Ranjivosti Kerberos autentifikacije

Kerberos je dizajniran da bude siguran i efikasan, ali se oslanja na tajnost tajnih ključeva koji se koriste za enkripciju i dekripciju ulaznica u autentifikacijskom procesu. Ako napadač komprimira te tajne ključeve, može ih koristiti za ekstrakciju i dekripciju ulaznica koje može koristiti za pristup povjerljivim informacijama i resursima mreže. To je iznimno velika briga pogotovo zato što se Kerberos protokol često koristi u mrežama velikih kompanija. To ih čini pogotovo primamljivim napadačima jer napad na pojedinca može ugroziti cijelu mrežu kompanije[1]. Poput većine stvari na internetu, Kerberos protokol je sklon napadima. To ne znači da je on sam po sebi nesiguran, no neke miskonfiguracije u nekim verzijama i zlostavljanje pravih funkcionalnosti u protokolu čine ga metom napadača[8]. Budući da je jedan od najčešće korištenih autentifikacijskih protokola, hakeri su razvili nekolicinu načina za probijanje Kerbera. Većina tih napada iskorištava neku ranjivost, slabu lozinku ili malware, a nekada sve tri[2]. U ovom seminaru ćemo obraditi samo neke od mnogih napada.

Pass-The-Ticket

Pass-The-Ticket napad je napad u kojem napadač ukrade Kerberos Ticket Granting Ticket(TGT) od korisnika te ga koristi za impersonaciju tog korisnika na mreži, zaobilazeći autentifikacijske mehanizme te time dobiva pristup resursima za koje nema autorizaciju. Napadač krade TGT-a s korisnikovog uređaja ili kompromizacijom servera koji provodi autentifikaciju za korisnika. Jednom kada napadač ima pristup jednom od tih ulaznica, mogu ju koristiti za zahtijevanje dodatnih autoriteta ili krađu podataka[9].

Golden Ticket

Golden Ticket napad je napad u kojem napadač pokuša dobiti najveći mogući stupanj autorizacije u domeni organizacije time što pristupa podacima korisnika spremljenih u Microsoft Active Directory (AD). Ovaj napad iskorištava slabost u Kerberos autentifikaciji identiteta, s kojom pristupa AD-u, čime dozvoljava napadaču da zaobiđe uobičajeni proces autentifikacije[10]. Napadači iskorištavaju krbtgt račun, ključan račun u Kerberos protokolu odgovoran za enkripciju i potpisivanje svih domenskih ulaznica. Napadači prvo prodru u sustav, povećaju si privilegije na razinu administratora domene, što im dozvoljava da izvade NTHash krbtgt računa i identificiraju domenin sigurnosni identifikator (SID). S tim informacijama, napadači sami sebi stvaraju “Zlatnu ulaznicu”, repliciranu ulaznicu koja funkcionira kao pravi TGT koja ima proizvoljni autoritet[11].

Silver Ticket

Silver Ticket napad je sličan Golden Ticket napadu, no u njemu napadač krivotvori Ticket Granting Service (TGS) za specifične usluge. TGS ulaznice su enkriptirane s hash lozinkom usluge, stoga ako napadač ukrade hash usluge, mogu stvarati TGS za tu uslugu. Iako je domet Silver Ticket napada manji nego Golden Ticket napada, još uvijek je moćan alat koji dozvoljava trajne i teško primijetiv pristup raznim resursima. Budući da je potreban samo hash usluge, znatno je lakši nego Golden Ticket napad[12].

DCShadow

DCShadow je kasno fazni ubilački lanac napada koji dozvoljava napadaču s komprimiranom autorizacijom da registrira svoj Active Directory domain controller (ADDC) te sam replicira maliciozne modifikacije u sustavu. Ovaj napad je težak za spriječiti jer ne iskorištava ranjivosti protokola nego iskorištava prave i potrebne funkcije protokola koje su esencijalne za pravilan rad protokola. Također ih je teško otkriti jer su promjene s lažnog ADDC registrirane, procesirane i primijenjene kao da su izdane s pravog ADDC[13].

Kerberoasting

U Kerberoasting napadu napadač koristi posebne alate za ekstrakciju enkriptiranih Kerberos ulaznica iz mreže, te ih onda sam pokuša dekriptirati[1]. Dekripcijom pokušava dobiti hash lozinku AD računa koji ima Service Principal Name(SPN). Napadač onda pokušava offline razbiti hash lozinku, često upotrebljavajući brute force metode. Jednom kada se dođe do 'plaintext' kredencijala računa usluge, napadač može glumiti vlasnika usluge te su time ugroženi svi resursi te usluge[1].

Encryption downgrade

U ovom napadu, napadač iskorištava ranjivost u nekim verzijama protokola te na silu mijenja enkripciju s AES na neke slabije enkripcije poput MD4-RC4. Nakon toga može uz pomoć brute-force metoda naći željene informacije[5].

Zaključak

Kerberos autentifikacijski protokol pruža sigurno i efikasno rješenje problemu autentifikacije zahtjeve između vjerovanih pružatelja usluga preko nepovjerljive mreže. Unatoč tome poznate su neke ranjivosti i napadi nad njime. Mnogi tradicionalni alati za sigurnost nisu dizajnirani za nadgledanje aktivnosti već postojećih korisnika. Česti nedostatak malware programa u ovim napadima ostavlja brojne uobičajene mjere sigurnosti poput antivirusa bespomoćnima. Stoga bi se za pravilnu sigurnost trebala primjenjivat stroga pravila oko šifra, multi-faktorska autentifikacija, alati za nadgledanje aktivnosti i prodora mreže kako bi se svi resursi zaštitili[1].

Literatura

[1] What Is Kerberoasting Attack? https://www.sentinelone.com/cybersecurity-101/what-is-kerberoasting-attack/

[2] Kerberos Authentication Explained https://www.varonis.com/blog/kerberos-authentication-explained

[3] Kerberos authentication: How it works — and how to maximize its security https://blog.quest.com/kerberos-authentication-how-it-works-and-how-to-maximize-its-security/

[4] Kerberos Authentication Definition https://www.fortinet.com/resources/cyberglossary/kerberos-authentication

[5] What is Kerberos? https://www.techtarget.com/searchsecurity/definition/Kerberos

[6] Technical Analysis of CVE-2022-33679 and CVE-2022-33647 Kerberos Vulnerabilities https://www.silverfort.com/blog/technical-analysis-of-cve-2022-33679-and-cve-2022-33647-kerberos-vulnerabilities/

[7] Kerberos Attacks https://www.prosec-networks.com/en/blog/kerberos-attacks/

[8] Kerberos Authentication: Basics to Kerberos attacks https://thecyphere.com/blog/kerberos-authentication-attacks/

[9] Pass-the-Ticket Attacks https://www.beyondtrust.com/resources/glossary/what-are-pass-the-ticket-attacks

[10] What is a Golden Ticket Attack? https://www.crowdstrike.com/cybersecurity-101/golden-ticket-attack/

[11] Golden Ticket Attack Explained - MITRE ATT&CK T1558.001 https://www.picussecurity.com/resource/blog/golden-ticket-attack-mitre-t1558.001

[12] Silver Ticket Attack https://www.netwrix.com/silver_ticket_attack_forged_service_tickets.html

[13] What a DCShadow Attack Is and How to Defend Against It https://blog.netwrix.com/2022/09/28/dcshadow_attack/

[14] Kerberoasting Attacks https://www.crowdstrike.com/cybersecurity-101/kerberoasting/

[15] MIT Kerberos Documentation https://web.mit.edu/kerberos/krb5-latest/doc/#

[16] The Kerberos authentication process https://cdn.ttgtmedia.com/rms/onlineimages/kerberos_authentication_process_diagram-f.png

racfor_wiki/seminari2023/napadi_na_kerberos_autentifikaciju.txt · Zadnja izmjena: 2024/01/21 22:11 od Ratko Tomo
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0