HostingPraktickéSvet internetu

Bezpečnosť webu: najčastejšie chyby, ktoré robia aj skúsení vývojári

Bezpečnosť webových stránok sa často považuje za technickú disciplínu, ktorú má „pod kontrolou“ skúsený vývojár. Prax však ukazuje opak. Aj profesionálne projekty obsahujú chyby, ktoré môžu viesť k úniku dát, napadnutiu stránky alebo strate dôvery používateľov. Problémom nie je len neznalosť, ale aj podcenenie detailov, časový tlak a pocit, že „to stačí takto“. Stačí drobnosť a prichádzate o podnikanie, dôveru zákazníkov, partnerov, alebo čitateľov v prípade magazínu.

Najčastejšie chyby, ktoré sa opakujú

Jednou z najrozšírenejších chýb je nedostatočné ošetrenie vstupov. Formuláre, URL parametre alebo API požiadavky predstavujú vstupnú bránu pre používateľa aj pre útočníka. Ak aplikácia nekontroluje a nečistí tieto dáta, vzniká priestor pre SQL injection alebo XSS útoky. Ide o klasické problémy, ktoré napriek rokom existencie nezmizli.

Ďalšou slabinou býva práca so session a autentifikáciou. Nesprávne nastavené cookies, chýbajúce zabezpečenie proti únosu relácie alebo slabé heslá môžu umožniť neoprávnený prístup. Často sa podceňuje aj obnova hesla, ktorá býva jedným z najcitlivejších miest celého systému.

Veľmi častým problémom je zastaraný softvér. Používanie starých verzií knižníc, pluginov alebo samotného systému vytvára bezpečnostné diery, ktoré sú verejne známe. Útočníci ich aktívne vyhľadávajú a zneužívajú. Vedia ako nájsť weby, ktoré majú daný plugin a ak ide o neaktualizovanú verziu, cielene idú po konkrétnych nedostatkoch neopravených pluginov. Čím zásadnejší plugin, ktorý otvára príliš veľa, tým horšie pre vás. Nejde pritom o zložité útoky, ale o automatizované skripty, ktoré skúšajú tisíce webov denne. Neberte to teda nikdy osobne. Odrazu ponúkate pochybné lieky, alebo hazard na webe, ktorý sa venoval chovu psov.

Závažným nedostatkom je aj nesprávne nastavenie servera. Chýbajúce HTTPS, nesprávne hlavičky, otvorené porty alebo zle nastavené prístupové práva môžu ohroziť celý projekt bez ohľadu na kvalitu samotného kódu. Bezpečnosť nie je len o aplikácii, ale o celom prostredí, v ktorom beží.

Na čo myslieť pri tvorbe vlastného webu

Ak vytvárate web, bezpečnosť by mala byť súčasťou návrhu od začiatku. Nestačí ju riešiť až po dokončení projektu. Každý vstup musí byť validovaný, každé uložené dáta správne ošetrené a každá komunikácia zabezpečená. Dôležité je používať aktuálne verzie technológií a pravidelne ich aktualizovať. To sa týka nielen jadra systému, ale aj všetkých doplnkov a knižníc. Vývojár by mal mať prehľad o známych zraniteľnostiach a aktívne ich riešiť.

Rovnako podstatná je práca s prístupmi. Každý používateľ by mal mať len tie oprávnenia, ktoré skutočne potrebuje. Administrátorské účty by mali byť chránené silným heslom a ideálne aj dvojfaktorovým overením. Zálohovanie dát by malo byť samozrejmosťou, nie doplnkom.

Netreba zabúdať ani na logovanie a monitoring. Web by mal zaznamenávať podozrivé aktivity a umožniť rýchlu reakciu v prípade problému. Bez prehľadu o tom, čo sa deje, je aj malý incident ťažko riešiteľný.

Na čo sa pýtať, ak si web objednávate

Ak si web objednávate, bezpečnosť by mala byť jednou z hlavných tém komunikácie. Nie je to detail, ale základná vlastnosť služby, ktorú budete používať. Zmysel má pýtať sa, ako je riešené zabezpečenie dát používateľov a či je komunikácia šifrovaná pomocou HTTPS. Dôležité je vedieť, ako často sa systém aktualizuje a kto za tieto aktualizácie zodpovedá.

Dobrá otázka smeruje aj k správe prístupov. Kto má prístup do administrácie, ako sú chránené účty a či je možné nastaviť rôzne úrovne oprávnení. Rovnako je vhodné zistiť, ako funguje zálohovanie a či je možné web obnoviť v prípade problémov. Zaujímať by vás malo aj to, či vývojár počíta s ochranou proti bežným útokom a či používa overené riešenia. Odpoveď typu „to sa nerieši“ alebo „to netreba“ je varovným signálom.

