Autorii de malware folosesc din ce în ce mai des limbaje de programare obscure

de | august 3, 2021 | Știri de securitate cibernetică

limbaje de programare de malware

Autorii de programe malware folosesc tot mai des limbaje de programare rareori observate până acum, cum ar fi Rust, Go, Nim și DLang, pentru a crea noi instrumente și pentru a evita detectarea, au constatat cercetătorii. Potrivit unui raport publicat de BlackBerry Research and Intelligence Team, utilizarea acestor patru limbaje duce la creștea numărului de familii de programe de malware care sunt detectate:

„Aceste limbaje de programare neobișnuite nu mai sunt atât de rar folosite cum se credea cândva. Cu toate acestea, autorii de programe de amenințare au început să le adopte pentru a rescrie familiile de programe malware cunoscute sau pentru a crea instrumente pentru noi seturi de programe malware.”

BlackBerry Research and Intelligence Team

Practic, cercetătorii descoperă tot mai multe programe de încărcare și descărcare care sunt scrise în limbaje mai puțin comune, se arată în raport. „Aceste noi programe malware pentru prima etapă sunt concepute pentru a decoda, încărca și implementa programe malware clasice, cum ar fi Remcos și NanoCore Remote Access Trojan (RAT), precum și Cobalt Strike. De obicei, acestea erau utilizate pentru a ajuta autorii de programe de amenințare să evite detectarea la nivelul terminalului.”

Cu toate acestea, utilizarea Cobalt Strike, un instrument de securitate legitim, a explodat, având în vedere rolul său în atacurile informatice. Astfel a crescut cu 161% de la un an la altul, devenind un element de larg interes în lumea infracțiunilor informatice.

Dezavantajele inovării pentru producătorii de malware

Autorii de programe malware sunt cunoscuți pentru faptul că renunță cu greu la orice proiect. Cu toate acestea, ei sunt bucuroși să adopte un nou limbaj de programare din același motiv ca și omologii lor care respectă legea: ajută la eliminarea punctelor problematice din ciclul de dezvoltare, de exemplu. În plus, din perspectiva autorilor de programe malware, noul limbaj plasează munca lor de creație cu un pas înaintea instrumentelor de protecție. Sau cu doi sau chiar trei pași. Eric Milam, vicepreședinte al echipei de cercetare a riscurilor, a declarat în raport că:

“Malware authors are known for their ability to adapt and modify their skills and behaviors to take advantage of newer technologies. Unfortunately, this has multiple benefits from the development cycle and inherent lack of coverage from protective solutions.”

„Autorii de programe malware sunt cunoscuți pentru capacitatea lor de a se adapta și de a-și modifica abilitățile și comportamentele pentru a profita de noile tehnologii. Din nefericire, acest lucru are mai multe beneficii legate de ciclul de dezvoltare și de lipsa inerentă de acoperire din partea soluțiilor de protecție.”

De asemenea, la fel ca și programatorii non-malware, creatorii de malware trebuie să se protejeze de exploit-uri. Ca exemplu de consolidare a apărării pentru a evita acest lucru, BlackBerry a menționat „EmoCrash”.

Cu aproximativ un an în urmă, James Quinn, cercetător în domeniul securității, a dezvăluit că a dezvoltat un program de dezactivare (kill switch) numit EmoCrash care s-a folosit de o suprasolicitare a bufferului în rutina de instalare a fișierului binar principal al celebrului sistem de furt de informații Emotet, provocând blocarea acestuia și împiedicându-l să infecteze sistemele timp de șase luni. De fapt, el a pregătit deja un vaccin contra Emotet.

APT28’s și APT29 devin din ce în ce mai fluenți în limbajul GO

În ceea ce privește limbajele mai puțin cunoscute, dezvoltatorii de programe malware scriau în mod obișnuit și în principal în Go: un limbaj de uz general, similar cu C++ pentru faptul că este tipizat static și compilat. De fapt, compilatorul său a fost scris inițial în C, deși acum este scris și în Go.

