Categories
Uncategorized

Mano svetainė nulaužta: ką daryti?

Nors visi puikiai supranta, kaip svarbu apsaugoti svetainę nuo galimų įsilaužimų, deja, apie prevencinius veiksmus dažnai pradedama galvoti tik tada, kai svetainėje jau būna įterptas žalingas kodas. Žiniasklaidoje nuolat pranešama, kad įvairių stambių įmonių ar valstybinių organizacijų svetainė buvo nulaužta. Tuomet dažnai sulaukiama grasinimų atskleisti duomenis ir prašoma sumokėti išpirką norint, kad informacija nebūtų paviešinta (vadinamosios Ransomware atakos). Tačiau atakos ne visada būna organizuotos. Kartais programišiai tai atlieka tik dėl „sportinio“ intereso. Todėl ne tik gerai žinomų įmonių svetainės yra pavojuje – kiekviena neapsaugota svetainė gali tapti atakos taikiniu.

Kiekvienam svetainės savininkui rekomenduojame pasitikrinti svetainės saugumą su įrankiais, aptinkamais internete. Toliau šiame straipsnyje apžvelgsime veiksmus, kuriais reikia pradėti norint pašalinti įsilaužimo padarinius, pateiksime rekomenduojamus nemokamus mūsų bei trečiųjų šalių suteikiamus įrankius, kurie padės aptikti įterptą žalingą kodą bei informuos apie pastebimas saugumo spragas.

Nuo ko pradėti?

Įvykus atakai, visų pirma, rekomenduojame ar turima svetainės kopijos, generuota iki nulaužimo. Tai greičiausias sprendimas norint atstatyti svetainės veikimą. Mūsų klientai, kurie naudojasi talpinimo plano paslauga, visada gali užsisakyti praėjusios nakties arba praėjusio penktadienio duomenų kopijas ir taip atstatyti svetainės veikimą. Tačiau dažniausiai atstatomas tik pats svetainės veikimas, nes žalingas kodas svetainėje būna įterptas jau seniau, todėl vis tiek tenka pradėti nuo viruso šalinimo iš svetainės failų.

Dar viena dažna svetainės administratorių klaida – įvykus įsilaužimui atliekami tik prevenciniai veiksmai: programinės įrangos atnaujinimas ar HTTP saugumo antraščių (linkas) įvedimas pamirštant pašalinti buvusias saugumo spragas. Net jas ir pašalinus, virusas vis dar gali išlikti tarp svetainės failų ir vykdant įvairias komandas iš išorės, kuriami nauji žalingi failai, sukuriant naujas saugumo spragas. Todėl žalingų failų pašalinimas yra būtinas veiksmas norint turėti saugią svetainę.

Rekomenduojamas veiksmų planas įvykus atakai:

  1. Duomenų kopijos atstatymas, jeigu tokia turima.
  2. Saugumo spragų aptikimas ir pašalinimas.
  3. Programinės įrangos atnaujinimas.
  4. Prisijungimo prie valdymo sistemų slaptažodžių keitimas.
  5. Papildomų apsaugų įvedimas.

Toliau aptarsime antrąjį žingsnį – saugumo spragų aptikimą ir pašalinimą. Šiam žingsniui įgyvendinti galite pasitelkti internete randamus nemokamus įrankius.

Svetainių skenavimo įrankiai

