Modul 10 · 10.1
Hardening i CIS načela
Modul 10: Ostanite sigurni · Vrijeme čitanja: 11 minuta
Cilj učenja: Nakon ove lekcije moći ćete objasniti što je hardening i koja načela stoje iza njega, znat ćete što su CIS Benchmarks i kako ih razumno koristiti te ćete moći sustavno provjeriti svoj poslužitelj alatom Lynis.
Ključni pojmovi: hardening, površina napada, minimalna instalacija, minimalna prava (least privilege), slojevita obrana (defense in depth), CIS Benchmarks, Level 1 i Level 2, CIS Controls, Lynis, hardening index, AppArmor, SELinux, sysctl, sinkronizacija vremena
Što je hardening?
Svježa instalacija Debiana ili Ubuntua prilično je sigurna, ali je napravljena tako da radi na što više mjesta. Hardening (ojačavanje) znači prilagođavanje poslužitelja točno Vašoj namjeni: uklonite sve što Vam ne treba, postrožite sve što se može postrožiti, a da pritom Vaši vlastiti servisi ne prestanu raditi.
U prethodnim modulima to ste već radili dio po dio: SSH s ključevima (modul 2), običan korisnik sa sudo ovlastima (modul 3), automatska ažuriranja (modul 4), vatrozid i fail2ban (modul 5), servisi pod vlastitim korisnicima (modul 6). Ova lekcija stavlja te pojedinačne mjere u okvir, tako da vidite što još nedostaje.
Četiri načela
1. Mala površina napada. Ono čega nema, ne može se pokvariti. Svaki instalirani servis, svaki otvoreni priključak, svaki korisnički račun moguć je ulaz (lekcija 5.1). Instalirajte minimalno i uklonite ono što više ne koristite:
anna@web1:~$ systemctl list-units --type=service --state=running
anna@web1:~$ sudo ss -tulpn
anna@web1:~$ apt list --installed | wc -lAko radi servis koji ne poznajete, istražite što radi (lekcija 6.1). Ako Vam ne treba, uklonite paket.
2. Minimalna prava. Svaki korisnik i svaki program dobiva samo ona prava koja su mu potrebna (lekcija 3.2). Nema svakodnevnog rada kao root, servisi rade pod vlastitim korisnicima, korisnici baze podataka imaju prava samo na vlastitu bazu, nema chmod 777.
3. Slojevita obrana. Pođite od pretpostavke da će jedna mjera zakazati. Baza podataka koja sluša samo na 127.0.0.1 i nalazi se iza vatrozida i ima jaku lozinku ostaje sigurna i ako jedna od te tri mjere slučajno otpadne. To se zove defense in depth.
4. Znati što se događa. Hardening nije samo zatvaranje, nego i uvid: zapisi koji se čuvaju (lekcija 6.2), nadzor koji javlja (lekcija 8.3) i sigurnosne kopije pomoću kojih se možete vratiti (modul 8). Bez toga provalu primijetite tek kad je prekasno.
CIS Benchmarks
Center for Internet Security (CIS) američka je neprofitna organizacija koja izrađuje CIS Benchmarks: opsežne popise preporučenih postavki za pojedini proizvod, koje sastavljaju volonteri iz svijeta sigurnosti. Ima ih više od stotinu, među ostalim za Debian Linux i Ubuntu Linux, po verzijama. PDF datoteke možete besplatno preuzeti za nekomercijalnu upotrebu nakon izrade korisničkog računa.
Benchmark za Linux sadrži stotine preporuka, svaku s objašnjenjem, načinom provjere i načinom postavljanja. Podijeljene su u profile:
- Level 1: osnovne mjere koje možete razmjerno brzo uvesti, s jasnom sigurnosnom koristi, a da poslužitelj ne postane znatno manje upotrebljiv. Za većinu poslužitelja to je cilj.
- Level 2: dodatne mjere za okruženja u kojima je sigurnost na prvom mjestu (slojevita obrana). Mogu Vas stajati funkcija ili brzine, a prema samom CIS-u mogu i naštetiti ako ih primijenite bez opreza.
Za Linux postoje zasebni profili za poslužitelje i za radne stanice.
Primjeri tema u benchmarku za Linux: zasebne particije za /tmp i /var/log, isključivanje nekorištenih datotečnih sustava i mrežnih protokola, sinkronizacija vremena, revizijsko bilježenje (audit logging), postavke SSH-a (mnoge od njih poznajete iz lekcije 2.2), pravila za lozinke, prava pristupa važnim datotekama i vatrozid.
Uz Benchmarks postoje i CIS Controls (trenutačno verzija 8.1): to nisu postavke za pojedini proizvod, nego popis od osamnaest skupina mjera za cijelu organizaciju, poput "popis softvera", "upravljanje ranjivostima" i "oporavak podataka". Za jedan poslužitelj korisniji su Benchmarks; Controls pomažu kad razmišljate o cijeloj tvrtki.
Koristite benchmark razumno
Benchmark nije gumb koji jednostavno pritisnete. Nekoliko pravila:
- Najprije razumijte, zatim primijenite. Svaka preporuka ima objašnjenje. Ako ne razumijete zašto, nemojte je još primjenjivati.
- Jedna stvar odjednom, uz testiranje. Stroga postavka jezgre ili mreže može pokvariti Vašu aplikaciju. Napravite snimku (snapshot), promijenite jednu stvar i provjerite radi li sve i dalje.
- Nije sve za Vas. Preporuku o zasebnoj particiji
/var/logteško je provesti na postojećem VPS-u, a donosi malo. Birajte svjesno i zabilježite zašto nešto ne radite. - Oprezno s gotovim hardening skriptama s interneta koje "sve iz CIS-a" primjenjuju odjednom. One mogu promijeniti SSH, Vaš vatrozid ili Vaše zapise tako da sami sebi zaključate pristup, a poslije više ne znate što je promijenjeno.
Lynis: revizija iznutra
Lynis je besplatan program otvorenog koda (GPL) tvrtke CISOfy koji Vaš poslužitelj pregledava iznutra i za svaku temu daje upozorenja i prijedloge. Sam ništa ne mijenja; samo izvještava.
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 : 262Kako čitati rezultat:
- Warnings su stvari koje svakako trebate pogledati, primjerice paketi s poznatim ranjivostima (tada imate neinstalirana ažuriranja, lekcija 4.1).
- Suggestions su savjeti. Mnogi su korisni, a neki ne odgovaraju Vašem poslužitelju. Prijedlog da isključite
AllowTcpForwardingprimjerice prekida Vaše SSH tunele (lekcija 2.3). Birajte svjesno. - Svaka poruka ima kod u uglatim zagradama, poput
[SSH-7408]. Pomoću njega u zapisniku/var/log/lynis.logpotražite što je točno testirano. - Hardening index je broj do 100. To je putokaz, a ne ocjena za kojom treba juriti. Porast nakon Vaših izmjena pokazuje da napredujete; 100 nije cilj.
Verzija alata Lynis u repozitoriju paketa Vaše distribucije može malo kasniti. Za prvu reviziju to nije problem.
Još tri teme ukratko
- AppArmor i SELinux dodatni su sigurnosni slojevi u jezgri koji za svaki program određuju što smije raditi. Debian i Ubuntu koriste AppArmor, standardno uključen; AlmaLinux i Rocky koriste SELinux. Nemojte ih isključivati "zato što nešto ne radi": potražite poruku u journalu i problem riješite ciljano.
- sysctl postavlja postavke jezgre, primjerice za mrežu. Zadane vrijednosti Debiana i Ubuntua su razumne. Ako želite nešto promijeniti, stavite to u vlastitu datoteku u
/etc/sysctl.d/(Debian 13 više ne čita/etc/sysctl.conf). - Vrijeme: poslužitelj s pogrešnim vremenom čini zapise neupotrebljivima i može certifikate smatrati nevaljanima. Naredbom
timedatectlprovjerite piše li "System clock synchronized: yes".
U praksi
Kod WebOké, kao i kod drugih pružatelja VPS usluga, sigurnošću unutar svog poslužitelja upravljate sami: pružatelj se brine za hardver, mrežu i platformu za virtualizaciju. Ovaj tečaj je samopomoć: nitko ne prati što se događa na Vašem poslužitelju. Prije kruga hardeninga napravite snimku (snapshot) u panelu i znajte kako otvoriti konzolu ako ipak sami sebi zaključate pristup.
Sažetak
- Hardening znači prilagoditi poslužitelj vlastitoj namjeni: ukloniti ono što nije potrebno, postrožiti ono što se može.
- Četiri načela: mala površina napada, minimalna prava, slojevita obrana i uvid u ono što se događa.
- CIS Benchmarks za svaki proizvod daju stotine preporuka u profilima Level 1 (osnovno) i Level 2 (strogo); koristite ih s razumijevanjem, korak po korak.
- Lynis pregledava Vaš poslužitelj iznutra i daje upozorenja, prijedloge i hardening index; sam ništa ne mijenja.
- Ne isključujte AppArmor/SELinux; vlastite postavke jezgre stavite u
/etc/sysctl.d/; provjerite sinkronizaciju vremena.
Kviz
Zadatak
Zadatak O10.1: Revizija s alatom Lynis. Napravite snimku (snapshot), instalirajte Lynis na svoj poslužitelj i pokrenite sudo lynis audit system. Zabilježite hardening index, sva upozorenja i pet prijedloga. Odaberite tri prijedloga koja ćete provesti i jedan koji svjesno nećete provesti, uz razlog. Zatim ponovno pokrenite reviziju i zabilježite novi indeks.
Zadatak O10.1: Revizija s alatom Lynis
Ovaj zadatak rješavate sami; nitko ga ne provjerava. Označite što ste napravili i označite zadatak kao završen.
Najprije upozorenja (najčešće neinstalirana ažuriranja). Korisno: strože SSH postavke, automatska ažuriranja, uklanjanje nekorištenih usluga. Dobar razlog da nešto preskočite: AllowTcpForwarding ako koristite tunele. Indeks je putokaz, a ne cilj.
Vaše kvačice i bilješke ostaju samo u ovom pregledniku; ne šaljemo ih nikamo. Ako ste prijavljeni, u Moji tečajevi čuvamo samo podatak da ste zadatak završili.
Dodatno štivo
- Zaštita VPS-a: prvih pet minuta
- CIS Benchmarks (pregled, uključujući Debian i Ubuntu): https://www.cisecurity.org/cis-benchmarks
- CIS Controls: https://www.cisecurity.org/controls
- Lynis, dokumentacija: https://cisofy.com/documentation/lynis/
- Nizozemski NCSC, Beginnen met cybersecurity (nizozemski izvor): https://www.ncsc.nl/beginnen-met-cybersecurity
