Saugumo antraščių analizatorius
Įklijuokite neapdorotas HTTP atsako antraštes iš curl -I ar naršyklės įrankių juostos (DevTools) tinklo skirtuko ir gaukite įvertintą saugumo auditą – tikrą turinio saugumo politikos (Content-Security-Policy) gramatikos analizatorių, taip pat HSTS, X-Frame-Options, slapukų vėliavėlių ir daugiau patikrinimų, visiškai neprisijungus prie tinklo.
🔒 Visiškai apdorojama jūsų naršyklėje – niekas, kurį čia įvedėte, niekada neįkeliama.
Rezultatas
Atsako antraštėse perduodama didžioji dalis realios, naršyklės vykdomos svetainės saugumo politikos, tačiau jas apžiūrėti akimis lengva suklysti: turinio saugumo politika (Content-Security-Policy) iš pirmo žvilgsnio gali atrodyti griežta, tačiau tyliai leisti 'unsafe-inline' scenarijus, o griežto transportavimo saugumo (Strict-Transport-Security) antraštė gali būti su tokiu trumpu max-age, kad praktiškai nieko nedaro. Šis įrankis paima jūsų įklijuotą neapdorotą antraščių bloką – nukopijuotą tiesiai iš curl -I, Postman ar naršyklės įrankių juostos (DevTools) tinklo skirtuko užklausos – ir atlieka tokius pačius patikrinimus, kokius naudoja gerai žinomi internetiniai antraščių vertintojai, ir visa tai daro jūsų naršyklėje. Nieko nepasiekiama: analizuojama tik tai, ką įklijuojate, o tai reiškia, kad įrankis veikia identiškai tiek viešai gamybinei svetainei, tiek vidiniam testiniam serveriui, tiek serveriui, esančiam už ugniasienės, kurio joks išorinis skeneris negalėtų pasiekti.
Svarbiausia dalis yra tikras turinio saugumo politikos (Content-Security-Policy) gramatikos analizatorius, o ne kontrolinis sąrašas. Antraštės reikšmė išskaidoma pagal kabliataškius į direktyvas, o kiekvienos direktyvos šaltinių sąrašas išskaidomas ir tikrinamas atskirai: su scenarijais ir stiliais susijusios direktyvos pažymimos, jei leidžia 'unsafe-inline' arba 'unsafe-eval', bet kuri direktyva pažymima dėl atviro pakaitos simbolio '*' šaltinio (su didesniu rimtumu, kai šis pakaitos simbolis yra script-src, object-src, base-uri ar default-src), platūs schemų šaltiniai, pvz., 'https:' scenarijų direktyvoje, įvardijami kaip beveik tokie pat leidžiantys, kaip pakaitos simbolis, o visa politika tikrinama, ar netrūksta default-src atsarginės direktyvos ir ar nėra pasenusių direktyvų (block-all-mixed-content, plugin-types, referrer, reflected-xss), kurių šiuolaikinės naršyklės tiesiog nepaiso. CSP, išsiųsta tik kaip Content-Security-Policy-Report-Only, atpažįstama ir pažymima kaip faktiškai dar neįgyvendinta, priešingai nei visiškai nesanti politika.
Be CSP, įrankis tikrina ir Strict-Transport-Security, analizuodamas savo max-age direktyvą ir pažymėdamas reikšmes, mažesnes nei maždaug šeši mėnesiai, kaip per trumpas, kad būtų reikšmingai veiksmingos, taip pat ar nustatyti includeSubDomains ir preload. X-Content-Type-Options turi būti tikslus 'nosniff' tekstas, kitaip pažymima, kad naršyklių nepaisoma. X-Frame-Options tikrinama dėl DENY arba SAMEORIGIN, tačiau įrankis taip pat žino, kad CSP frame-ancestors direktyva yra šiuolaikinis apsaugos nuo paspaudimų vagystės pakaitalas – jei ji yra, X-Frame-Options laikoma padengta, net jei pačios senosios antraštės nėra. Referrer-Policy tikrinama pagal tikrą galiojančių raktažodžių sąrašą ir pažymima, jei nustatyta į URL atskleidžiančią 'unsafe-url' reikšmę, Permissions-Policy tikrinama dėl buvimo, o kiekviena rasta Set-Cookie eilutė analizuojama dėl savo Secure, HttpOnly ir SameSite atributų, įskaitant konkrečią taisyklę, kad SameSite=None slapukai be Secure yra tyliai atmetami naršyklių.
Kiekvienas patikrinimas sukuria vieną iš trijų sąžiningų būsenų – gerai, reikia dėmesio arba nėra – su paprastai suprantamu paaiškinimu, kodėl ta antraštė svarbi realioms atakoms (XSS, paspaudimų vagystei, slapukų vagystei, protokolo pažeminimui), o bendras A–F pažymys yra skaidri kiekvienos antraštės taškų suma, o ne nepermatomas balas. Visą ataskaitą galima vienu paspaudimu nukopijuoti kaip paprastą tekstą, kad įklijuotumėte į pakeitimų užklausą, užduotį ar saugumo peržiūrą, o kadangi analizė atliekama tik iš įklijuoto teksto, šis įrankis vienodai naudingas tiek savo svetainės antraščių auditui, tiek tiekėjo atsako peržiūrai prieš integravimą, tiek konfigūracijos pakeitimo patikrinimui prieš jį pristatant.