Internete galite rasti įvairių skenavimo įrankių, tačiau dažniausiai jie būna mokami arba atlieka tik tam tikros svetainės dalies skenavimą. Todėl apačioje nurodyti keli skirtingi skenavimo įrankiai, kuriais pasinaudojus galėsite nustatyti visas galimas saugumo spragas ar virusus, esančius Jūsų svetainėje.

  • NKSC – Nacionalinis Kibernetinio Saugumo Centras – suteikia teisę pasinaudoti automatizuotu skenavimu su OWASP ZAP programine įranga. Suvedus svetainės adresą bei kontaktinį el. pašto adresą, jums atsiunčiamas laiškas su visais reikiamais veiksmais. Atlikus skenavimą, gausite detalią informaciją apie visas aptiktas spragas, kuriomis gali būti arba jau yra pasinaudota. Detalesnę informaciją apie naudojimąsi šiuo įrankiu bei gaunamos ataskaitos analizę rasite mūsų parengtoje pamokoje.
  • Linux Malware detect įrankis – mūsų klientai, kurie naudojasi talpinimo plano paslaugomis bei profesionalaus hostingo paslaugomis, turi galimybę pasinaudoti automatizuotu Maldet įrankiu, įdiegtu mūsų administruojamuose serveriuose. Šis įrankis yra nuolatos atnaujinamas, todėl atpažįsta didžiąją dalį visų svetainėje esančių žalingo kodo intarpų. Kitaip nei dauguma internete randamų skenavimo įrankių, Maldet atlieka skenavimą visuose svetainės failuose, ne tik pagrindiniame svetainės puslapyje.
  • VirusTotal – vienas populiariausių svetainių ar konkrečių failų skenavimo įrankių. Šio įrankio pagalba galite ne tik atlikti svetainės konkretaus puslapio patikrą, tačiau taip pat įkelti įtartinus failus. VirusTotal atlieka patikrą daugiau nei 50-yje skirtingose antivirusinių duomenų bazėse ir tikrina, ar toks kodas yra aptinkamas. Šis įrankis pasižymi greitai atliekama analize bei nesudėtinga vartotojo sąsaja. Dedikuoto serverio naudotojai gali pasinaudoti automatiniu serverio failų skenavimu nemokamai.
  • Sucuri – dar vienas patikimas skenavimo įrankis, kuris papildomai suteikia informaciją ar svetainė nėra įtraukta į juoduosius sąrašus bei informuoja, ar svetainė nenaudoja pasenusios programinės įrangos. Kai kuriais atvejais įrankis gali suteikti ir konkretų kodą, kuris atrodo įtartinas. Sucuri papildomai suteikia galimybę užsakyti mokamą paslaugą – gausite išsamią svetainės analizę bei pagalbą šalinant saugumo spragas ir žalingą kodą.
  • Google Malware Checker – Google taip pat suteikia nemokamą skenavimo paslaugą. Remiantis savo duomenų baze, atliekamas detalus skenavimas tikrinant ne tik nurodytą svetainės puslapį, tačiau papildomai įtraukiant įskiepius bei multimedijos failus. Tai yra vienas paprasčiausių įrankių internete. Jis yra ypač aktualus tuomet, kai Google sistema, aptikus žalingą kodą svetainėje, automatiškai kiekvienam lankytojui papildomai pateikia perspėjimą dėl nesaugaus turinio. Pašalinus šio įrankio nurodytą įtartiną kodą, po tam tikro laiko pašalinimas ir perspėjimas.
  • SiteGuarding – naudojantis nemokama šio įrankio versija galite sužinoti ar svetainė bei kiti domenai, į kuriuos atliekamas peradresavimas iš jūsų svetainės, nėra įtraukti į juoduosius sąrašus kituose skenavimo įrankiuose. Taip pat, atliekamas tikrinimas ar visi aptikti domenai nėra įtraukti į spam juoduosius sąrašus. Kaip ir kiti įrankiai, SiteGuarding suteikia mokamas paslaugas – 24/7 svetainės tikrinimą, šalinimą iš juodųjų sąrašų ir t.t.
  • Quettera – nemokamas skenavimo įrankis, nereikalaujantis papildomos registracijos skenavimo atlikimui. Pateikiamas ne tik trumpas atsakymas ar svetainėje nėra žalingo turinio, pasirinkus funkciją „Detailed report“, suteikiama detalesnė informacija apie atliktą skenavimą. Taip pat galima užsakyti ir mokamą versiją su išsamesne pagalba sprendžiant svetainėje pastebėtas saugumo spragas. Jeigu naudojatės WordPress turinio valdymo sistema, galite įsidiegti Quettera įskiepį į svetainę.
  • Kompiuterio antivirusinė programa – dar vienas naudingas įrankis, norint surasti kenkėjišką kodą svetainėje. Galite parsisiųsti savo svetainės failus iš serverio į kompiuterį ir atlikti patikrinimą su jau turima kompiuterio antivirusine programa. Antivirusinė programa ieško įtartino kodo fragmentų visuose failuose, nepaisant to ar failai naudojami kompiuterio ar svetainės programinėje įrangoje.
  • Papildomi įskiepiai – visi aukščiau išvardinti įrankiai padeda aptikti problemą, kai ji jau yra. Tačiau nenaudojant papildomų apsisaugojimo priemonių žalingas kodas ateityje ir vėl gali būti įterpiamas į svetainę, tuomet turėsite iš naujo pasitelkti skenavimo įrankius. Jeigu įdiegtumėte antivirusinį įskiepį į svetainę, šių veiksmų atlikti nebereikėtų, nes visi svetainės failai būtų tikrinami reguliariai, neleidžiant virusui išplisti. Kai kurie įskiepiai netgi gali automatiškai deaktyvuoti failus, jeigu jie nėra reikalingi svetainės veikimui ir turi kenkėjiško kodo. Jeigu naudojatės WordPress turinio valdymo sistema, dažniausiai naudojamas WordFence įrankis, Joomla – Antivirus Website Protection ir pan. Norint išlaikyti svetainę saugią, tokio tipo įskiepiai yra tiesiog būtini.

