PunchPolice restrict movement for APC presidential rally in NasarawaThe Jerusalem PostBoy George stood with the Jews when so many others turned away - opinionInquirerNUP expresses optimism over talks with budget watchdogs – PunoZDF heuteAktuelle Pressemitteilungen des ZDFVilaWebUns Gaudí de rècord pel cinema en català: una vintena de llargmetratges de ficció candidats als premisSRF NewsMidterms 2026 – Die USA wählen neuen Kongress ++ erste Wahlbüros sind offenComplete Sports2026 U-17 WWC: Brazil Coach Rilany Warns Flamingos Will Be Tough To BeatThe South AfricanBecome a property owner this Black Friday with these listings under R70 000The IndependentWorld of David Walliams permanently closed at Alton TowersGhaflaTerence Creative Resigns as DCCAK Secretary General Months After SuspensionFrance 24US midterm elections: Food stamp crisis a key campaign issue in ArizonaRMF24Podwyżka świadczenia pielęgnacyjnego. Ile wyniesie od stycznia?
The Daily Newsstand · Free, Always
Tuesday, November 3, 2026

Linux: Hardening — обзор инструментов для быстрой проверки на соответствие compliance-требованиям

Translate

Введение. Зачем автоматизация вместо ручного аудита

Ручная проверка Linux-сервера на соответствие требованиям безопасности — это десятки конфигурационных файлов, сотни параметров ядра, права доступа, настройки SSH, политики паролей и логирования. Пройтись по всему этому руками для одного сервера — уже задача на несколько часов. А если у нас серверов штук 100? Тут проверять придётся ну месяц, может, и больше. А ещё не забываем, что эта ручная проверка держится на человеческом факторе: администратор может забыть пункт чек-листа, по-разному интерпретировать формулировку требования или просто устать к концу списка. В результате один и тот же сервер, проверенный двумя разными специалистами, может получить два разных вердикта.

Автоматизация решает эти проблемы/задачи.

Инструменты проверяют систему за пару минут вместо пары часов. Одна и та же проверка даёт одинаковый результат, и вообще можно получить отчёт от сканеров (лог/html/json), который можно приложить к внутреннему аудиту или предъявить регулятору — вместо того чтобы задним числом восстанавливать, что именно проверялось. В этой статье мы посмотрим, какие бывают compliance-требования и инструменты для харденинга сервера/Linux.

Харденинг (от англ. hardening — укрепление, закалка) — это процесс усиления безопасности ИТ-систем путём уменьшения поверхности атаки и настройки конфигураций по стандартам безопасности.

Какие бывают compliance-требования

Слово compliance (в русскоязычной практике его обычно так и оставляют — «комплаенс», реже переводят как «соответствие требованиям») в контексте ИБ означает, что настройка системы должна соответствовать конкретному внешнему стандарту, а не просто «быть безопасной» в общем смысле. То есть у нас есть комплаенс, где мы делаем проверку по формальному списку критериев, который задаёт кто-то извне, и этого «извне» зовут регулятор/заказчик.

Стандарты бывают разные и зависят от компании/продукта/страны и иных требований. Рассмотрим одни из распространённых стандартов, которые чаще всего встречаются и настраиваются под Linux-серверы:

CIS Benchmarks (Center for Internet Security)

Пожалуй, самый распространённый в мире набор рекомендаций по безопасной настройке ОС, СУБД, контейнеров и облачных сервисов. Большинство сканеров, которые мы посмотрим, в первую очередь ориентированы именно на CIS.

ISO/IEC 27001

Международный стандарт систем менеджмента информационной безопасности. В отличие от CIS, это не технический чек-лист по параметрам ОС, а более такой широкий процессный стандарт с управлением рисками, политиками, ролями и т. д. Техническая настройка серверов — только часть требований, но именно для неё используются те же CIS-подобные проверки как техническое основание.

PCI DSS (Payment Card Industry Data Security Standard)

Стандарт для инфраструктуры, которая обрабатывает, хранит или передаёт данные платёжных карт. Требования регламентируют сегментацию сети, шифрование, логирование и хранение логов, регулярное сканирование уязвимостей.

Требования ФСТЭК России

Для российской инфраструктуры (госсистемы, ГИС, объекты КИИ, персональные данные) действуют приказы ФСТЭК. Формально многие технические требования ФСТЭК пересекаются с CIS Benchmarks на 80–90% — те же принципы: минимизация привилегий, отключение неиспользуемых сервисов, контроль изменений.

