FixVibe
Covered by FixVibehigh

CORS Okerreko konfigurazioa: baimen gehiegizko politikaren arriskuak

Jatorrien arteko baliabideen partekatzea (CORS) Jatorri Bereko Politika (SOP) lasaitzeko diseinatutako arakatzaile-mekanismo bat da. Web-aplikazio modernoetarako beharrezkoa den arren, inplementazio desegokiak —esaterako, eskatzailearen Jatorri-goiburuaren oihartzuna egitea edo jatorri "nulua" zerrenda zuria jartzea- gune gaiztoek erabiltzaileen datu pribatuak kanporatzea ahalbidetu dezakete.

CWE-942

Eragina

Erasotzaileak [S2] aplikazio zaurgarri baten erabiltzaileei datu sentikorrak eta autentifikatuak lapur ditzake. Erabiltzaile batek webgune kaltegarri bat bisitatzen badu aplikazio zaurgarrian saioa hasita dagoen bitartean, gune gaiztoak jatorri gurutzatutako eskaerak egin ditzake aplikazioaren API eta erantzunak irakurri [S1][S2]. Honek informazio pribatua lapurtzea ekar dezake, erabiltzaileen profilak, CSRF tokenak edo mezu pribatuak [S2] barne.

Arrazoia

CORS HTTP goiburuan oinarritutako mekanismo bat da, zerbitzariek zein jatorri (domeinua, eskema edo ataka) baliabideak kargatzeko baimenduta dauden zehaztea ahalbidetzen duena [S1]. Ahultasunak normalean zerbitzariaren CORS politika malguegia edo gaizki inplementatuta dagoenean sortzen dira [S2]:

  • Islatutako jatorriaren goiburua: Zerbitzari batzuek bezeroen eskaera batetik Origin goiburua irakurtzen dute eta Access-Control-Allow-Origin (ACAO) erantzunaren goiburuan [S2] errepikatzen dute. Horrek modu eraginkorrean edozein webguneri [S2] baliabidera sartzeko aukera ematen du.
  • Oker konfiguratutako komodinak: * komodinak edozein jatorrik baliabide batera atzitzeko aukera ematen duen arren, ezin da erabili kredentzialak behar dituzten eskaeretarako (cookieak edo Baimen-goiburuak adibidez) [S3]. Garatzaileak maiz saiatzen dira hori saihesten, [S2] eskaeran oinarrituta ACAO goiburua dinamikoki sortuz.
  • Zerrenda zuria 'null': Aplikazio batzuek null jatorriaren zerrenda zuria, birbideratutako eskaeren edo fitxategi lokalen bidez abiarazi daitekeena, gune gaiztoei null jatorria atzitzea ahalbidetzen dietela ZXCVFIXVIBETOKENTOKVIXVIXVIBETOKEN2CVZCV3CV3CVZVZBEN1ZXCV.
  • Analizatze-erroreak: Origin goiburua baliozkotzean erregulazio edo kateen bat datozen akatsek erasotzaileek trusted-domain.com.attacker.com [S2] bezalako domeinuak erabil ditzakete.

Garrantzitsua da kontuan izan CORS ez dela guneen arteko eskaera faltsutzearen aurkako babesa (CSRF) [S2].

Konponketa konkretuak

  • Erabili zerrenda zuri estatikoa: Saihestu Access-Control-Allow-Origin goiburua dinamikoki sortzea eskaeraren Origin [S2] goiburutik. Horren ordez, alderatu eskaeraren jatorria [S3] domeinu fidagarrien zerrenda gogor batekin.
  • Saihestu "nulua" jatorria: Ez sartu inoiz null baimendutako jatorrien zerrenda zurian [S2].
  • Kredentzialak mugatu: Ezarri Access-Control-Allow-Credentials: true jatorri gurutzatuko elkarrekintza zehatzerako guztiz beharrezkoa bada soilik [S3].
  • Erabili baliozkotze egokia: Jatorri anitz onartu behar badituzu, ziurtatu Origin goiburuaren baliozkotze-logika sendoa dela eta ezin dutela baztertu azpidomeinuek edo antzeko itxura duten domeinuek [S2].

FixVibe probak nola egiten dituen

FixVibe-k kontrol aktibo itxi gisa sartzen du orain. Domeinua egiaztatu ondoren, active.cors-k jatorri bereko API eskaerak bidaltzen ditu erasotzaileen jatorri sintetikoarekin eta CORS erantzunen goiburuak berrikusten ditu. Jatorri arbitrario islatuak, CORS komodin kredentzialak eta CORS publikoak ez diren API amaierako puntuetan irekita dauden CORS, aktibo publikoen zarata saihesten duen bitartean.