Be abejo, tai tik dalis svetainių skenavimo įrankių. Straipsnyje pateikti mūsų klientų dažniausiai naudojami įrankiai bei skenavimo būdai. Papildomai norime atkreipti dėmesį, kad aptikus žalingą kodo fragmentą faile nereikia skubėti trinti viso failo. Labai dažnai kodas būna įterpiamas į svetainės veikimui reikalingus failus, todėl viso failo trynimas sutrikdytų svetainės veikimą. Prieš atliekant įtartino kodo šalinimą, rekomenduojame papildomai kreiptis į savo svetainės kūrėjus ar programuotojus.

Taip pat norime perspėti, kad nereikėtų pasitikėti visomis internete aptinkamomis nemokamomis antivirusinėmis programomis. Įrankiai, kurie siunčiami iš nepatikimų trečiųjų šalių šaltinių gali savyje talpinti žalingą kodą ir vykdyti kenkėjišką veiklą apsimetant antivirusine programa. Jeigu įrankis nemokamas, rekomenduojame jį siųstis tik iš oficialių Jūsų turinio valdymo sistemos puslapių, kaip pavyzdžiui, Drupal ar OpenCart. Norint įsigyti mokamą programinę įrangą ją turėtumėte siųstis tik iš gamintojo puslapio. Radus tą patį mokamą įrankį nemokamai arba pigiau nei gamintojas siūlo, rizikuojate tuo pačiu parsisiųsti ir programinę įrangą, kuri naudosis Jūsų svetainei suteiktais resursais bei dar aktyviau platins kenkėjišką kodą.

Apibendrinimas

Pastebėjus, kad jūsų svetainė yra nulaužta, neskubėkite trinti visos svetainės failų. Žalingo kodo šalinimas tikrai įmanomas pasitelkus įvairius skenavimo įrankius. Tam, kad problemos nereikėtų šalinti tuomet, kai svetainė jau yra pažeista, rekomenduojame visada naudoti svetainės antivirusinės įskiepius. Taip pavyks išvengti galvos skausmo ieškant, kur yra saugumo spraga bei nekils rizika pašalinti svetainės veikimui svarbius failus.

Categories
Uncategorized

SSH dviguba autorizacija (2FA) Ubuntu serveryje

