Autor: CERT-EE
Stack Clash on mitmete operatsioonisüsteemide mäluhalduse haavatavus, mis mõjutab Linuxi, OpenBSD, NetBSD, FreeBSD ja Solarise i386 ja amd64 operatsioonisüsteeme. Konkreetset haavatavust on võimalik ära kasutada mälu rikkumiseks ning omavoliliseks koodi käivitamiseks. Pärast haavatuse ilmsikstulekut arendas Qualys seitse erinevat eksploiti ning seitse kontseptsiooni tõestust. Seejärel arendati koos tarnijatega vastavad turvapaigad. Turvapaigad on kättesaadavad alates 19. juunist ning tuletame meelde, et väljatöötatud turvapaikade kohene paigaldamine on rangelt soovituslik.
Pinu kollisioon
Iga arvutil jooksev programm kasutab spetsiaalselt mäluregiooni, mida nimetatakse pinuks (stack). Mäluregioon on eriline, kuna see kasvab automaatselt, kui programmil ilmneb vajadus rohkema pinu-mälu järele. Kuid kui mäluregioon kasvab liiga kiiresti ning jõuab teisele mäluregioonile liiga lähedale, võib programm pinu teise mäluregiooniga segamini ajada, mis omakorda lubab kurjategijal seda segadust ära kasutada ning pinu teiste mäluregiooniga üle kirjutada (või siis risti vastupidi toimida). Just selle järgi on haavatavus ka oma nime saanud. Esimene samm selle haavatavuse ärakasutamisel on pinu kollisioon teise mäluregiooniga, millest tulenevalt ka nimi.
Uus haavatavus?
Ühene vastus on – Ei! Esimest korda kasutati pinu kollisiooni ära 2005. aastal ning järgmine kord alles 2010. aastal. Pärast 2010. aasta haavatavust arendas Linux sarnaste ärakasutamiste vastu kaitsemeetodi – niinimetatud pinu kaitseleht. Praeguseks teame aga, et pinu kollisioonid on laiaulatuslikud ning hoolimata pinu kaitselehest siiski ärakasutatavad.
Üks või mitu haavatavust?
Peamine Stack Clashi haavatavus on CVE-2017-1000364 ning see demonstreerib, et mõne kilobaidi suurune pinu kaitseleht on ebapiisav. Teemat lähemalt uurides tuvastati rohkem haavatavusi. Mõned neist on sekundaarsed ning avalduvad vaid pärast Stack Clashi haavatavuse ärakasutamist, näiteks CVE-2017-1000365, kuid on ka eraldi ärakasutatavaid haavatavusi nagu näiteks CVE-2017-1000367.
Kas Stack Clash mõjutab ka mind?
Juhul, kui Sa oled i386 või amd64 arhitektuuriga Linuxi, OpenBSD, NetBSD, FreeBSD või Solarise kasutaja, on vastus – Jah! Teised operatsioonisüsteemid võivad samuti haavatavad olla, kuid neid ei ole konkreetse haavatavuse osas hetkel lähemalt uuritud.
Stack Clashi ohud?
Konkreetse uurimise käigus tuvastati ainult lokaalne privileegide eskaleerimine – ründaja, kellel on mõjutatud süsteemile ükskõik milline ligipääs, saab Stack Clash haavatavust kasutades omandada root-kasutaja õiguse. Praeguseks ei ole tuvastatud, et haavatavus lubaks kaugligipääsu. Siiski ei saa selle olemasolu välistada.
Mida mina teha saan?
Uuendada, uuendada, uuendada! 19. juunil väljastati turvapaigad, mille iga kasutaja omale ise paigaldada saab. Juhul kui kasutaja ei saa või ei taha oma süsteemi taaskäivitada, saab ta oma lokaalsele kasutajale teha RLIMIT_STACK ja RLIMIT_AS välistele teenustele mõistlikult väikese väärtusega. Selle tegevuse käigus tuleb siiski meeldes pidada, et etteantud väärtused ei pruugi olla piisavalt madalad kõikidele rünnetele vastupidamiseks. Näiteks osadel juhtudel kasutab Sudo pinu kollisiooni haavatavus vaid 137 MB kuhimälu (heap-memory) ning peaagu mitte üldsegi pinumälu. Samuti võib juhtuda, et seatud väärtused on liiga madalad ning tegelikud rakendused lakkavad töötamast.
Lisainfot leiab linkidelt: