
Gera conteúdo de segurança SCAP, Ansible, Bash e CEL para avaliação de conformidade e hardening automatizado em hosts Linux, contêineres e Kubernetes.
O objetivo deste projeto é criar conteúdo de políticas de segurança para várias plataformas — Red Hat Enterprise Linux, Fedora, Ubuntu, Debian, SUSE Linux Enterprise Server (SLES),... — bem como produtos — Firefox,... Nosso objetivo é tornar o mais fácil possível escrever e manter o conteúdo de segurança existente em todos os formatos comumente utilizados.

"Conteúdo SCAP" refere-se a documentos nos formatos XCCDF, OVAL e SCAP source data stream. Esses documentos podem ser apresentados de diferentes formas e por diferentes organizações para atender às suas necessidades de automação de segurança e implementação técnica. Para uso geral, recomendamos os SCAP source data streams porque eles contêm todos os dados necessários para avaliar e colocar máquinas em conformidade. Os data streams fazem parte dos nossos arquivos ZIP de lançamento.
"Conteúdo Ansible" refere-se a playbooks Ansible gerados a partir de perfis de segurança. Eles podem ser usados tanto no modo de verificação (check-mode) para avaliar a conformidade, quanto no modo de execução (run-mode) para colocar máquinas em conformidade. Publicamos esses playbooks no Ansible Galaxy e também nos arquivos ZIP de lançamento.
"Arquivos de correção Bash" refere-se a scripts Bash gerados a partir de perfis de segurança. Eles são destinados a serem executados nas máquinas para colocá-las em conformidade. Recomendamos o uso de outros formatos, mas entendemos que, para alguns cenários de implantação, o bash é a única opção.
"Conteúdo CEL" refere-se a conteúdo de conformidade que utiliza a Common Expression Language (CEL) para plataformas Kubernetes e OpenShift. O conteúdo CEL é gerado como arquivos YAML e é projetado para avaliação nativa de recursos Kubernetes por meio do compliance-operator, sem exigir acesso shell aos nós. Esse formato é usado para verificações de conformidade em nível de plataforma em sistemas de orquestração de contêineres.
Queremos que múltiplas organizações possam desenvolver conteúdo de segurança de forma eficiente. Ao aproveitar o poderoso sistema de build deste projeto, evitamos ao máximo a redundância.
O sistema de build combina os arquivos de regras YAML fáceis de editar com verificações OVAL, trechos de tarefas Ansible, correções Bash e outros arquivos. Templates são fornecidos em cada etapa para evitar código repetitivo. Os identificadores de segurança (CCE, NIST ID, STIG, ...) aparecem em todos os nossos formatos de saída, mas são todos originados dos arquivos de regras YAML.
Entendemos que, dependendo das necessidades da sua organização, você pode precisar usar um formato específico de conteúdo de segurança. Deixamos você escolher.
Utilizamos um formato de regras YAML inspirado no OpenControl como entrada. Escreva uma vez e gere conteúdo de segurança em XCCDF, Ansible e outros.
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"
Nosso conteúdo de segurança pode ser usado para varrer máquinas bare-metal, máquinas virtuais, imagens de máquinas virtuais (qcow2 e outras), contêineres (incluindo Docker) e imagens de contêineres.
Usamos verificações de plataforma para detectar se devemos ou não avaliar algumas das regras. Por exemplo: verificações de partições separadas fazem total sentido em máquinas bare-metal, mas vão contra as práticas recomendadas em contêineres.
O método preferido de instalação é por meio do gerenciador de pacotes da sua distribuição. No Red Hat Enterprise Linux e no Fedora, você pode usar:
yum install scap-security-guide
No Debian (sid), você pode usar:
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.)
Baixe o arquivo ZIP SSG pré-compilado na página de lançamentos. Cada arquivo ZIP é um pacote com SCAP source data streams prontos.
Se o ComplianceAsCode não estiver empacotado na sua distribuição (ele pode estar presente como pacote scap-security-guide), ou se a
versão empacotada for muito antiga, você precisará compilar o conteúdo você mesmo
e instalá-lo via make install. Consulte o documento Guia do Desenvolvedor
para obter mais informações. Também recomendamos abrir uma issue no rastreador de bugs
dessa distribuição para manifestar interesse.
Presumimos que você tenha instalado o ComplianceAsCode em todo o sistema, em um local padrão, a partir das fontes upstream atuais, conforme instruído na seção anterior.
Há várias maneiras de consumir o conteúdo do ComplianceAsCode; abordaremos apenas algumas delas aqui.
oscapA ferramenta oscap é uma interface de linha de comando de baixo nível que vem
do projeto OpenSCAP. Ela pode ser usada para varrer a máquina local.
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
Após a avaliação, o arquivo arf.xml conterá todos os resultados em um formato
reutilizável de result data stream (ARF); o report.html conterá um relatório
legível por humanos que pode ser aberto em um navegador.
Substitua o perfil por outro de sua escolha; você pode exibir todas as opções possíveis usando:
oscap info /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml
Consulte o site do OpenSCAP para obter mais informações.
O SCAP Workbench é uma interface gráfica de usuário para avaliação e personalização de SCAP. É adequado para varrer uma única máquina, local ou remota (via SSH). As novas versões do SCAP Workbench têm integração com o SSG e a oferecem automaticamente quando o aplicativo é iniciado.
Consulte o site do SCAP Workbench para obter mais informações.
oscap-sshoscap-ssh vem acompanhado do OpenSCAP 1.2.3 e versões posteriores. Ele permite varrer
uma máquina remota via SSH com uma interface semelhante à ferramenta oscap.
O comando a seguir avalia uma máquina com IP 192.168.1.123 usando conteúdo
armazenado na máquina local. Tenha em mente que o oscap precisa estar instalado na
máquina remota, mas o conteúdo SSG não precisa.
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
Para ver uma lista dos Ansible Playbooks disponíveis, execute:
ls /usr/share/scap-security-guide/ansible/
Esses Ansible Playbooks são gerados a partir dos perfis SCAP disponíveis para os produtos.
Para aplicar o playbook na sua máquina local, execute: (ISTO ALTERARÁ A CONFIGURAÇÃO DA MÁQUINA!)
ansible-playbook -i "localhost," -c local /usr/share/scap-security-guide/ansible/rhel9-playbook-ospp.yml
Cada um dos Ansible Playbooks contém instruções sobre como implantá-los. Aqui está um trecho das instruções:
...
# 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
...
Para ver uma lista dos scripts Bash disponíveis, execute:
# ls /usr/share/scap-security-guide/bash/
...
rhel8-script-hipaa.sh
rhel8-script-ospp.sh
rhel8-script-pci-dss.sh
...
Esses scripts Bash são gerados a partir dos perfis SCAP disponíveis para os produtos. Semelhante aos Ansible Playbooks, cada um dos scripts Bash contém instruções sobre como implantá-los.
A lista de discussão do SSG pode ser encontrada em https://lists.fedorahosted.org/mailman/listinfo/scap-security-guide.
Se você encontrar problemas com o OpenSCAP ou o SCAP Workbench, use https://www.redhat.com/mailman/listinfo/open-scap-list
Se você preferir um contato mais interativo com a comunidade, pode se juntar a nós no Gitter e no IRC:
#openscap na rede libera.chat.Este projeto começou em 2011 como uma colaboração entre agências do Governo dos Estados Unidos e fornecedores comerciais de sistemas operacionais. O nome original era SCAP Security Guide, comumente abreviado como SSG. O escopo original era criar SCAP data streams. Com o tempo, ele se tornou o maior projeto open-source de conteúdo além do SCAP.
Nos anos seguintes, foram introduzidos não apenas perfis de segurança específicos de governos, mas também comerciais, como PCI-DSS e CIS.
Mais tarde, o setor começou a migrar para diferentes formatos de conteúdo de segurança,
como Ansible, Puppet e Chef InSpec. A comunidade reagiu evoluindo as ferramentas
e ajudou a transformar o SSG em um projeto de conteúdo de segurança de propósito mais geral.
Essa mudança aconteceu gradualmente em 2017 e 2018. Em setembro de 2018, decidimos
mudar o nome do projeto para ComplianceAsCode, a fim de evitar confusão.
Prevemos que o futuro será agnóstico em relação a formatos. Por isso, optamos por uma abstração em vez de usar XCCDF como formato de entrada.
Este projeto é aberto a novos contribuidores. Estamos continuamente tentando remover as complexidades para tornar as contribuições mais fáceis e agradáveis para todos. Este é um bom projeto e uma comunidade amigável.
Há muitas maneiras de contribuir. Consulte a documentação para obter mais detalhes: https://complianceascode.readthedocs.io/en/latest/manual/developer/01_introduction.html
Consulte a lista atualizada de Contribuidores.