Kaip apsaugoti savo interneto svetainę – Kibernetinio saugumo patarimai

Kibernetinio saugumo patarimai kaip apsaugoti interneto svetaine

Jei jūsų interneto svetainė pasiekiama viešai, ją kaskart patikrina automatizuoti skeneriai, ieškantys senų versijų, silpnų slaptažodžių, prastai parašytų įskiepių ir klaidingų serverių ar svetainės konfigūracijų.

Dauguma sėkmingų įsilaužimų įvyksta ne dėl “0-day” magijos, o dėl apleistos bazinės higienos. Žemiau pateikiame profesionalų, bet lengvai pritaikomas gidą, kuris padės sutvarkyti svarbiausius sluoksnius: atnaujinimus, šifravimą, prieigų kontrolę, ugniasienę, duomenų bazę, serverį ir saugumo antraštes.

Pateiksiu šiek tiek techninių pavyzdžių, tačiau fokusas išlieka aiškus veiksmų planas.

Atnaujinimai

Saugumas prasideda nuo versijų, o t.y. atnaujintos programavimo kalbos (pvz., PHP, Node.js, Python), aplikacijų platformos (WordPress, Laravel, Django ir pan.), serverio OS ir branduolio pataisos užlopina žinomas spragas.

Tas pats galioja įskiepiams ir trečiųjų šalių integracijoms, būtent jos labai dažnai tampa kritiniais taškais įsilauželiam. Idealiu atveju prieš diegdami tikrinkite tiekėjų reputaciją, CVE įrašus, atlikite trumpą saugumo peržiūrą. Paprastesnis, bet efektyvus variantas yra atnaujinti vos tik pasirodo saugumo pataisos. Darykite pilnas atsargines kopijas prieš atnaujinimus ir, jei įmanoma, automatizuoti saugumo atnaujinimo patikras.

WordPress atveju padeda WP-CLI, pavyzdžiui: wp core update && wp plugin update --all

SSL/TLS

HTTPS šiandien yra minimalus standartas.

Pasirinkite patikimą sertifikatą, nemokamas Let’s Encrypt puikiai tinka daugeliui svetainių, o mokami sertifikatai praverčia, kai reikia specifinių validacijų ar garantijų.

Svarbu ne tik turėti sertifikatą, bet ir priversti eismą vykti per HTTPS (peradresavimas) bei įjungti HSTS, kad naršyklės net nebandytų jungtis per HTTP. Rekomenduotina palaikyti TLS 1.2 ir 1.3, išjungti silpnus šifrus, o konfigūraciją periodiškai pasitikrinti šioje svetainėje: ssllabs.com/ssltest

Jautrūs failai ir aplankai

Interneto svetainės pagrinduose dažnai guli konfigūracijos ir slapti failai (.env, wp-config.php, composer.lock ir pan.). Jie turi būti pasiekiami programai, bet ne iš išorės. Tinkamai sukonfigūruotas žiniatinklio serveris tai išsprendžia keliomis taisyklėmis.

Nginx pavyzdys:

				
					# Slėpti paslėptus ir konfigūracijos failus
location ~ /\. { deny all; }
location ~* /(wp-config\.php|\.env|composer\.(json|lock))$ { deny all; }

# Išjungti katalogų sąrašus
autoindex off;
				
			

Apache (.htaccess) pavyzdys:

				
					Options -Indexes
<filesmatch>
  Require all denied
</filesmatch>
				
			

Papildomai pasirūpinkite failų prieigos teisėmis(chmod), katalogams užtenka 750/755, failams 640/644, o konfigūracijoms 600/640 pagal poreikį.

Prisijungimai

Silpnas slaptažodis šiandien prilygsta atvirai durų spynai, o juolabiau, kad slatažodžiai tampa vis labiau pažeidžiama prisijungimo priemonė.

Reikalaukite ilgesnių (25+ simbolių) slaptažodžuų, naudokite slaptažodžių tvarkykles ir neužleiskite administratoriaus paskyrų žmonėms, kuriems jų nereikia.

Dviejų veiksnių autentifikacija (2FA) turi būti ne rekomendacija, o privaloma taisyklė, tiek administratorių, tiek, jei įmanoma, klientų paskyroms.

