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 custom-checks-user-icon, em contraste com as verificações do SaltStack built-in-checks-shield-icon. 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

Inicializando o SDK

  1. 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.

  2. (Opcional) Confirme alterações em um repositório controlado por versão.

Criando verificações personalizadas

Observação:

Inicializar o SDK é um pré-requisito para criar conteúdo personalizado. Consulte Inicializando o SDK.

  1. 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.
  2. 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.

  3. 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.
  4. Edite o conteúdo do arquivo de estado. Para obter mais informações, consulte Pastas e arquivos.
  5. 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

Observação: Inicializar o SDK é um pré-requisito para criar conteúdo personalizado. Consulte Inicializando o SDK.
  1. No SDK de Conteúdo Personalizado, acesse o diretório benchmarks. Ele contém um meta-arquivo (.meta) de benchmark de exemplo.
  2. Faça uma cópia de Sample_Benchmark.meta, renomeando-a com um nome descritivo para o seu benchmark.
  3. 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

Observação: Instalar o Docker é um pré-requisito para o procedimento a seguir. Para obter mais informações sobre como baixar e instalar o Docker, consulte a documentação de instalação do Docker.
  1. 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.
  2. Crie uma imagem do Docker do CentoS7 com o Salt para testes.
    ./build.sh
  3. Inicie o contêiner de teste.
    ./up.sh
  4. 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?.

  5. Quando o teste estiver concluído, desligue o contêiner de teste.
    ./down.sh

Criando a biblioteca de conteúdo personalizada

  1. 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.
  2. 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 arquivos tar.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

  1. Clique em Administração > SecOps no menu lateral.
  2. 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.
  3. 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 custom-checks-user-icon, em contraste com as verificações do SaltStack built-in-checks-shield-icon.

    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

  1. Na interface do usuário, acesse SecoPS > Verificações.
  2. Clique no menu menu-icon-light 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 custom-checks-user-icon, em contraste com o conteúdo do SaltStack built-in-checks-shield-icon.
  3. 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.

  4. Em Excluir Verificação > Aviso, clique em Excluir. A caixa de diálogo confirma que a verificação foi excluída.
  5. Clique em Concluído para fechar a caixa de diálogo.

Excluindo benchmarks personalizados

  1. Na interface do usuário, acesse SecoPS > Benchmarks.
  2. Clique no menu menu-icon-light 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 custom-checks-user-icon, em contraste com o conteúdo do SaltStack built-in-checks-shield-icon.

  3. 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.

  4. Em Excluir Benchmark > Aviso, clique em Excluir. A caixa de diálogo confirma que o benchmark foi excluído.
  5. 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 personalizados
  • salt/locke/custom: contém arquivos de estado de verificação (.sls) e arquivos meta (.meta) personalizados
  • sample_tests: contém arquivos de exemplo para testar usando o Docker
  • README.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

Observação:

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.

Observação:

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 como notapplicable.

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údo
  • secops_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 do secops_custom.tar.gz. Isso é útil ao fazer chamadas de API
  • secops_custom_YYYY-MM-DDTHH:MM:SS.SSSSSS...tar.gz: uma cópia idêntica de secops_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