Clienții platformei cloud Microsoft Azure care utilizează Linux în mașinile virtuale s-au confruntat cu o vulnerabilitate critică (CVE-2021-38647) care permite execuția de cod de la distanță cu privilegii de root. Vulnerabilitatea este cunoscută sub numele de OMIGOD și este notabilă deoarece problema este prezentă în aplicația OMI Agent, care este instalată discret în medii Linux.
OMI Agent este instalat și activat automat la utilizarea unor servicii precum Azure Automation, Azure Automatic Update, Azure Operations Management Suite, Azure Log Analytics, Azure Configuration Management, Azure Diagnostics și Azure Container Insights. De exemplu, sunt expuse atacurilor mediile Linux din Azure pentru care este activat monitorizarea. Agentul face parte din pachetul deschis OMI (Open Management Infrastructure Agent) cu implementarea stivei DMTF CIM/WBEM pentru gestionarea infrastructurii IT.
OMI Agent este instalat în sistem sub utilizatorul omsagent și creează setări în /etc/sudoers pentru a rula o serie de scripturi cu privilegii de root. În procesul de funcționare a unora dintre servicii, sunt create socket-uri de rețea ascultătoare pe porturile de rețea 5985, 5986 și 1270. Scanarea în serviciul Shodan arată că în rețea există peste 15.000 de medii Linux vulnerabile. În prezent, un prototip funcțional al exploit-ului este deja disponibil public, permițând executarea de cod cu privilegii de root pe astfel de sisteme.
Problema este agravată de faptul că în Azure nu este documentat clar utilizarea OMI și OMI Agent este instalat fără avertisment — este suficient să acceptați termenii serviciului ales la configurarea mediuului și OMI Agent va fi activat automat, adică majoritatea utilizatorilor nu suspectează chiar prezența acestuia.
Metoda de exploatare este trivială — este suficient să trimiteți o cerere XML agentului, eliminând antetul responsabil pentru autentificare. OMI utilizează autentificarea la primirea mesajelor de control, verificând că clientul are dreptul să trimită comanda respectivă. Esența vulnerabilității constă în faptul că, prin eliminarea antetului „Authentication” în mesaj, responsabile pentru autentificare. serverul consideră trecerea verificării ca fiind reușită, acceptă mesajul de control și permite executarea comenzilor cu drepturi de root. Pentru a executa comenzi arbitrare în sistem, este suficient să folosiți în mesaj comanda standard ExecuteShellCommand_INPUT. De exemplu, pentru a rula utilitarul „id”, este suficient să trimiteți o solicitare: curl -H "Content-Type: application/soap+xml;charset=UTF-8" -k --data-binary "@http_body.txt" https://10.0.0.5:5986/wsman …
id
0
Compania Microsoft a lansat deja actualizarea OMI 1.6.8.1 cu remedierea vulnerabilității, dar aceasta nu a fost încă distribuită utilizatorilor Microsoft Azure (în mediile noi, este instalată versiunea veche a OMI). Actualizarea automată a agentului nu este suportată, deci utilizatorii trebuie să efectueze actualizarea manual a pachetului, folosind comenzile „dpkg -l omi” în Debian/Ubuntu sau „rpm -qa omi” în Fedora/RHEL. Ca soluție temporară de protecție, se recomandă blocarea accesului la porturile de rețea 5985, 5986 și 1270.
Pe lângă CVE-2021-38647, OMI 1.6.8.1 a remediat și alte trei vulnerabilități (CVE-2021-38648, CVE-2021-38645 și CVE-2021-38649), care permit unui utilizator local fără privilegii să își execute codul cu drepturi de root.
Sursa: opennet.ro