Cercetătorii au declarat că programele malware în limbaj C continuă să fie cele mai răspândite. Cu toate acestea, doi autorii de amenințări din Rusia, APT28 și APT29, au început să utilizeze limbaje mai exotice în seturile de programe malware mai des decât alte bande. APT28 este cunoscut sub numele de Fancy Bear sau Strontium, în timp ce APT29 este cunoscut ca Nobelium, Cozy Bear sau Dukes.

Cercetătorii de la BlackBerry au declarat că Go este acum „unul dintre limbajele „Go-to” pentru operatorii de amenințări”. Aceștia inventează versiuni, atât la nivel de amenințare persistentă avansată (APT), cât și la nivel de produse de bază.

„Noi mostre bazate pe Go apar acum aproape regulat, incluzând programe malware de toate tipurile și vizând toate sistemele de operare majore în cadrul mai multor campanii”, au declarat cercetătorii.

APT28 și APT29 sunt niște bune exemple. APT28, unul nefast, pentru că a intervenit în alegerile prezidențiale din 2016 prin infiltrarea Comitetului Național Democrat. Este conectat cu o gamă largă de atacuri și familii de malware, în special cu familia de malware Zebrocy, care „utilizează special mai multe limbaje de programare neobișnuite în cadrul lanțului său de distrugere”, se arată în raport.

Zebrocy sau Sednit/APT28, Fancy Bear și Strontium sunt folosite de grupul de hackeri Sofacy, care funcționează ca un program de descărcare și colectează date despre gazdele infectate. După cum au spus specialiștii, atunci când mostrele Zebrocy au fost văzute pentru prima dată în 2015, acestea conțineau trei părți:

  • Delphi downloader
  • AutoIT downloader
  • Delphi backdoor

Indiferent de limbajul în care este scris, Zebrocy se răspândește prin intermediul campaniilor de phishing care conțin un troian inițial. Acesta încearcă să comunice cu un server C2 (command-and-control) și apoi execută un program de descărcare pentru a lansa o încărcătură utilă malițioasă prin intermediul unui backdoor instalat. Deși a fost rescris de mai multe ori, „metoda de livrare printr-un atașament de e-mail și funcționalitatea generală rămân în mare parte aceeași”, au explicat cercetătorii.

În cele ce urmează, vom vedea o serie de rescrieri în Go folosite de APT28:

  • 2018: Un troian bazat pe Go, corelat cu APT28, a fost găsit ca versiune Zebrocy cu o variantă rescrisă a programului original de descărcare Delphi.
  • 2019: Cercetătorii au descoperit un program de descărcare Nim împreună cu backdoor-ul Go în aceeași campanie Zebrocy care viza ambasadele și ministerele afacerilor externe din Asia Centrală și Europa de Est.
  • 2020 și anii anteriori: lui APT28 a început să îi placă din ce în ce mai mult Go, folosind alte componente rescrise, esențiale pentru Zebrocy: backdoor payload și downloader. Cel mai recent, APT28 a folosit pandemia COVID-19 ca momeală pentru a livra versiunea Go downloader în decembrie.

În ceea ce privește celălalt grup, APT29 sau Cozy Bear, cunoscut pentru „contribuția” sa la atacurile SolarWinds asupra lanțului de aprovizionare de la începutul anului 2020, a vizat dispozitive Windows și Linux în 2018 cu un troian de acces de la distanță (RAT) numit wellness, scris în Go și .NET.

Cercetătorii au subliniat că cea mai răspândită versiune a lui WellMess este versiunea Go, care vine atât în varianta de 32 de biți, cât și în cea de 64 de biți, sub formă de fișiere PE și ELF, „oferindu-i lui APT29 posibilitatea de a o implementa pe mai multe tipuri de arhitectură și sisteme de operare”.

