Mi az IT biztonság és miért vezetői kérdés?
Egy cég ma a weboldalán, a webáruházán, a levelezésén és a felhőben tárolt adatain keresztül dolgozik. Ha ezek közül egy leáll vagy illetéktelen kézbe kerül, kiesik a bevétel, sérül az ügyfelek bizalma, személyes adatnál pedig bejelentési kötelezettség is keletkezik. Az IT biztonság ezért költségvetési és felelősségi kérdés, a döntés a vezetőé.
IT biztonság, kiberbiztonság, információbiztonság: mi a különbség?
Az információbiztonság a legtágabb fogalom: minden információ védelme, a papíron tárolt szerződéstől a munkatársak tudásáig. Az IT biztonság (informatikai biztonság) ennek az informatikai rendszerekre eső része: szerverek, hálózat, alkalmazások, adatbázisok, mentések. A kiberbiztonság az internet felől érkező fenyegetésekre összpontosít, ezt a szót használja a magyar kiberbiztonsági törvény és az uniós NIS2 irányelv is. A gyakorlatban a három nagyrészt fedi egymást, ezen az oldalon az IT biztonság a gyűjtőnév.
A három alapcél: bizalmasság, sértetlenség, rendelkezésre állás
- Bizalmasság. Az adatot csak az látja, akinek joga van hozzá. Ezt sérti egy kiszivárgott ügyféladatbázis.
- Sértetlenség. Az adat és a program pontosan az, aminek lennie kell. Ezt sérti egy feltört oldalra csempészett kód vagy egy meghamisított számlaszám.
- Rendelkezésre állás. A rendszer akkor működik, amikor szükség van rá. Ezt sérti egy túlterheléses támadás vagy egy titkosított, használhatatlanná tett szerver.
Kik támadnak és mit akarnak?
Egy átlagos cég ellen ritkán dolgozik személyre szabott támadó. A forgalom nagy része gépi: botnetek pásztázzák folyamatosan az internetet ismert hibák, gyenge jelszavak és elfelejtett adminfelületek után. A cél többnyire a pénz: adatlopás és az adatok eladása, zsarolóvírus, a szerver felhasználása levélszemét küldésére vagy további támadásokra. Ebből következik a védekezés logikája is: a tömeges, automatizált kibertámadás ellen a jól karbantartott alapok védenek a legjobban.
Fotó: UnsplashSzerverbiztonság: a védelem első vonala
A weboldal, a webáruház és a levelezés egy szerveren fut, minden támadás ide érkezik. A szerverbiztonság célja, hogy kívülről a lehető legkevesebb látsszon belőle, ami pedig látszik, az naprakész és felügyelt legyen.

