MakerChecker: AI 에이전트를 위한 오픈소스 보안 게이트웨이 및 정적 스캐너

MakerChecker: AI 에이전트를 위한 오픈소스 보안 게이트웨이 및 정적 스캐너

MakerChecker는 AI 에이전트가 승인되지 않았거나 위험한 작업을 실행하는 것을 방지하기 위해 설계된 오픈소스 보안 프레임워크입니다. 이 프레임워크는 "deny-by-default" 보안 태세를 구현하여, 에이전트가 명시적으로 부여받은 도구와 기술만을 실행할 수 있도록 보장하며, 모든 결정에 대해 변조가 불가능한 감사 추적을 제공합니다.

mc scan을 이용한 정적 위험 스캐닝

MakerChecker에는 에이전트의 코드베이스 내에서 잠재적으로 위험한 기능을 식별하는 정적 분석 도구인 mc scan이 포함되어 있습니다. 이 스캐너는 데이터 삭제, 자금 이체, 셸 명령 실행 또는 비밀 정보 유출과 같은 중대한 작업을 플래그로 표시하고 위험 등급별로 분류합니다.

스캐너의 주요 기능은 다음과 같습니다:

  • Local Execution: 스캔은 로컬 머신에서 완전히 실행됩니다. 데이터가 환경 외부로 유출되지 않습니다.
  • Automated Governance: 이 도구는 --fix 플래그를 사용하여 식별된 위험을 완화하기 위한 거버넌스 코드를 자동으로 생성할 수 있습니다.
  • Multi-Language Support: Python, JavaScript, TypeScript로 작성된 코드를 지원합니다.

런타임 강제 및 거버넌스

MakerChecker는 도구가 호출되는 시점에 역할 기반 액세스 제어(RBAC)를 강제하기 위해 임베디드 라이브러리(@makerchecker/embedded)와 중앙 집중식 서버를 제공합니다. 이를 통해 에이전트가 부여받은 한도를 초과하거나 자신의 작업을 스스로 승인하는 것을 방지합니다.

역할 기반 액세스 제어 (RBAC)

시스템은 "skills" (특정 작업)와 "roles" (권한 세트)를 정의합니다. 에이전트에게는 역할이 할당되며, 도구는 에이전트의 역할이 필요한 기술을 보유하고 있는지 확인하는 거버넌스 레이어에 래핑됩니다. 기술이 부여되지 않은 경우, 시스템은 도구가 실행되기 전에 GovernanceDeniedError를 발생시킵니다.

Human-in-the-Loop (HITL) 승인

고위험 기술의 경우, MakerChecker는 직무 분리(segregation of duties)를 강제합니다. 에이전트는 고위험 작업을 요청할 수 있지만, 해당 작업은 별도의 인간 "officer" 역할이 요청을 승인할 때까지 차단됩니다. 시스템은 요청자가 자신의 승인자가 되는 것을 구조적으로 방지합니다.

검증 가능한 감사 추적

규제 및 감사 요구 사항을 충족하기 위해, MakerChecker는 암호학적으로 서명된 해시 체인 방식의 감사 로그를 생성합니다.

  • Tamper Evidence: 모든 이벤트는 RFC 8785 canonical JSON의 이벤트에 대한 SHA-256 해시이며, 이전 이벤트의 해시와 체인으로 연결됩니다. 단 하나의 행만 수정되어도 검증 체인이 깨집니다.
  • Offline Verification: 감사 번들은 npx @makerchecker/proof-verifier 도구를 사용하여 오프라인에서 검증할 수 있어, 로그를 생성한 프로세스를 신뢰할 필요가 없습니다.
  • Cryptographic Signing: 모든 결정은 Ed25519로 서명됩니다.

통합 및 아키텍처

MakerChecker는 프레임워크에 구애받지 않도록 설계되었으며, 전용 커넥터를 통해 기존 AI 에이전트 스택과 통합됩니다:

  • Framework Connectors: LangChain 및 Claude Agent SDK를 위한 공식 커넥터가 사용 가능합니다.
  • SDKs: 커스텀 통합을 위해 전체 TypeScript 및 Python SDK가 제공됩니다.
  • Deployment Options: 로컬 강제를 위한 @makerchecker/embedded 라이브러리 또는 중앙 집중식 권한 부여, 인간 승인 인박스 및 리뷰 콘솔을 위한 셀프 호스팅 서버(Docker Compose를 통해 배포포함) 중에서 선택할 수 있습니다.

패키지 생태계

| Package | License | Purpose | | :--- | :--- | :--- | | | packages/scan | Apache-2.0 | 정적 위험 스캐닝 및 분류 | | packages/embedded | Apache-2.0 | 런타임 거버넌스 기본 요소 | | packages/proof-verifier | Apache-2.0 | 오프라인 감사 번들 검증 | | packages/sdk / sdk-python | Apache-2.0 | 클라이언트 라이브러리 (서버 통합용) | | packages/connector-langchain | Apache-2.0 | Apache-2.0 | LangChain 도구 거버넌스 | | packages/connector-claude-agent | Apache-2.0 | Claude Agent SDK 거버넌스 | | packages/server | AGPL-3.0 | 중앙 집중식 게이트웨이 및 플로우 엔진 | | packages/web | AGPL-3.0 | 승인 인박스 및 리뷰 콘솔 |

커뮤니티 관점

MakerChecker는 런타임 가드레일의 필요성을 다루고 있지만, some developers have questioned the necessity of separate AI security frameworks. Hacker News의 한 댓글 작성자는 전통적인 운영 체제 권한(sysadmin roles 및 file-level access control)이 특수화된 "bolt-on" AI 보안 도구 없이도 이러한 요구 사항의 많은 부분을 처리할 수 있다고 제안했습니다.

또 다른 관점은 AI 개발의 주기적 특성을 강조하며, 업계가 초기에는 권한 기반 에이전트를 사용했으나 속도를 위해 제어되지 않은 자율성을 향한해 움직였고, 이제 그러한 위험에 대한 반응으로 안전장치를 구현하는 단계로 돌아가고 있다고 언급했습니다.

Sources