ФСТЭК и open source

В процессе изучения нашёл такой частый вопрос: можно ли использовать open source инструменты для официальной аттестации по ФСТЭК? И тут конкретного ответа я не нашёл, т. к. один говорит «да», другой — «нет», и, если конкретизировать уж, то — не напрямую. Open source сканеры и утилиты харденинга не имеют сертификата ФСТЭК России и не могут быть формально вписаны в аттестат соответствия информационной системы как сертифицированное средство контроля защищённости. Для официальной аттестации нужны сертифицированные средства защиты информации из реестра ФСТЭК.

Это не делает open source бесполезным в этом контексте — совсем наоборот. На практике эти инструменты закрывают другую, не менее важную задачу, а именно предварительный аудит, постоянный контроль и саму подготовку к аттестации. Некоторые отечественные дистрибутивы, к примеру Astra Linux, учитывают это на уровне поставки: в них встроен openscap/openscap-scanner (или вот), а вендоры и сообщество (как пример) публикуют репозитории и Ansible-роли, уже привязанные к требованиям.

Далее список собран по моему опыту и мнению. И это не рейтинг, а связка того, что используется одновременно в моём случае.

Мой топ по инструментам для автоматизации compliance

1. Lynis

Lynis в бесплатной версии ориентирован на стандарты ISO 27001, PCI DSS, HIPAA и CIS Benchmarks. Запускается как shell-скрипт, кстати проверяет он не только Linux, но и macOS. Есть ещё enterprise-версия, там добавляется GUI и плагины, которые полностью покрывают. Это, кстати, минус Lynis (в плане бесплатности), т. к. хоть он и проверяет, но только частично, для идеала вообще следует получить enterprise. Из плюсов: достаточно много профилей под Ubuntu.

Установка на Ubuntu

Установка через пакетный менеджер:

sudo apt update && sudo apt install lynis

И затем уже можно делать запуск аудита: sudo lynis audit system

Лог пишется в /var/log/lynis.log, отчёт — в /var/log/lynis-report.dat. Сама команда делает по умолчанию проверки по всем четырём стандартам (CIS, HIPAA, ISO27001 и PCI DSS), если хочется ограничить аудит, к примеру, только CIS, придётся создать свой профиль с compliance-standards=cis и запустить sudo lynis audit system --profile /путь/к/custom.prf

Документация Lynis.

2. OpenSCAP

OpenSCAP (она же открытая реализация стандартов SCAP — Security Content Automation Protocol — от NIST), сканер, который благодаря набору правил (SCAP-контент, например scap-security-guide от ComplianceAsCode) покрывает профили: PCI DSS, DISA STIG, CIS Benchmarks, HIPAA, NIST SP 800-171/CUI, OSPP (Common Criteria), ACSC Essential Eight, CJIS, C2S, ANSSI.

Установка на Ubuntu

Установка через пакетный менеджер:

# Ubuntu 24.04 и новее
sudo apt install openscap-scanner

# Более старые версии Ubuntu
sudo apt install libopenscap8

После установки можем проверить его наличие и как пример проверим под CIS:

# 1. Скачать и распаковать. Последнюю версию смотрите сами в https://github.com/ComplianceAsCode/content/releases/

wget https://github.com/ComplianceAsCode/content/releases/download/v0.1.82/scap-security-guide-0.1.82.zip
unzip scap-security-guide-0.1.82.zip
cd scap-security-guide-0.1.82

# 2. Запуск CIS Level 1 Server
sudo oscap xccdf eval --profile cis_level1_server --results-arf results-arf.xml --report report.html ssg-ubuntu2404-ds.xml

# Открыть отчёт
xdg-open report.html

Из плюсов: детальный html-отчёт, и лучше, чем даже Lynis в некоторых моментах, но порог входа я бы посчитал сложнее, чем в Lynis, из-за нехватки профилей. Из-за чего я использую их в связке и не забываю про топ-3.

Документация OpenSCAP

Да, и ещё такой момент, что у них разные подходы: у Lynis — динамическое сканирование (оппортунистическое), а у OpenSCAP — статическое сканирование (по чек-листу).

3. systemd-analyze

