O conteúdo de conformidade personalizado permite que você defina seus próprios padrões de segurança para complementar a biblioteca de benchmarks de segurança e verificações incorporadas ao SaltStack SecOps Compliance. Esse conteúdo personalizado é útil para aprimorar as políticas do SaltStack SecOps Compliance para atender às suas necessidades internas.
Uma verificação é um padrão de segurança que o SaltStack SecOps Compliance avalia em termos de conformidade. Benchmarks são categorias de verificações de segurança.
O SaltStack SecOps Compliance inclui um Kit de Desenvolvimento de Software (SDK) de Conteúdo Personalizado que você pode usar para criar, testar e criar seu próprio conteúdo de segurança personalizado. Você pode importar seu conteúdo de segurança personalizado para uso junto com a biblioteca de segurança integrada do SaltStack SecOps Compliance para avaliação e remediação. A capacidade de importar conteúdo personalizado também permite controlar a versão do conteúdo usando um sistema de controle de versão de sua escolha.
Para usar verificações personalizadas, primeiro inicialize o SDK de Conteúdo Personalizado do SaltStack SecOps Compliance. Esse SDK inclui arquivos de exemplo que você pode modificar para criar suas próprias verificações personalizadas, bem como benchmarks. O SDK também inclui um ambiente de teste baseado em Docker no qual você pode testar seu novo conteúdo.
Depois de criar e testar seu conteúdo personalizado, você pode criar um arquivo de conteúdo e importá-lo para o SaltStack SecOps Compliance para começar a avaliar e remediar. As verificações personalizadas incluem um ícone de usuário , em contraste com as verificações do SaltStack . O SaltStack SecOps Compliance rastreia dependências entre políticas e seu conteúdo personalizado e fornece uma lista de dependências que poderão ser desfeitas se você excluir esse conteúdo.
Pré-requisitos
- Baixar o SDK de Conteúdo Personalizado do SaltStack SecOps Compliance.
- Instalar o Docker. Consulte a Documentação de instalação do Docker.
Inicializando o SDK
- Na linha de comando, navegue até o diretório que contém o arquivo e execute o seguinte de acordo com o sistema operacional.
- Mac OS ou Linux
./secops_sdk init
- Windows
secops_sdk.exe init
Nenhuma saída é exibida. Esse comportamento é esperado. Seu diretório agora contém as seguintes pastas e arquivos:
benchmarks
salt/locke/custom
sample_tests
README.md
Para obter mais informações sobre essas pastas e arquivos, consulte Pastas e arquivos.
- Mac OS ou Linux
- (Opcional) Confirme alterações em um repositório controlado por versão.
Criando verificações personalizadas
Inicializar o SDK é um pré-requisito para criar conteúdo personalizado. Consulte Inicializando o SDK.
- No SDK de conteúdo personalizado, acesse
salt/locke/custom
. Esse diretório contém vários subdiretórios com arquivos de estado (.sls
) e meta-arquivo (.meta
) de exemplo.Observação: Todas as verificações personalizadas devem ser configuradas em um arquivo de estado (.sls
) e em um meta-arquivo (.meta
) correspondente. - Faça uma cópia de um arquivo de estado (
.sls
) e de seu meta-arquivo (.meta
) correspondente de exemplo, renomeando ambos com um nome descritivo para sua verificação personalizada.Ambos os arquivos associados a uma verificação devem estar no mesmo diretório e começar com o mesmo nome, por exemplo:
my_first_check.meta
my_first_check.sls
É possível salvar esses dois arquivos juntos em qualquer subdiretório de
salt/locke/custom
. - Edite o conteúdo do meta-arquivo para personalizar a verificação com base nas suas necessidades. O arquivo está gravado em YAML. Para obter uma lista das diferentes opções incluídas no arquivo, consulte Pastas e arquivos.
Observação: Meta-arquivos de verificação contêm referências a diferentes benchmarks. Ao criar conteúdo personalizado, certifique-se de incluir todos os benchmarks associados no seu meta-arquivo de verificação.
- Edite o conteúdo do arquivo de estado. Para obter mais informações, consulte Pastas e arquivos.
- Verifique se ambos os arquivos estão salvos no mesmo diretório.
Agora, você concluiu as etapas mínimas necessárias para criar uma verificação personalizada. É possível continuar a testar a verificação, confirmar o controle de versão ou criar sua biblioteca de conteúdo.
Criando benchmarks personalizados
- No SDK de Conteúdo Personalizado, acesse o diretório
benchmarks
. Ele contém um meta-arquivo (.meta
) de benchmark de exemplo. - Faça uma cópia de
Sample_Benchmark.meta
, renomeando-a com um nome descritivo para o seu benchmark. - Edite o conteúdo do meta-arquivo para personalizar o benchmark com base nas suas necessidades. O arquivo está gravado em YAML. Para obter uma descrição das diferentes opções incluídas no arquivo, consulte Pastas e arquivos.
Testando conteúdo personalizado
- Depois de criar seu conteúdo personalizado, abra a linha de comando e navegue até o diretório
sample_tests
do SDK de Conteúdo Personalizado. - Crie uma imagem do Docker do CentoS7 com o Salt para testes.
./build.sh
- Inicie o contêiner de teste.
./up.sh
- Execute testes de exemplo em verificações criadas no diretório
salt/locke/custom
. É possível executar verificações personalizadas como você faria com estados Salt normais, por exemplo:./test.sh salt-call --local state.apply locke.custom.mounts.my_first_check test=True
Para obter mais exemplos de testes, consulte Testar conteúdo personalizado no LEIAME do SDK. Para obter mais informações sobre Estados Salt, consulte a documentação do Salt: Como usar Estados Salt?.
- Quando o teste estiver concluído, desligue o contêiner de teste.
./down.sh
Criando a biblioteca de conteúdo personalizada
- Depois de criar seu conteúdo personalizado, abra a linha de comando e navegue até o diretório raiz do SDK de Conteúdo Personalizado.
- Crie sua biblioteca de conteúdo personalizada.
./secops_sdk build -a
O diretório raiz do SDK agora inclui o subdiretório
_dist
. Isso inclui dois arquivostar.gz
que você pode usar para importar seu conteúdo por meio da interface de usuário do SaltStack Config ou da API (RaaS). Para obter uma descrição de todos os arquivos incluídos no diretório, consulte Pastas e arquivos.
Importando conteúdo personalizado
- Clique em Administração > SecOps no menu lateral.
- Em Conteúdo de Conformidade - SaltStack, clique em Verificar atualizações.
Observação: Se você já tiver baixado conteúdo do SaltStack SecOps Compliance durante sua sessão atual, poderá ignorar esta etapa.
- Clique em Carregar Pacote e selecione o arquivo
.tar.gz
no explorador de arquivos.Observação: Para facilitar a navegação pelas suas verificações personalizadas, use o arquivo cujo nome contenha um carimbo de data/hora. Para obter mais informações sobre arquivos, consulte Pastas e arquivos.Seu conteúdo personalizado agora está disponível no SaltStack SecOps Compliance para criar políticas, executar avaliações e remediar seus sistemas. As verificações personalizadas incluem um ícone de usuário , em contraste com as verificações do SaltStack .
Observação:Você também pode importar conteúdo usando a API (RaaS) ou, como alternativa, por meio da linha de comando durante a instalação. Consulte a interface da API Sec ou o Guia de Instalação Empresarial.
Excluindo verificações personalizadas
- Na interface do usuário, acesse SecoPS > Verificações.
- Clique no menu ao lado da verificação que você deseja excluir e depois clique em Excluir.
Observação: Somente conteúdo personalizado pode ser excluído. Esse conteúdo personalizado inclui um ícone de usuário , em contraste com o conteúdo do SaltStack .
- Na caixa de diálogo Excluir Verificação, em “Em Uso”, revise a lista de políticas e benchmarks que incluem a verificação. Isso é útil para prever quaisquer dependências no seu ambiente que possam ser desfeitas se você excluir a verificação.
Quando terminar de analisar as dependências em uso, clique em Avançar.
- Em Excluir Verificação > Aviso, clique em Excluir. A caixa de diálogo confirma que a verificação foi excluída.
- Clique em Concluído para fechar a caixa de diálogo.
Excluindo benchmarks personalizados
- Na interface do usuário, acesse SecoPS > Benchmarks.
- Clique no menu ao lado da verificação que você deseja excluir e depois clique em Excluir.
Observação:
Somente conteúdo personalizado pode ser excluído. Esse conteúdo personalizado inclui um ícone de usuário , em contraste com o conteúdo do SaltStack .
- Na caixa de diálogo Excluir Benchmark, em “Em Uso”, revise a lista de políticas e verificações associadas ao benchmark. Isso é útil para prever quaisquer dependências no seu ambiente que possam ser desfeitas se você excluir o benchmark.
Quando terminar de analisar as dependências em uso, clique em Avançar.
- Em Excluir Benchmark > Aviso, clique em Excluir. A caixa de diálogo confirma que o benchmark foi excluído.
- Clique em Concluído para fechar a caixa de diálogo.
Pastas e arquivos
Após a inicialização do SDK, seu diretório inclui as seguintes pastas e arquivos:
benchmarks
: contém arquivos meta (.meta
) de benchmark personalizadossalt/locke/custom
: contém arquivos de estado de verificação (.sls
) e arquivos meta (.meta
) personalizadossample_tests
: contém arquivos de exemplo para testar usando o DockerREADME.md
: fornece informações mais detalhadas sobre o SDK
Os arquivos importantes estão descritos com mais detalhes abaixo.
Arquivos de benchmark personalizados
Benchmarks são categorias de verificações de segurança. Benchmarks integrados do SaltStack SecOps Compliance são definidos por especialistas amplamente aceitos. No entanto, benchmarks personalizados podem ser definidos pelos padrões da sua própria organização. Cada benchmark contém uma lista de recomendações, chamadas de verificações, e tem um arquivo .meta
correspondente no diretório benchmarks
. Para obter mais informações sobre benchmarks no SaltStack SecOps Compliance, consulte Benchmarks.
Ao criar um meta-arquivo de benchmark, você cria uma categoria de verificações. Em seguida, você pode adicionar verificações a esse benchmark definindo um nome para ele em um meta-arquivo de verificação em benchmark_id
. Consulte Pastas e arquivos.
Esse meta-arquivo é escrito em YAML e inclui as seguintes opções que você pode personalizar para o seu conteúdo:
- name
-
Nome do benchmark
- display_name
-
Nome do benchmark, que será exibido na lista de benchmarks no SaltStack SecOps Compliance
- desc
-
Descrição do benchmark
Além das opções acima, o meta-arquivo também inclui uma variedade de itens reservados, como version
, authority
e ids
. Não modifique esses itens reservados, a menos que instruído pelo administrador.
Arquivos de verificação personalizados
Uma verificação é um padrão de segurança que o SaltStack SecOps Compliance avalia em termos de conformidade. Uma recomendação associada a um benchmark. A recomendação fornece informações de descrição, lógica, auditoria e remediação. Cada verificação é definida por pelo menos dois arquivos: um arquivo de estado (.sls
) e um meta-arquivo (.meta
) correspondente.
Ambos os arquivos associados a uma verificação devem estar no mesmo diretório e começar com o mesmo nome, por exemplo:
my_first_check.meta
my_first_check.sls
É possível salvar esses dois arquivos juntos em qualquer subdiretório de salt/locke/custom
.
Cada tipo de arquivo está descrito com mais detalhes abaixo.
Meta-arquivos de verificação
Meta-arquivos de verificação incluem uma descrição de uma verificação, bem como detalhes adicionais relacionados à verificação, como sua versão, sistemas operacionais aplicáveis e muito mais. Meta-arquivos são escritos em YAML e usam a extensão de arquivo .meta
.
Meta-arquivos de verificação personalizados incluem as seguintes opções:
- version
-
Versão do conteúdo de verificação. Somente um valor de
1
tem suporte no momento. - display_name
-
O nome dessa verificação que aparecerá na lista de verificações na interface de usuário do SaltStack Config.
- global_description
-
Uma descrição detalhada da verificação. Esta é uma chance de especificar mais informações do que são fornecidas por meio dos nomes das verificações e dos benchmarks.
- osfinger
-
Lista de sistemas operacionais com permissão para executar essa verificação. Se o host não tiver um valor de
osfinger
que corresponda a um valor nessa lista, o resultado da avaliação da verificação será retornado comonotapplicable
. - refs
-
Informações de referência cruzada sobre outras verificações em outros benchmarks ou padrões de segurança que são satisfeitos com essa verificação.
- benchmark_id
-
Lista de cada benchmark ao qual a verificação pertence.
Cada entrada de benchmark cria uma nova seção que inclui as seguintes subopções:
- type
-
Tipo de benchmark. Insira
custom
ao definir uma verificação personalizada não fornecida por uma autoridade específica. - desc
-
Título da recomendação de segurança que aparecerá na lista de verificações na interface do usuário do SaltStack Config.
- control_id
-
Número da recomendação, por exemplo, de um documento CIS correspondente.
- scored
-
Esse campo é modelado após as recomendações CIS, que podem ser Pontuadas ou Não Pontuadas. Recomendações CIS que são Não Pontuadas não contam a favor ou contra uma pontuação de segurança.``true`` indica Pontuadas e
false
indica Não Pontuadas. Você pode optar por pontuar ou não pontuar uma verificação com base nas suas necessidades internas. - profile
-
O CIS e outros benchmarks são divididos em perfis. Por exemplo, o benchmark CIS CentOS Linux 7 tem quatro perfis, representados como:
profile: server:level1 workstation:level1 server:level2 workstation:level3
- information
-
Descrição da verificação. Pode ser semelhante ao campo
global_description
da verificação. - rationale
-
Descrição da lógica de implementação da verificação.
- remediation
-
Instruções sobre como remediar um sistema em um estado fora de conformidade.
Arquivos de estado de verificação
Arquivos de estado de verificação aplicam estados Salt para realizar avaliações e remediações. Uma função de estado é uma função contida dentro de um módulo de estado que pode gerenciar a aplicação de um determinado estado a um sistema. Funções de estado frequentemente exigem um ou mais módulos de execução para realizar uma determinada tarefa. Arquivos de estado são gravados em YAML e Jinja e usam a extensão de arquivo .sls
.
O resultado de uma avaliação é o resultado da execução do arquivo de estado no modo test=True
. Se o resultado mostrar que a aplicação do estado teria causado uma alteração, o host será considerado fora de conformidade. Se a aplicação do estado não resultar em uma alteração, o host será considerado em conformidade.
Para obter mais informações sobre Estados Salt, consulte a documentação do Salt: Como usar Estados Salt?.
Arquivos da biblioteca de conteúdo personalizada
Depois de criar sua biblioteca de conteúdo personalizada, seu diretório inclui o diretório _dist
, que contém os seguintes arquivos adicionais:
digest.json
: contém hashes e outras informações sobre o conteúdosecops_custom.tar.gz
: arquivo tar gzip pronto para ingestão. Isso é adequado para upload por meio da interface do usuário do SaltStack Config. Para obter mais informações sobre ingestão de conteúdo, consulte o Guia de Instalação Empresarial.secops_custom.txt
: versão codificada em base64 dosecops_custom.tar.gz
. Isso é útil ao fazer chamadas de APIsecops_custom_YYYY-MM-DDTHH:MM:SS.SSSSSS...tar.gz
: uma cópia idêntica desecops_custom.tar.gz
, preferencial para upload através da interface de usuário do SaltStack Config devido ao seu nome de arquivo descritivo, que inclui a data de criação e o UUID do tarball