본문으로 건너뛰기
피드

AI 에이전트 도구 호출에 실행 전 정책 게이트를 붙이는 오픈소스 SDK, 엔포라

security 약 7분
vote
0
댓글
북마크

엔포라는 AI 에이전트가 환불, 명령 실행, 이메일 발송, 데이터 내보내기 같은 실제 부작용을 만들기 직전에 정책을 검사하는 로컬 SDK다. 시스템 프롬프트를 보안 경계로 보지 않고, 애플리케이션이 소유한 도구 콜백 앞에 allow, block, require_approval, log_only 결정을 끼워 넣는 방식이다.

  • 1

    시스템 프롬프트가 아니라 도구 실행 직전의 정책 평가를 통제 지점으로 둠

  • 2

    로컬 YAML 정책, 정책 테스트, 결정 추적, 감사 로그, 민감정보 마스킹을 제공함

  • 3

    오픈소스 코어는 네트워크 호출이나 원격 도구 실행 없이 애플리케이션 내부에서 동작함

  • 엔포라(Enforra)는 AI 에이전트가 도구를 실행하기 직전에 정책을 검사하는 오픈소스 로컬 SDK임

    • 환불 처리, 셸 명령 실행, 이메일 발송, 데이터 내보내기처럼 실제 부작용이 생기는 액션이 대상임
    • 핵심 주장은 단순함. “시스템 프롬프트는 보안 경계가 아니다”라는 것
  • 구조는 에이전트 런타임이나 모델 방화벽이 아니라, 애플리케이션이 가진 도구 콜백을 감싸는 래퍼에 가까움

    • enforceToolCall에 agent, tool, args, context, execute 콜백을 넘기면 실행 전 정책을 평가함
    • 결정은 allow, block, require_approval, log_only 네 가지 중 하나로 떨어짐
    • 실제 도구 실행은 고객 애플리케이션이 계속 소유하고, 엔포라는 원격으로 도구를 실행하지 않음

중요

> 엔포라의 통제 지점은 모델 출력이 아니라 “콜백 실행 직전”임. 프롬프트 인젝션을 완벽히 막겠다는 도구가 아니라, 이상한 행동이 실제 부작용으로 이어지기 전에 끊는 장치에 가깝다.

  • 오픈소스 코어는 전부 로컬에서 돈다는 점을 꽤 강조함

    • 네트워크 호출, 텔레메트리, 분석, 데이터베이스 쓰기, 숨은 백그라운드 작업이 없다고 명시함
    • 정책은 로컬 YAML 파일에서 로드하고, 같은 정책과 같은 도구 호출 입력이면 같은 결정을 내리도록 설계됨
    • Node.js 20 이상, pnpm 모노레포 기반이고 @enforra/sdk-node로 설치함
  • 정책 언어는 도구 인자와 컨텍스트를 점 경로로 참조하는 방식임

    • 예를 들면 args.amount, args.recipient, context.environment 같은 값을 조건으로 쓸 수 있음
    • 연산자는 eq, neq, gt, gte, lt, lte, contains, not_contains를 지원함
    • 조건은 모두 만족해야 하는 배열로 쓰거나, allany로 묶을 수 있고, 우선순위도 줄 수 있음
  • 예시가 꽤 현실적인 편임. 특히 지원팀 환불 데모가 의도를 잘 보여줌

    • 작은 환불은 허용, 중간 규모 환불은 승인 필요, 큰 환불은 차단하는 식으로 세 단계 액션을 테스트함
    • 데이터베이스 삭제 데모도 있어서, 직접 테이블 삭제 콜백과 엔포라로 보호된 콜백을 비교함
    • MCP 스타일 도구 이름을 애플리케이션 경계에서 정책으로 다루는 예시도 있지만, MCP 게이트웨이를 구현한 건 아님
  • 감사 로그는 .enforra/audit.jsonl에 추가 기록됨

    • allow와 log_only는 실행 전 decision audit event를 먼저 쓰고, 그 쓰기가 실패하면 콜백을 실행하지 않음
    • 성공한 실행은 사전 결정 로그와 최종 실행 로그처럼 이벤트가 여러 개 생길 수 있음
    • 공통 secret 필드는 재귀적으로 마스킹해서 로그에 남김
  • 해시 체인 기반 감사 무결성도 옵션으로 제공함

    • 나중에 검증했을 때 로그가 수정, 삭제, 재정렬됐는지 감지하는 데 도움을 줌
    • 다만 프로젝트 설명처럼 tamper-proof, 즉 변조 불가능한 저장소는 아님
  • 범위도 꽤 선명하게 잘라둠

    • 포함되는 것: 정책 로딩과 검증, Node SDK 래퍼, 로컬 JSONL 감사 로그, 마스킹, 선택적 해시 체인, 데모와 테스트, CI
    • 빠지는 것: 호스팅 API, 클라우드 대시보드, 팀 승인 워크플로, 인증, 과금, 역할 기반 접근 제어, 싱글 사인온, 슬랙·이메일 승인, 컴플라이언스 리포트, 원격 도구 실행, MCP 게이트웨이
