Skip to main content

Útoky zlyhania DLL únosu, prevencia a detekcia

Útoky zlyhania DLL únosu, prevencia a detekcia

Geoffrey Carr

DLL slúži na dynamické prepojenie knižníc a sú externými časťami aplikácií, ktoré fungujú v systéme Windows alebo v iných operačných systémoch. Väčšina aplikácií nie je sama o sebe úplná a kópia sa ukladá v rôznych súboroch. Ak je kód potrebný, príslušný súbor sa načíta a použije. Tým sa znižuje veľkosť súboru aplikácie pri optimalizácii využitia pamäte RAM. Tento článok vysvetľuje, čo je DLL únosu a ako ho odhaliť a predchádzať.

Čo sú súbory DLL alebo dynamické prepojenia knižníc

Sú súbory DLL sú dynamické prepojenia knižníc a ako je viditeľné názvom, sú rozšírenia rôznych aplikácií. Každá aplikácia, ktorú používame, môže alebo nemusí používať určité kódy. Takéto kódy sú uložené v rôznych súboroch a sú vyvolávané alebo načítané do pamäte RAM len vtedy, keď je potrebný príslušný kód. Takto šetrí súbor aplikácie, aby sa stal príliš veľkým a zabránilo tomu, aby sa aplikácia zhoršovala.

Cesta k súborom DLL je nastavená operačným systémom Windows. Cesta je nastavená pomocou globálnych environmentálnych premenných. V predvolenom nastavení, ak žiadosť vyžaduje súbor DLL, operačný systém vyhľadá rovnakú zložku, v ktorej je uložená aplikácia. Ak sa nenájde tam, ide o iné zložky, ako sú nastavené globálnymi premennými. Priority sú priradené k cestám a pomáhajú systému Windows pri určovaní, ktoré priečinky majú hľadať DLL. To je miesto, kde únik DLL príde dovnútra.

Čo je DLL Hijacking

Pretože DLL sú rozšírenia a sú nevyhnutné na používanie takmer všetkých aplikácií na vašich počítačoch, sú prítomné v počítači v rôznych adresároch, ako je vysvetlené. Ak je pôvodný súbor DLL nahradený falošným súborom DLL obsahujúcim škodlivý kód, je známy ako DLL únosu.

Ako už bolo spomenuté vyššie, existujú priority, pokiaľ ide o to, kde operačný systém vyhľadáva súbory DLL. Najskôr sa pozerá do rovnakej zložky ako priečinok aplikácie a potom sa vyhľadáva na základe priorít nastavených premennými prostredia operačného systému. Ak je teda súbor good.dll v priečinku SysWOW64 a niekto umiestni bad.dll do priečinka s vyššou prioritou v porovnaní so zložkou SysWOW64, operačný systém použije súbor bad.dll, pretože má rovnaký názov ako DLL požadované žiadosťou. Raz v pamäti RAM môže spustiť škodlivý kód obsiahnutý v súbore a môže ohroziť váš počítač alebo siete.

Ako zistiť únosy DLL

Najjednoduchším spôsobom na detekciu a zabránenie únosu DLL je použitie nástrojov tretích strán. Existuje niekoľko dobrých bezplatných nástrojov dostupných na trhu, ktoré pomáhajú pri odhaľovaní pokusov o hackovanie DLL a predchádzať tomu.

Jedným z takýchto programov je DLL Hijack Auditor, ale podporuje iba 32-bitové aplikácie. Môžete ho nainštalovať do počítača a skenovať všetky aplikácie systému Windows, aby ste zistili, čo sú všetky aplikácie zraniteľné na únik DLL. Rozhranie je jednoduché a vysvetľujúce. Jedinou nevýhodou tejto aplikácie je, že nemôžete skenovať 64-bitové aplikácie.

Ďalší program na detekciu únosu DLL, DLL_HIJACK_DETECT, je dostupný cez GitHub. Tento program kontroluje aplikácie, aby zistili, či niektorý z nich je zraniteľný voči únosu DLL. Ak to je, program informuje používateľa. Aplikácia má dve verzie - x86 a x64, takže ich môžete použiť na skenovanie oboch 32 bitových aj 64 bitových aplikácií.

Treba poznamenať, že vyššie uvedené programy skenujú aplikácie na platforme Windows z dôvodu zraniteľnosti a v skutočnosti nezabraňujú únosom súborov DLL.

Ako zabrániť únosu DLL

Problém by mali riešiť programátori v prvom rade, pretože nie je veľa, čo môžete urobiť, len aby ste posilnili vaše bezpečnostné systémy. Ak namiesto relatívnej cesty programátori začnú používať absolútnu cestu, zraniteľnosť sa zníži. Čítanie absolútnej cesty, systému Windows alebo akéhokoľvek iného operačného systému nebude závisieť od systémových premenných pre cestu a pôjde priamo na zamýšľanú DLL, čím sa zamietne možnosť nahratia rovnakého názvu DLL do cesty s vyššou prioritou. Táto metóda tiež nie je odolná voči poruchám, pretože v prípade, že je systém ohrozený a kybernetickí ľudia vedia presnú cestu DLL, nahradia pôvodnú DLL falošnou DLL. To by bolo prepísanie súboru tak, aby sa pôvodná DLL zmenila na škodlivý kód. Ale znova, cybercriminal bude musieť poznať presnú absolútnu cestu spomenutú v žiadosti, ktorá vyžaduje DLL. Proces je ťažký pre počítačových zločincov, a preto sa dá počítať.

Keď sa vrátite k tomu, čo môžete urobiť, skúste rozšíriť bezpečnostné systémy, aby ste lepšie zabezpečili systém Windows. Použite dobrú bránu firewall. Ak je to možné, použite hardvérový firewall alebo zapnite firewall brány smerovača. Používajte dobré systémy na detekciu narušenia, aby ste vedeli, či sa niekto pokúša hrať s vaším počítačom.

Ak sa nachádzate v oblastiach na odstraňovanie problémov s počítačmi, môžete vykonať aj nasledujúce kroky na zabezpečenie:

  1. Zakázať načítanie DLL zo vzdialených zdieľaných položiek v sieti
  2. Zakázať načítanie súborov DLL z WebDAV
  3. Zablokujte službu WebClient úplne alebo ju nastavte manuálne
  4. Zablokujte porty TCP 445 a 139, pretože sa najviac používajú na kompromitáciu počítačov
  5. Nainštalujte najnovšie aktualizácie do operačného systému a bezpečnostného softvéru.

Microsoft vydala nástroj na zablokovanie únosov zaťaženia DLL. Tento nástroj zmierňuje riziko únosu DLL útokov tým, že zabraňuje aplikáciám z neistého načítania kódu z DLL súborov.

Ak by ste chceli do článku vložiť niečo, napíšte komentár nižšie.

Link
Plus
Send
Send
Pin