Dažniausiai serverio terminalo galite prisijungti naudodami slaptažodį arba naudojant SSH raktus. Pats nesaugiausias būdas yra tieisog naudojant slaptažodį. SSH raktų naudojimas padidina prisijungimo saugumą. Tačiau Ubuntu serveris suteikia dar vieną saugią galimybę prisijungti prie serverio – dviguba autorizacija. Ši autorizacija veikia pasitelkiant Google Authenticator programinę įrangą, kuri naudojama daugumoje didžiausių internetinių svetainių bei servisų. Dviguba autorizacija reikalauja įvesti prisijungimo slaptažodį/viešą raktą bei nuolatos kintančią 6 skaičių reikšmę, kuri pateikiama Google Authenticator programėlėje telefone ir yra paremta TOTP algoritmu, kuris atitinka IETF standartą.
Šioje pamokoje pateiksime instrukciją, kaip susikonfigūruoti dviejų lygių autorizaciją naudojant patikimą Google autorizacijos algoritmą. Diegimas testuotas naudojant Ubuntu 20.04 OS,  tačiau tinka ir naudojant senesnėms Ubuntu versijoms.

0. Preliminarūs reikalavimai
* Dedikuotas serveris su įdiegtu mūsų parengtu Ubuntu OS šablonu.

1. Google Authenticator diegimas bei konfigūravimas serveryje
Prisijunkite prie serverio ir paleiskite žemiau pateiktą komandą, kuri įrašys Google Authenticator programinę įrangą iš pagrindinės Ubuntu repozitorijos:

sudo apt install libpam-google-authenticator

Gali būti, kad sulauksite klaidos:
Unable to locate package libpam-google-authenticator

Tokiu atveju atlikite serverio atnaujinimą su komanda:

sudo apt-get update

Atlikus atnaujinimus iš naujo paleiskite komandą „sudo apt install libpam-google-authenticator„. Užbaigus diegimą paleiskite google-authenticator komandą tam, kad sukurtumėte naują saugų raktą namų direktorijoje:

google-authenticator

Jums bus pateikiamas klausimas:
Do you want authentication tokens to be time-based (y/n)

Įveskite y raidę ir Jums bus sugeneruotas QR kodas:

Ši kodą galėsite nuskenuoti su programėle telefone. Tam atlikti rekomenduojame naudoti šias programėles:
* Google Authenticator – dažniausiai naudojama TOTP programėlė. Galite įdiegti ją naudojant Google Play ar Apple store platformas telefonu.* FreeOTP – kadangi Google Authenticator programa nėra atvirojo kodo, todėl, jeigu ja nepasitikite galite naudotis FreeOTP atvirojo kodo TOTP programėle, kuri yra kurta Red Hat kūrėjų.
Atminkite, kad norėdami teisingai nuskenuoti QR kodą jis turi būti matomas visas, todėl gali tekti padidinti terminalo langą. QR kodas yra žinomas tik SSH serverio ir TOTP mobilios programėlės. Kai tik atliksite skenavimą aplikacijoje matysite šešių skaičių kodą telefonu. Standartiškai jis keičiasi kas 30 sekundžių. Šis kodas bus reikalingas norint prisijungti prie Ubuntu per SSH tarnybą.

Terminale žemiau QR kodo matysite sugeneruotą dvigubos autorizacijos kodą, patvirtinimo kodą ir atsarginius kodus. Rekomenduojame išsisaugoti šią informaciją ir laikyti saugioje vietoje.
Toliau į visus klausimus atsakykite įvedę y raidę. Taip atliksite konfigūracijos failo atnaujinimą, išjungsite daugkartinį tos pačios žymės (angl. token) naudojimą, prailginsite laikotarpė per kurį pasikeis kodas ir įjungsite prisijungimų ribojimą kai bandoma prisijungti prie serverio daugiau nei 3 kartus per 30 sekundžių su tuo pačiu kodu.

2. SSH Deamon konfigūracija Google Authenticator naudojimuiAtsidarykite SSH serverio konfigūracijos failą:

sudo nano /etc/ssh/sshd_config

