FixVibe
Covered by FixVibehigh

CORS Vale konfiguratsioon: liiga lubavate poliitikate oht

Päritoluülene ressursside jagamine (CORS) on brauseri mehhanism, mis on loodud sama päritolupoliitika (SOP) leevendamiseks. Ehkki tänapäevaste veebirakenduste jaoks on see vajalik, võib vale rakendamine (nt taotleja Origin päise kajamine või nulli lähtekoha valgesse nimekirja lisamine) lubada pahatahtlikel saitidel privaatseid kasutajaandmeid välja filtreerida.

CWE-942

Mõju

Ründaja võib haavatava rakenduse [S2] kasutajatelt varastada tundlikke, autentitud andmeid. Kui kasutaja külastab pahatahtlikku veebisaiti, kui ta on haavatavasse rakendusse sisse logitud, saab pahatahtlik sait teha rakenduse API päringuid ja lugeda vastuseid [S1][S2]. See võib kaasa tuua privaatse teabe, sealhulgas kasutajaprofiilide, CSRF-i märkide või privaatsõnumite varguse [S2].

Algpõhjus

CORS on HTTP-päisepõhine mehhanism, mis võimaldab serveritel määrata, millistel lähtekohtadel (domeen, skeem või port) on lubatud ressursse laadida. [S1]. Haavatavus tekib tavaliselt siis, kui serveri CORS poliitika on liiga paindlik või halvasti rakendatud [S2]:

  • Peegeldatud päritolu päis: mõned serverid loevad Origin päise kliendi päringust ja kordavad seda vastuse päises Access-Control-Allow-Origin (ACAO) [S2]. See võimaldab tõhusalt igal veebisaidil juurdepääsu ressursile [S2].
  • Valesti konfigureeritud metamärgid: kuigi metamärk * võimaldab igal päritolul ressursile juurde pääseda, ei saa seda kasutada taotluste puhul, mis nõuavad mandaate (nt küpsised või autoriseerimispäised). [S3]. Arendajad püüavad sellest sageli mööda minna, genereerides dünaamiliselt ACAO päise päringu [S2] alusel.
  • Null lubatud loendisse lisamine: mõned rakendused lisavad null päritolu lubatud loendisse, mille võivad käivitada ümbersuunatud päringud või kohalikud failid, võimaldades pahatahtlikel saitidel maskeeruda null lähtekohaks. [S2][S3].
  • Parsimise vead: päise Origin valideerimisel esinevad vead regexi või stringi sobitamises võivad lubada ründajatel kasutada selliseid domeene nagu trusted-domain.com.attacker.com [S2].

Oluline on märkida, et CORS ei kaitse saidiülese päringu võltsimise (CSRF) [S2] eest.

Betooniparandused

  • Kasutage staatilist valget loendit: vältige päise Access-Control-Allow-Origin dünaamilist genereerimist päringu päisest Origin [S2]. Selle asemel võrrelge päringu päritolu usaldusväärsete domeenide püsivalt kodeeritud loendiga [S3].
  • Vältige nullpäritolu: Ärge kunagi lisage null lubatud päritolu [S2] lubatud päritolunimekirja.
  • Piira mandaati: määrake Access-Control-Allow-Credentials: true ainult siis, kui see on hädavajalik konkreetse päritoluülese interaktsiooni jaoks [S3].
  • Kasutage õiget valideerimist: kui peate toetama mitut päritolu, veenduge, et päise Origin valideerimisloogika oleks tugev ja seda ei saaks alamdomeenid või sarnase välimusega domeenid [S2] mööda minna.

Kuidas FixVibe seda testib

FixVibe sisaldab seda nüüd piiratud aktiivse kontrollina. Pärast domeeni kinnitamist saadab active.cors sünteetilise ründaja päritoluga sama päritoluga API päringud ja vaatab üle vastuse päised CORS. See kajastab suvalist päritolu, metamärgiga mandaadiga CORS ja laialt avatud CORS mitteavalikes API lõpp-punktides, vältides samal ajal avalike varade müra.