Modul 10 · 10.1
Hardening a princípy CIS
Modul 10: Zostaňte v bezpečí · Čas čítania: 11 minút
Cieľ lekcie: Po tejto lekcii dokážete vysvetliť, čo je hardening a aké princípy za ním stoja, budete vedieť, čo sú CIS Benchmarks a ako ich rozumne používať, a dokážete systematicky skontrolovať svoj server pomocou nástroja Lynis.
Kľúčové pojmy: hardening, útočná plocha, minimálna inštalácia, minimálne oprávnenia (least privilege), vrstvená obrana (defense in depth), CIS Benchmarks, Level 1 a Level 2, CIS Controls, Lynis, hardening index, AppArmor, SELinux, sysctl, synchronizácia času
Čo je hardening?
Čerstvá inštalácia Debianu alebo Ubuntu je pomerne bezpečná, no je pripravená tak, aby fungovala na čo najviac miestach. Hardening (spevnenie) znamená prispôsobiť server presne vášmu použitiu: odstrániť všetko, čo nepotrebujete, a sprísniť všetko, čo sa sprísniť dá, bez toho, aby sa pokazili vaše vlastné služby.
V predchádzajúcich moduloch ste to už robili kúsok po kúsku: SSH s kľúčmi (modul 2), bežný používateľ so sudo (modul 3), automatické aktualizácie (modul 4), firewall a fail2ban (modul 5), služby pod vlastnými používateľmi (modul 6). Táto lekcia zasadí tieto jednotlivé opatrenia do rámca, aby ste videli, čo ešte chýba.
Štyri princípy
1. Malá útočná plocha. Čo neexistuje, to sa nemôže pokaziť. Každá nainštalovaná služba, každý otvorený port, každý účet je možný vstup (lekcia 5.1). Inštalujte minimum a odstráňte to, čo už nepoužívate:
anna@web1:~$ systemctl list-units --type=service --state=running
anna@web1:~$ sudo ss -tulpn
anna@web1:~$ apt list --installed | wc -lAk beží služba, ktorú nepoznáte, zistite, čo robí (lekcia 6.1). Ak ju nepotrebujete, odstráňte balík.
2. Minimálne oprávnenia. Každý používateľ a každý program dostane len oprávnenia, ktoré potrebuje (lekcia 3.2). Žiadna každodenná práca ako root, služby pod vlastnými používateľmi, databázoví používatelia len s oprávneniami na vlastnú databázu, žiadne chmod 777.
3. Vrstvená obrana. Počítajte s tým, že jedno opatrenie zlyhá. Databáza, ktorá počúva len na 127.0.0.1 a je za firewallom a má silné heslo, je bezpečná aj vtedy, keď jedno z týchto troch opatrení omylom vypadne. Tomu sa hovorí defense in depth.
4. Vedieť, čo sa deje. Hardening nie je len zatváranie, ale aj prehľad: logy, ktoré sa uchovávajú (lekcia 6.2), monitorovanie, ktoré upozorní (lekcia 8.3), a zálohy, z ktorých sa dá obnoviť (modul 8). Bez toho si prienik všimnete, až keď je neskoro.
CIS Benchmarks
Center for Internet Security (CIS) je americká nezisková organizácia, ktorá vytvára CIS Benchmarks: rozsiahle zoznamy odporúčaných nastavení pre jednotlivé produkty, ktoré zostavujú dobrovoľníci zo sveta bezpečnosti. Existuje ich viac ako sto, aj pre Debian Linux a Ubuntu Linux, pre každú verziu zvlášť. PDF súbory si po vytvorení účtu môžete zadarmo stiahnuť na nekomerčné použitie.
Benchmark pre Linux obsahuje stovky odporúčaní, každé s vysvetlením, spôsobom kontroly a spôsobom nastavenia. Sú rozdelené do profilov:
- Level 1: základné opatrenia, ktoré zavediete pomerne rýchlo, s jasným bezpečnostným prínosom a bez toho, aby bol server oveľa menej použiteľný. Pre väčšinu serverov je to cieľ.
- Level 2: dodatočné opatrenia pre prostredia, kde je bezpečnosť na prvom mieste (vrstvená obrana). Môžu stáť funkcie alebo výkon a podľa samotného CIS môžu uškodiť, ak ich použijete bez rozmyslu.
Pri Linuxe existujú samostatné profily pre servery a pracovné stanice.
Príklady tém v benchmarku pre Linux: samostatné partície pre /tmp a /var/log, vypnutie nepoužívaných súborových systémov a sieťových protokolov, synchronizácia času, auditné logovanie, nastavenia SSH (mnohé poznáte z lekcie 2.2), politika hesiel, oprávnenia na dôležité súbory a firewall.
Okrem Benchmarks existujú aj CIS Controls (teraz verzia 8.1): nie nastavenia pre jednotlivé produkty, ale zoznam osemnástich skupín opatrení pre celú organizáciu, napríklad "inventár softvéru", "správa zraniteľností" a "obnova údajov". Pre jeden server sú užitočnejšie Benchmarks; Controls pomôžu, keď premýšľate o celej firme.
Používajte benchmark rozumne
Benchmark nie je tlačidlo, ktoré stlačíte. Niekoľko pravidiel:
- Najprv pochopiť, až potom použiť. Každé odporúčanie má vysvetlenie. Ak nerozumiete, prečo, zatiaľ ho nepoužívajte.
- Jedna vec naraz a testovanie. Prísne nastavenie jadra alebo siete môže pokaziť vašu aplikáciu. Vytvorte snapshot, zmeňte jednu vec a overte, že všetko stále funguje.
- Nie všetko je pre vás. Odporúčanie na samostatnú partíciu
/var/logje na existujúcom VPS ťažko realizovateľné a prinesie málo. Vyberajte vedome a zapíšte si, prečo niečo nerobíte. - Dávajte si pozor na hotové hardeningové skripty z internetu, ktoré naraz použijú "všetko z CIS". Môžu zmeniť SSH, firewall alebo logy tak, že sa sami zamknete mimo servera, a potom už neviete, čo sa zmenilo.
Lynis: audit zvnútra
Lynis je bezplatný open-source program (GPL) od spoločnosti CISOfy, ktorý prejde váš server zvnútra a ku každej téme dá varovania a návrhy. Sám nič nemení, len podáva správu.
anna@web1:~$ sudo apt install lynis
anna@web1:~$ sudo lynis audit system
...
-[ Lynis 3.x Results ]-
Warnings (1):
----------------------------
! Found one or more vulnerable packages. [PKGS-7392]
Suggestions (34):
----------------------------
* Consider hardening SSH configuration [SSH-7408]
- Details : AllowTcpForwarding (set YES to NO)
...
Lynis security scan details:
Hardening index : 66 [############# ]
Tests performed : 262Ako výsledok čítať:
- Warnings sú veci, na ktoré sa naozaj musíte pozrieť, napríklad balíky so známymi zraniteľnosťami (vtedy máte nenainštalované aktualizácie, lekcia 4.1).
- Suggestions sú odporúčania. Mnohé sú užitočné, niektoré sa k vášmu serveru nehodia. Návrh vypnúť
AllowTcpForwardingnapríklad pokazí vaše SSH tunely (lekcia 2.3). Vyberajte vedome. - Každé hlásenie má kód v hranatých zátvorkách, napríklad
[SSH-7408]. Pomocou neho v logu/var/log/lynis.logzistíte, čo presne sa testovalo. - Hardening index je číslo do 100. Je to ukazovateľ smeru, nie známka, za ktorou sa treba hnať. Nárast po vašich úpravách ukazuje, že napredujete; 100 nie je cieľ.
Verzia Lynis v repozitári vašej distribúcie môže byť trochu staršia. Na prvý audit to nevadí.
Ešte tri témy v skratke
- AppArmor a SELinux sú dodatočné bezpečnostné vrstvy v jadre, ktoré pre každý program určujú, čo smie robiť. Debian a Ubuntu používajú AppArmor, predvolene zapnutý; AlmaLinux a Rocky používajú SELinux. Nevypínajte ich, "pretože niečo nefunguje": nájdite hlásenie v journale a vyriešte problém cielene.
- sysctl nastavuje parametre jadra, napríklad pre sieť. Predvolené hodnoty Debianu a Ubuntu sú rozumné. Ak chcete niečo zmeniť, uložte to do vlastného súboru v
/etc/sysctl.d/(Debian 13 už nečíta/etc/sysctl.conf). - Čas: server s nesprávnym časom robí logy nepoužiteľnými a môže považovať certifikáty za neplatné. Pomocou
timedatectlskontrolujte, že sa zobrazuje "System clock synchronized: yes".
V praxi
Vo WebOké, rovnako ako u iných poskytovateľov VPS, spravujete bezpečnosť vo vnútri svojho servera sami: poskytovateľ sa stará o hardvér, sieť a virtualizačnú platformu. Tento kurz je svojpomoc: nikto vám na server nepozerá. Pred kolom hardeningu vytvorte v paneli snapshot a vedzte, ako otvoriť konzolu, ak sa predsa len zamknete mimo servera.
Zhrnutie
- Hardening znamená prispôsobiť server vlastnému použitiu: odstrániť, čo nie je potrebné, sprísniť, čo sa dá.
- Štyri princípy: malá útočná plocha, minimálne oprávnenia, vrstvená obrana a prehľad o tom, čo sa deje.
- CIS Benchmarks dávajú pre každý produkt stovky odporúčaní v profiloch Level 1 (základ) a Level 2 (prísny); používajte ich s porozumením, po jednom kroku.
- Lynis prejde váš server zvnútra a dá varovania, návrhy a hardening index; sám nič nemení.
- AppArmor/SELinux nevypínať; vlastné nastavenia jadra do
/etc/sysctl.d/; skontrolovať synchronizáciu času.
Kvíz
Úloha
Úloha O10.1: Audit pomocou Lynis. Vytvorte snapshot, nainštalujte na server Lynis a spustite sudo lynis audit system. Zapíšte si hardening index, všetky varovania a päť návrhov. Vyberte tri návrhy, ktoré vykonáte, a jeden, ktorý vedome nevykonáte, aj s dôvodom. Potom spustite audit znova a zapíšte si nový index.
Úloha O10.1: Audit pomocou Lynis
Túto úlohu vykonávate sami, nikto ju nekontroluje. Odškrtnite, čo ste urobili, a označte úlohu ako splnenú.
Najprv varovania (zvyčajne čakajúce aktualizácie). Zmysluplné sú: prísnejšie nastavenia SSH, automatické aktualizácie, odstránenie nepoužívaných služieb. Dobrý dôvod niečo vynechať: AllowTcpForwarding, ak používate tunely. Index je orientačný ukazovateľ, nie cieľ.
Vaše zaškrtnutia a poznámky zostávajú iba v tomto prehliadači, nikam ich neposielame. Po prihlásení si v sekcii Moje kurzy uchovávame iba to, že ste úlohu splnili.
Ďalšie čítanie
- Zabezpečenie vášho VPS: prvých päť minút
- CIS Benchmarks (prehľad, aj Debian a Ubuntu): https://www.cisecurity.org/cis-benchmarks
- CIS Controls: https://www.cisecurity.org/controls
- Lynis, dokumentácia: https://cisofy.com/documentation/lynis/
- Holandské NCSC, Začíname s kybernetickou bezpečnosťou (holandský zdroj v holandčine): https://www.ncsc.nl/beginnen-met-cybersecurity
- Ako udržať váš VPS v bezpečí: hardening, Lynis a pravidelný plán údržby