Egyszerűsített ábra: a támadásnak több egymás utáni rétegen kell átjutnia. Ahol az egyik nem állítja meg, ott a következő fogja meg.Hardening: a támadási felület csökkentése
A hardening a szerver megerősítése: ami nem kell, az kikapcsol, ami marad, az szigorúbb beállítást kap. A legfontosabb lépései:
- Belépés SSH-n csak kulccsal, jelszavas és közvetlen root belépés nélkül.
- Csak a ténylegesen használt szolgáltatások futnak, a régi programverziók és a felejtett tesztoldalak lekerülnek.
- Webhelyenként külön rendszerfelhasználó és PHP-folyamat, így egy feltört oldal nem viszi magával a többit.
- Az adminfelületek és az adatbázis-kezelő jelszó vagy IP-szűrés mögött, a nyilvános internet elől elzárva.
A szerver alapbeállításait az Ubuntu VPS üzemeltetés oldalon részletezzük, a VPS-ről általában a VPS szerver: mire jó cikkben írtunk.
Tűzfal, fail2ban és webes alkalmazás-tűzfal (WAF)
Három szűrő, három különböző feladat. A tűzfal a hálózati forgalmat engedi vagy tiltja: jó beállítás mellett kívülről csak a webes és a levelezési portok érhetők el. A fail2ban a naplókat figyeli és kitiltja azokat a címeket, amelyek jelszavakat próbálgatnak vagy sebezhetőséget keresnek. A webes alkalmazás-tűzfal (WAF) a weboldal előtt áll és a HTTP-kérésekben ismeri fel a támadásra jellemző mintákat. Webáruház elé érdemes WAF-ot tenni, mert a vásárlói fiókok és a rendelések miatt ez a leggyakrabban támadott felület.
Frissítéskezelés: biztonsági javítás órákon belül
Egy nyilvánosan ismert sebezhetőséget a javítás megjelenése után napokon belül tömegesen kezdenek kihasználni, ezért a biztonsági frissítés nem várhat a havi karbantartásig. A súlyosságot a CVSS pontszám és a saját rendszer kitettsége alapján mérjük fel. A kritikus javítást lehetőleg aznap telepítjük, utána ellenőrizzük, hogy a szolgáltatások ténylegesen a javított verzióval futnak. A rutin biztonsági frissítéseket automatikus frissítés viszi fel. Hogy ez a gyakorlatban hogyan néz ki, azt a PHP2Shell-hibáról szóló cikkünk mutatja be percre pontosan.
DDoS-támadás és túlterhelés elleni védelem
A túlterheléses (DDoS) támadás célja a megbénítás: annyi kérést küld a szerverre, hogy a valódi látogatók már nem jutnak át. Egy kis vagy közepes cég szerverét az védi hatékonyan, ha a forgalom eleve egy nagy hálózaton át érkezik. A nyilvános oldalak elé jellemzően Cloudflare-t teszünk, amely a támadó forgalom nagy részét még a szerver előtt kiszűri. A maradékot a szerveren a kérések számának és méretének korlátja fogja meg.
Naplózás, monitorozás és riasztás (SIEM)
Ami nincs naplózva, arról utólag nem derül ki, mikor és hogyan történt. A szerver, a webszerver, a PHP és a belépések naplóit érdemes egy helyen gyűjteni. Riasztás kell arra az esetre, ha egy szolgáltatás összeomlik, a webszerver felhasználója parancsot indít vagy szokatlan kimenő kapcsolat jelenik meg. Nagyobb szervezetnél ezt egy SIEM-rendszer végzi: a cég összes eszközének naplóit összeveti és a gyanús mintákat rangsorolja.
Hozzáférés-kezelés és kétlépcsős azonosítás
A legtöbb betörés egy ellopott vagy kitalált jelszóval kezdődik. Ezért minden fiók csak annyi jogot kap, amennyi a munkájához kell, a kilépő munkatárs hozzáférése még aznap megszűnik, a fontos fiókokat pedig kétlépcsős azonosítás védi. Elsőként a levelezésen, a domain és a tárhely kezelőfelületén, a webáruház adminján, valamint a Google- és a Meta-fiókokon érdemes bekapcsolni. A brute force támadás ellen a kétlépcsős azonosítás akkor is véd, ha a jelszó már kiszivárgott.
Webalkalmazás-biztonság: OWASP Top 10, SQL injection, XSS
Egy hibátlanul beállított szerveren is betörhet a támadó, ha maga a weboldal kódja hibás. Az OWASP Top 10 a webalkalmazások tíz leggyakoribb hibatípusát gyűjti össze, köztük az SQL injectiont (adatbázis-lekérdezés módosítása egy beviteli mezőn át), a cross-site scriptinget (XSS, idegen kód futtatása a látogató böngészőjében) és a hibás jogosultságkezelést. Fejlesztőként ezeket a kód szintjén ismerjük: a saját rendszereinkben paraméterezett lekérdezést, kimeneti kódolást és szerepalapú jogosultságot használunk, idegen kódot pedig ezekre a hibákra nézünk át. Egy feltört oldal tipikus nyoma a webshell: egy ártatlan nevű fájl a feltöltési mappában.