Formato de regras
Como uma regra YAML é estruturada e como escrever uma.
As regras são arquivos YAML simples em rules/. Um arquivo descreve um controle: o que verificar e como corrigir.
Exemplo
yaml
id: "CIS-UBUNTU-5.2.8"
title: "Ensure SSH root login is disabled"
description: "The PermitRootLogin parameter specifies if the root user can log in using ssh."
target: "linux"
os_family: ["ubuntu-22.04", "ubuntu-24.04", "rocky-9"]
level: 1
severity: "high"
tags: ["ssh", "server"]
audit:
type: "file_regex"
file_path: "/etc/ssh/sshd_config"
pattern: '(?m)^\s*PermitRootLogin\s+no\b'
remediation:
type: "command"
command: "sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config"
verify_cmd: "sshd -t"
backup_files: ["/etc/ssh/sshd_config"]Campos
| Campo | Significado |
|---|---|
id | Identificador único |
title, description | O que é o controle, em inglês |
target | Plataforma, por exemplo linux, windows, postgres, aws |
os_family | Lista opcional que restringe a regra a certos sistemas operacionais |
level | Nível do perfil CIS, 1 ou 2 |
severity | critical, high, medium ou low |
tags, reference | Tags de busca e a seção do benchmark contra a qual verificar |
audit | Como verificar |
remediation | Como corrigir |
Tipos de auditoria
| Tipo | O que faz |
|---|---|
command | Executa um comando e compara a saída com expected_output |
file_regex | Procura um padrão em um arquivo; must_not_match inverte o resultado |
config_regex | Procura um padrão na configuração exportada de um dispositivo |
sql_query | Executa uma consulta no banco de dados |
registry | Lê um valor do registro do Windows |
cloud_check | Chama uma API de nuvem por meio do SDK |
manual | Não pode ser automatizado; exibido com instruções |
Tipos de correção
| Tipo | O que faz |
|---|---|
command | Executa um comando; verify_cmd valida o resultado e é criado antes um snapshot de backup_files |
file_line | Substitui em um arquivo a linha que corresponde a match_regex por replace_line |
sql_exec | Executa uma instrução SQL |
iac_patch | Orientação ou patch de infraestrutura como código; nunca aplicado automaticamente |
As regras derivadas dos CIS Benchmarks continuam sob os termos do próprio CIS. Não adicione texto copiado dos PDFs dos benchmarks além do que a regra precisa.
Explorar o catálogo
O explorador de regras deste site lista todas as regras. tmaegis rules export gera o mesmo catálogo em JSON.