Jebkura pakalpojuma izveide obligÄti ietver pastÄvÄ«gu darbu pie droŔības. DroŔība ir nepÄrtraukts process, kas ietver pastÄvÄ«gu produktu droŔības analÄ«zi un uzlaboÅ”anu, ziÅu uzraudzÄ«bu par ievainojamÄ«bÄm un daudz ko citu. Ieskaitot auditus. Auditus veic gan iekÅ”Äji, gan ÄrÄji eksperti, kuri var radikÄli palÄ«dzÄt droŔības jomÄ, jo viÅi nav iedziļinÄjuÅ”ies projektÄ un ir atvÄrti.
Raksts ir par Å”o vistieÅ”Äko ÄrÄjo ekspertu viedokli, kuri palÄ«dzÄja Mail.ru Cloud Solutions (MCS) komandai pÄrbaudÄ«t mÄkoÅpakalpojumu, un par to, ko viÅi atrada. KÄ āÄrÄjais spÄksā MCS izvÄlÄjÄs Digital Security uzÅÄmumu, kas pazÄ«stams ar savu augsto pieredzi informÄcijas droŔības aprindÄs. Un Å”ajÄ rakstÄ mÄs analizÄsim dažas interesantas ievainojamÄ«bas, kas tika atklÄtas ÄrÄjÄ audita ietvaros, lai, veidojot savu mÄkoÅpakalpojumu, izvairÄ«tos no tÄ paÅ”a grÄbekļa.
ŠŠæŠøŃŠ°Š½ŠøŠµ ŠæŃŠ¾Š“ŃŠŗŃŠ°
Mail.ru mÄkoÅa risinÄjumi (MCS) ir platforma virtuÄlÄs infrastruktÅ«ras veidoÅ”anai mÄkonÄ«. Tas ietver IaaS, PaaS un gatavu lietojumprogrammu attÄlu tirgu izstrÄdÄtÄjiem. Å emot vÄrÄ MCS arhitektÅ«ru, bija nepiecieÅ”ams pÄrbaudÄ«t produkta droŔību Å”ÄdÄs jomÄs:
virtualizÄcijas vides infrastruktÅ«ras aizsardzÄ«ba: hipervizori, marÅ”rutÄÅ”ana, ugunsmÅ«ri;
klientu virtuÄlÄs infrastruktÅ«ras aizsardzÄ«ba: izolÄcija vienam no otra, ieskaitot tÄ«klu, privÄtos tÄ«klus SDN;
OpenStack un tÄ atvÄrtÄs sastÄvdaļas;
S3 mūsu paŔu dizains;
IAM: vairÄku Ä«rnieku projekti ar paraugu;
VÄ«zija (datorredze): API un ievainojamÄ«bas, strÄdÄjot ar attÄliem;
tīmekļa saskarne un klasiskie tīmekļa uzbrukumi;
PaaS komponentu ievainojamības;
Visu komponentu API.
VarbÅ«t tas ir viss, kas ir bÅ«tiski tÄlÄkai vÄsturei.
KÄdi darbi tika veikti un kÄpÄc tas bija vajadzÄ«gs?
DroŔības audita mÄrÄ·is ir identificÄt ievainojamÄ«bas un konfigurÄcijas kļūdas, kas var izraisÄ«t personas datu noplÅ«di, sensitÄ«vas informÄcijas izmaiÅas vai pakalpojumu pieejamÄ«bas traucÄjumus.
Darba laikÄ, kas ilgst vidÄji 1-2 mÄneÅ”us, auditori atkÄrto potenciÄlo uzbrucÄju darbÄ«bas un meklÄ ievainojamÄ«bas izvÄlÄtÄ servisa klienta un servera daļÄs. MCS mÄkoÅplatformas audita kontekstÄ tika noteikti Å”Ädi mÄrÄ·i:
Lomu modeļa un piekļuves kontroles izpÄte starp dažÄdiem kontiem. UzbrucÄjam iespÄja piekļūt kÄda cita virtuÄlajai maŔīnai ir vÄlams mÄrÄ·is.
Klienta puses ievainojamÄ«bas. XSS/CSRF/CRLF/u.c. Vai ir iespÄjams uzbrukt citiem lietotÄjiem, izmantojot ļaunprÄtÄ«gas saites?
Servera puses ievainojamÄ«bas: RCE un visa veida injekcijas (SQL/XXE/SSRF un tÄ tÄlÄk). Servera ievainojamÄ«bas parasti ir grÅ«tÄk atrast, taÄu tÄs noved pie daudzu lietotÄju kompromisa vienlaikus.
LietotÄja segmenta izolÄcijas analÄ«ze tÄ«kla lÄ«menÄ«. UzbrucÄjam izolÄcijas trÅ«kums ievÄrojami palielina uzbrukuma virsmu pret citiem lietotÄjiem.
Biznesa loÄ£ikas analÄ«ze. Vai ir iespÄjams maldinÄt uzÅÄmumus un izveidot virtuÄlÄs maŔīnas bez maksas?
Å ajÄ projektÄ darbs tika veikts pÄc āGray-boxā modeļa: auditori mijiedarbojÄs ar pakalpojumu ar parasto lietotÄju privilÄÄ£ijÄm, bet daļÄji viÅiem piederÄja API pirmkods un bija iespÄja precizÄt detaļas ar izstrÄdÄtÄjiem. Tas parasti ir ÄrtÄkais un tajÄ paÅ”Ä laikÄ diezgan reÄlistisks darba modelis: uzbrucÄjs joprojÄm var savÄkt iekÅ”Äjo informÄciju, tas ir tikai laika jautÄjums.
Atrastas ievainojamības
Pirms auditors uz nejauÅ”Äm vietÄm sÄk sÅ«tÄ«t dažÄdas kravnesÄ«bas (uzbrukuma veikÅ”anai izmantoto kravu), ir jÄsaprot, kÄ lietas darbojas un kÄda funkcionalitÄte tiek nodroÅ”inÄta. Var Ŕķist, ka tas ir bezjÄdzÄ«gs vingrinÄjums, jo lielÄkajÄ daÄ¼Ä pÄtÄ«to vietu ievainojamÄ«bu nebÅ«s. Bet tikai izpratne par lietojumprogrammas struktÅ«ru un tÄs darbÄ«bas loÄ£iku ļaus atrast vissarežģītÄkos uzbrukuma vektorus.
Ir svarÄ«gi atrast vietas, kas Ŕķiet aizdomÄ«gas vai kaut kÄdÄ ziÅÄ Ä¼oti atŔķiras no citÄm. Un Å”ÄdÄ veidÄ tika atrasta pirmÄ bÄ«stamÄ ievainojamÄ«ba.
IDOR
IDOR (Insecure Direct Object Reference) ievainojamÄ«bas ir viena no visbiežÄk sastopamajÄm biznesa loÄ£ikas ievainojamÄ«bÄm, kas ļauj vienam vai otram piekļūt objektiem, kuriem piekļuve faktiski nav atļauta. IDOR ievainojamÄ«bas rada iespÄju iegÅ«t informÄciju par dažÄdas kritiskuma pakÄpes lietotÄju.
Viena no IDOR iespÄjÄm ir veikt darbÄ«bas ar sistÄmas objektiem (lietotÄjiem, bankas kontiem, precÄm iepirkumu grozÄ), manipulÄjot ar piekļuves identifikatoriem Å”iem objektiem. Tas noved pie visneparedzamÄkajÄm sekÄm. PiemÄram, iespÄja nomainÄ«t naudas sÅ«tÄ«tÄja kontu, caur kuru jÅ«s varat tos nozagt no citiem lietotÄjiem.
MCS gadÄ«jumÄ auditori tikko atklÄja IDOR ievainojamÄ«bu, kas saistÄ«ta ar nedroÅ”iem identifikatoriem. LietotÄja personÄ«gajÄ kontÄ UUID identifikatori tika izmantoti, lai piekļūtu jebkuriem objektiem, kas, kÄ saka droŔības eksperti, Ŕķita iespaidÄ«gi nedroÅ”i (tas ir, aizsargÄti no brutÄla spÄka uzbrukumiem). Bet dažÄm entÄ«tijÄm tika atklÄts, ka informÄcijas iegÅ«Å”anai par lietojumprogrammas lietotÄjiem tiek izmantoti regulÄri paredzami skaitļi. DomÄju, ka var nojaust, ka bija iespÄjams mainÄ«t lietotÄja ID par vienu, nosÅ«tÄ«t pieprasÄ«jumu vÄlreiz un tÄdÄjÄdi iegÅ«t informÄciju, apejot ACL (piekļuves kontroles saraksts, datu piekļuves noteikumi procesiem un lietotÄjiem).
Servera puses pieprasījuma viltoŔana (SSRF)
OpenSource produktu labÄ puse ir tÄ, ka tajos ir milzÄ«gs skaits forumu ar detalizÄtiem tehniskiem aprakstiem par problÄmÄm, kas rodas, un, ja jums paveicas, arÄ« risinÄjuma aprakstu. TaÄu Å”ai monÄtai ir arÄ« otrÄ puse: detalizÄti aprakstÄ«tas arÄ« zinÄmÄs ievainojamÄ«bas. PiemÄram, OpenStack forumÄ ir brÄ«niŔķīgi ievainojamÄ«bu apraksti [XSS] Šø [SSRF], kuru nez kÄpÄc neviens nesteidzas labot.
IzplatÄ«ta lietojumprogrammu funkcionalitÄte ir iespÄja lietotÄjam nosÅ«tÄ«t serverim saiti, uz kuras serveris noklikŔķina (piemÄram, lai lejupielÄdÄtu attÄlu no noteikta avota). Ja droŔības rÄ«ki nefiltrÄ paÅ”as saites vai no servera lietotÄjiem atdotÄs atbildes, uzbrucÄji var viegli izmantot Å”Ädu funkcionalitÄti.
SSRF ievainojamÄ«bas var ievÄrojami veicinÄt uzbrukuma attÄ«stÄ«bu. UzbrucÄjs var iegÅ«t:
ierobežota piekļuve uzbrukuma lokÄlajam tÄ«klam, piemÄram, tikai caur noteiktiem tÄ«kla segmentiem un izmantojot noteiktu protokolu;
pilnÄ«ga piekļuve lokÄlajam tÄ«klam, ja ir iespÄjama pazeminÄÅ”ana no lietojumprogrammas lÄ«meÅa uz transporta lÄ«meni, un lÄ«dz ar to pilnas slodzes pÄrvaldÄ«ba lietojumprogrammas lÄ«menÄ«;
piekļuve lokÄlo failu lasÄ«Å”anai serverÄ« (ja tiek atbalstÄ«ta shÄma file:///);
Šø Š¼Š½Š¾Š³Š¾Šµ Š“ŃŃŠ³Š¾Šµ.
OpenStack jau sen ir zinÄma SSRF ievainojamÄ«ba, kas pÄc bÅ«tÄ«bas ir "akla": sazinoties ar serveri, jÅ«s nesaÅemat no tÄ atbildi, bet atkarÄ«bÄ no pieprasÄ«juma rezultÄta saÅemat dažÄda veida kļūdas/aiztures. . Pamatojoties uz to, varat veikt portu skenÄÅ”anu iekÅ”ÄjÄ tÄ«klÄ esoÅ”ajos saimniekdatoros ar visÄm no tÄ izrietoÅ”ajÄm sekÄm, kuras nevajadzÄtu novÄrtÄt par zemu. PiemÄram, produktam var bÅ«t back-office API, kas ir pieejama tikai no korporatÄ«vÄ tÄ«kla. Izmantojot dokumentÄciju (neaizmirstiet par iekÅ”ÄjÄm personÄm), uzbrucÄjs var izmantot SSRF, lai piekļūtu iekÅ”ÄjÄm metodÄm. PiemÄram, ja jums kaut kÄ izdevÄs iegÅ«t aptuvenu noderÄ«go URL sarakstu, tad, izmantojot SSRF, varat tos iziet cauri un izpildÄ«t pieprasÄ«jumu - nosacÄ«ti runÄjot, pÄrskaitÄ«t naudu no konta uz kontu vai mainÄ«t limitus.
Å Ä« nav pirmÄ reize, kad OpenStack tiek atklÄta SSRF ievainojamÄ«ba. AgrÄk VM ISO attÄlus bija iespÄjams lejupielÄdÄt no tieÅ”Äs saites, kas arÄ« izraisÄ«ja lÄ«dzÄ«gas sekas. Å Ä« funkcija tagad ir noÅemta no OpenStack. AcÄ«mredzot sabiedrÄ«ba to uzskatÄ«ja par vienkÄrÅ”Äko un uzticamÄko problÄmas risinÄjumu.
Un Å”is publiski pieejams pÄrskats no pakalpojuma HackerOne (h1), vairs neakla SSRF izmantoÅ”ana ar iespÄju nolasÄ«t gadÄ«jumu metadatus nodroÅ”ina saknes piekļuvi visai Shopify infrastruktÅ«rai.
MCS SSRF ievainojamÄ«bas tika atklÄtas divÄs vietÄs ar lÄ«dzÄ«gu funkcionalitÄti, taÄu tÄs bija gandrÄ«z neiespÄjami izmantot ugunsmÅ«ru un citu aizsardzÄ«bas lÄ«dzekļu dÄļ. TÄ vai citÄdi MCS komanda Å”o problÄmu atrisinÄja, negaidot kopienu.
XSS tÄ vietÄ, lai ielÄdÄtu Äaulas
Neskatoties uz simtiem rakstÄ«tu pÄtÄ«jumu, gadu no gada XSS (cross-site scripting) uzbrukums joprojÄm ir visvairÄk bieži sastopams tÄ«mekļa ievainojamÄ«ba (vai uzbrukums?).
Failu augÅ”upielÄde ir iecienÄ«ta vieta jebkuram droŔības pÄtniekam. Bieži vien izrÄdÄs, ka jÅ«s varat ielÄdÄt patvaļīgu skriptu (asp/jsp/php) un izpildÄ«t OS komandas, pentesteru terminoloÄ£ijÄ - āload shellā. TaÄu Å”Ädu ievainojamÄ«bu popularitÄte darbojas abos virzienos: tÄs tiek atcerÄtas un pret tÄm tiek izstrÄdÄti lÄ«dzekļi, tÄ ka pÄdÄjÄ laikÄ varbÅ«tÄ«ba āielÄdÄt Äauluā mÄdz bÅ«t nulle.
UzbrucÄju komandai (kuru pÄrstÄv Digital Security) paveicÄs. Labi, MCS servera pusÄ tika pÄrbaudÄ«ts lejupielÄdÄto failu saturs, bija atļauti tikai attÄli. Bet SVG arÄ« ir bilde. KÄ SVG attÄli var bÅ«t bÄ«stami? Jo jÅ«s varat iegult tajos JavaScript fragmentus!
IzrÄdÄ«jÄs, ka lejupielÄdÄtie faili ir pieejami visiem MCS servisa lietotÄjiem, kas nozÄ«mÄ, ka ir iespÄjams uzbrukt citiem mÄkoÅa lietotÄjiem, proti, administratoriem.
KÄpÄc mÄÄ£inÄt nozagt sesiju (jo Ä«paÅ”i tÄpÄc, ka tagad HTTP-Only sÄ«kfaili ir visur, aizsargÄti pret zÄdzÄ«bÄm, izmantojot js skriptus), ja ielÄdÄtais skripts var nekavÄjoties piekļūt resursa API? Å ajÄ gadÄ«jumÄ kravnesÄ«ba var izmantot XHR pieprasÄ«jumus, lai mainÄ«tu servera konfigurÄciju, piemÄram, pievienotu uzbrucÄja publisko SSH atslÄgu un iegÅ«tu SSH piekļuvi serverim.
Ja CSP politika (satura aizsardzÄ«bas politika) aizliedz ievadÄ«t JavaScript, uzbrucÄjs var iztikt bez tÄ. Izmantojot tÄ«ru HTML, izveidojiet viltotu vietnes pieteikÅ”anÄs veidlapu un nozagiet administratora paroli, izmantojot Å”o uzlaboto pikŔķerÄÅ”anas metodi: lietotÄja pikŔķerÄÅ”anas lapa nonÄk tajÄ paÅ”Ä URL, un lietotÄjam to ir grÅ«tÄk noteikt.
Beidzot uzbrucÄjs var noorganizÄt klienta DoS ā iestatÄ«t sÄ«kfailus, kas lielÄki par 4 KB. LietotÄjam tikai vienu reizi ir jÄatver saite, un visa vietne kļūst nepieejama, lÄ«dz lietotÄjs domÄ Ä«paÅ”i notÄ«rÄ«t pÄrlÅ«kprogrammu: vairumÄ gadÄ«jumu tÄ«mekļa serveris atsakÄs pieÅemt Å”Ädu klientu.
ApskatÄ«sim cita atklÄtÄ XSS piemÄru, Å”oreiz ar gudrÄku izmantoÅ”anu. MCS pakalpojums ļauj apvienot ugunsmÅ«ra iestatÄ«jumus grupÄs. Grupas nosaukums bija vieta, kur tika atklÄts XSS. TÄ Ä«patnÄ«ba bija tÄda, ka vektors netika aktivizÄts uzreiz, nevis skatot noteikumu sarakstu, bet gan dzÄÅ”ot grupu:
Tas ir, scenÄrijs izrÄdÄ«jÄs Å”Äds: uzbrucÄjs izveido ugunsmÅ«ra kÄrtulu, kuras nosaukumÄ ir āloadā, administrators pÄc kÄda laika to pamana un uzsÄk dzÄÅ”anas procesu. Un Å”eit darbojas ļaunprÄtÄ«gais JS.
MCS izstrÄdÄtÄjiem, lai aizsargÄtu pret XSS lejupielÄdÄtajos SVG attÄlos (ja tos nevar pamest), Digital Security komanda ieteica:
Novietojiet lietotÄju augÅ”upielÄdÄtos failus atseviÅ”Ä·Ä domÄnÄ, kam nav nekÄda sakara ar āsÄ«kfailiemā. Skripts tiks izpildÄ«ts cita domÄna kontekstÄ un neradÄ«s draudus MCS.
Servera HTTP atbildÄ nosÅ«tiet galveni "Satura izvietojums: pielikums". PÄc tam faili tiks lejupielÄdÄti pÄrlÅ«kprogrammÄ un netiks izpildÄ«ti.
TurklÄt tagad izstrÄdÄtÄjiem ir pieejami daudzi veidi, kÄ mazinÄt XSS izmantoÅ”anas riskus:
mÅ«sdienu veidÅu dzinÄji, piemÄram, Angular vai React, automÄtiski sanitizÄ lietotÄja datus pirms to izvadÄ«Å”anas lietotÄja pÄrlÅ«kprogrammÄ.
Divfaktoru autentifikÄcijas ievainojamÄ«bas
Lai uzlabotu konta droŔību, lietotÄjiem vienmÄr ir ieteicams iespÄjot 2FA (divu faktoru autentifikÄciju). PatieÅ”Äm, tas ir efektÄ«vs veids, kÄ novÄrst uzbrucÄja piekļuvi pakalpojumam, ja lietotÄja akreditÄcijas dati ir apdraudÄti.
Bet vai otrÄ autentifikÄcijas faktora izmantoÅ”ana vienmÄr garantÄ konta droŔību? IevieÅ”ot 2FA, pastÄv Å”Ädas droŔības problÄmas:
BrutÄla OTP koda meklÄÅ”ana (vienreizÄji kodi). Neskatoties uz darbÄ«bas vienkÄrŔību, lielie uzÅÄmumi saskaras arÄ« ar tÄdÄm kļūdÄm kÄ aizsardzÄ«bas trÅ«kums pret OTP brutÄlu spÄku: VÄjÅ” futrÄlis, Facebook gadÄ«jums.
Å Ädas loÄ£iskas kļūdas, piemÄram, iespÄja pieprasÄ«t kÄda cita OTP jÅ«su tÄlrunÄ« tas bija no Shopify.
MCS gadÄ«jumÄ 2FA tiek ieviests, pamatojoties uz Google Authenticator un Duo. Pats protokols jau ir pÄrbaudÄ«ts laika gaitÄ, taÄu ir vÄrts pÄrbaudÄ«t koda verifikÄcijas ievieÅ”anu lietojumprogrammas pusÄ.
MCS 2FA tiek izmantots vairÄkÄs vietÄs:
Veicot lietotÄja autentifikÄciju. Ir aizsardzÄ«ba pret brutÄlu spÄku: lietotÄjam ir tikai daži mÄÄ£inÄjumi ievadÄ«t vienreizÄju paroli, pÄc tam ievade kÄdu laiku tiek bloÄ·Äta. Tas bloÄ·Ä iespÄju OTP atlasÄ«t ar brutÄlu spÄku.
Ä¢enerÄjot bezsaistes rezerves kodus, lai veiktu 2FA, kÄ arÄ« to atspÄjojot. Å eit netika ieviesta aizsardzÄ«ba pret brutÄlu spÄku, kas ļÄva, ja jums bija konta parole un aktÄ«va sesija, atjaunot rezerves kodus vai pilnÄ«bÄ atspÄjot 2FA.
Å emot vÄrÄ, ka rezerves kodi atradÄs tajÄ paÅ”Ä virkÅu vÄrtÄ«bu diapazonÄ, ko Ä£enerÄja OTP lietojumprogramma, iespÄja Ä«sÄ laikÄ atrast kodu bija daudz lielÄka.
OTP atlases process, lai atspÄjotu 2FA, izmantojot rÄ«ku āBurp: Intruderā.
PiedzÄ«vojiet efektÄ«vu rezultÄtu spÄku
KopumÄ Å”Ä·iet, ka MCS kÄ produkts ir droÅ”s. Audita laikÄ pentestÄÅ”anas komanda nevarÄja piekļūt klientu virtuÄlajÄm maŔīnÄm un to datiem, un MCS komanda Ätri izlaboja atrastÄs ievainojamÄ«bas.
Bet Å”eit ir svarÄ«gi atzÄ«mÄt, ka droŔība ir nepÄrtraukts darbs. Pakalpojumi nav statiski, tie pastÄvÄ«gi attÄ«stÄs. Un nav iespÄjams izstrÄdÄt produktu pilnÄ«gi bez ievainojamÄ«bÄm. Bet jÅ«s varat tos atrast savlaicÄ«gi un samazinÄt to atkÄrtoÅ”anÄs iespÄju.
Tagad visas minÄtÄs ievainojamÄ«bas MCS jau ir novÄrstas. Un, lai samazinÄtu jaunu skaitu un samazinÄtu to kalpoÅ”anas laiku, platformas komanda turpina rÄ«koties Å”Ädi: