Defaults.Exposed › Parandused › MIME-nuusutamise kaitse (X-Content-Type-Options)
Kuidas parandada MIME-nuusutamise kaitse (X-Content-Type-Options)
Üherealine päis, mis takistab brauseritel arvamast, mis tüüpi fail tegelikult on. Ilma selleta saab keegi teie saidile üles laaditud fail — või fail teie enda lehtedel — brauseri poolt valesti lugeda ja programmi koodina käivitada, mis on täpselt see, kuidas mõned rünnakud muudavad kahjuliku näiva üleslaadimise viisiks teie klientide sessioonide varastamiseks.
Põhijareldus sinu ettevõttele: Selle päise puudumine on selge, skannidava märk, et põhialuseid pole lukustatud. Üksi võtab see saidi harva maha, kuid kombineerituna faili üleslaadimise vormi või kasutaja loodud sisuga avab see tee ründajale pahatahtliku koodi käivitamiseks teie külastajate brauserites — sisse logitud sessioonide kaaperdamine, kaardi sisestamise või sisselogimise üksikasjade vargus ning panemine teid andmekaitserikkumise vestluse valele küljele. See on üks odavamaid turbeparandusi: üks rida, tasuta, umbes viis minutit.
Mida see sulle maksab
- Iga leht, kus kliendid või töötajad saavad faile üles laadida (avatarid, dokumendid, tugimanus, loetelu fotod) muutub võimalikuks brauseri rünnaku käivitamisplatvormiks.
- Ründaja saab pahatahtliku koodi varjata pildi või tekstifailina ja lasta külastaja brauser selle käivitada — varastades nende sisse logitud sessiooni teie saidil.
- Turvakomplektid, küberveekindlustuse kontrollid ja ettevõtete ostjad skannivad seda päist; selle puudumine loetakse 'nad ei tee põhitõdesid' ning võib tehingu peatada või hävitada.
- Vanemad brauserid ja mõned integratsioonid 'nuusutavad' sisu tüüpe ja võivad faile valesti käsitleda viisidel, mis rikuvad usaldust või lekitavad andmeid.
Miks see on oluline. Brauserid, kui server on faili tüübi osas ebaselge, üritavad arvata ('nuusutada') sisu tüüpi. Ründajad kasutavad seda arvamist: laadivad üles faili, mille server ausalt usub olevat kahjutu pilt, kuid mille sisu on käsitletud nii, et brauser, jäetuna arvama, otsustab, et see on tegelikult JavaScripti tükk — ja seejärel käivitab selle, otse teie kliendi brauseris, teie domeenil. X-Content-Type-Options: nosniff päis ütleb igale brauserile arvamise välja lülitada ja usaldada serveri deklareeritud tüüpi, sulgedes terve selle trikkerite klassi. See on hindamisväärt kontroll, mis on väärt 25 punkti, ning hinnatud keskmise raskusega, kui puudub.
Lühidalt omanikule
Igas veebibrauseris on vaikne eeldus: kui see laadib alla faili teie saidilt, üritab see välja selgitada, mis tüüpi fail see on. Tavaliselt usaldab see teie serverit. Kuid kui teie server on ebaselge, brauser arvab — ja seda arvamist nimetatakse MIME-nuusutamiseks.
Probleem on selles, et ründajad saavad arvamist manipuleerida. Nad saavad luua faili, mida teie server ausalt usub olevat kahjutu pilt, kuid mida brauser, jäetuna arvama, otsustab olevat tegelikult programmikood — ja seejärel käivitab selle, otse teie kliendi brauseris, teie domeenil.
On üherealine juhis, mis lülitab arvamise välja: X-Content-Type-Options: nosniff. See ütleb igale brauserile: “ärge arvake — usaldage täpselt seda, mida minu server teile ütleb.” See on kogu parandus. See on tasuta, võtab umbes viis minutit ning õigesti ehitatud saidil ei lõhu see midagi.
See kontroll otsib seda päist. Kui see puudub, kaotate 25 punkti ning see on hinnatud keskmise raskusega probleemina — mitte seetõttu, et päis üksi oleks katastroof, vaid seetõttu, et selle puudumine on usaldusväärne märk, et põhitõdesid pole lukustatud.
Mida see võib teile maksma minna
Need on realistlikud, äritaseme stsenaariumid.
-
“Kahjutu manus”, mis seda polnud. Te käitate tugiteenuse portaali või turgu, kus kliendid laadivad üles faile — kviitungid, fotod, dokumendid. Ründaja laadib üles faili, mida teie süsteem salvestab ja teenindab pildina. Ilma nosniff-ita arvab ohvri brauser, et fail on tegelikult skript, ja käivitab selle — varastades vaikselt selle külastaja sisse logitud sessiooni teie saidil. Nüüd on ründaja nemad: esitab tellimusi, loeb sõnumeid, muudab üksikasju. Te saate teada siis, kui kliendid hakkavad kaebama tegevuse kohta, mida nad ei teinud.
-
Tehing, mis peatub turvakomplektil. Suurema kliendi hankeosakond teeb teie saidi automaatse skannimise enne allkirjastamist. Puuduvad turbe päised ilmuvad koheselt. Isegi kui midagi pole kunagi kasutatud, ütleb aruanne “põhilised veebiturbe päised puuduvad” ning äkki vastate parandusküsimustele ja lükkate oma sulgemiskuupäeva nädalate võrra edasi — paranduse pärast, mis oleks võtnud viis minutit.
-
Küberveekindlustuse uuendamine, mis muutub raskemaks. Rohkem kindlustusandjaid teeb nüüd väliseid skannimisi enne pakkumist või uuendamist. Puhas päiste profiil on odav hügieeni tõend; puuduv on väike must märk, mis koos teistega võib tõsta teie preemiat üles või alandada teie tingimusi.
-
Mainekahju, mida te ei saa hõlpsalt kustutada. Kui sessiooni kaaperdamise juhtum jälgitakse tagasi failini, mis on teenindatud teie domeenilt, pole lugu “tähelepanuta jäänud päis” — see on “[teie ettevõte] lekitas kliendi kontosid.” See on versioon, mida kliendid mäletavad, ning see maksab palju rohkem kui parandus oleks.
Ühtegi neist ei nõua keerukat ründajat. MIME-nuusutamise kuritarvitamine on hästi mõistetud ja automatiseeritud, mis on täpselt see, miks skannerid märgivad puuduva päise nii kindlalt.
Mis see tegelikult on
Kui brauser saab faili, eeldatakse, et server märgistab selle sisu tüübiga (näiteks image/png PNG-pildi jaoks või text/html veebilehe jaoks). Ajalooliselt ei usaldanud brauserid seda märgistust täielikult — osaliselt seetõttu, et mõned serverid said selle valesti — nii et nad piiluvad faili tegelikku baiti ning otsustavad ise. See piilutamine on MIME-nuusutamine.
See oli mugavus, mis muutus kohustuseks. Kui ründaja saab faili teie saidile (üleslaadimise vormi, kommentaaride välja, imporditud dokumendi kaudu) ja mõjutada selle sisu, saavad nad luua midagi, mida server märgistab kahjutult, kuid brauser nuusutab täidetava skriptina. Brauser käivitab selle seejärel teie domeenil, koos kogu usaldusväärsusega, mida teie domeen kannab.
X-Content-Type-Options: nosniff eemaldab arvamise täielikult. Sellega seatult on brauserile öeldud: kasutage serveri deklareeritud tüüpi ja mitte midagi muud. Pildina märgistatud faili käsitletakse pildina, punkt — isegi kui selle sisu näib skriptina. Ründe vektor sulgub.
Milline näeb välja “hea” tulemus: iga vastus teie saidilt — nii lehed kui varad — kannab täpselt seda päist:
X-Content-Type-Options: nosniff
Pole muid kehtivaid väärtusi ega häälestamist. Kui teie CDN ja teie server mõlemad lisavad selle (nii et näete nosniff, nosniff), on see fine ja loetakse ikka läbimisena.
Kuidas seda parandada (tasuta, ~5 minutit)
Andke see jaotis kellelele, kes haldab teie veebisaiti — teie IT-inimesele, veebiarendajale või hostiteenuse toele. Parandus on tasuta ja kiire; pole midagi osta. See, mida te küsite, on lihtne: “Lisage vastuse päis X-Content-Type-Options: nosniff igale lehele ja varale saidil.”
Siin on detail nende jaoks levinud platvormi järgi.
Cloudflare (või sarnane CDN/puhverserver) — sageli kiireim koht seda teha, katab kogu saidi korraga:
- Kasutage Vastuse päise muutmisreeglid (Reeglid → Muutmisreeglid → Muutke vastuse päist), et seada
X-Content-Type-Optionsnosniff-ile kõigi sissetulevate päringute jaoks. See rakendab seda kogu saidile ilma algserverit puutumata.
Nginx — lisage vastava server (või location) bloki sisse:
add_header X-Content-Type-Options "nosniff" always;
always märksõna tagab, et see saadetakse ka veavastasel. Laadige Nginx uuesti pärast salvestamist.
Apache — nõuab mod_headers lubamist; saidi konfiguratsioonis või .htaccess-is:
Header always set X-Content-Type-Options "nosniff"
IIS / Windowsi hostimine — web.config-is <system.webServer> all:
<httpProtocol>
<customHeaders>
<add name="X-Content-Type-Options" value="nosniff" />
</customHeaders>
</httpProtocol>
Node / Express — seadke see igale vastusele:
app.use((req, res, next) => {
res.setHeader('X-Content-Type-Options', 'nosniff');
next();
});
(Või kasutage helmet paketti, mis seab selle ja mitu muud turbe päist vaikimisi.)
Google Workspace / Microsoft 365 saidid: need haldavad teie meili ja dokumente, mitte teie avaliku veebisaidi hostimist, seega päist ei seadistata seal — see seadistatakse kus iganes teie veebisait ise teenindatakse (teie CDN-is, veebiserver või saidiehitajas). Kui kasutate hostitud saidiehitajat (Squarespace, Wix, Shopify ja sarnased), lisavad paljud selle päise teile automaatselt; kontrollige tulemust selle asemel, et eeldada, ja küsige nende toelt, kui see puudub.
Pärast juurutamist kontrollige seda. Käivitage uuesti skannimine, või laske teie arendajal kontrollida vastuse päiseid brauseri arendustööriistades (Võrgu sakk → klõpsake mis tahes päringutel → Vastuse päised) ning kinnitage X-Content-Type-Options: nosniff olemasolu. Testige saiti lühidalt, et kinnitada, et midagi stiili või skriptide osas ei lõhkunud — õigesti ehitatud saidil midagi ei lõhu.
Levinud vead
- Selle seadistamine ainult avalehele. Päis peab olema igal vastusel — sealhulgas piltidel, skriptidel, stiilistikel ja üleslaaditud failidel — sest need on ressursid, mida nuusutamine mõjutab. Rakendage seda serveri või CDN tasandil, nii et see on universaalne, mitte leht-lehelt.
- Kirjaviga väärtuses. Ainus kehtiv väärtus on
nosniff. Kõik muu (tühi väärtus, kirjaviga) ei läbi kontrolli ja ei paku kaitset. Skanner teatab nähtud väärtuse, nii et kirjaviga saate märgata. - Eeldamine, et see asendab sisuturbepoliitikat. nosniff on üks kiht. See ei kontrolli, milliste skriptide laadimine on lubatud — see on CSP töö. Lisage nosniff nüüd kiire võiduna ja käsitlege nõuetekohast CSP-d suurema järelmeetmena.
- “Duplikaadi” eemaldamine. Kui nii teie CDN kui päritolu selle seadistavad, näete seda kaks korda. See on kahjutu — ärge kulutage aega ühe eemaldamisele.
- Selle eest maksmine. See on tasuta konfiguratsioonilisamine. Jälgimine, auditid ja portfelli töölauad on legitiimselt tasulised; ühe päise lisamine pole.
Andke see teie IT-inimesele
Tehniline kokkuvõte: see kontroll uurib HTTP vastuse päiseid ja läbib, kui X-Content-Type-Options on olemas ja selle (täheregistritundetu) väärtus sisaldab nosniff — sealhulgas mitme allika nosniff, nosniff juhul, kui CDN ja päritolu mõlemad selle seadistavad. Puuduvad või mitte-nosniff väärtus ebaõnnestub. See on hindamisväärt P2 kontroll, mis on väärt 25 punkti, hinnatud keskmise raskusega ebaõnnestumise korral ja vastab OWASP Top 10 A05-le (Turvalisuse konfiguratsiooni puudumine). Parandus on üks staatiline vastuse päis, mida rakendatakse kõigile vastustele; pole parameetreid ega kehtivaid alternatiivseid väärtusi. Seadistage see servas (CDN) kogu saidi katmiseks või veebiserver always semantikaga, nii et see edastatakse ka veavastusel, seejärel kinnitage vastuse päistes.
KKK
Me ei luba kellelgi faile üles laadida. Kas vajame ikka seda?
Jah, ja see on ikka seda väärt teha. Päis on kaitsesügavus: see takistab ka brauseril väärlugeda teie enda saidilt teenindatavaid skripte, stiilistikke ja andmefaile, mis kaitseb mitmete saidiüleste skriptimise trikke vastu isegi saitidel, millel pole üleslaadimise vormi. See ei maksa midagi ega lõhu õigesti konfigureeritud saiti, seega pole põhjust seda vahele jätta.
Kas selle lisamine lõhub midagi meie veebisaidil?
Peaaegu mitte kunagi. nosniff lihtsalt paneb brauserid austama teie server juba saadab sisu tüüpi. Ainus viis, kuidas see probleeme põhjustab, on kui teie server märgistab faile valesti — näiteks saadab stiilistiku või skripti vale tüübiga. Kui midagi lõhutub, on see tegelik viga, mille nosniff paljastas, mitte põhjustas, ja see on niikuinii parandamist väärt. Testige pärast juurutamist üks kord.
Milline näeb 'hea' tegelikult välja?
Üks vastuse päis igal lehel ja varal: X-Content-Type-Options: nosniff. See on kogu korrektne konfiguratsioon — pole muid kehtivaid väärtusi ega häälestamist vaja.
Meie CDN (Cloudflare või sarnane) ja meie server lisavad mõlemad selle — kas see on probleem?
Ei. Väärtuse topeltnägemine ('nosniff, nosniff'), sest nii CDN kui ka päritolu selle seadistavad, on täiesti fine ja läbib ikka. Te ei pea ühte eemaldama.
Kas see parandamine maksab midagi?
Ei. Parandus on üks rida tasuta konfiguratsiooni teie veebiserveri või CDN-is. Igaüks, kes küsib teilt tasu ühe päise lisamise eest, küsib üle. Ainsad asjad, mille eest tasub maksta, on jätkuv jälgimine, portfellide vaade mitme saidi üle või ametlik audit — mitte parandus ise.
Kuidas see erineb sisuturbepoliitikast (CSP)?
Need täiendavad üksteist. CSP kontrollib, millised skriptid ja ressursid üldse laadida lubatud on; nosniff takistab brauseril faili, mida ta laadib, valesti klassifitseerimast. Soovite mõlemat. nosniff on palju lihtsam ja kiirem lisada, seega on see hea esimene samm täieliku CSP poole teel.