Pag-audit sa seguridad sa MCS cloud platform

Pag-audit sa seguridad sa MCS cloud platform
SkyShip Dusk pinaagi sa SeerLight

Ang pagtukod sa bisan unsang serbisyo kinahanglan nga maglakip sa kanunay nga pagtrabaho sa seguridad. Ang seguridad usa ka padayon nga proseso nga naglakip sa kanunay nga pag-analisar ug pagpaayo sa seguridad sa produkto, pag-monitor sa mga balita bahin sa mga kahuyangan ug daghan pa. Naglakip sa mga pag-audit. Ang mga pag-audit gihimo sa sulod sa balay ug sa mga eksperto sa gawas, nga makatabang kaayo sa seguridad tungod kay wala sila naunlod sa proyekto ug adunay bukas nga hunahuna.

Ang artikulo mahitungod niining labing prangka nga panglantaw sa mga eksperto sa gawas nga mitabang sa Mail.ru Cloud Solutions (MCS) nga grupo sa pagsulay sa serbisyo sa panganod, ug mahitungod sa ilang nakit-an. Isip usa ka "eksternal nga puwersa," gipili sa MCS ang kompanya sa Digital Security, nga nailhan tungod sa taas nga kahanas niini sa mga sirkulo sa seguridad sa impormasyon. Ug sa kini nga artikulo among analisahon ang pipila nga makapaikag nga mga kahuyangan nga nakit-an ingon bahin sa usa ka eksternal nga pag-audit - aron malikayan nimo ang parehas nga rake kung maghimo ka sa imong kaugalingon nga serbisyo sa panganod.

Описание продукта

Mail.ru Cloud Solutions (MCS) usa ka plataporma alang sa pagtukod og virtual nga imprastraktura sa panganod. Naglakip kini sa IaaS, PaaS, ug usa ka merkado sa andam nga gihimo nga mga imahe sa aplikasyon alang sa mga nag-develop. Gikonsiderar ang arkitektura sa MCS, kinahanglan nga susihon ang kaluwasan sa produkto sa mga musunud nga lugar:

  • pagpanalipod sa imprastraktura sa virtualization environment: hypervisors, routing, firewalls;
  • pagpanalipod sa virtual nga imprastraktura sa mga kustomer: pag-inusara gikan sa usag usa, lakip ang network, pribadong network sa SDN;
  • OpenStack ug ang bukas nga mga sangkap niini;
  • S3 sa atong kaugalingong disenyo;
  • IAM: multi-tenant nga mga proyekto nga adunay sulondan;
  • Panan-awon (computer vision): Mga API ug mga kahuyang kon nagtrabaho uban sa mga hulagway;
  • web interface ug classic nga mga pag-atake sa web;
  • mga kahuyang sa mga sangkap sa PaaS;
  • API sa tanan nga mga sangkap.

Tingali kana ang tanan nga hinungdanon alang sa dugang nga kasaysayan.

Unsa nga matang sa trabaho ang gihimo ug nganong gikinahanglan kini?

Ang usa ka pag-audit sa seguridad gitumong sa pag-ila sa mga kahuyangan ug mga sayup sa pag-configure nga mahimong mosangput sa pagtulo sa personal nga datos, pagbag-o sa sensitibo nga kasayuran, o pagkabalda sa pagkaanaa sa serbisyo.

Atol sa trabaho, nga molungtad sa aberids nga 1-2 ka bulan, gisubli sa mga auditor ang mga aksyon sa mga potensyal nga tig-atake ug pangitaon ang mga kahuyangan sa mga bahin sa kliyente ug server sa gipili nga serbisyo. Sa konteksto sa pag-audit sa MCS cloud platform, ang mosunod nga mga tumong giila:

  1. Pag-analisar sa panghimatuud sa serbisyo. Ang mga kahuyangan sa kini nga sangkap makatabang aron makasulod dayon sa mga account sa ubang mga tawo.
  2. Pagtuon sa role model ug access control tali sa lain-laing mga account. Alang sa usa ka tig-atake, ang abilidad sa pag-access sa virtual machine sa uban usa ka gusto nga katuyoan.
  3. Mga kahuyangan sa bahin sa kliyente. XSS/CSRF/CRLF/etc. Posible ba nga atakehon ang ubang mga tiggamit pinaagi sa makadaot nga mga link?
  4. Mga kahuyangan sa kilid sa server: RCE ug tanang matang sa mga injection (SQL/XXE/SSRF ug uban pa). Ang mga kahuyangan sa server sa kasagaran mas lisud pangitaon, apan kini mosangpot sa pagkompromiso sa daghang mga tiggamit sa usa ka higayon.
  5. Pag-analisar sa pagkalainlain sa bahin sa gumagamit sa lebel sa network. Alang sa usa ka tig-atake, ang kakulang sa pag-inusara labi nga nagdugang sa pag-atake sa nawong batok sa ubang mga tiggamit.
  6. Pagtuki sa lohika sa negosyo. Posible ba ang paglimbong sa mga negosyo ug paghimo og mga virtual machine nga libre?