Bezpečnosť ako proces, nie jednorazová úloha

Najväčším omylom je predstava, že bezpečnosť sa dá „nastaviť“ a tým je hotovo. Web je živý systém, ktorý sa mení, aktualizuje a komunikuje s okolím. Každá zmena môže priniesť nové riziko.

Skúsení vývojári robia chyby najmä vtedy, keď začnú veci považovať za samozrejmé. Práve preto je dôležité pristupovať k bezpečnosti ako k neustálemu procesu. Pravidelná kontrola, aktualizácie a zdravá miera opatrnosti sú tým, čo odlišuje spoľahlivý web od zraniteľného.

O čom je vlastne reč?

  • SQL Injection
    Útok, pri ktorom útočník vloží škodlivý SQL kód do vstupu (napr. formulára). Ak aplikácia nepoužíva pripravené dotazy (prepared statements), môže dôjsť k úniku alebo zmene dát v databáze.
  • XSS (Cross-Site Scripting)
    Vloženie škodlivého JavaScriptu do stránky, ktorý sa následne vykoná v prehliadači iného používateľa. Môže kradnúť cookies, presmerovať používateľa alebo meniť obsah stránky.
  • CSRF (Cross-Site Request Forgery)
    Útok, pri ktorom je používateľ donútený vykonať akciu bez svojho vedomia (napr. zmena hesla). Vzniká pri absencii ochranných tokenov vo formulároch.
  • Zlé session handlingy
    Nesprávna správa používateľských relácií. Napríklad session ID sa nemení po prihlásení alebo sa prenáša nezabezpečene, čo umožňuje jeho zneužitie.
  • Slabé heslá
    Krátke alebo jednoduché heslá (heslo, password, 123456, admin) sú ľahko uhádnuteľné. Bez dodatočnej ochrany ako 2FA predstavujú veľké riziko.
  • Nešifrovaná komunikácia (chýbajúce HTTPS)
    Dáta medzi používateľom a serverom sa prenášajú bez šifrovania. Útočník ich môže odchytiť, vrátane prihlasovacích údajov.
  • Zastaralý softvér a pluginy
    Staré verzie systémov obsahujú známe zraniteľnosti. Útočníci ich často automaticky vyhľadávajú a zneužívajú.
  • Nedostatočná validácia vstupov
    Aplikácia dôveruje údajom od používateľa bez kontroly. To je základný problém, ktorý vedie k viacerým typom útokov.
  • Nesprávne nastavené oprávnenia (permissions)
    Súbory alebo časti systému majú príliš široké prístupové práva. Útočník sa môže dostať k dátam alebo ich meniť. CMOS 777 určite nie na hocičo!
  • Chýbajúce zálohovanie
    V prípade útoku alebo chyby nie je možné obnoviť dáta. Strata obsahu môže byť definitívna.
  • Open Redirect
    Web umožňuje presmerovanie na ľubovoľnú URL bez kontroly. Môže byť zneužité na phishing. Dokonca môže presmerovať len niekedy a len náhodne, takže vy sami pri teste neodhalíte nič, ale náhodný používateľ z vonka zažíva niečo, čo nechcete zažiť sami.
  • Directory Traversal
    Útočník sa snaží dostať k súborom mimo povoleného adresára, napríklad sa chce dostať do iného adresára na FTP a čítať súbory, prístupy a pod. (napr. pomocou „../“). Môže získať citlivé dáta zo servera.
  • Nedostatočné logovanie a monitoring
    Web nezaznamenáva podozrivé aktivity. Problém sa odhalí neskoro alebo vôbec. Určitý loging poskytuje hosting, alelogovanie prístupu do adminu, logy prístupov používateľov, aktivita na webe, to všetko má zabezpečovať webstránka a jej systém. Monitoring čítanosti, chýb, trafficu taktiež môže poskytovať stránka, alebo externé scripty.
  • Chýbajúce bezpečnostné hlavičky (headers)
    Absencia hlavičiek ako CSP, HSTS alebo X-Frame-Options znižuje ochranu proti bežným útokom.
Odporúčame:
Naozaj dobrý hosting za smiešne peniaze, najlacnejší hosting pre viac domén, mnoho vychytávok a zrýchlení pre pomalší Wordpress:
HostCreators - Webhosting, Hosting, Registrácia domén

You may also like

More in:Hosting