Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
gate0 — 소형의 감사 가능한 종료형 결정적 마이크로 정책 엔진 | Kitploit
도구/GitHubGitHub/qarait/gate0
Authentication & AuthorizationNetwork SecurityCloud SecurityAPI Security
GitHubqarait/gate0

gate0

소형의 감사 가능한 종료형 결정적 마이크로 정책 엔진

저장소 보기
1726개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

gate0

CI License: MIT

작고, 감사 가능하며, 종료가 보장되고, 결정론적인 마이크로 정책 엔진입니다.

Gate0가 필요한 이유

운영 환경에서 정규식 기반 정책을 디버깅하는 데 지쳐서 Gate0를 만들었습니다. 지루하고, 한정적이며, 크래시가 불가능한 무언가가 필요했습니다. 유연하고 범용적인 정책 엔진이 필요하다면 OPA를 사용하세요. 보안에 중요한 경로에서 50µs 미만의 평가와 제로 할당을 벤치마크하는 정책 엔진이 필요하다면 Gate0가 적합합니다.

보안 모델

Gate0는 정책 평가가 결정론적이고 리소스가 제한되어야 하는 높은 신뢰성 환경을 위해 설계되었습니다. 취약점 신고는 보안 정책을 참조하고, 전체 위협 모델 및 기계적 보장은 보안 모델을 참조하세요.

아키텍처

Gate0는 선형적인 거부-우선 평가 전략을 사용합니다. 각 규칙은 대상(빠른 경로 매치)과 선택적 조건(심층 로직)으로 구성됩니다.

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

검증

Gate0의 정확성과 안전성은 핵심 로직과 경계 사례를 포괄하는 단위 테스트, 수백 가지 생성 시나리오를 사용한 proptest 기반 속성 기반 테스트, 그리고 패닉 및 정의되지 않은 동작(UB)이 없음을 보장하는 MIRI 검증을 통해 기계적으로 확인됩니다. 최악의 입력도 제한된 종료를 보장하도록 테스트됩니다.

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

안전성 및 비용 모델

Gate0의 평가자는 고정 크기의 스택 할당 버퍼를 사용하여 평가 중 힙 할당이 전혀 발생하지 않도록 보장합니다. 기본 구현은 MaybeUninit을 사용하여 사용되지 않는 슬롯의 초기화를 피하므로 O(용량) 대신 O(사용됨)의 초기화 비용이 발생합니다.

안전하지 않은 코드는 단일 모듈(fixed_stack.rs)에 국한되며, 간단한 불변 조건을 가집니다: 0..len 요소는 초기화되고, len..N 요소는 그렇지 않습니다. 모든 안전하지 않은 경로는 MIRI로 검증됩니다.

안전하지 않은 코드를 전혀 사용하지 않으려는 사용자를 위해 Gate0는 safe-stack 기능 플래그 뒤에 SafeFixedStack을 제공합니다. 이 변형은 T: Default + Copy를 갖춘 [T; N]을 사용하며 모든 슬롯을 미리 초기화합니다. 대가는 모든 평가 호출 시 O(용량)의 초기화 비용입니다.

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

두 구현 모두 동일한 의미론과 평가 중 동일한 제로 할당 보장을 제공합니다. 선택은 성능(O(사용됨))과 절대적 안전성(O(용량)) 사이입니다. bool과 같은 저렴한 Default 타입의 작은 스택에서는 차이가 미미합니다.

통합 아키텍처

Gate0는 더 큰 호스트 애플리케이션 내에서 정책 결정 지점(PDP) 역할을 하도록 설계되었습니다. 결정론과 엄격한 경계를 유지하기 위해 Gate0는 I/O, 네트워킹 또는 객체 수명 주기를 처리하지 않습니다.

권장 통합 패턴은 세 가지 계층으로 관심사를 분리합니다. 호스트 애플리케이션(API 게이트웨이, SSH 서버 등)은 상태, ID 및 부작용을 관리합니다. 어댑터 계층은 이 복잡한 상태를 Gate0가 이해하는 기본 요소(문자열, bool, 정수)로 정규화합니다. Gate0는 순수하게 평탄화된 컨텍스트를 평가하고 Decision을 반환합니다.

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

이러한 분리는 Gate0에 IP 범위 검사나 정규식과 같은 복잡한 매처가 포함되지 않은 이유를 설명합니다. 어댑터 계층은 도메인별 로직을 처리하고 Gate0에 미리 계산된 bool 또는 문자열 속성을 제공합니다. Gate0는 작고, 감사 가능하며, 결정론적으로 유지됩니다.

예제

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());

예제들

examples/ 디렉토리에는 일반적인 Gate0 사용 패턴을 보여주는 예시 시나리오가 포함되어 있습니다.

SaaS API: 표준 RBAC/멀티 테넌시 로직. Zero Trust Network: MFA 및 위치 확인을 포함한 속성 기반 접근 제어(ABAC). Complex Overrides: 거부-우선 충돌 해결을 보여줍니다.

다음 명령어로 실행하세요:

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

제한 사항

Gate0는 예측 가능성과 성능을 유지하기 위해 의도적으로 제약되어 있습니다.

복잡한 매처 없음: 전체 Bit-Mask CIDR이나 고급 정규식과 같은 로직은 어댑터 계층의 책임입니다. Gate0는 전처리된 기본 요소를 평가합니다.

네이티브 멀티스레딩 없음: 현재 Python용 FFI 구현은 스레드 안전하지 않습니다. 높은 동시성 사용자는 멀티프로세싱을 사용하거나 글로벌 잠금을 해결할 4단계 FFI 안정화를 기다려야 합니다.

중복 결정 없음: 단일 효과 클래스(허용/거부) 내에서는 첫 번째 일치 규칙만 반환됩니다. 충돌 해결은 엄격하게 순서에 따라 결정됩니다.

커뮤니티 확장

다음 프로젝트는 특수 사용 사례를 위해 Gate0 엔진을 확장합니다.

gate0_dsl: hardliner66가 개발한 Gate0용 Rust 네이티브 도메인 특화 언어(DSL)입니다. Rust 매크로를 활용하여 코드에서 직접 정책을 정의할 수 있는 깔끔하고 읽기 쉬운 구문을 제공합니다. 구현 및 문서는 hardliner66/gate0_dsl에서 확인할 수 있습니다.

라이선스

MIT

도구 다운로드