Sa kini nga proyekto, ang trabaho gihimo sumala sa modelo nga "Gray-box": ang mga auditor nakig-uban sa serbisyo nga adunay mga pribilehiyo sa ordinaryong mga tiggamit, apan partially nagbaton sa source code sa API ug adunay higayon nga ipatin-aw ang mga detalye sa mga developer. Kini sa kasagaran ang labing kombenyente, ug sa samang higayon medyo realistiko nga modelo sa trabaho: ang internal nga impormasyon mahimo gihapon nga kolektahon sa usa ka tig-atake, kini usa lamang ka oras.

Nakit-an ang mga kahuyangan

Sa dili pa magsugod ang auditor sa pagpadala sa lain-laing mga payloads (ang payload nga gigamit sa pagpahigayon sa pag-atake) ngadto sa random nga mga dapit, gikinahanglan nga masabtan kon sa unsang paagi ang mga butang molihok ug unsa nga gamit ang gihatag. Tingali kini usa ka walay kapuslanan nga ehersisyo, tungod kay sa kadaghanan sa mga gitun-an nga mga dapit walay mga kahuyang. Apan ang pagsabut lamang sa istruktura sa aplikasyon ug ang lohika sa operasyon niini makahimo nga posible nga makit-an ang labing komplikado nga mga vector sa pag-atake.

Importante nga pangitaon ang mga lugar nga morag kadudahan o lahi kaayo sa uban sa usa ka paagi. Ug ang una nga peligro nga pagkahuyang nakit-an sa kini nga paagi.

IDOR

Ang mga kahuyangan sa IDOR (Insecure Direct Object Reference) usa sa labing kasagaran nga mga kahuyangan sa lohika sa negosyo, nga nagtugot sa usa o lain nga makakuha og access sa mga butang diin ang pag-access dili gyud gitugotan. Ang mga kahuyangan sa IDOR nagmugna sa posibilidad nga makakuha og impormasyon bahin sa usa ka tiggamit sa lain-laing ang-ang sa kritikalidad.

Usa sa mga kapilian sa IDOR mao ang paghimo sa mga aksyon sa mga butang sa sistema (mga tiggamit, mga account sa bangko, mga butang sa shopping cart) pinaagi sa pagmaniobra sa mga identifier sa pag-access sa kini nga mga butang. Kini modala ngadto sa labing dili matag-an nga mga sangputanan. Pananglitan, ang posibilidad sa pag-ilis sa asoy sa nagpadala sa mga pundo, nga pinaagi niini mahimo nimong kawaton kini gikan sa ubang mga tiggamit.

Sa kaso sa MCS, ang mga auditor bag-o lang nakadiskubre sa usa ka kahuyangan sa IDOR nga nalangkit sa dili luwas nga mga identifier. Sa personal nga account sa user, ang UUID identifiers gigamit sa pag-access sa bisan unsa nga mga butang, nga ingon og, ingon sa giingon sa mga eksperto sa seguridad, impresibo nga walay kasigurohan (nga mao, gipanalipdan gikan sa brute force nga mga pag-atake). Apan alang sa pipila ka mga entidad, nadiskobrehan nga ang regular nga matag-an nga mga numero gigamit aron makakuha og kasayuran bahin sa mga tiggamit sa aplikasyon. Sa akong hunahuna makatag-an ka nga posible nga usbon ang user ID sa usa, ipadala pag-usab ang hangyo ug sa ingon makakuha og impormasyon nga dili moagi sa ACL (listahan sa kontrol sa pag-access, mga lagda sa pag-access sa datos alang sa mga proseso ug tiggamit).

Pagpalsipikar sa Paghangyo sa Side sa Server (SSRF)

