Skip to content

threat model

github-actions[bot] edited this page May 12, 2026 · 1 revision

Threat model

Assets

  • Chave SSH técnica em ssh/.
  • Senha Vault e arquivos group_vars/*/vault.yml.
  • Chaves privadas e perfis em artifacts/clients/.
  • Configuração remota do WireGuard, UFW, sysctl e sudoers.
  • Prefixos e endereços públicos de produção mantidos em overrides locais.

Trust boundaries

  • Máquina local do operador para o VPS via SSH.
  • Ansible controller para arquivos locais ignorados pelo Git.
  • Interface WireGuard wg0 para clientes autorizados.
  • Interface externa do VPS para a internet.
  • GitHub/CI para arquivos públicos do template.

Abuse paths

  • Commit acidental de .vault_pass, chaves, perfis de clientes ou overrides reais.
  • Compromisso da chave SSH técnica, dando acesso administrativo por NOPASSWD:ALL.
  • Host key SSH ausente ou trocada, abrindo espaço para MITM no deploy.
  • Cliente WireGuard vazado, permitindo uso não autorizado do egress.
  • Configuração IPv6 incorreta, causando vazamento fora do túnel ou perda de conectividade externa.
  • Supply chain não fixada, alterando comportamento de Ansible, lint ou docs sem mudança no repositório.

Mitigations

  • .gitignore, make security-check, gitleaks e revisão whitelist antes de push público.
  • host_key_checking = True e ssh/known_hosts local obrigatório para deploy.
  • Chave técnica dedicada, usuário sem senha utilizável e permissões locais restritas.
  • Vault real ignorado e sempre criptografado.
  • CI obrigatória para lint, syntax, docs, shellcheck, security-check e secret scan.
  • IPv6 em modo auto: roteado quando o prefixo permite, com NAT66 fallback e aviso explícito quando o prefixo é ULA ou o VPS só tem /128.

Residual risks

  • NOPASSWD:ALL permanece aceito para compatibilidade com Ansible geral.
  • NAT66 fallback preserva conectividade, mas reduz a transparência de endereço IPv6 por cliente.
  • Proxy NDP depende do modelo do provedor quando o prefixo é on-link em vez de roteado explicitamente.

Clone this wiki locally