Faile susiraskite žemiau pateiktas eilutes ir patikrinkite ar abi jos turi yes reikšmes:
ChallengeResponseAuthentication yesUsePAM yes
PAM reiškia prijungiamas autorizacijos modulis (angl. pluggable authentication module).  Šis modulis suteikia skirtingų autorizacijos metodų prijungimą prie Linux sistemos. Tam, kad galėtume aktyvuoti Google Authenticator su SSH, PAM ir Challenge-Response parametrai turi būti įjungti.  Išsaugokite ir uždarykite failą. Tada atlikite SSH Deamon perkrovimą, tam, kad pakeitimai įsigaliotų:

sudo systemctl restart ssh

Pastaba: norint naudoti 2FA su root naudotoju turi būti pakeistas papildomas parametras į yes reiškmę: PermitRootLogin yes
Pagal nutylėjimą challenge-response autorizacija reikalauja įvesti slaptažodį prisijungimui. Todėl pakeisite PAM taisyklę SSH deamon’e:

sudo nano /etc/pam.d/sshd

Turite matyti tokią reikšmę:
@include common-auth
Taip pat įjungsime besikeičiantį prisijungimo kodą. Tam pridėkite žemiau pateiktas eilutes:
#One-time password authentication via Google Authenticator
auth required pam_google_authenticator.so
Išsaugokite ir uždarykite failą.

Nuo šiol jungiantis Jūsų bus prašoma įvesti naudotojo slaptažodį ir vėliau patvirtinimo kodą.

3. Public Key naudojimas su Google Authentication koduNorint užtikrinti dar saugesnį prisijungimą prie serverio papildomai rekomenduojama nustatyti, kad slaptažodis nebūtų naudojamas. Vietoje būtų naudojamas SSH raktas. Tai atlikti galite pagal šią instrukciją.

Kai atliksite šiuos veiksmus, galite sujungti viešo rakto autorizacijos naudojimą su patvirtinimo kodu. Tam atlikti visų pirma atsidarykite SSH deamon’o konfigūraciją:

sudo nano /etc/ssh/sshd_config

Ir pridėkite papildomą eilutę failp pabaigoje:AuthenticationMethods publickey,keyboard-interactive

Išsaugokite ir uždarykite failą. Atlikte SSH deamon’o perkrovimą:

sudo systemctl restart ssh

Papildomai dar reikia pakoreguoti SSH PAM konfigūracinį failą:

sudo nano /etc/pam.d/sshd

 Kuriame užkomentukite žemiau pateiktą eilutę naudodami simbolį # prieš @ simbolį ir palikdami tarpą:# @include common-auth

Uždarykite failą ir išsaugokite. Nuo šiol prisijungimui bus naudojamas SSH raktas bei Google Authenticator kodas.
Papildomi pastebėjimai:* kiekvienas naudotojas, kuris jungiasi prie serverio turi atlikti google-authenticator diegimą;* atsarginis kodas (angl. emergency scratch code) yra atsarginis kodas. Jeigu prarasite telefoną, gali įvesti vieną iš penkių pateiktų atsarginių kodų vietoje kintamo kodo tam, kad prisijungti prie sistemos. Šie kodai gali būti naudojami tik vienam prisijungimui;* jeigu norite pakeisti slaptą kodą, tiesiog prisijunkite prie serverio ir paleidę komandągoogle-authenticator pakartotinai ir ~/.google_authenticator failas bus pakoreguotas.

4. Kaip išjungti SSH dviejų lygių autorizaciją

Atsidarykite SSH deamon’o konfigūracijos failą:

sudo nano /etc/ssh/sshd_config

Susiraskite šią eilutę:AuthenticationMethods publickey,keyboard-interactive
Ir pašalinkite keyboard-interactive reikšmę:AuthenticationMethods publickey
Išsaugokite ir perkraukite SSH deamon’ą:

sudo systemctl restart ssh

Tai atlikus nebebus naudojama dviejų lugių autorizacija. SSH rakto veikimas, jeigu buvo toks sukonfigūruotas, išliks.

Categories
Uncategorized

HTTP saugumo antraštės