Это встроенная утилита из состава самого systemd, поэтому доустанавливать ничего не нужно, она уже есть на любом современном дистрибутиве. В отличие от Lynis и OpenSCAP, которые смотрят на систему в целом, systemd-analyze security проверяет конкретно то, как изолированы юниты (сервисы), запущенные через systemd — nginx, docker, postgres и любые другие.

Запуск без аргументов покажет сводную таблицу по всем загруженным долгоживущим сервисам:

systemd-analyze security

Каждому сервису присваивается exposure level от 0.0 (максимально защищён, жёсткий sandboxing) до 10.0 (практически никакой изоляции). Для разбора конкретного сервиса указываем его юнит:

systemd-analyze security docker.service

Тут уже выводится подробная построчная таблица: какие настройки безопасности (PrivateTmp, ProtectSystem, NoNewPrivileges, RestrictNamespaces и десятки других директив unit-файла) включены, какие нет, и сколько «очков» экспозиции добавляет каждая отсутствующая настройка.

Инструмент смотрит только на unit-файл systemd, AppArmor/SELinux и другие службы он не видит то как они реализованы. Поэтому высокий exposure level — не значит уязвим, значит просто не прописан харденинг.

Практический смысл в связке с остальными инструментами: Lynis и OpenSCAP проверяют ОС и файловую систему в целом, а systemd-analyze закрывает узкое, но важное место — изоляцию конкретных сервисов друг от друга и от ядра.

4. DevSec Hardening Framework

DevSec Hardening Framework — готовые роли и профили харденинга под Ansible, Chef, Puppet. Фишка в том чтобы не писать плейбуки харденинга с нуля под каждый проект, а взять готовый набор ролей от сообщества, который закрывает базовую защиту ОС и популярных сервисов.

В качестве примера — ansible-collection-hardening, закрывает харденинг ОС, SSH, nginx и MySQL одной командой ansible-galaxy collection install devsec.hardening и парой ролей (os_hardening, ssh_hardening) в плейбуке, а рядом есть проекты с суффиксом -baseline (linux-baseline, ssh-baseline и т.д.) уже не для настройки, а для проверки через InSpec, что всё применилось и держится.

Плюс — тут community-driven и регулярные обновления, минус — роли заточены под общие практики (близко к CIS), а не под конкретный регуляторный стандарт, так что под PCI DSS или ФСТЭК привязку придётся делать самому.

Ну и, конечно, самому как вариант написать 1 раз условный скрипт под стандарт и гонять его по всем серверам ради проверки всё ещё остаётся. Но для этого, чтобы не заморачиваться, есть Cinc!

5. Cinc

Это форк проекта Chef InSpec (после покупки он стал платным, и сообщество его форкнуло) под именем Cinc Auditor (Cinc Is Not Chef), по факту тот же InSpec, но с полностью свободной сборкой и без лицензионных ограничений. Фишка проекта в том, что он compliance-as-code, т. е. инструмент проверки, только аудит, без исправлений. Он подсветит, что на сервере небезопасные права на файл /etc/shadow, но сам их не исправит. Готовые профили брать не обязательно писать самому — та же DevSec-экосистема выше публикует готовые *-baseline профили под InSpec/Cinc (linux-baseline, ssh-baseline и другие), их можно сразу запускать без написания собственных controls. Как и исправление, можно это реализовать уже ручками либо другими инструментами.

Установка Cinc Auditor:

curl -L https://omnitruck.cinc.sh/install.sh | sudo bash -s -- -P cinc-auditor

Пример теста (control) — проверка прав и владельца на /etc/shadow:

describe file('/etc/shadow') do
  it { should_not be_executable }
  it { should be_owned_by 'root' }
end

Такой control сохраняется в файл profile/controls/example.rb внутри профиля и запускается командой:

cinc-auditor exec ./profile

И, кстати, мне понравился режим «сканер-клиент»: можно запускать проверку удалённого сервера по SSH прямо со своей машины, ничего не устанавливая на целевой сервер.

cinc-auditor exec ./profile -t ssh://user@remote-host

Заключение

Ручной аудит на соответствие compliance-требованиям работает, только пока серверов один-два. С ростом инфраструктуры единственный рабочий вариант — автоматизация: сканеры дают повторяемый результат и готовый отчёт, который можно предъявить хоть внутреннему безопаснику, хоть регулятору.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.