Pomanjkljivost v paketu Sudo uporabnikom Linuxa omogoča izvajanje korenskih ukazov
V programskem paketu Sudo – enem najpomembnejših, najmočnejših in najpogosteje uporabljanih pripomočkov, ki je osnovni ukaz, nameščen v skoraj vseh operacijskih sistemih, temelječih na UNIX-u in Linuxu, so odkrili ranljivost.
Ranljivost v paketu Sudo
Ranljivost zadeva ‘bypass’ varnostne politike Sudo, ki lahko zlonamernemu uporabniku ali programu dovoli izvrševanje poljubnih ukazov kot ‘root’ uporabnik v ciljnem sistemu Linux, tudi če ‘sudoersa configuration’ izrecno onemogoči korenski dostop.
Sudo pomeni ‘superuser do’ in je sistemski ukaz, ki uporabniku omogoča zagon aplikacij ali ukazov s privilegiji drugega uporabnika brez preklopa okolij – najpogosteje za izvajanje ukazov kot korenski uporabnik.
Kako deluje?
Privzeto v večini distribucij Linuxa, ključna beseda ALL v specifikaciji RunAs v datoteki /etc/sudoers, kot je prikazano na posnetku zaslona, vsem uporabnikom v skupini admin ali sudo omogoča izvajanje katerega koli ukaza kot kateri koli veljavni uporabnik v sistemu.
Ločitevanje uporabniških privilegijev je ena temeljnih varnostnih paradigem v okolju Linux, tako da lahko skrbniki nastavljajo datoteko sudoers in določijo, kateri uporabniki lahko določene ukaze izvajajo. Torej tudi če je uporabniku omejeno izvajanje ukazov kot korenskega, lahko ranljivost v paketu Sudo uporabniku omogoči, da zaobide to varnostno politiko in prevzame popoln nadzor nad sistemom.
»Uporabnik z zadostnimi privilegiji sudo lahko to uporabi za izvajanje ukazov kot root, tudi če specifikacija Runas izrecno onemogoči dostop do root pravic dokler je ključna beseda ‘ALL’ najprej navedena v specifikaciji Runas«, pravijo razvijalci Sudo.
Kako izkoristiti napako?
Ranljivost označeno kot CVE-2019-14287 je odkril Joe Vennix iz Apple Information Security in je zelo zaskrbljujoča, ker je pripomoček sudo zasnovan tako, da uporabnikom dovoljuje uporabo lastnega gesla za prijavo za izvajanje ukazov kot drug uporabnik, ne da bi pri tem potreboval geslo.
Še bolj zanimivo je, da lahko to pomankljivost napadalec izkoristi za izvajanje ukazov kot root samo z navedbo ID uporabnika: “-1” ali “4294967295.”
To je zato, ker funkcija, ki pretvarja ID uporabnika v uporabniško ime, napačno obravnava -1 ali njegov nepodpisani ekvivalent 4294967295 kot je 0, kar je vedno uporabniški ID root uporabnika.
Poleg tega če ID uporabnika, ki je določen preko »-u« opcije, ne obstaja v bazi gesla, se ne bodo zagnali nobeni PAM moduli seje.
Ranljivost vpliva na vse različice Sudo pred zadnjo izdano različico 1.8.28, ki je izšla pred nekaj dnevi in bi jo kmalu uvedli kot posodobitev različnih distribucij Linuxa.
V primeru uporabe okolja Linux močno priporočamo, da sam paket sudo ročno posodobite na najnovejšo različico, takoj ko bo na voljo.
Priporočamo redne varnostne preglede vaše strežniške infrastrukture, saj tako zagotovite, da so na strežnikih nameščeni zadnji varnostni popravki na vseh strežniških platformah. Ter se tako izognete ranljivostim, ki jih lahko napadalci izkoristijo.
Če vas zanima več o ranljivostih in varnosti vaših platform in strežnikov, nas kontaktirajte in naša strokovna ekipa bo poiskala najprimernejšo rešitev za vaš sistem.
Prispevek je pripravil Janez Peršin.