Kiekvieną dieną atrandama vis daugiau svetainių saugumo spragų. Todėl nuolatinė svetainių priežiūra tampa būtinybe norint, kad svetainės turinys būtų visada pasiekiamas bei saugus lankytojams. Apsisaugoti nuo įsilaužimų galima pasitelkiant įvairias metodikas. Viena efektyviausių ir paprasčiausių, tačiau naudojama retokai – HTTP antraštės apie kurias ir kalbėsime šiame straipsnyje.

Svetainės lankytojas, atidarydamas atitinkamą puslapį, pateikia užklausą į naršyklę suvesdamas svetainės domeno adresą naršyklės adreso laukelyje. Tuo metu, naršyklė HTTP protokolo pagalba kreipiasi į serverį, kuriame yra laikomas svetainės turinys. Serveris turinį apdoroja ir siunčia atsakymą naršyklei. Naršyklė gauna informaciją, sudarytą iš dviejų dalių: turinio, pateikiamo lankytojui, ir informacijos, reikalingos naršyklei. Pastarojoje informacijoje ir užkoduojamos taisyklės, kokie veiksmai galimi naudojant svetainės turinį.

Nenaudojant HTTP antraščių svetainės lankytojas gali matyti visą svetainės kodo informaciją ir dalį jos galima panaudoti atliekant ataką į svetainę. Čia ir pasitelkiamos HTTP saugumo antraštės, kurios pateikia taisykles naršyklei, kokie duomenys gali būti matomi viešai, o kokie ne. Apribojant prieigą prie tam tikrų svetainės duomenų, sumažėja, o dažnai ir visiškai eliminuojama, svetainės nulaužimo tikimybė.

Atakos, nukreiptos į internetines svetaines

