Cum se scanează și se remediază vulnerabilitatea Log4j?

Defectul de securitate Log4j reprezintă una dintre cele mai grave amenințări din sfera sistemelor moderne.

Înregistrarea evenimentelor este o componentă esențială a aplicațiilor contemporane, iar biblioteca de înregistrare Log4j este un lider în acest domeniu.

Această bibliotecă este utilizată într-o mare parte dintre aplicații, servicii și sisteme. Prin urmare, toate aplicațiile care folosesc Log4j sunt expuse vulnerabilității descoperite anul trecut.

Odată cu creșterea preocupărilor legate de securitatea cibernetică la nivel global, organizațiile și persoanele fizice adoptă măsuri pentru a-și proteja aplicațiile, sistemele și datele.

Descoperirea acestei vulnerabilități a generat un stres suplimentar pentru specialiști și companii.

Prin urmare, identificarea și remedierea vulnerabilității Log4j este crucială pentru protejarea datelor, rețelei, reputației și încrederii clienților.

Acest articol va explora natura vulnerabilității Log4j, alături de pașii necesari pentru a o detecta și remedia.

Începem cu o înțelegere a Log4j și a rolului său.

Ce este Log4j?

Log4j este un instrument open-source de înregistrare, scris în limbajul Java, utilizat în principal pentru stocarea, formatarea și publicarea înregistrărilor jurnalizate generate de aplicații și sisteme, precum și pentru verificarea erorilor. Înregistrările pot varia de la date de pagini web și browsere până la informații tehnice despre sistemul pe care rulează Log4j.

În loc să scrie cod de la zero, dezvoltatorii pot utiliza biblioteca Log4j prin integrarea codului său în aplicațiile proprii.

Cu Log4j, dezvoltatorii pot monitoriza toate evenimentele legate de aplicațiile lor cu detalii precise de înregistrare. Acest lucru îi ajută să urmărească aplicațiile, să identifice problemele în timp util și să remedieze erorile înainte ca acestea să escaladeze într-o problemă mai mare de performanță sau securitate.

Această bibliotecă bazată pe Java a fost creată de Ceki Gülcü și lansată în 2001 sub licența Apache 2.0. Utilizează serviciile Java Naming and Directory Interface (JNDI) pentru a permite aplicațiilor să interacționeze cu alte aplicații, precum LDAP, DNS, CORBA etc., și să obțină funcționalități de directoriu și denumire pentru aplicațiile bazate pe Java. Log4j are trei componente principale pentru a-și îndeplini funcțiile:

  • Loggeri pentru a capta înregistrările jurnalizate
  • Aspecte pentru a formata înregistrările jurnalului în diverse stiluri
  • Destinații pentru publicarea înregistrărilor jurnalizate în diverse locații

Log4j este, de fapt, una dintre cele mai populare biblioteci de înregistrare de pe internet și este folosită de organizații din diverse sectoare și țări. Această bibliotecă de înregistrare a fost integrată în numeroase aplicații, inclusiv servicii cloud majore de la Google, Microsoft, Apple, Cloudflare, Twitter etc.

Dezvoltatorul său, Apache Software Foundation, a creat Log4j 2, o actualizare a Log4j pentru a rezolva problemele identificate în versiunile anterioare. Anul trecut, a fost descoperită o vulnerabilitate în Log4j, care, dacă nu este remediată, poate permite atacatorilor să pătrundă în aplicații și sisteme, să fure date, să infecteze rețele și să efectueze alte activități rău intenționate.

Să analizăm mai detaliat.

Ce este Log4Shell – Vulnerabilitatea Log4j?

Log4Shell este o vulnerabilitate critică de securitate cibernetică a bibliotecii Log4j, care afectează funcționarea de bază a bibliotecii. Permite unui atacator să controleze un dispozitiv sau o aplicație conectată la internet prin execuția de cod de la distanță. Odată ce reușesc acest lucru, pot:

  • Rula orice cod pe dispozitiv sau sistem
  • Accesa toate rețelele și datele
  • Modifica sau cripta orice fișier de pe aplicația sau dispozitivul afectat

