
Генерирует контент безопасности SCAP, Ansible, Bash и CEL для оценки соответствия и автоматического усиления защиты на Linux-хостах, контейнерах и Kubernetes.
Цель этого проекта — создание контента политик безопасности для различных платформ — Red Hat Enterprise Linux, Fedora, Ubuntu, Debian, SUSE Linux Enterprise Server (SLES),... — а также для продуктов — Firefox,... Мы стремимся максимально упростить создание нового и поддержку существующего контента безопасности во всех часто используемых форматах.

«SCAP-контент» относится к документам в форматах XCCDF, OVAL и SCAP source data stream. Эти документы могут представляться в различных формах и разными организациями для удовлетворения потребностей в автоматизации безопасности и технической реализации. Для общего использования мы рекомендуем SCAP source data streams, поскольку они содержат все данные, необходимые для оценки и приведения машин в соответствие требованиям. Потоки данных являются частью наших релизных ZIP-архивов.
«Ansible-контент» относится к плейбукам Ansible, созданным из профилей безопасности. Их можно использовать как в режиме проверки (check-mode) для оценки соответствия, так и в режиме выполнения (run-mode) для приведения машин в соответствие. Мы публикуем их на Ansible Galaxy, а также в релизных ZIP-архивах.
«Bash fix files» — это Bash-скрипты, созданные из профилей безопасности. Они предназначены для запуска на машинах с целью приведения их в соответствие требованиям. Мы рекомендуем использовать другие форматы, но понимаем, что в некоторых сценариях развёртывания bash является единственным вариантом.
«CEL-контент» — это контент для проверки соответствия, использующий Common Expression Language (CEL) для платформ Kubernetes и OpenShift. CEL-контент создаётся в виде YAML-файлов и предназначен для нативной оценки ресурсов Kubernetes через compliance-operator, без необходимости доступа к оболочке узлов. Этот формат используется для проверок соответствия на уровне платформы в системах оркестрации контейнеров.
Мы хотим, чтобы множество организаций могли эффективно разрабатывать контент безопасности. Используя мощную систему сборки этого проекта, мы избегаем максимально возможной избыточности.
Система сборки объединяет легко редактируемые YAML-файлы правил с проверками OVAL, фрагментами задач Ansible, исправлениями Bash и другими файлами. Шаблонизация обеспечивается на каждом шаге, чтобы избежать шаблонного кода. Идентификаторы безопасности (CCE, NIST ID, STIG, ...) присутствуют во всех наших выходных форматах, но все они берутся из YAML-файлов правил.
Мы понимаем, что в зависимости от потребностей вашей организации вам может понадобиться использовать определённый формат контента безопасности. Мы позволяем вам выбирать.
Мы используем YAML-формат правил, вдохновлённый OpenControl, в качестве входных данных. Напишите один раз и создавайте контент безопасности в XCCDF, Ansible и других форматах.
title: 'Configure The Number of Allowed Simultaneous Requests'
description: |-
The <tt>MaxKeepAliveRequests</tt> directive should be set and configured to
<sub idref="var_max_keepalive_requests" /> or greater by setting the following
in <tt>/etc/httpd/conf/httpd.conf</tt>:
<pre>MaxKeepAliveRequests {{{ xccdf_value("var_max_keepalive_requests") }}}</pre>
rationale: |-
Resource exhaustion can occur when an unlimited number of concurrent requests
are allowed on a web site, facilitating a denial of service attack. Mitigating
this kind of attack will include limiting the number of concurrent HTTP/HTTPS
requests per IP address and may include, where feasible, limiting parameter
values associated with keepalive, (i.e., a parameter used to limit the amount of
time a connection may be inactive).
severity: medium
identifiers:
cce: "80551-5"
Наш контент безопасности можно использовать для сканирования физических машин (bare-metal), виртуальных машин, образов виртуальных машин (qcow2 и других), контейнеров (включая Docker) и образов контейнеров.
Мы используем проверки платформы, чтобы определить, следует ли оценивать некоторые правила. Например: проверки отдельных разделов имеют смысл на физических машинах, но противоречат рекомендуемым практикам для контейнеров.
Предпочтительный способ установки — через менеджер пакетов вашего дистрибутива. В Red Hat Enterprise Linux и Fedora вы можете использовать:
yum install scap-security-guide
В Debian (sid) вы можете использовать:
apt install ssg-debian # for Debian guides
apt install ssg-debderived # for Debian-based distributions (e.g. Ubuntu) guides
apt install ssg-nondebian # for other distributions guides (RHEL, Fedora, etc.)
apt install ssg-applications # for application-oriented guides (Firefox, JBoss, etc.)
Загрузите готовый ZIP-архив SSG со страницы релизов. Каждый ZIP-файл представляет собой архив с готовыми потоками исходных данных SCAP.
Если ComplianceAsCode отсутствует в вашем дистрибутиве (он может присутствовать там как пакет scap-security-guide) или если упакованная версия слишком старая, вам необходимо собрать контент самостоятельно и установить его с помощью make install. Подробнее см. в документе Руководство разработчика. Мы также рекомендуем открыть вопрос в трекере ошибок этого дистрибутива, чтобы выразить заинтересованность.
Мы предполагаем, что вы установили ComplianceAsCode в систему в стандартное расположение из актуальных исходников, как указано в предыдущем разделе.
Существует несколько способов использования контента ComplianceAsCode; здесь мы рассмотрим лишь некоторые из них.
oscapИнструмент oscap — это низкоуровневый интерфейс командной строки из проекта OpenSCAP. Его можно использовать для сканирования локальной машины.
oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_ospp --results-arf arf.xml --report report.html --oval-results /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml
После оценки файл arf.xml будет содержать все результаты в пригодном для повторного использования формате потока данных результатов (ARF), а report.html будет содержать отчёт, понятный человеку, который можно открыть в браузере.
Замените профиль на любой другой по вашему выбору; вы можете просмотреть все возможные варианты с помощью:
oscap info /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml
Дополнительную информацию см. на веб-сайте OpenSCAP.
SCAP Workbench — это графический интерфейс для оценки и настройки SCAP. Он подходит для сканирования одной машины, локальной или удалённой (через SSH). Новые версии SCAP Workbench имеют интеграцию с SSG и автоматически предлагают её при запуске приложения.
Дополнительную информацию см. на веб-сайте SCAP Workbench.
oscap-sshoscap-ssh поставляется в комплекте с OpenSCAP 1.2.3 и более поздними версиями. Он позволяет сканировать удалённую машину через SSH с интерфейсом, напоминающим инструмент oscap.
Следующая команда оценивает машину с IP-адресом 192.168.1.123 с контентом, хранящимся на локальной машине. Имейте в виду, что oscap должен быть установлен на удалённой машине, а контент SSG — не обязательно.
oscap-ssh [email protected] 22 xccdf eval --profile xccdf_org.ssgproject.content_profile_standard --results-arf arf.xml --report report.html /usr/share/xml/scap/ssg/content/ssg-fedora-ds.xml
Чтобы увидеть список доступных плейбуков Ansible, выполните:
ls /usr/share/scap-security-guide/ansible/
Эти плейбуки Ansible созданы из SCAP-профилей, доступных для продуктов.
Чтобы применить плейбук на локальной машине, выполните: (ЭТО ИЗМЕНИТ КОНФИГУРАЦИЮ МАШИНЫ!)
ansible-playbook -i "localhost," -c local /usr/share/scap-security-guide/ansible/rhel9-playbook-ospp.yml
Каждый из плейбуков Ansible содержит инструкции по их развёртыванию. Вот фрагмент этих инструкций:
...
# This file was generated by OpenSCAP 1.2.16 using:
# $ oscap xccdf generate fix --profile rht-ccp --fix-type ansible sds.xml
#
# This script is generated from an OpenSCAP profile without preliminary evaluation.
# It attempts to fix every selected rule, even if the system is already compliant.
#
# How to apply this remediation role:
# $ ansible-playbook -i "192.168.1.155," playbook.yml
# $ ansible-playbook -i inventory.ini playbook.yml
...
Чтобы увидеть список доступных Bash-скриптов, выполните:
# ls /usr/share/scap-security-guide/bash/
...
rhel8-script-hipaa.sh
rhel8-script-ospp.sh
rhel8-script-pci-dss.sh
...
Эти Bash-скрипты созданы из SCAP-профилей, доступных для продуктов. Как и плейбуки Ansible, каждый Bash-скрипт содержит инструкции по их развёртыванию.
Список рассылки SSG можно найти на https://lists.fedorahosted.org/mailman/listinfo/scap-security-guide.
Если вы столкнулись с проблемами в OpenSCAP или SCAP Workbench, используйте https://www.redhat.com/mailman/listinfo/open-scap-list
Если вы предпочитаете более интерактивное общение с сообществом, вы можете присоединиться к нам в Gitter и IRC:
#openscap на libera.chat.Этот проект начался в 2011 году как сотрудничество между агентствами правительства США и коммерческими поставщиками операционных систем. Первоначальное название было SCAP Security Guide, обычно сокращённо SSG. Первоначальной целью было создание потоков данных SCAP. Со временем проект вырос в крупнейший проект открытого ПО с контентом, выходящим за рамки SCAP.
В последующие годы появились не только государственные профили безопасности, но и коммерческие, такие как PCI-DSS и CIS.
Позже индустрия начала переходить на другие форматы контента безопасности, такие как Ansible, Puppet и Chef InSpec. Сообщество отреагировало развитием инструментов и помогло превратить SSG в более универсальный проект контента безопасности. Это изменение происходило постепенно в 2017 и 2018 годах. В сентябре 2018 года мы решили переименовать проект в ComplianceAsCode, чтобы избежать путаницы.
Мы считаем, что будущее за формато-независимостью. Именно поэтому мы выбрали абстракцию вместо использования XCCDF в качестве входного формата.
Этот проект открыт для новых участников. Мы постоянно стараемся устранять сложности, чтобы сделать вклад в проект проще и приятнее для всех. Это хороший проект и дружелюбное сообщество.
Существует множество способов внести вклад. Подробности см. в документации: https://complianceascode.readthedocs.io/en/latest/manual/developer/01_introduction.html
Ознакомьтесь с обновлённым списком участников.