HTTP saugumo antraščių naudojimas padeda apsisaugoti nuo dažniausiai vykdomų atakų prieš svetaines. Žemiau aptariamos įprastai prieš svetaines vykdomos atakos, jų tikslas bei kokios HTTP antraštės gali būti panaudojamos norint apsisaugoti:

  • Paspaudimų vagystė (angl. Clickjacking) – šio tipo ataka vykdoma įterpiant apgaulingą turinį į svetainę. Pavyzdžiui, svetainės lankytojas mato pranešimą, kad jis laimėjo žaidime ir jo prašoma paspausti ant laukelio „Atsiimti laimėjimą“. Iš tikrųjų, šis mygtukas atlieka visai kitokį veiksmą, nei svetainės lankytojas įsivaizduoja, pavyzdžiui, parsiunčia žalingo kodo failą į lankytojo kompiuterį. Lankytojas pabando atsidaryti failą ir virusas įdiegiamas į kompiuterį. Nuo tokių apgaulingo turinio įterpimų apsisaugoti padeda X-Frame-Options antraštė.
  • Svetimo kodo įterpimas (angl. Code injection) – atakos, kurių metu aptinkama saugumo spraga ir ja pasinaudojama įterpiant programinį kodą be svetainės savininko žinios. Pavyzdžiui, svetainėje yra tam tikra forma, kurioje prašoma įvesti asmeninius duomenis. Aptikus saugumo spragą, šiame puslapyje įterpiamas kodas, kuris persiunčia visus suvestus duomenis į kitą svetainę. Nuo tokių atakų padeda apsisaugoti Content Security Policy (CSF) antraštė.
  • Klaidingas duomenų tipų interpretavimas (angl. MIME sniffing) – vykdant šio tipo atakas yra pasitelkiama naršyklė, kuri kai kuriais atvejais savarankiškai interpretuoja veiksmus, bandomus atlikti su svetainę. Pavyzdžiui, į svetainę bandoma įterpti žalingą kodą, kuris naudoja JavaScript duomenų tipą. Svetainė jau naudoja Content Security Policy antraštę ir bandymai įterpti kodą iš šalies yra stabdomi. Programišius pakeičia duomenų tipą į tekstinį ir pasitelkia naršyklės veikimą, kuris pagal nutylėjimą interpretuoja kodą savo nuožiūra. Tokiu būdu sudaromos sąlygos įterpti šį kodą ir vėliau naudoti kaip skriptą, o ne tiesiog tekstinį failą. Būtent tokio tipo naršyklės interpretavimai yra apribojami su X-Content-Type-Options antrašte.
  • Sertifikatą turinčios svetainės atidarymas naudojant nesaugų susijungimą – šios atakos esmė yra pasinaudoti nesaugiu peradresavimu, kurį vykdo naršyklė iš HTTP protokolo į HTTPS. Taip yra todėl, kad sertifikatą turinčios svetainės gali būti atidaromos ir nenaudojant sertifikato. Sertifikato naudojimui yra pasitelkiamas peradresavimas į saugaus susijungimo protokolą (HTTPS). Programišiai gali pasinaudoti šiuo peradresavimu ir įsiterpti į susijungimą dar iki atidarymo per HTTPS protokolą. Nuo tokio tipo įsilaužimų galima apsisaugoti naudojant (HSTS) antraštę, kuri nurodo naršyklei, jog svetainė gali būti atidaroma tik naudojant HTTPS protokolą.
  • Laikinųjų duomenų (angl. cache) vagystė – šio tipo vagystės galimos įsilaužiant ne tiesiogiai į svetainę, o į tarpinį serverį, kuriame laikomi laikinieji duomenys. Šios atakos dar kitaip vadinamos tarpininko (angl. Man-In-The-Middle) atakomis. Internetinės naršyklės nuolatos vykdo laikinųjų duomenų saugojimą greitesniam svetainės užkrovimui ateityje, kai svetainė bus atidaroma pakartotinai. Dažnu atveju, svetainės naudoja įvairius tarpinius serverius (angl. Content Delivery Network) greitesniam tinklalapio užkrovimui. Šiuose serveriuose saugomi laikinieji duomenys. Tarp tokių duomenų gali būti saugomi prisijungimai prie sistemų, pašto dėžučių ir pan. Nors ir tikimybė, kad šie duomenys bus pasisavinti yra nedidelė, tačiau svetainės savininkas turi užtikrinti, kad šiais duomenimis nėra dalijamąsi su kitais šaltiniais, kaip pavyzdžiui CDN. Norint išvengti tokių situacijų, reikėtų naudoti Cache-Control antraštę, kuri nurodo, kokie duomenys ir kiek laiko gali būti saugomi tarpiniuose serveriuose.

Be abejo, tai yra tik dalis galimų atakų tipų. Nauji būdai įsilaužti į svetaines atrandami kiekvieną dieną, todėl norint to išvengti, reikia stengtis neatsilikti nuo saugumo standartų ir naudoti kaip įmanoma patikimesnes apsisaugojimo praktikas. Detalesnę informaciją apie vieną iš praktikų – HTTP saugumo antraščių tipus bei funkcijas – aptarsime toliau šiame straipsnyje.

Antraščių tipai bei suteikiamos apsaugos

HTTP saugumo antraščių tipų kiekis nuolatos auga atsižvelgiant į naujus saugumo spragų aptikimus. Kai kurios antraštės kuriamos tik konkrečioms naršyklėms arba jų versijoms, nes kas veikia vienoje naršyklėje nebūtinai veiks kitoje. Tačiau nerekomenduojama stengtis panaudoti kuo daugiau skirtingų saugumo antraščių, nes perteklinis jų naudojimas gali lemti svetainės sutrikimus. Pasitaiko atvejų, kai antraštės netgi trikdo viena kitos veikimą ar sulėtina svetainę. Todėl saugumo specialistai rekomenduoja naudoti nuo 5 iki 8 populiariausių saugumo antraščių.