Apsaugai nuo bruteforce atakų padeda užklausų limitai ir “rate limiting”, o pačią admin zoną verta apsaugoti IP “allowlist’u”, kad galėtų pasiekti admin paskyras tik tam tikrą IP turintys vartotojai(pvz.: jūsų ofisas

Ugniasienė (WAF)

Tinklo ugniasienė riboja atidarytus portus (SSH, DB ir pan.), tačiau žiniatinklio aplikacijų ugniasienė (WAF) supranta HTTP srautą ir filtruoja blogus užklausų šablonus: SQL injekcijas, XSS, LFI/RFI, botų triukus.

Praktiškas sprendimas pasitelkti WAF iš kliento aplinkos (pvz., Cloudflare, Sucuri) arba naudoti ModSecurity.

WAF dažnai kartu suteikia “rate limiting”, DDoS mažinimą ir botų valdymą tai ne tik saugu, bet ir padeda serveriui atlaikyti srautą.

Vartotojų teisės privilegijų principas ir periodinis auditas

Suteikite tik tiek teisių, kiek būtina užduotims atlikti, o kasdienybėje laikykitės disciplinos pridedant žmones. Roles parinkite sąmoningai, nesuteikite per daug prieigos nei iš tiesų reikia, jei jūsų darbuotojas nebedirba su Jumis – iškart panaikinkite jo prieigas.

Idealiausiu ateveju kartą per ketvirtį vertėtų peržvelgti, kas turi administratoriaus teises, ar yra pamirštų paskyrų, ar audito žurnalai aiškiai rodo, kas ką darė.

Duomenų bazės

Interneto svetainė ar aplikacija neturi jungtis prie duomenų bazės su pagrindine(admin) paskyra, sukurkite atskirą vartotoją, kuris gali atlikti tik reikalingas operacijas (skaityti/rašyti konkrečiaus duomenis).

Prisijungimus prie duomenų bazės apribokite pagal šaltinį, o tarp aplikacijos ir duomenų bazės įjunkite TLS, jei tai įmanoma.

Didžiausia klaida kuri dažnai daroma: nevaliduojamos, netikrinamos ir nefiltruojamos įvestys. Naudokite paruoštas užklausas arba ORM, jokio užklausų “suklijavimo”.

Jautrią informaciją saugant būtinai šifruokite. Priklausomai nuo scenarijaus tinka laukelių šifravimas, disko šifravimas ar aplikacinis šifravimas su tinkamai saugomais raktų valdymo mechanizmais.

Nepamirškite atsarginių kopijų ir periodinių atkūrimo pratybų, taip tik atsikūrę žinosite, kad kopijos vertos pasitikėjimo. Slaptažodžiai, API raktai ir pan. neturi būti repozitoriuje, laikykite jas .env ar kituose tam skituose failuose ar slaptų duomenų saugyklose, su ribota prieiga ir auditavimu.

Serverio tiekėjas

Net ir idealiai sukonfigūruota interneto svetainė ar aplikacija bus pažeidžiama, jei serverio OS, branduolys ir paslaugos neatnaujinamos. Renkantis tiekėją, įsitikinkite, kad saugumo pataisos diegiamos laiku, yra bazinė DDoS apsauga, izoliuota infrastruktūra (ypač dalijamuose hostinguose), patikimos atsarginės kopijos ir normali incidentų komunikacija.

Jei neturite vidinių resursų, valdomas hostingas dažnai kainuoja pigiau nei vienas incidentas. Atkreipkite dėmesį ir į lokaciją bei teisinę aplinką (pvz., BDAR/GDPR).

Saugumo antraštės

Saugumo antraštės priverčia naršykles laikytis saugesnių taisyklių ir ženkliai sumažina XSS, clickjacking bei turinio įkėlimo rizikas. Minimalus rinkinys: HSTS, X-Content-Type-Options, X-Frame-Options arba CSP frame-ancestors, Referrer-Policy, Permissions-Policy, o svarbiausia gerai sukonfigūruota Content-Security-Policy.

Pavyzdinė Nginx ištrauka:

Saugumo antraštės priverčia naršykles laikytis saugesnių taisyklių ir ženkliai sumažina XSS, clickjacking bei turinio įkėlimo rizikas. Minimalus rinkinys: HSTS, X-Content-Type-Options, X-Frame-Options arba CSP frame-ancestors, Referrer-Policy, Permissions-Policy, o svarbiausia gerai sukonfigūruota Content-Security-Policy.

Pavyzdinė Nginx ištrauka:

				
					add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "DENY" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Content-Security-Policy "default-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'; upgrade-insecure-requests" always;

				
			

Savo saugumo antraščių patikrą galite atlikti securityheaders.com, ten pateiks aiškius patarimus, ką dar sugriežtinti.

Logai ir pasirengimas incidentams

Saugumas nėra vienkartinis darbas, tai yra procesas. Automatizuokite pasiekiamumo (uptime) stebėseną, rinkite klaidų ir prieigos žurnalus į centralizuotą vietą, nustatykite aliarmus keistam elgesiui. Atsarginėms kopijoms taikykite 3-2-1 principą (trys kopijos, dvi laikmenos, viena neprijungta ar kitoje lokacijoje) ir bent kartą per ketvirtį atlikite atkūrimo testą.

Turėkite trumpą incidentų planą: kas, ką ir kokia seka daro, jei nutinka bėda; kaip sugriežtinate WAF, kaip atimate prieigas, kam pranešate, kaip dokumentuojate pamokas.

Išvados

Interneto svetaines saugumas nėra vien priemonių sąrašas, o disciplina ir nuoseklumas. Pradėkite nuo esminių dalykų: atnaujinkite platformą/programavimo kalbą/serverius, užrakinkite jautrius failus, įjunkite HTTPS ir HSTS, sutvarkykite prisijungimus su 2FA, įdiekite WAF, apribokite DB teises, pasirinkite patikimą serverio tiekėją ir sukonfigūruokite saugumo antraštes. Tada įveskite monitoringą, tvarkingas atsargines kopijas ir incidentų planą.

Šie žingsniai uždarys daugumą lengvų taikinių durų ir ženkliai sumažins tikimybę, kad tapsite sekančiu įsilaužėlių sąraše.

Kontaktai

Bendradarbiaukime

Turite klausimų ar norite bendradarbiauti? Mes teikiame įvairias IT paslaugas – nuo kibernetinio saugumo sprendimų, sistemų analizės iki programavimo darbų.

Sekantys žingsniai?
1

Susisiekiame su Jumis

2

Išsiaiškiname kokių paslaugų norite

3

Paruošiame pasiūlymą

Užpildykite formą ir su Jumis susisieksime
Užpildydami šią formą, Jūs sutinkate, kad Jūsų pateikta informacija (vardas, el. paštas, telefono numeris ir kt.) bus naudojama išimtinai susisiekti su Jumis dėl Jūsų užklausos ar paslaugų aptarimo. Mes įsipareigojame nenaudoti šių duomenų tiesioginės rinkodaros, reklamos tikslais ir neperduoti jų jokioms trečiosioms šalims be Jūsų atskiro sutikimo.