Această vulnerabilitate a fost raportată pentru prima dată la 24 noiembrie 2021, de către Chen Zhaojun, un cercetător în securitate de la Alibaba (un gigant chinez în comerțul electronic). Vulnerabilitatea a afectat serverele lor Minecraft, descoperirea fiind făcută de echipa de securitate cloud a Alibaba pe 9 decembrie.

Ulterior, NIST a inclus această vulnerabilitate în National Vulnerability Database, denumind-o CVE-2021-44228. Apache Software Foundation a evaluat ulterior această vulnerabilitate cu un scor de 10 în severitatea CVSS. Acest lucru este rar atribuit și indică o gravitate extremă, deoarece are potențialul de a fi exploatată pe scară largă și ușor, cauzând daune majore organizațiilor și persoanelor fizice.

Ca răspuns, Apache a lansat un patch pentru această vulnerabilitate, dar unele aspecte au rămas nerezolvate, ducând la alte vulnerabilități:

  • CVE-2021-45046, care a facilitat atacurile de tip Denial of Service (DoS) prin căutări JNDI
  • CVE-2021-45105, care permite hackerilor să controleze informațiile Thread Context Map și să provoace atacuri DoS prin interpretarea unui șir creat
  • CVE-2021-44832, care afectează toate versiunile Log4j 2 prin injecție de cod la distanță (RCE)

Cum funcționează Log4Shell?

Pentru a înțelege gravitatea și potențialul distructiv al Log4Shell, este relevant să analizăm modul în care funcționează această vulnerabilitate Log4j.

Vulnerabilitatea Log4Shell permite unui atacator să injecteze de la distanță orice cod arbitrar într-o rețea și să obțină control total asupra acesteia.

Secvența acestui atac cibernetic începe cu biblioteca de înregistrare, precum Log4j, care colectează și stochează informațiile din jurnal. În lipsa unei biblioteci de înregistrare, toate datele de pe server ar fi arhivate imediat după colectarea lor.

Cu toate acestea, dacă doriți să analizați aceste date sau să efectuați acțiuni pe baza unor informații specifice din jurnal, veți avea nevoie de o bibliotecă de jurnal pentru a analiza datele înainte de a fi arhivate.

Din cauza vulnerabilității Log4j, orice sistem sau aplicație care folosește Log4j devine susceptibilă la atacuri cibernetice. Biblioteca de jurnalizare execută cod în funcție de intrarea primită. Un hacker poate forța biblioteca de jurnal să execute cod dăunător, deoarece vulnerabilitatea le permite să manipuleze intrarea.

În culise se întâmplă multe procese. Când Log4j primește un șir special conceput, va apela un server LDP și va descărca codul stocat în directorul său pentru a executa codul. În acest fel, atacatorii pot crea un server LDAP pentru a găzdui cod rău intenționat, care îi poate ajuta să controleze orice server pe care este executat codul. Apoi, va trimite un șir de caractere care direcționează codul rău intenționat către o aplicație sau un sistem vizat și va prelua controlul complet al acestuia.

Iată cum poate fi exploatată vulnerabilitatea Log4j:

  • Un atacator identifică un server cu o versiune vulnerabilă de Log4j.
  • Acesta va trimite serverului țintă o cerere de obținere cu linkul către serverul LDAP rău intenționat.
  • Serverul țintă, în loc să verifice cererea, se va conecta direct la serverul LDAP.
  • Atacatorii vor trimite serverul țintă un răspuns de server LDAP care conține cod rău intenționat. Datorită vulnerabilității Log4j, care permite primirea codului și executarea acestuia fără verificare, hackerul poate exploata această slăbiciune pentru a pătrunde în serverul țintă și a exploata sistemele, rețelele și dispozitivele conectate.

Cum poate afecta vulnerabilitatea Log4j utilizatorii?

Vulnerabilitatea Log4j este îngrijorătoare datorită utilizării sale extinse într-o varietate de aplicații și sisteme software.

