Na kratko: CIS Benchmark za spletne strežnike prinaša konkretne nastavitve, natančne do različice, za operacijski sistem in spletni strežnik, na primer za Ubuntu, Debian, RHEL, Nginx ali Apache. Moduli nemškega IT-Grundschutz urada BSI (nemški zvezni urad za informacijsko varnost) pa opisujejo, katere zahteve veljajo za spletne strežnike, spletne aplikacije, upravljanje popravkov in beleženje. Skupaj dajo preverljivo zahtevo za utrjevanje; nastavitve, specifične za PHP, dodate sami.
Zakaj „dobro nastavljeno“ ni merilo
Po incidentu vodstvo, zavarovalnice ali preglednik prej ali slej postavijo isto vprašanje: po katerem standardu je bil strežnik nastavljen? Pošten odgovor je v mnogih podjetjih: po najboljši vednosti skrbnika, ki ga je takrat postavil. To ni nujno slabo, a ni niti sledljivo niti ponovljivo.
PHP2Shell je to naredil vidno. Kdor je hotel vedeti, kateri strežniki so prizadeti, kateri način delovanja PHP teče in kdaj je bil nazadnje nameščen popravek, je moral marsikje najprej iskati. Standard utrjevanja ne nadomesti posodobitve, ustvari pa natanko ta red: določene nastavitve, popis in redna preverjanja.
Za to sta se uveljavili dve deli: CIS Benchmarki organizacije Center for Internet Security in IT-Grundschutz urada BSI.
Kaj vsebuje CIS Benchmark za spletne strežnike
CIS Benchmarki so konsenzualna priporočila za konfiguracijo, ki jih skupaj pripravljajo strokovnjaki iz številnih organizacij. Po navedbah CIS obstajajo za več kot 25 družin izdelkov. Za spletne strežnike PHP so pomembni predvsem ti: Ubuntu Linux, Debian Linux in Red Hat Enterprise Linux za operacijski sistem ter Apache HTTP Server 2.4 in NGINX za spletni strežnik.
Vsak Benchmark je seznam posameznih priporočil z utemeljitvijo, navodilom za preverjanje in popravkom. Mnogi Benchmarki ločijo osnovni profil, ki ga je mogoče uvesti brez večjih stranskih učinkov, in strožji profil za višjo potrebo po zaščiti. Za samodejno preverjanje CIS ponuja orodja, v okolici Benchmarkov pod imenom CIS-CAT.
Prednost je natančnost: namesto „zavarujte SSH“ tam piše, katera nastavitev naj ima katero vrednost in kako to preverite. Slabost je obseg. Popoln Benchmark za sistem Linux vsebuje zelo veliko točk, vse pa ne ustrezajo vsakemu delovanju.
Pazite tudi na različico. Benchmarki veljajo za določene izdaje: pregled CIS na primer navaja ločene izdaje za različice Ubuntu LTS do 26.04, za Debian 9 do 13 in za RHEL 8, 9 in 10. Kdor Benchmark za starejšo različico uporabi na novem sistemu, deloma preverja nastavitve, ki jih tam ni več, in spregleda nove. Če na strežniku še teče operacijski sistem brez podpore proizvajalca, je že to najpomembnejša ugotovitev.
Ustrezni moduli BSI za spletne strežnike PHP
IT-Grundschutz urada BSI dela z moduli, ki opisujejo zahteve za sisteme in postopke. Aktualen je kompendij IT-Grundschutz v izdaji 2023. BSI IT-Grundschutz trenutno preoblikuje v procesno usmerjen, strojno berljiv nabor pravil; dosedanji kompendij po navedbah BSI ostaja uporaben v večletnem prehodnem obdobju.
Za spletni strežnik PHP so najpomembnejši ti moduli:
| Modul | Vsebina | Povezava s spletnim strežnikom PHP |
|---|---|---|
| APP.3.2 Spletni strežnik | delovanje in konfiguracija spletnega strežnika | Nginx, Apache, LiteSpeed |
| APP.3.1 Spletne aplikacije in spletne storitve | zahteve za aplikacijo | CMS, trgovina, lastna programska oprema PHP |
| SYS.1.3 Strežniki pod Linuxom in Unixom | utrjevanje operacijskega sistema | osnova vsakega spletnega strežnika Linux |
| OPS.1.1.3 Upravljanje popravkov in sprememb | urejeno nameščanje posodobitev | posodobitve PHP, ponovni zagoni, dokazilo |
| OPS.1.1.5 Beleženje | zajemanje in vrednotenje dogodkov | dnevniki dostopa in napak |
| CON.3 Koncept varnostnega kopiranja | varnostne kopije in obnovitev | varnostno kopiranje kode in baze podatkov |
| CON.10 Razvoj spletnih aplikacij | varen razvoj | lastni projekti PHP |
Grundschutz je manj konkreten kot CIS Benchmark, zato pa pokriva postopke, ki jih ne najdete v nobeni konfiguracijski datoteki: kdo namešča popravke, kdo preverja, kdo je obveščen.
CIS ali BSI: kaj ustreza vašemu podjetju?
Izbira je manj odvisna od tehnike kot od okolja. Pravilo palca:
- Tehnična osnova za posamezne strežnike: CIS Benchmark za operacijski sistem in spletni strežnik, dopolnjen z lastno zahtevo za PHP.
- Javna uprava, naročniki z navezavo na Grundschutz, regulirana področja: IT-Grundschutz kot okvir, CIS Benchmarki za konkretno izvedbo.
- Podjetja z ISO 27001 ali TISAX: obe deli sta primerni kot tehnična podlaga lastnih politik, glejte ISO 27001 in TISAX: kaj zadeva spletni strežnik.
- Podjetja, ki spadajo pod NIS2: dokumentiran standard utrjevanja pomaga pri dokazovanju ustreznih ukrepov. Kaj zahteva direktiva, povzema NIS2 in varnost spletnih strežnikov; v posameznem primeru odloča vaše pravno svetovanje.
Za sam PHP naj zahteve za strežnik dopolnite: zaklenjene vrednosti v php.ini, ločeni pooli FPM, brez izvajanja v mapah za nalaganje. Dobro podlago nudi vodnik Varna konfiguracija php.ini.
V šestih korakih do lastne zahteve za utrjevanje
Standard koristi le, če doseže delovanje. Obneslo se je to ravnanje:
- Ustvarite popis: kateri strežniki, operacijski sistemi, spletni strežniki in različice PHP tečejo kje?
- Izberite Benchmark in module, ustrezne različici in potrebi po zaščiti.
- Preverite dejansko stanje, po možnosti samodejno, in zberite odstopanja.
- Ocenite odstopanja: uvesti, zavestno sprejeti ali nadomestiti z drugimi ukrepi, vsakič z utemeljitvijo.
- Zahtevo zapišite, idealno kot avtomatizacijo konfiguracije, da so novi strežniki utrjeni od začetka.
- Redno in po večjih posodobitvah preverite znova, ker novi paketi včasih prinesejo nove privzete vrednosti.
Korak 6 povezuje utrjevanje s postopkom popravkov. Kako posodobitve nameščate načrtovano namesto v naglici, opisuje Upravljanje popravkov kot postopek namesto gasilske akcije.
Stroge profile najprej preizkusite na sistemu staging. Nekatera priporočila, na primer o datotečnih sistemih ali omrežnih storitvah, lahko prekinejo aplikacije ali dostope na daljavo.
Kako konkretno pomaga PHP SOS?
- Zajamemo vaše spletne strežnike in vsakemu dodelimo ustrezen CIS Benchmark ter relevantne module Grundschutz.
- Preverimo dejansko stanje in dostavimo prednostni seznam odstopanj z obsegom dela in koristjo.
- Zahtevo dopolnimo z osnovo PHP za php.ini, poole FPM in pravice datotek.
- Zavestne izjeme dokumentiramo tako, da jih preglednik in zavarovalnice lahko razumejo.
Izvedbo prevzamemo v okviru utrjevanja strežnikov PHP.
Pogosta vprašanja
Ali moram uvesti vsako priporočilo iz CIS Benchmarka?
Ne. Benchmarki so merilo, ne zakon. Nekatera priporočila ne ustrezajo vašemu delovanju ali bi motila funkcije. Pomembno je, da se o odstopanjih odločite zavestno, jih utemeljite in dokumentirate.
Ali sta CIS Benchmarka in IT-Grundschutz tekmeca?
Prej dopolnilo. CIS Benchmarki dajejo konkretne nastavitve za posamezen izdelek in različico. IT-Grundschutz opisuje zahteve za sisteme in procese, na primer upravljanje popravkov in beleženje, ter jih umešča v sistem vodenja.
Ali obstaja standard utrjevanja posebej za PHP?
Nastavitve PHP so v običajnih standardih za strežnike praviloma navedene le obrobno. V praksi se zahteve za strežnik dopolnijo z lastno osnovo PHP, na primer za php.ini, poole FPM in pravice datotek, za aplikacijo pa se usmerite po modulih o spletnih aplikacijah.
Ali bi CIS Benchmark preprečil PHP2Shell?
Ne. PHP2Shell so ranljivosti v interpreterju PHP, proti katerim pomaga samo posodobitev. Utrjen strežnik pa lahko omeji posledice vdora, urejeno upravljanje popravkov pa poskrbi, da se posodobitve namestijo hitreje in dokazljivo.
Ali je IT-Grundschutz za majhna podjetja prevelik?
Kot popoln sistem vodenja pogosto da. Posamezne module pa je mogoče dobro uporabiti kot kontrolni seznam za spletne strežnike in spletne aplikacije, ne da bi takoj prevzeli celoten postopek.