Накратко: Един CIS Benchmark за уеб сървър дава конкретни настройки, точни по версия, за операционната система и уеб сървъра, например за Ubuntu, Debian, RHEL, Nginx или Apache. Модулите на IT-Grundschutz на BSI (Федералната служба за информационна сигурност на Германия) описват допълнително какви изисквания важат за уеб сървъри, уеб приложения, управление на пачовете и водене на журнали. Заедно те образуват проверима насока за заздравяване; специфичните за PHP настройки добавяте сами.
Защо „добре настроен“ не е мерило
След инцидент ръководството, застрахователят или одиторът рано или късно задават един и същ въпрос: по кой стандарт е бил настроен сървърът? Честният отговор в много фирми е: по най-добро знание на администратора, който го е разположил тогава. Това не е непременно лошо, но не е нито проследимо, нито повторяемо.
PHP2Shell го направи видимо. Който искаше да знае кои сървъри са засегнати, какъв режим на работа на PHP е в ход и кога за последно е пачнато, на много места първо трябваше да търси. Стандартът за заздравяване не замества актуализацията, но създава точно този ред: определени настройки, опис и редовни проверки.
За това са се доказали две творби: CIS Benchmarks на Center for Internet Security и IT-Grundschutz на BSI.
Какво съдържа един CIS Benchmark за уеб сървър
CIS Benchmarks са препоръки за конфигурация, основани на консенсус, които специалисти от много организации разработват съвместно. Според CIS те съществуват за повече от 25 семейства продукти. За PHP уеб сървърите са релевантни най-вече: Ubuntu Linux, Debian Linux и Red Hat Enterprise Linux за операционната система, както и Apache HTTP Server 2.4 и NGINX за уеб сървъра.
Всеки Benchmark е списък от отделни препоръки с обосновка, указание за проверка и корекция. Много Benchmarks разграничават базов профил, който се прилага без големи странични ефекти, и по-строг профил за по-висока нужда от защита. За автоматична проверка CIS предлага инструменти, в средата на Benchmarks под името CIS-CAT.
Предимството е прецизността: вместо „защитете SSH“ там пише коя настройка каква стойност трябва да има и как да я проверите. Недостатъкът е обемът. Пълен Benchmark за една Linux система съдържа много точки и не всяка подхожда на всяка експлоатация.
Обърнете внимание и на версията. Benchmarks важат за определени издания: прегледът на CIS изброява например отделни издания за версии на Ubuntu LTS до 26.04, за Debian 9 до 13 и за RHEL 8, 9 и 10. Който приложи Benchmark за по-стара версия върху нова система, частично проверява настройки, които там вече не съществуват, и пропуска нови. Ако на един сървър още работи операционна система без поддръжка от производителя, това само по себе си е най-важната констатация.
Подходящите модули на BSI за PHP уеб сървъри
IT-Grundschutz на BSI работи с модули (Bausteine), които описват изисквания към системи и процеси. Актуален е IT-Grundschutz-Kompendium в издание 2023. BSI в момента преустройва IT-Grundschutz в ориентиран към процесите, машинночетим набор от правила; досегашният Kompendium остава според BSI приложим в многогодишен преходен период.
За един PHP уеб сървър най-важни са тези модули:
| Модул | Съдържание | Връзка с PHP уеб сървъра |
|---|---|---|
| APP.3.2 Webserver | Експлоатация и конфигурация на уеб сървъра | Nginx, Apache, LiteSpeed |
| APP.3.1 Webanwendungen und Webservices | Изисквания към приложението | CMS, магазин, собствен PHP софтуер |
| SYS.1.3 Server unter Linux und Unix | Заздравяване на операционната система | Основа на всеки Linux уеб сървър |
| OPS.1.1.3 Patch- und Änderungsmanagement | Уредено внасяне на актуализации | PHP актуализации, рестартове, доказателства |
| OPS.1.1.5 Protokollierung | Събиране и анализ на събития | Журнали за достъп и грешки |
| CON.3 Datensicherungskonzept | Резервни копия и възстановяване | Архивиране на кода и базата данни |
| CON.10 Entwicklung von Webanwendungen | Сигурна разработка | Собствени PHP проекти |
Grundschutz е по-малко конкретен от един CIS Benchmark, но покрива процеси, които не стоят в нито един конфигурационен файл: кой пачва, кой проверява, кой се уведомява.
CIS или BSI: кое подхожда на Вашата фирма?
Изборът зависи по-малко от технологията, а повече от средата. Емпирично правило:
- Техническа основа за отделни сървъри: CIS Benchmark за операционната система и уеб сървъра, допълнен със собствена PHP насока.
- Публична администрация, възложители с връзка с Grundschutz, регулирани сектори: IT-Grundschutz като рамка, CIS Benchmarks за конкретното изпълнение.
- Фирми с ISO 27001 или TISAX: И двете творби са подходящи като техническа подкрепа на собствените политики, вижте ISO 27001 и TISAX: какво засяга уеб сървъра.
- Фирми, които попадат под NIS2: Документиран стандарт за заздравяване помага при доказването на подходящи мерки. Какво изисква директивата, обобщава NIS2 и сигурност на уеб сървъра; в конкретния случай решава Вашият правен съветник.
За самия PHP трябва да допълните насоките за сървъра: заключени стойности в php.ini, разделени FPM пулове, без изпълнение в папките за качване. Добра основа дава наръчникът Сигурно конфигуриране на php.ini.
До собствена насока за заздравяване в шест стъпки
Един стандарт е полезен само ако стигне до експлоатацията. Доказал се е този подход:
- Създайте опис: кои сървъри, операционни системи, уеб сървъри и версии на PHP къде работят?
- Изберете Benchmark и модули, подходящи за версията и нуждата от защита.
- Проверете текущото състояние, по възможност автоматизирано, и съберете отклоненията.
- Оценете отклоненията: да се изпълнят, съзнателно да се приемат или да се компенсират с други мерки, всеки път с обосновка.
- Фиксирайте насоката, в идеалния случай като автоматизация на конфигурацията, за да са новите сървъри заздравени от самото начало.
- Проверявайте отново редовно и след по-големи актуализации, защото новите пакети понякога носят нови стандартни стойности.
Стъпка 6 свързва заздравяването с процеса на пачване. Как да внасяте актуализации планирано, а не припряно, описва Управление на пачовете като процес, а не гасене на пожари.
Тествайте строгите профили първо в staging система. Някои препоръки, например за файловите системи или мрежовите услуги, могат да прекъснат приложения или отдалечен достъп.
Как помага PHP SOS конкретно?
- Отчитаме Вашите уеб сървъри и съпоставяме на всеки подходящия CIS Benchmark и съответните модули на Grundschutz.
- Проверяваме текущото състояние и предоставяме приоритизиран списък на отклоненията с усилие и полза.
- Допълваме насоката с PHP основа за php.ini, FPM пулове и права на файловете.
- Документираме съзнателните изключения така, че одитори и застрахователи да ги разберат.
Изпълнението поемаме в рамките на заздравяването на сървъри за PHP уеб сървъри.
Често задавани въпроси
Трябва ли да изпълня всяка препоръка на един CIS Benchmark?
Не. Benchmarks са мерило, а не закон. Някои препоръки не подхождат на Вашата експлоатация или биха нарушили функции. Важно е отклоненията да се решават съзнателно, да се обосновават и документират.
Конкуренти ли са CIS Benchmarks и IT-Grundschutz?
По-скоро се допълват. CIS Benchmarks дават конкретни настройки за всеки продукт и версия. IT-Grundschutz описва изисквания към системи и процеси, например управление на пачовете и водене на журнали, и ги вписва в система за управление.
Има ли стандарт за заздравяване специално за PHP?
Настройките на PHP обикновено са включени в разпространените сървърни стандарти само по края. На практика насоките за сървъра се допълват със собствена PHP основа, например за php.ini, FPM пулове и права на файловете, а за приложението се ориентирате по модулите за уеб приложения.
Щеше ли един CIS Benchmark да предотврати PHP2Shell?
Не. PHP2Shell са уязвимости в интерпретатора на PHP и срещу тях помага само актуализацията. Заздравеният сървър обаче може да ограничи последиците от пробив, а уреденото управление на пачовете гарантира, че актуализациите се внасят по-бързо и доказуемо.
Прекалено голям ли е IT-Grundschutz за малки фирми?
Като пълна система за управление често да. Отделните модули обаче могат да се ползват добре като контролен списък за уеб сървъри и уеб приложения, без да се възприема целият подход.