Deoarece înregistrarea în jurnal este o caracteristică esențială în majoritatea aplicațiilor software, iar Log4j este o soluție lider în domeniu, Log4j este utilizat într-o diversitate de sisteme software.

Unele dintre serviciile și aplicațiile populare care folosesc Log4j includ Minecraft, AWS, iCloud, Microsoft, Twitter, routere de internet, instrumente de dezvoltare software, instrumente de securitate și multe altele. Prin urmare, atacatorii pot viza un număr mare de aplicații, servicii și sisteme, de la utilizatori casnici la dezvoltatori de cod, furnizori de servicii și alți profesioniști și persoane afiliate.

Mai mult, vulnerabilitatea Log4j este extrem de ușor de exploatat de către un atacator. Procesul general nu necesită competențe de nivel expert pentru a efectua un atac. Acesta este motivul pentru care numărul atacurilor care exploatează această vulnerabilitate este în creștere.

Impactul vulnerabilității Log4j include:

  • Atacuri DoS
  • Atacuri asupra lanțului de aprovizionare
  • Exploatarea monedelor digitale
  • Injecții de malware, cum ar fi ransomware și troieni
  • Injecția de cod arbitrar
  • Execuția de cod la distanță

Și altele.

Ca urmare a acestor atacuri, puteți pierde controlul asupra aplicațiilor, sistemelor și dispozitivelor, iar datele dvs. pot cădea în mâinile atacatorilor, care le pot vinde, manipula sau expune publicului. Prin urmare, afacerea dvs. poate fi afectată în ceea ce privește confidențialitatea datelor clienților, încrederea, secretele organizaționale și chiar vânzările și veniturile, fără a menționa riscurile de conformitate.

Conform unui raport, peste 40% dintre rețelele corporative globale au fost atacate ca urmare a acestei vulnerabilități.

Chiar dacă nu utilizați versiuni vulnerabile de Log4j în aplicațiile dvs., integrările terțe pot utiliza una, ceea ce face ca aplicația dvs. să fie susceptibilă la atacuri.

Rețineți că toate versiunile Log4j anterioare lui Log4j 2.17.0 sunt afectate; prin urmare, trebuie să actualizați loggerul dacă îl folosiți. De asemenea, furnizorii importanți afectați de această vulnerabilitate Log4j includ Adobe, AWS, IBM, Cisco, VMware, Okta, Fortinet etc. Dacă utilizați oricare dintre aceștia, monitorizați-vă continuu aplicațiile și folosiți sisteme de securitate pentru a remedia problemele imediat ce apar.

Cum să detectați programele afectate de Log4j și să remediați problemele

Vulnerabilitatea Log4Shell are un scor CVSS de 10. Prin urmare, toate problemele din Log4j nu sunt încă rezolvate. Cu toate acestea, există posibilitatea ca dvs. sau furnizorul dvs. terță parte să utilizați Log4j în aplicația dvs.

Prin urmare, pentru a vă proteja datele, sistemele și rețeaua, trebuie să urmați câțiva pași de remediere.

#1. Actualizați-vă versiunea Log4j

Actualizarea versiunii dvs. curente de Log4j la Log 4j 2.17.1 este cea mai eficientă metodă de remediere pentru a vă proteja dispozitivul și aplicațiile împotriva atacurilor cauzate de vulnerabilitatea Log4j.

Log4Shell este un tip de atac zero-day, care vă poate afecta ecosistemul software. Apache a remediat unele dintre vulnerabilitățile din versiunile recente, dar dacă sistemul dvs. a fost compromis înainte de actualizare, sunteți în continuare expus riscului.

Prin urmare, nu este suficient să actualizați doar versiunea, ci trebuie să începeți imediat procedurile de răspuns la incident pentru a vă asigura că nu există vulnerabilități în sistemele și aplicațiile dvs. și pentru a atenua atacurile. De asemenea, verificați toate jurnalele de server pentru a găsi indicii de compromitere (IOC) și monitorizați constant sistemele și rețeaua.

#2. Utilizați cele mai recente firewall-uri și sisteme de securitate