APT29 se infiltrează, de obicei, în rețeaua victimei, scanând mai întâi adresa IP externă a organizației în căutarea vulnerabilităților și lansând exploit-uri publice împotriva sistemelor slabe. Grupul folosește din ce în ce mai mult variantele Go, inclusiv variantele mai sofisticate WellMess din 2020, pentru a fura cercetări privind vaccinul COVID-19 de la instituții de cercetare academică și farmaceutică din țări din întreaga lume, inclusiv din Statele Unite, Regatul Unit și Canada. Cercetătorii au subliniat că noua versiune, deși scrisă în Go, a devenit mai complexă. De exemplu, APT29 a adăugat mai multe protocoale de comunicare în rețea și capacitatea de a rula scripturi PowerShell după infectare.

Cercetătorii de la Blackberry au declarat că:

„Ambii autori de amenințări sunt încă activi și au efectuat unele dintre cele mai importante atacuri cibernetice rusești de până acum. Activitatea recentă sugerează că aceste grupuri au folosit limbajele de programare neobișnuite menționate în acest document pentru a adăuga complexitate programelor malware, pentru a viza mai multe platforme și pentru a se sustrage detectării.”

Evoluția în timp a limbajelor de programare obscure

sursa: threatpost.com

În afară de Go, alte limbaje mai puțin cunoscute au fost utilizate în tot mai multe familii de programe malware de către alți autori de programe de amenințări în ultimii zece ani. În cronologia furnizată de Blackberry, putem observa că programele malware DLang par să fie limbajul cel mai puțin favorit în peisajul amenințărilor în evoluție, dar a înregistrat o creștere modestă în 2020. Acest lucru ar putea marca o tendință de adoptare mai generală a DLang de către autorii de malware, a estimat raportul.

Potrivit raportului, în legătură cu marea creștere înregistrată, nu este nimic mai umil decât utilizarea stager-ilor („scenariștilor”) inițiali pentru compilarea Cobalt Strike folosind Go și, mai recent, Nim . „Scenariștii” inițiali sunt binarul folosit pentru a accelera prima etapă, accesul inițial prin care se ajunge la descărcarea semnalului Cobalt Strike de pe un TeamServer:

“This server is responsible for serving the beacons themselves. “It is important that defenders stay ahead of the curve in catching Cobalt Strike-related files written in these languages to enhance defensive capability against such a formidable threat.”

„Acest server este responsabil de deservirea semnalelor în sine. Este important ca apărătorii să rămână în față în ceea ce privește identificarea fișierelor asociate cu Cobalt Strike scrise în aceste limbaje pentru a spori capacitatea de apărare împotriva unei amenințări atât de formidabile.”

De ce se folosesc limbaje mai puțin comune?

Echipa Blackberry a evidențiat mai multe motive pentru care utilizarea unor limbaje mai puțin cunoscute îi ajută pe atacatori să își desfășoare acțiunile „răutăcioase”:

1. Compensarea deficitelor în limbajele existente

  • Dezvoltatorii de programe malware ar putea căuta o serie de elemente care le lipsesc în alte limbaje, cum ar fi o sintaxă mai simplă, creșterea performanțelor sau o gestionare mai eficientă a memoriei. În plus, un nou limbaj ar putea fi instrumentul potrivit pentru un anumit mediu vizat. Ca exemplu, raportul a menționat că dispozitivele IoT (internetul lucrurilor) utilizează limbaje de nivel inferior, cum ar fi C sau assembly.

2. Eliminarea ingineriei inverse

  • nu toate instrumentele de analiză a programelor malware sunt compatibile cu limbaje de programare sofisticate. Cercetătorii de la BlackBerry au explicat că: „Binarele scrise în Go, Rust, Nim și DLang pot părea mai complexe, mai complicate și obositoare atunci când sunt dezasamblate, în comparație cu cele tradiționale bazate pe C/C++/C#”.