Svarbu atkreipti dėmesį ir į tai, kad klaidingas antraštės naudojimas gali sugadinti svetainę ir ji gali būti išvis neatidaroma, todėl prieš pradedant naudoti šį apsisaugojimo būdą, siūlome atlikti testavimus naudojant svetainės kopiją arba pasitelkiant kitą mažiau svarbią svetainę. Siūlome kreiptis į savo svetainės kūrėjus ar programuotojus prieš pradedant naudoti šią saugumo praktiką. Patikrinti ar įvestos antraštės yra veikiančios galite šioje svetainėje.

Taigi, žemiau pateikiame dažniausiai naudojamas HTTP saugumo antraštes:

  • Content-Security-Policy – apriboja galimybę įterpti kodą ar kitą turinį, veikiantį iš išorės. Taip galima nurodyti konkretų internetinį adresą, iš kurio turinys gali būti užkraunamas. Arba nurodyti tik tuos turinio elementus ir adresus, kurie leidžiami, apribojant visą kitą turinį iš išorės. CSF yra funkcionaliausia antraštė apsisaugant nuo clickjacking ir kodo įterpimo atakų.
  • HTTP Strict Transport Security – draudžia bandymus pasiekti svetainę nenaudojant SSL sertifikato, t.y. HTTP protokolo naudojimą vietoje HTTPS. Antraštėje gali būti nurodomas laikas, kiek ilgai naršyklės turės atlikti šį ribojimą.
  • X-Frame-Options – naudojant šią antraštę pavyks apsisaugoti nuo clickjacking atakų, t.y., apribojamas frame elemento įterpimas. Ši antraštė atlieka dalį CSF antraštės funkcionalumo, tačiau ją naudoti taip pat naudinga, nes ji atpažįstama didesnėje dalyje naršyklių, nei CSF. Taip pat naudojama sintaksė yra paprastesnė, todėl yra mažesnė tikimybė ją nekorektiškai aprašyti.
  • X-Content-Type-Options – šios antraštės pagrindinis ir vienintelis tikslas yra apsisaugoti nuo MIME sniffing atakų, t.y., nuo naršyklės savarankiškų interpretavimų bandant paleisti svetainės kodą. Naudojant šią antraštę, naršyklė viešai nepateikia naudojamų turinio elementų, todėl programišiai tiksliai nežino, kokio kodavimo elementą pateikti, norint apeiti saugumo apribojimus.
  • Cache-Control – naršyklei pateikiama informacija, koks lankytojo turinys gali būti saugomas tarpiniuose serveriuose bei kiek laiko gali būti saugomas visas svetainės turinys. Ši antraštė yra naudinga tiek norint apsisaugoti nuo lankytojų duomenų vagystės, tiek siekiant paspartinti svetainės veikimą.
  • Feature-Policy – suteikiama galimybė valdyti tokias naršyklės funkcijas, kaip geografinė padėtis, viso ekrano vaizdas, garsiakalbis, USB, automatinis paleidimas, vibracija, mikrofonas, mokėjimai, VR ir kt. Naudojant šią antraštę, aukščiau nurodytos funkcijos negali būti aktyvuojamos iš išorės.

Detalesnę informaciją apie šių antraščių naudojamą sintaksę bei konkrečias galimas reikšmes rasite mūsų parengtoje pamokoje. Kai kurios turinio valdymo sistemos turi įskiepius, padedančius administruoti HTTP antraštės. Pavyzdžiui, WordPress turinio valdymo sistemoje galite įsidiegti HTTP headers įskiepį.

Apibendrinimas

Naudojant HTTP saugumo antraštes bei laikantis jų sudarymo sintaksės, Jūsų svetainė bus apsaugota nuo galimų atakų ir įsilaužimų. Bet kokiu atveju vien šių antraščių naudojimas negali 100% apsaugoti svetainės, todėl nereikėtų pamiršti laiku atlikti programinės įrangos atnaujinimų. Svetainės saugumas yra svarbus tiek svetainės savininkui, tiek svetainės lankytojui. Todėl tik turėdami saugią svetainę galėsite būti ramūs dėl savo lankytojų saugumo, kurie galės pasitikėti jūsų svetaine ir joje lankytis vis dažniau.