Ang maayong butang bahin sa mga produkto sa OpenSource mao nga sila adunay daghang mga forum nga adunay detalyado nga teknikal nga paghubit sa mga problema nga motumaw ug, kung swerte ka, usa ka paghulagway sa solusyon. Apan kini nga sensilyo adunay pikas nga bahin: ang nahibal-an nga mga kahuyangan gihulagway usab sa detalye. Pananglitan, adunay nindot nga mga paghulagway sa mga kahuyangan sa OpenStack forum [XSS] и [SSRF], nga sa pipila ka rason walay usa nga nagdali sa pag-ayo.

Usa ka komon nga gamit sa mga aplikasyon mao ang abilidad sa user sa pagpadala sa usa ka link sa server, diin ang server nag-klik sa (pananglitan, sa pag-download sa usa ka larawan gikan sa usa ka piho nga tinubdan). Kung ang mga himan sa seguridad dili magsala sa mga link sa ilang kaugalingon o ang mga tubag nga gibalik gikan sa server ngadto sa mga tiggamit, ang ingon nga gamit dali nga magamit sa mga tig-atake.

Ang mga kahuyangan sa SSRF mahimo’g mapauswag ang pag-uswag sa usa ka pag-atake. Ang tig-atake mahimong makakuha:

  • limitado nga pag-access sa giatake nga lokal nga network, pananglitan, pinaagi lamang sa pipila ka mga bahin sa network ug gamit ang usa ka piho nga protocol;
  • hingpit nga pag-access sa lokal nga network, kung ang pag-downgrade gikan sa lebel sa aplikasyon ngadto sa lebel sa transportasyon posible ug, ingon usa ka sangputanan, ang pagdumala sa bug-os nga load sa lebel sa aplikasyon;
  • pag-access sa pagbasa sa mga lokal nga file sa server (kung gisuportahan ang file: /// scheme);
  • ug daghan pa.

Ang pagkahuyang sa SSRF dugay na nga nahibal-an sa OpenStack, nga "buta" sa kinaiyahan: kung imong kontakon ang server, wala ka makadawat usa ka tubag gikan niini, apan nakadawat ka lainlaing mga lahi sa mga sayup / paglangan, depende sa sangputanan sa hangyo. . Pinasukad niini, mahimo nimong himuon ang usa ka pag-scan sa port sa mga host sa internal nga network, uban ang tanan nga mga sangputanan nga dili angay ipakaubos. Pananglitan, ang usa ka produkto mahimong adunay back-office API nga ma-access lamang gikan sa corporate network. Uban sa dokumentasyon (ayaw kalimti ang bahin sa mga insider), ang usa ka tig-atake mahimong mogamit sa SSRF aron ma-access ang mga internal nga pamaagi. Pananglitan, kung nakuha nimo ang usa ka gibanabana nga lista sa mapuslanon nga mga URL, unya gamit ang SSRF mahimo nimo kini maagian ug ipatuman ang usa ka hangyo - medyo nagsulti, pagbalhin salapi gikan sa account ngadto sa account o pagbag-o sa mga limitasyon.

Dili kini ang unang higayon nga nadiskobrehan ang kahuyang sa SSRF sa OpenStack. Kaniadto, posible nga i-download ang mga imahe sa VM ISO gikan sa usa ka direkta nga link, nga nagdala usab sa parehas nga mga sangputanan. Kini nga bahin gikuha na karon gikan sa OpenStack. Dayag, giisip sa komunidad nga kini ang pinakasimple ug labing kasaligan nga solusyon sa problema.

Ug sa kini nga magamit sa publiko nga taho gikan sa serbisyo sa HackerOne (h1), ang pagpahimulos sa usa ka dili na buta nga SSRF nga adunay katakus sa pagbasa sa metadata sa pananglitan nagdala sa pag-access sa Root sa tibuuk nga imprastraktura sa Shopify.

Sa MCS, nadiskubre ang mga kahuyangan sa SSRF sa duha ka lugar nga adunay parehas nga pagpaandar, apan hapit imposible nga mapahimuslan tungod sa mga firewall ug uban pang mga proteksyon. Sa usa ka paagi o sa lain, ang MCS team nagsulbad gihapon niini nga problema, nga wala maghulat sa komunidad.

XSS imbis nga mag-load sa mga kabhang

Bisan pa sa gatusan nga mga pagtuon nga gisulat, matag tuig ang XSS (cross-site scripting) nga pag-atake mao gihapon ang labing kadaghan kanunay nga masugatan pagkahuyang sa web (o pag-atake?).

Ang mga pag-upload sa file usa ka paborito nga lugar alang sa bisan unsang tigdukiduki sa seguridad. Kanunay nga mahimo nimong i-load ang usa ka arbitraryong script (asp/jsp/php) ug ipatuman ang mga mando sa OS, sa terminolohiya sa mga pentesters - "load shell". Apan ang pagkapopular sa ingon nga mga kahuyangan nagtrabaho sa duha ka direksyon: kini nahinumduman ug ang mga remedyo gihimo batok kanila, mao nga bag-o lang ang posibilidad sa "pagkarga sa usa ka kabhang" lagmit nga zero.

Ang nag-atake nga grupo (girepresentar sa Digital Security) swerte. OK, sa MCS sa kilid sa server ang mga sulod sa na-download nga mga file gisusi, mga hulagway lamang ang gitugotan. Apan ang SVG usa usab ka hulagway. Sa unsang paagi delikado ang mga hulagway sa SVG? Tungod kay mahimo nimong i-embed ang mga snippet sa JavaScript sa kanila!

Nahibal-an nga ang na-download nga mga file magamit sa tanan nga tiggamit sa serbisyo sa MCS, nga nagpasabut nga posible nga atakehon ang ubang mga tiggamit sa panganod, nga mao ang mga administrador.

Pag-audit sa seguridad sa MCS cloud platform
Usa ka pananglitan sa pag-atake sa XSS sa porma sa pag-login sa phishing

Mga pananglitan sa pagpahimulos sa pag-atake sa XSS:

  • Ngano nga mosulay sa pagpangawat sa usa ka sesyon (ilabi na kay karon HTTP-Only cookies bisan asa, gipanalipdan gikan sa pagpangawat gamit ang js scripts), kung ang gikarga nga script maka-access dayon sa resource API? Niini nga kaso, ang payload mahimong mogamit sa mga hangyo sa XHR aron usbon ang configuration sa server, pananglitan, idugang ang public SSH key sa tig-atake ug makaangkon og SSH access sa server.
  • Kung ang polisiya sa CSP (polisiya sa pagpanalipod sa sulod) nagdili sa JavaScript nga ma-inject, ang usa ka tig-atake mahimong makaagi nga wala kini. Gamit ang lunsay nga HTML, paghimo og peke nga porma sa pag-login para sa site ug kawaton ang password sa tagdumala pinaagi niining advanced phishing: ang pahina sa phishing alang sa user maabot sa samang URL, ug mas lisud alang sa user nga makamatikod niini.
  • Sa kataposan, ang tig-atake makahan-ay kliyente DoS — itakda ang Cookies nga mas dako pa sa 4 KB. Kinahanglan lang nga ablihan sa user ang link sa makausa, ug ang tibuok site mahimong dili ma-access hangtud nga ang user maghunahuna nga espesipikong limpyohan ang browser: sa kadaghanan sa mga kaso, ang web server magdumili sa pagdawat sa ingon nga kliyente.

Atong tan-awon ang usa ka pananglitan sa lain nga nakit-an nga XSS, niining higayona nga adunay usa ka labi ka maalamon nga pagpahimulos. Ang serbisyo sa MCS nagtugot kanimo sa paghiusa sa mga setting sa firewall ngadto sa mga grupo. Ang ngalan sa grupo diin ang XSS nakit-an. Ang pagkatalagsaon niini mao nga ang vector wala dayon ma-trigger, dili kung gitan-aw ang lista sa mga lagda, apan kung gitangtang ang usa ka grupo:

Pag-audit sa seguridad sa MCS cloud platform

Sa ato pa, ang senaryo nahimo nga mao ang mga musunud: ang usa ka tig-atake nagmugna usa ka lagda sa firewall nga adunay "load" sa ngalan, ang tagdumala nakamatikod niini pagkahuman ug gisugdan ang proseso sa pagtangtang. Ug dinhi naglihok ang malisyoso nga JS.

Alang sa mga developer sa MCS, aron mapanalipdan batok sa XSS sa na-download nga mga imahe sa SVG (kung dili kini mabiyaan), girekomenda sa grupo sa Digital Security:

  • Ibutang ang mga file nga gi-upload sa mga tiggamit sa usa ka bulag nga domain nga wala’y kalabotan sa "cookies". Ang script ipatuman sa konteksto sa usa ka lahi nga domain ug dili hulga sa MCS.
  • Sa tubag sa HTTP sa server, ipadala ang "Content-disposition: attachment" header. Unya ang mga file ma-download sa browser ug dili ipatuman.

Dugang pa, aduna nay daghang mga paagi nga magamit sa mga developers aron mamenosan ang mga risgo sa pagpahimulos sa XSS:

  • gamit ang bandila nga "HTTP Lamang", mahimo nimong himoon ang mga ulohan sa sesyon nga "Cookies" nga dili ma-access sa malisyosong JavaScript;
  • hustong gipatuman ang polisiya sa CSP maghimo nga mas lisud alang sa usa ka tig-atake sa pagpahimulos sa XSS;
  • Ang mga modernong template nga makina sama sa Angular o React awtomatik nga nag-sanitize sa data sa user sa dili pa kini i-output sa browser sa user.

Duha ka hinungdan nga mga kahuyangan sa pag-authenticate

Aron mapauswag ang seguridad sa account, ang mga tiggamit kanunay gitambagan nga magamit ang 2FA (two-factor authentication). Sa tinuud, kini usa ka epektibo nga paagi aron mapugngan ang usa ka tig-atake nga maka-access sa usa ka serbisyo kung ang mga kredensyal sa tiggamit nakompromiso.

Apan ang paggamit ba sa ikaduha nga hinungdan sa pag-authenticate kanunay nga naggarantiya sa kaluwasan sa account? Adunay mga mosunod nga isyu sa seguridad sa pagpatuman sa 2FA:

  • Brute-force nga pagpangita sa OTP code (usa ka higayon nga mga code). Bisan pa sa kayano sa operasyon, ang mga kasaypanan sama sa kakulang sa proteksyon batok sa OTP brute force nasugatan usab sa dagkong mga kompanya: Slack nga kaso, Kaso sa Facebook.
  • Huyang nga henerasyon nga algorithm, pananglitan ang abilidad sa pagtagna sa sunod nga code.
  • Lohikal nga mga sayop, sama sa abilidad sa paghangyo sa laing tawo sa OTP sa imong telepono, sama niini kini mao ang gikan sa Shopify.

Sa kaso sa MCS, ang 2FA gipatuman base sa Google Authenticator ug duha. Ang protocol mismo nasulayan na sa panahon, apan ang pagpatuman sa pag-verify sa code sa bahin sa aplikasyon angay nga susihon.

Ang MCS 2FA gigamit sa daghang mga lugar:

  • Kung gi-authenticate ang user. Adunay panalipod batok sa brute force: ang user adunay pipila lamang ka pagsulay sa pagsulod sa usa ka higayon nga password, unya ang input gibabagan sa makadiyot. Gibabagan niini ang posibilidad sa brute-force nga pagpili sa OTP.
  • Kung nagmugna og mga offline nga backup code aron mahimo ang 2FA, ingon man usab ang pag-disable niini. Dinhi, wala’y gipatuman nga proteksyon sa brute force, nga nagpaposible, kung adunay ka password alang sa account ug usa ka aktibo nga sesyon, aron mabag-o ang mga backup nga code o hingpit nga pag-disable ang 2FA.

Gikonsiderar nga ang mga backup nga code nahimutang sa parehas nga sakup sa mga kantidad sa string sama sa gihimo sa aplikasyon sa OTP, ang higayon nga makit-an ang code sa mubo nga panahon labi ka taas.

Pag-audit sa seguridad sa MCS cloud platform
Ang proseso sa pagpili sa usa ka OTP aron ma-disable ang 2FA gamit ang "Burp: Intruder" nga himan

resulta

Sa kinatibuk-an, ang MCS mopatim-aw nga luwas isip usa ka produkto. Atol sa pag-audit, ang grupo sa pentesting wala maka-access sa mga VM sa kliyente ug sa ilang mga datos, ug ang mga kahuyangan nga nakit-an dali nga gitul-id sa MCS team.

Apan dinhi importante nga timan-an nga ang seguridad usa ka padayon nga trabaho. Ang mga serbisyo dili static, kini kanunay nga nag-uswag. Ug imposible ang paghimo sa usa ka produkto nga hingpit nga wala’y mga kahuyangan. Apan makit-an nimo kini sa oras ug maminusan ang higayon sa ilang pagbalik.

Karon ang tanan nga gihisgutan nga mga kahuyangan sa MCS naayo na. Ug aron mapadayon ang gidaghanon sa mga bag-o sa labing gamay ug makunhuran ang ilang kinabuhi, ang grupo sa platform nagpadayon sa pagbuhat niini:

Source: www.habr.com

Idugang sa usa ka comment