Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
gate0 — Um pequeno motor de micropolíticas auditável, terminante e determinístico | Kitploit
Ferramentas/GitHubGitHub/qarait/gate0
Autenticação e AutorizaçãoSegurança de RedeSegurança na NuvemSegurança de API
GitHubqarait/gate0

gate0

Um pequeno motor de micropolíticas auditável, terminante e determinístico

Ver Repositório
172há 6 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

gate0

CI License: MIT

Um pequeno motor de micropolítica auditável, com término garantido e determinístico.

Por que Gate0?

Construí o Gate0 porque estava cansado de depurar políticas baseadas em RegEx em produção. Queria algo que fosse chato, limitado e impossível de travar. Se você quer um mecanismo de políticas flexível e de propósito geral, deve usar OPA. Se você quer um mecanismo de políticas que faça benchmark com avaliação abaixo de 50µs e zero alocações para caminhos críticos de segurança, você quer o Gate0.

Modelo de Segurança

O Gate0 é projetado para ambientes de alta confiança onde a avaliação de políticas deve ser determinística e limitada em recursos. Consulte a Política de Segurança para relatar vulnerabilidades e o Modelo de Segurança para o modelo de ameaça completo e garantias mecânicas.

Arquitetura

O Gate0 usa uma estratégia de avaliação linear, Deny-Overrides (sobreposição de negação). Cada regra consiste em um Target (alvo de caminho rápido) e uma Condition (lógica profunda) opcional.

root@kitploit:~
+----------+       +-------------+       +--------+
| Ephemera | ----> | GateBridge  | ----> | Gate0  |
| (Legacy) |       | (Normalize) |       | (Core) |
+----------+       +-------------+       +--------+
     |                    ^
     |                    |
     +----(Shadow Log)----+

Verificação

A correção e a segurança do Gate0 são verificadas mecanicamente por meio de testes de unidade que cobrem a lógica central e casos extremos, testes baseados em propriedades via proptest com centenas de cenários gerados e verificação MIRI para operação livre de pânico e livre de UB (comportamento indefinido). Entradas de pior caso são testadas para garantir término limitado.

root@kitploit:~
cargo test
cargo +nightly miri test --lib

Modelo de Segurança e Custo

O avaliador do Gate0 usa buffers de tamanho fixo alocados na pilha para garantir zero alocações na heap durante a avaliação. A implementação padrão usa MaybeUninit para evitar a inicialização de slots não utilizados, resultando em custo de inicialização O(usado) em vez de O(capacidade).

O código inseguro (unsafe) está confinado a um único módulo (fixed_stack.rs) com invariantes diretas: os elementos 0..len estão inicializados, os elementos len..N não estão. Todos os caminhos unsafe são verificados com MIRI.

Para usuários que preferem código zero unsafe, o Gate0 fornece SafeFixedStack por trás da flag de recurso safe-stack. Esta variante usa [T; N] com T: Default + Copy e inicializa todos os slots antecipadamente. A compensação é a inicialização O(capacidade) em cada chamada de avaliação.

root@kitploit:~
cargo build --features safe-stack

Ambas as implementações fornecem semântica idêntica e a mesma garantia de zero alocação durante a avaliação. A escolha é entre desempenho (O(usado)) e segurança absoluta (O(capacidade)). Para pilhas pequenas com tipos Default baratos como bool, a diferença é insignificante.

Arquitetura de Integração

O Gate0 é projetado para funcionar como um Ponto de Decisão de Política (PDP) dentro de uma aplicação hospedeira maior. Para manter o determinismo e limites estritos, o Gate0 não lida com E/S, rede ou ciclos de vida de objetos.

O padrão de integração recomendado separa responsabilidades em três camadas. A aplicação hospedeira (gateway de API, servidor SSH, etc.) gerencia estado, identidade e efeitos colaterais. Uma camada adaptadora normaliza esse estado complexo em primitivas que o Gate0 entende (strings, bools, ints). O Gate0 avalia o contexto achatado de forma pura e retorna uma Decisão.

root@kitploit:~
Host Application (User Request)
        │
        ▼
  [Adapter Layer]  →  Pre-computes context (time, IP ranges, MFA status)
        │              Converts "complex" to "primitive"
        ▼
  [Gate0 Engine]   →  Pure evaluation (0 allocations, bounded stack)
        │
        ▼
  Decision::Allow / Deny

Essa separação explica por que o Gate0 não inclui correspondentes complexos como verificações de intervalo de IP ou regex. A camada adaptadora lida com a lógica específica do domínio e apresenta ao Gate0 atributos booleanos ou de string pré-calculados. O Gate0 permanece pequeno, auditável e determinístico.

Exemplo

root@kitploit:~
use gate0::{Policy, Rule, Target, Request, ReasonCode};

let policy = Policy::builder()
    .rule(Rule::allow(Target::any(), ReasonCode(1)))
    .build()?;

let decision = policy.evaluate(&Request::new("alice", "read", "doc"))?;
assert!(decision.is_allow());

Exemplos

O diretório examples/ contém cenários ilustrativos que demonstram padrões comuns de uso do Gate0:

SaaS API: Lógica padrão de RBAC/Multi-inquilinos. Zero Trust Network: Controle de Acesso Baseado em Atributos (ABAC) com MFA e verificações de localização. Complex Overrides: Demonstração da resolução de conflitos Deny-Overrides.

Execute-os com:

root@kitploit:~
cargo run --example saas_api
cargo run --example zero_trust_network
cargo run --example complex_overrides

Limitações

O Gate0 é intencionalmente limitado para permanecer previsível e eficiente.

  • Sem Correspondentes Complexos: Lógica como CIDR de máscara de bits completa ou Regex avançado permanece responsabilidade da camada adaptadora. O Gate0 avalia primitivas pré-processadas.

  • Sem Multithreading Nativo: A implementação FFI atual para Python não é thread-safe. Usuários de alta concorrência devem usar multiprocessamento ou esperar pela estabilização da FFI Fase 4, que abordará as travas globais.

  • Sem Decisões Sobrepostas: Dentro de uma única classe de efeito (Allow/Deny), apenas a primeira regra correspondente é retornada. A resolução de conflitos é estritamente dependente da ordem.

Extensões da Comunidade

Os seguintes projetos estendem o mecanismo Gate0 para casos de uso especializados.

gate0_dsl: Uma Linguagem de Domínio Específico nativa em Rust para o Gate0 desenvolvida por hardliner66. Ela aproveita as macros do Rust para fornecer uma sintaxe limpa e legível para definir políticas diretamente no código. Você pode encontrar a implementação e a documentação em hardliner66/gate0_dsl.

Licença

MIT

Baixar ferramenta