3. Confuzia în detecția bazată pe semnături

  • pentru a recunoaște o semnătură, aceasta trebuie să fie identică. Un exemplu de caracteristică statică îl reprezintă hașurile. Este nevoie ca fiecare byte să fie identic, fie că este vorba de un hash al unui întreg fișier, fie de un hash al unui certificat și așa mai departe. Noile versiuni de limbaj care extrag aceste caracteristici anterior statice, de cele mai multe ori nu vor reuși să le identifice. Ca exemplu, putem menționa BazarLoader, care a fost scris în Nim.
  • „Semnăturile pentru familiile de malware existente care se bazează pe proprietăți statice au un succes redus în marcarea aceluiași malware odată rescris în aceste limbaje mai obscure. În situații precum Buer și RustyBuer (precum și BazarLoader și NimzaLoader), de obicei trebuie create reguli noi pentru a marca aceste variante tangențial conectate”, au explicat cercetătorii.

4. Suprapunerea peste confuzie

  • atunci când vine vorba de limbaje sofisticate, limbajul în sine poate acționa ca o protecție, având în vedere că este relativ nou. „Limbajele în sine pot avea un efect similar cu cel al obscurizării tradiționale și pot fi folosite pentru a încerca să ocolească măsurile de securitate convenționale și să îngreuneze eforturile de analiză.”

5. Compilarea încrucișată vizează mai eficient Windows și Mac-urile

  • un creator de programe maligne poate dezvolta o versiune de malware și o poate compila încrucișat pentru a viza mai multe arhitecturi și sisteme de operare utilizate în majoritatea companiilor. Creatorii de programe malware au astfel nevoie de mai puține instrumente pentru a ținti rețelele și pot arunca o plasă mai largă cu mai puțină muncă.

6. Un câine bătrân învățând trucuri noi

  • conform articolului, dezvoltatorii de programe malware folosesc droppers și loaders scrise în limbaje diferite pentru a îmbunătăți programele malware vechi scrise în limbaje tradiționale precum C++ și C#.
  • Din nou, acest lucru economisește o mulțime de muncă, deoarece autorul poate sări peste procesul laborios de recodificare a malware-ului și, în schimb, poate pur și simplu să îl împacheteze într-o nouă metodă de livrare rescrisă a dropper-ului sau a loader-ului.

Considerații finale

Inginerii de software și cercetătorii din domeniul amenințărilor vor avea o șansă mai mare de a descoperi aceste familii de malware în mai multe limbaje dacă vor folosi semnături dinamice sau comportamentale, semnături care etichetează comportamentul prin intermediul rezultatelor sandbox, al detecției și răspunsului (EDR) sau al datelor de autentificare, potrivit Blackberry.

Cercetătorii spun că utilizarea regulilor de detecție agnostice la implementare pentru a marca comportamentele dinamice poate fi de ajutor în cazul în care semnăturile statice eșuează, deoarece programele malware se comportă adesea în același mod, chiar și atunci când sunt înregistrate. Raportul a concluzionat că:

„În alte circumstanțe, cum ar fi încărcătoarele de cod shell, care adesea se injectează în procese folosind un subset limitat de apeluri API Windows, acestea pot fi identificate folosind acest subset limitat.”

Va dura ceva timp până când instrumentele de analiză a mostrelor de malware vor ține pasul cu aceste noi limbaje. Totuși, este „imperativ” pentru comunitatea de securitate să „rămână proactivă în apărarea împotriva utilizării malițioase a tehnologiilor și tehnicilor emergente”, spune Blackberry!

Milam, de la Blackberry, a recomandat că este vital ca industria și clienții să recunoască și să monitorizeze aceste tendințe, deoarece ele vor continua să crească.

Surse:

by Andreea Popa

Content writer for Attack Simulator, delivering your daily dose of awareness for cyber security! Love to write passionately about any subject and my mainly inspiration are people's stories. You can also find me on social media, for some more friendly things!

Nu există niciun motiv pentru a amâna instruirea angajaților.

Solicitați o ofertă bazată pe nevoile organizației dvs. și începeți să construiți o infrastructură puternică de securitate cibernetică chiar astăzi.