Firewall-urile precum Web Application Firewall (WAF) și firewall-urile de ultimă generație vă pot proteja perimetrul rețelei de atacatori prin scanarea pachetelor de date primite și trimise și blocarea celor suspecte. Prin urmare, utilizați cele mai recente firewall-uri de rețea și setați reguli stricte de ieșire pe serverele dvs. pentru a preveni atacurile legate de vulnerabilitatea Log4j.

Deși atacatorii pot ocoli firewall-urile, veți obține totuși un anumit nivel de securitate cu firewall-uri capabile să blocheze solicitările unui atacator.

În plus, actualizați toate sistemele dvs. de securitate, cum ar fi sistemele de detectare a intruziunilor (IDS), sistemele de prevenire a intruziunilor (IPS) etc., cu cele mai recente semnături și reguli. Aceste sisteme vor bloca sau filtra traficul RMI și LDAP de la conectarea la un server LDAP rău intenționat.

#3. Implementați MFA

Configurarea autentificării cu mai mulți factori (MFA) în aplicațiile și sistemul dvs. va oferi o securitate îmbunătățită împotriva atacatorilor. Aceasta va adăuga un al doilea strat de securitate, chiar dacă un atacator reușește să depășească primul strat. Puteți face acest lucru prin biometrie, cum ar fi amprentele digitale, scanarea irisului etc., prin setarea unei întrebări de securitate sau prin activarea unui cod PIN de securitate.

Utilizarea MFA va crește dificultatea și timpul necesar atacatorilor pentru a efectua un atac complet. Între timp, vă poate informa imediat despre incident, astfel încât să puteți lua măsurile de remediere necesare la timp.

De asemenea, ar trebui să aplicați politici VPN stricte pentru a reduce încălcările de date. Aceasta va permite utilizatorilor să acceseze sistemele în siguranță de oriunde, fără a se teme de atacatori.

#4. Modificați proprietățile sistemului

În cazul în care nu puteți face upgrade la cea mai recentă versiune a bibliotecii Log4j, trebuie să modificați imediat proprietățile sistemului Java dacă utilizați o versiune între Log4j 2.10 și Log4j 2.14.1.

Trebuie să configurați sistemul pentru a preveni căutările utilizate de atacatori pentru a identifica vulnerabilitățile și pentru a găsi modalități de a le exploata.

#5. Eliminați JNDI

Motivul acestei vulnerabilități critice de securitate constă în modul său de proiectare. Pluginul JNDI Lookup are un defect de proiectare care permite atacatorilor să efectueze un atac.

JNDI este folosit pentru executarea codului în funcție de datele de intrare din jurnalul său, pe care oricine le poate manipula cu ușurință, deoarece loggerul acceptă orice cerere fără verificare.

Cercetătorii în securitate au descoperit că acest plugin a permis accesul la date neanalizate de la lansarea sa în 2013 și le-a trimis la biblioteca Log4j.

Prin urmare, vulnerabilitatea Log4j este susceptibilă la exploatare prin simpla injectare a unui șir. Odată ce atacatorul injectează șirul, loggerul va accepta operația solicitată în șir și o va executa imediat, fără verificare.

Deci, dacă doriți să vă securizați sistemele și aplicația, trebuie să dezactivați clasa – JndiLookup. Aceasta va împiedica loggerul să ia măsuri bazate pe datele din jurnal.

De fapt, căutarea JNDI este deja dezactivată în Log4j 2.16.0 în mod implicit, ca o încercare de a vă securiza aplicațiile și sistemele.

Așadar, dacă utilizați o versiune Log4j mai mică de 2.16.0, asigurați-vă că dezactivați căutarea JNDI.

#6. Discutați cu furnizorii dvs

Chiar dacă ați luat toate măsurile, inclusiv firewall-uri și sisteme de securitate actualizate, versiunea Log4j actualizată, căutarea JNDI dezactivată etc., nu vă relaxați.

