====== Izbjegavanje antivirusa - DLL Sideloading ====== ===== Sažetak ===== DLL sideloading je tehnika napada koja iskorištava mehanizam učitavanja Dynamic Link Library (DLL) datoteka u operativnim sustavima poput Windowsa. Napadači zamjenjuju ili ubacuju zlonamjernu DLL datoteku u direktorij legitimne aplikacije, čime zaobilaze sigurnosne mjere i omogućuju izvršenje zlonamjernog koda. Antivirusni programi često ne prepoznaju ovu prijetnju jer napadači koriste valjane digitalne potpise i integriraju zlonamjerni kod u aplikacije koje sustav već prepoznaje kao pouzdane. Jedan od poznatih primjera napada bio je onaj izveden od strane Lazarus grupe 2019. godine, kada su putem phishing e-mailova distribuirali zlonamjerne aplikacije s lažnim DLL datotekama. Kako bi se spriječili ovakvi napadi, potrebno je implementirati tehničke mjere kao što su "Safe DLL Search Mode", validacija digitalnih potpisa i korištenje naprednih sigurnosnih alata. Također, edukacija korisnika i primjena sigurnosnih principa poput Zero Trust modela igraju ključnu ulogu u prevenciji i smanjenju rizika od DLL sideloading napada. Zaštita sustava zahtijeva kombinaciju tehničkih mjera, proaktivnog praćenja i stalne edukacije, kako bi se učinkovito smanjila vjerojatnost uspješnog napada. **Ključne riječi**: DLL, DLL sideloading, zlonamjerni kod, antivirusna program, digitalni potpisi, Phishing napadi, Lazarus Grupa, zaštita, kibernetička sigurnost ===== Uvod ===== Dynamic Link Library (DLL) sideloading predstavlja tehniku zloupotrebe mehanizma učitavanja DLL datoteka u operativnim sustavima poput Windowsa. Ova metoda omogućuje napadačima da ubace zlonamjerni kod u legitimne aplikacije tako što se zlonamjerna DLL datoteka učitava umjesto originalne, čime se zaobilaze sigurnosne mjere poput antivirusnih programa. DLL sideloading je popularan među kibernetičkim kriminalcima jer se oslanja na osnovne principe funkcioniranja legitimnih aplikacija. Antivirusni programi često ne detektiraju ovu tehniku jer zlonamjerna DLL datoteka može biti prikrivena unutar poznatih aplikacija ili koristiti valjane digitalne potpise. Time napadači uspijevaju prevariti korisnike i sigurnosne sustave, ostvarujući pristup povjerljivim podacima ili kompromitirajući cijele mreže. U ovom seminaru bit će riječ o tome kako DLL sideloading funkcionira, razloge zbog kojih je učinkovit u zaobilaženju antivirusnih programa te koje mjere mogu pomoći u smanjenju rizika od ovakvih napada. ===== Što je DLL i kako funkcionira? ===== Dynamic Link Library (DLL) je vrsta datoteke koja sadrži kod i podatke koje više programa može dijeliti istovremeno. DLL-ovi se koriste za optimizaciju resursa jer omogućuju višekratnu upotrebu zajedničkih funkcionalnosti, kao što su grafičke biblioteke, obrade podataka ili mrežne funkcije. Operativni sustavi poput Windowsa učitavaju DLL datoteke pomoću funkcija kao što je `LoadLibrary()`. Tijekom učitavanja, sustav traži DLL datoteku u određenim direktorijima prema unaprijed definiranom redoslijedu (tzv. *search order*). Ovaj mehanizam omogućava veliku fleksibilnost, ali je i ranjiv, što napadači iskorištavaju kako bi izvršili zlonamjerne aktivnosti. {{ https://img.freepik.com/premium-vector/modern-flat-design-dll-file-icon-web_599062-6035.jpg?w=200 }}**Slika 1**: Prikaz ikone DLL datoteke[[https://www.freepik.com/premium-vector/modern-flat-design-dll-file-icon-web_36753439.htm|Izvor]] ===== Što je DLL sideloading? ===== DLL sideloading je tehnika u kojoj napadači zamjenjuju ili ubacuju zlonamjernu DLL datoteku u direktorij gdje se nalazi legitimna aplikacija. Kada se aplikacija pokrene, ona automatski učitava zlonamjernu umjesto originalne DLL datoteke. **Primjer**: Ako aplikacija "App.exe" traži DLL datoteku "DefinitellyNotChineseMalwere.dll", napadač može stvoriti lažnu "DefinitellyNotChineseMalwere.dll" s istim nazivom, ali s kodom koji izvršava zlonamjerne radnje. Aplikacija, nesvjesna promjene, učitava zlonamjernu verziju. ===== Zašto antivirusni programi ne detektiraju DLL sideloading? ===== Antivirusni programi uglavnom analiziraju pojedinačne datoteke i procese prema uzorcima poznatih prijetnji (tzv. *signature-based detection*) ili neobičnom ponašanju (tzv. *behavioral-based detection*). DLL sideloading izbjegava detekciju na nekoliko načina: * **Prikrivanje unutar poznatih aplikacija**: Zlonamjerna DLL datoteka često se "sideload-a" putem aplikacija koje već imaju povjerenje sustava. * **Valjani digitalni potpisi**: Ako napadač koristi DLL s valjanim digitalnim potpisom, antivirusni programi mogu smatrati datoteku sigurnom. * **Minimalne promjene**: Budući da aplikacija izvršava svoj legitimni kod uz dodatak zlonamjernog, ponašanje može izgledati normalno. ===== Primjer iskorištavanja ranjivosti i stvarnog napada ===== Lazarus Grupa je 2019. iskoristila tehniku DLL sideloadinga u napadu na financijske institucije u jugoistočnoj Aziji. Napad je započeo phishing e-mailovima koji su korisnike naveli da preuzmu lažnu aplikaciju za obradu financijskih podataka. Aplikacija je izgledala legitimno i dolazila je s digitalnim potpisom koji je dodatno uvjerio korisnike u njezinu autentičnost. ==== Koraci napada ==== - **Distribucija zlonamjernog softvera**: Korisnicima je poslana lažna aplikacija koja je trebala služiti za obradu računa. U istom direktoriju s aplikacijom nalazila se zlonamjerna DLL datoteka. - **Zamjena DLL datoteke**: Napadači su umjesto originalne DLL datoteke koja je bila odgovorna za funkcionalnosti aplikacije, ubacili zlonamjernu verziju iste datoteke. - **Izvršenje zlonamjernog koda**: Kada su korisnici pokrenuli aplikaciju, ona je učitala DLL iz lokalnog direktorija prema standardnom redoslijedu pretraživanja DLL-ova u Windowsu. Zlonamjerna DLL datoteka omogućila je napadačima sljedeće: * Krađu osjetljivih podataka iz sustava * Preuzimanje dodatnih zlonamjernih alata sa zaraženog poslužitelja *Proširenje pristupa na druge dijelove mreže - **Izbjegavanje detekcije**: Zlonamjerna DLL datoteka bila je pažljivo dizajnirana kako bi izbjegla detekciju od strane antivirusnih programa. Imala je sličan digitalni potpis kao originalna datoteka, a aplikacija se ponašala normalno, što je otežalo otkrivanje napada. {{ https://www.cybereason.com/hs-fs/hubfs/dam/images/images-web/blog-images/DLL-Side-Loading-6.png?width=601&height=260&name=DLL-Side-Loading-6.png }}**Slika 2**: Prikaz DLL sideloadinga [[https://www.cybereason.com/blog/threat-analysis-report-dll-side-loading-widely-abused|Izvor]] ===== Zaštita i prevencija ===== Zaštita od DLL sideloadinga zahtijeva sveobuhvatan pristup koji obuhvaća tehničke mjere, proceduralne smjernice i kontinuiranu edukaciju korisnika. Tehničke mjere uključuju implementaciju "Safe DLL Search Mode" kako bi se smanjila vjerojatnost učitavanja zlonamjernih DLL-ova iz nesigurnih direktorija, validaciju digitalnih potpisa kako bi se osigurala autentičnost datoteka te ograničavanje pristupa direktorijima gdje se nalaze DLL datoteke kako bi se spriječilo njihovo neovlašteno mijenjanje. Redovito ažuriranje operativnih sustava i aplikacija ključno je za uklanjanje poznatih ranjivosti, dok napredni sigurnosni alati, poput Application Whitelistinga, EDR rješenja i SIEM sustava, omogućuju praćenje aktivnosti, detekciju anomalija i brzo reagiranje na potencijalne prijetnje. Dodatno, korištenje sandbox okruženja za izolaciju nepoznatih aplikacija smanjuje rizik širenja zlonamjernih DLL datoteka unutar sustava. Forenzička analiza sustavskih logova i planovi za odgovor na incidente dodatno osiguravaju brzu identifikaciju i sanaciju napada. Edukacija zaposlenika i korisnika ostaje ključna jer mnogi napadi počinju phishing kampanjama; korisnici moraju biti svjesni opasnosti preuzimanja sumnjivih aplikacija i učitavanja neprovjerenih datoteka. Uz to, primjena pravila najmanjeg povjerenja (Zero Trust), gdje se korisnicima omogućava isključivo onaj pristup koji je nužan za njihov posao, dodatno smanjuje mogućnost kompromitiranja sustava. Kombinacija tehničkih mjera, edukacije i stalnog praćenja sigurnosnih prijetnji ključ je uspješne prevencije napada koji koriste DLL sideloading. ===== Zaključak ===== DLL sideloading predstavlja ozbiljnu prijetnju računalnoj sigurnosti, jer napadači koriste ovu tehniku kako bi izbjegli detekciju i kompromitirali legitimne aplikacije. Korištenjem manipulacije DLL datotekama, napadači mogu ubaciti zlonamjerni kod u sustav bez izazivanja sumnje, što omogućava krađu osjetljivih podataka i proširenje napada na cijele mreže. Antivirusni programi i druge sigurnosne mjere često ne prepoznaju ovu tehniku zbog njezine suptilnosti, što čini prevenciju i detekciju izazovnijima. Međutim, uz implementaciju odgovarajućih tehničkih mjera, poput sigurnosnih postavki za DLL učitavanje, validacije digitalnih potpisa, te redovnog ažuriranja sustava i aplikacija, moguće je značajno smanjiti rizik od ovakvih napada. Također, edukacija korisnika o opasnostima sumnjivih aplikacija i primjena sigurnosnih principa poput Zero Trust modela dodatno pridonoše smanjenju mogućnosti za uspješan napad. Stoga, kombinacija tehničkih rješenja, proaktivnog praćenja i svijesti o sigurnosnim prijetnjama ključna je za zaštitu sustava od DLL sideloading napada. ===== Literatura ===== * [AhnLab - DLL Side-Loading](https://asec.ahnlab.com/en/60792) * [ESET Research - Lazarus Group](https://www.welivesecurity.com/en/eset-research/lazarus-luring-employees-trojanized-coding-challenges-case-spanish-aerospace-company) * [Microsoft - DLL Search Order](https://learn.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order) * [Cybereason - DLL Side-Loading](https://www.cybereason.com/blog/threat-analysis-report-dll-side-loading-widely-abused) * [Microsoft - Secure Loading of Libraries](https://support.microsoft.com/en-us/topic/secure-loading-of-libraries-to-prevent-dll-preloading-attacks-d41303ec-0748-9211-f317-2edc819682e1) Video se nalazi na linku: [[https://ferhr-my.sharepoint.com/:v:/g/personal/js53199_fer_hr/EZq93T1nzDJKm9J006QARuYBG_JSrHU7TQ6W-6HJFwEcaQ?nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJPbmVEcml2ZUZvckJ1c2luZXNzIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXciLCJyZWZlcnJhbFZpZXciOiJNeUZpbGVzTGlua0NvcHkifX0&e=VSpQqx]]