sequenceDiagram
    participant 에이전트
    participant 애플리케이션
    participant 엔포라
    participant 정책파일
    participant 감사로그
    에이전트->>애플리케이션: 도구 호출 요청
    애플리케이션->>엔포라: enforceToolCall 호출
    엔포라->>정책파일: 로컬 YAML 정책 평가
    엔포라->>감사로그: 실행 전 결정 기록
    엔포라-->>애플리케이션: allow/block/approval/log_only 반환
    애플리케이션->>애플리케이션: 허용된 경우에만 콜백 실행

기술 맥락

  • 에이전트 보안에서 프롬프트만 믿기 어려운 이유는, 프롬프트는 모델 행동을 유도할 뿐 실행 권한을 물리적으로 막지는 못하기 때문이에요. 환불이나 삭제 같은 작업은 모델이 “하지 말라”는 지시를 무시했을 때 바로 사고로 이어질 수 있거든요.

  • 엔포라가 도구 콜백 앞을 잡은 건 그래서 꽤 실용적인 선택이에요. 모델 런타임 전체를 바꾸지 않아도, 애플리케이션이 이미 갖고 있는 함수 호출 경계에 정책 평가를 끼워 넣을 수 있으니까요.

  • 로컬 YAML 정책과 CI 테스트를 강조하는 것도 포인트예요. 운영 중에만 막는 게 아니라, 정책 변경이 의도치 않게 환불 한도를 풀어버리거나 승인 조건을 깨는 일을 테스트 단계에서 잡겠다는 흐름이에요.

  • 감사 로그를 실행 전 먼저 쓰고 실패하면 콜백을 실행하지 않는 설계는 작지만 중요해요. “실행은 됐는데 기록이 없다”가 감사 관점에서는 제일 난감한 케이스라서, 기록 가능성을 실행 조건으로 둔 거예요.

에이전트 보안에서 이제 중요한 질문은 모델이 무슨 말을 하느냐가 아니라, 모델이 시킨 행동을 어디서 끊을 수 있느냐다. 엔포라는 그 경계를 프롬프트가 아니라 코드 실행 경로에 박아두자는 쪽에 가깝다.

댓글

댓글

댓글을 불러오는 중...

security

한양대 에리카와 네이버클라우드, 클라우드·보안·AI 인재 키우는 산학협력 체결

한양대 에리카가 네이버클라우드와 첨단 분야 지역인재 양성과 글로벌 산학협력을 위한 업무협약을 맺었다. 협력 범위는 클라우드, 사이버보안, 블록체인, 개인정보보호, 인공지능(AI), 디지털 전환(DX) 교육·연구 기반 구축까지 포함된다.

security

악성 npm 패키지가 AI 개발도구의 지침 파일과 MCP까지 노리기 시작함

이스트시큐리티가 웹과 탈중앙화금융 개발자를 겨냥한 악성 npm 패키지 캠페인을 포착했어. 공격자는 유명 웹3 도구를 사칭하는 데서 그치지 않고, AI 에이전트가 읽는 프로젝트 지침 파일과 MCP 기반 외부 도구 호출까지 공격 경로로 삼으려 했어.

security

금융권, 앤트로픽 미토스가 찾은 오픈소스 취약점에 긴급 점검 들어감

앤트로픽의 AI 모델 클로드 미토스가 1000개 넘는 오픈소스에서 대량의 취약점 후보를 찾아냈고, 그중 일부가 실제 취약점으로 검증돼 공개됐어. 금융당국은 nginx, wolfSSL, FreeRDP, Ghost 같은 널리 쓰이는 구성요소를 중심으로 금융권에 긴급 자산 점검과 패치 적용을 권고했어.

security

애플이 양자 내성 암호화 검증 코드를 공개했다, 핵심은 수학적 증명

애플이 corecrypto 라이브러리의 포스트 양자 암호화 구현과 검증 코드를 GitHub에 공개했다. ML-KEM, ML-DSA 구현과 형식 검증 접근을 공개해 보안 연구자들이 직접 검토할 수 있게 했고, 이 기술은 25억 대 이상 활성 기기에서 쓰이는 암호화 기반과 연결된다.

security

라라벨 번역 패키지 태그가 통째로 바뀌었다, 개발자 비밀값 털리는 공급망 공격

전 세계 라라벨 개발자가 쓰는 Laravel-Lang 패키지가 공격을 받아 Git 태그가 악성 버전을 가리키도록 바뀌었다. 5월 22일 약 90분 동안 4개 저장소의 태그가 교체됐고, 감염된 패키지는 AWS 키, GitHub 토큰, Stripe 시크릿, 암호화폐 지갑 복구 구문, SSH 개인키 등을 노렸다.