Chiar dacă nu utilizați o versiune vulnerabilă de Log4j în aplicațiile dvs., furnizorii terți ar putea să o folosească. Așadar, nu veți ști niciodată cum a fost piratată aplicația sau sistemul dvs., deoarece problema reală a fost cu integrarea dvs. terță parte.

Prin urmare, discutați cu furnizorii și asigurați-vă că și aceștia au actualizat Log4j la cea mai recentă versiune și au implementat celelalte practici de securitate menționate mai sus.

#7. Utilizați un scaner de vulnerabilități Log4j

Există multe instrumente de scanare a vulnerabilităților Log4j disponibile pe piață, care vă pot ajuta să detectați vulnerabilitățile Log4j din sistemele și aplicațiile dvs.

Atunci când evaluați aceste instrumente, verificați ratele lor de acuratețe, deoarece multe dintre ele generează rezultate false pozitive. Alegeți un instrument care răspunde nevoilor dvs., deoarece acestea pot fi specializate în identificarea vulnerabilității Log4j, raportarea expunerii sau remedierea vulnerabilității.

Așadar, dacă vă concentrați pe detectare, alegeți un scaner de vulnerabilități Log4j care poate identifica problema, sau unul care poate identifica și remedia problema.

Unele dintre cele mai bune instrumente de scanare Log4j sunt:

  • Microsoft 365 Defender: Microsoft oferă o gamă de soluții și instrumente de securitate pentru a vă ajuta să detectați și să preveniți exploatările Log4j în rețeaua dvs. Veți putea identifica tentativele de execuție și exploatare a codului de la distanță, protejându-vă de vulnerabilitățile Log4j din dispozitivele Windows și Linux.
  • Amazon Inspector și AWS: Amazon a creat un instrument de scanare pentru a găsi vulnerabilitatea Log4j în instanțele Amazon EC2 și Amazon ECR.
  • CloudStrike Archive Scan Tool (CAST): CloudStrike a creat, de asemenea, un instrument de scanare excelent pentru a detecta vulnerabilitatea Log4j, care vă ajută să remediați problemele în timp util, înainte ca atacatorii să le poată exploata.
  • Detectarea Google Cloud Logging: soluția Google de detectare a înregistrărilor în cloud vă permite să identificați exploatările Log4j cu ajutorul Logs Explorer. Puteți crea o interogare de jurnal în acest instrument și puteți scana pentru eventuale șiruri de exploatare.
  • Google a creat, de asemenea, log4jscanner, un scaner de sistem de fișiere open-source pentru detectarea vulnerabilității Log4j.
  • Scaner BurpSuite Log4j: Acesta este un plugin de securitate pentru profesioniști și companii, pentru a-i ajuta să detecteze vulnerabilitatea Log4j.
  • Huntress Log4Shell Vulnerability Tester: Acest instrument generează un identificator unic la întâmplare, pe care îl puteți utiliza în timpul testării câmpurilor de introducere. La detectarea unei vulnerabilități în aplicație sau în câmpul de introducere, serverul său securizat LDAP va închide imediat conexiunea rău intenționată, menținându-vă în siguranță.
  • WhiteSource Log4j Detect: WhiteSource a creat un instrument CLI gratuit, WhiteSource Log4j Detect, găzduit pe GitHub, pentru a vă ajuta să detectați și să remediați vulnerabilitățile Log4j – CVE-2021-445046 și CVE-2021-44228.
  • Instrumente de scanare open-source JFrog pentru Log4j: JFrog a creat diverse soluții și instrumente open-source pentru a identifica vulnerabilitățile Log4j în fișierele binare și codul sursă.

Concluzie

Vulnerabilitatea Log4j este o problemă critică de securitate. Datorită utilizării sale extinse într-o varietate de aplicații și sisteme, vulnerabilitatea Log4j s-a răspândit pe scară largă, permițând atacatorilor să exploateze o gamă largă de sisteme și aplicații.

Prin urmare, pentru a vă proteja sistemele și aplicațiile de această vulnerabilitate, asigurați-vă că actualizați biblioteca Log4j la cea mai recentă versiune și implementați cele mai bune practici de securitate menționate mai sus.