Ką patikrinti, norint įvertinti svetainės saugumą?

Iš išorės patikrinami keturi dalykai: ar TLS sertifikatas galioja ir nukreipia į HTTPS, ar siunčiamos saugumo antraštės, ar puslapyje nėra mišraus turinio, ir ar viešai neprieinami administravimo bei konfigūracijos adresai. Ketvirtas sluoksnis — atnaujinimai — matomas tik viduje.

SeoScore

Saugumo auditas skamba kaip darbas įsilaužimo specialistui, bet didžioji jo dalis matoma iš išorės ir per kelias minutes. Ne todėl, kad tai lengva, o todėl, kad dažniausios klaidos yra konfigūracijos, ne kodo.

Svarbu iš karto atskirti: čia kalbama apie higieną, ne apie pažeidžiamumų paiešką. Piktybinio kodo ir žinomų spragų tikrinimas yra kitas darbas — jam Lietuvoje veikia ir nemokamas NKSC įrankis.

1. Sertifikatas ir HTTPS

Pirmas ir vienintelis sluoksnis, kurį pastebi lankytojas. Tikrinama:

  • ar sertifikatas galioja ir kada baigiasi;
  • ar http:// nukreipia į https://, o ne veikia lygiagrečiai;
  • ar www ir be www versijos veda į tą patį adresą.

Dvi lygiagrečiai veikiančios versijos yra ir saugumo, ir SEO problema: turinys dubliuojasi, o dalis lankytojų lieka neužšifruotame ryšyje.

2. Saugumo antraštės

Čia gyvena didžiausias skirtumas tarp „veikia" ir „tvarkinga". Antraštės yra nurodymai naršyklei, ką ji gali daryti su tavo puslapiu:

Strict-Transport-Security   naršyklė nebebando HTTP net vieno karto
Content-Security-Policy     iš kur leidžiama krauti skriptus
X-Content-Type-Options      draudimas spėti failo tipą
Referrer-Policy             kiek adreso atiduodam svetimai svetainei
X-Frame-Options             ar mūsų puslapį galima įdėti į svetimą rėmą

Jos nieko nesulaužo ir nieko nekainuoja, o be jų naršyklė elgiasi atlaidžiausiai įmanomu būdu.

3. Mišrus turinys ir svetimi skriptai

Puslapis per HTTPS, kuriame nors vienas paveikslėlis ar skriptas ateina per HTTP, yra puslapis su skyle. Naršyklė dalį tokio turinio blokuoja tyliai, ir klaida pasirodo kaip „kažkas neveikia".

Antra pusė — kiek svetimų domenų apskritai turi teisę vykdyti kodą tavo puslapyje. Kiekvienas jų yra pasitikėjimas, kurio nekontroliuoji.

4. Kas prieinama, kai neturėtų

Greita patikra, kurią verta padaryti visiems: ar viešai neatsidaro /.env, /.git/config, /backup.zip, administravimo skydelis be apribojimų. Tai ne teorija — būtent taip randama dauguma nutekėjusių raktų.

Ko iš išorės nepamatysi

Bibliotekų versijų, serverio pataisymų, slaptažodžių politikos ir atsarginių kopijų. Šitą dalį tikrina tik tas, kas turi prieigą — todėl išorinis auditas niekada nėra pilnas auditas, ir gera ataskaita tai pasako.

Susiję straipsniai

Ta pati tema iš kitos pusės — kiekvienas atsako į savo klausimą:

Kaip tai patenka į balą, aprašyta ties ką tikriname.

Šaltiniai

Tai, kuo remiasi šis tekstas — pirminiai šaltiniai, ne perpasakojimai:

Keturi sluoksniai iš išorės — TLS sertifikatas ir nukreipimas į HTTPS; Saugumo antraštės — CSP, HSTS, X-Content-Type-Options; Mišrus turinys ir svetimi skriptai; Atviri administravimo ir konfigūracijos adresai.

Dažni klausimai

Ar SSL sertifikato pakanka?

Ne. Sertifikatas užšifruoja ryšį ir nieko daugiau. Jis nesustabdo nei kenkėjiško skripto puslapyje, nei atviro `/.env`, nei silpno slaptažodžio.

Ar saugumo antraštės lėtina svetainę?

Ne. Tai kelios eilutės atsakyme — matuojama baitais, ne milisekundėmis. Vienintelė reali kaina yra laikas, kurio reikia teisingai suderinti `Content-Security-Policy`.

Kaip dažnai tikrinti?

Antraštes ir sertifikatą — po kiekvieno serverio ar CDN pakeitimo. Viską kita — kartą per ketvirtį. Sertifikato galiojimui verta turėti atskirą priminimą.

Ar saugumas veikia SEO?

Netiesiogiai, bet realiai. HTTPS yra reitingavimo signalas, o užkrėsta svetainė gali gauti įspėjimą paieškos rezultatuose — tai kainuoja daugiau nei bet kuri techninė smulkmena.

Pasitikrink

Nemokamas skenas parodo, ką iš to, kas aprašyta, tavo svetainė jau daro, o ko — ne.

Skenuoti svetainę →