Deno, 에이전트 방화벽(Claw Patrol) 오픈 소스 공개

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00이것은 Dino 팀이 구축한 오픈 소스 보안 방화벽인 Claw Patrol입니다.
00:00:04AI 에이전트와 인터넷 사이에 위치하며, AI 에이전트의 세 가지 주요 보안 문제를 해결합니다.
00:00:09접근 권한이 곧 통제권은 아닙니다. 에이전트가 비밀 정보를 보게 해서는 안 되며,
00:00:14에이전트가 무엇을 했는지 알 수 없어서도 안 됩니다. 최근 여러 AI 에이전트 보안 도구를 사용해 봤는데,
00:00:19Claw Patrol이 취한 방식이 정말 마음에 들었지만, 아직 완벽하지는 않습니다. Claw Patrol의 작동 방식을 설명하자면,
00:00:28규칙, 자격 증명, 로그 및 Claw Patrol 대시보드를 유지 관리하는 게이트웨이라는 서버가 하나 있고,
00:00:32에이전트를 실행하는 여러 대의 머신이 이 게이트웨이에 연결하여
00:00:36에이전트 트래픽을 라우팅할 수 있습니다. 사실, 단일 명령만 게이트웨이를 통해
00:00:40실행할 수도 있고, 전체 머신을 추가할 수도 있습니다. 제 경우 게이트웨이는 단순히 Ubuntu
00:00:45서버인데, Claw Patrol이 기본적으로 지원하는 Tailscale을 통해 연결하며,
00:00:50WireGuard도 지원합니다. 제 에이전트는 Mac과 OpenClaw 서버입니다. 저는 OpenClaw 게이트웨이를
00:00:55Claw Patrol을 통해 실행하고 있고, Mac에서는 필요할 때마다 Clawd 명령을 한 번씩 실행합니다.
00:01:00이런 배경 지식을 바탕으로 Claw Patrol이 해결하는 세 가지 핵심 문제를 살펴보겠습니다.
00:01:04두 번째 문제인 “에이전트가 비밀 정보를 보게 해서는 안 된다”는 것부터 시작하겠습니다. 다른 문제들과도 잘 연결되니까요.
00:01:09Claw Patrol 게이트웨이에서는 Postgres 사용자,
00:01:14Clawd 구독, GitHub 계정, 그리고 제가 여기 프로덕션 API 서버를 위해 설정한 것처럼 Bearer 토큰이나 사용자 지정 헤더를 구성할 수 있습니다.
00:01:19이렇게 하면, Claw Patrol run 명령을 사용하여 게이트웨이를 통해 에이전트를 실행할 때,
00:01:25요청을 처리하기 위해 이러한 자격 증명이 전혀 필요하지 않습니다. 요청이 게이트웨이를 통과할 때
00:01:30자동으로 주입되기 때문입니다. 만약 제가 Claw에게 제 API와 데이터베이스를 사용하여
00:01:35두 가지에 대한 개요를 알려달라고 하면, 아무 문제 없이 수행할 수 있습니다. 그리고 실행 중인
00:01:41명령을 보면 이 cURL 요청에 API 키가 포함되어 있지 않지만,
00:01:46실제로는 키가 필요합니다. Postgres의 경우, 절대 실제 비밀번호가 아닌 가짜 비밀번호 “X”를 사용하고 있는데도,
00:01:51게이트웨이가 요청을 가로채 실제 자격 증명을 첨부하기 때문에 연결되어 관련 정보를 가져옵니다.
00:01:56즉, 에이전트는 실제 값에 접근할 권한이 전혀 없습니다.
00:02:00따라서 누군가 에이전트 로그를 보거나 프롬프트 인젝션을 시도하더라도,
00:02:06자격 증명은 완전히 별도의 서버에 존재하며 에이전트는 이에 접근할 방법이 없으므로 정보를 절대 얻을 수 없습니다.
00:02:10이 주입 과정을 더 명확히 보여드리기 위해, 제 터미널에서 이 cURL 요청을 실행하면,
00:02:15API 키를 전달하지 않았기 때문에 거부되는 것을 볼 수 있습니다. 하지만 똑같은 명령을
00:02:20Claw Patrol run을 통해 실행하면 API 키가 주입되어 데이터가 정상적으로 반환됩니다.
00:02:26Claw Patrol이 해결하려는 다음 문제는 “접근 권한이 곧 통제권은 아니다”라는 것입니다. Claw Patrol은
00:02:31에이전트가 요청으로 무엇을 할 수 있는지에 대해 매우 세밀한 제어 권한을 제공합니다. 예를 들어,
00:02:36Postgres 기술을 다시 사용하면서 테이블을 삭제하고 새로 만들라고 요청하면, 실행 즉시
00:02:41제가 설정한 맞춤형 오류 메시지가 반환되는데, 스키마 변경은 에이전트가 아니라
00:02:46마이그레이션 PR을 통해서만 가능하다고 알려줍니다. 게이트웨이가 에이전트가 만든 Postgres 요청을
00:02:51확인하고 제가 정의한 규칙 세트와 대조한 결과, 규칙 중 하나에 따라
00:02:56테이블 삭제 요청을 거부한 것입니다. 또 다른 방법은 'Human-in-the-loop(사람이 개입하는 방식)'를 사용하는 것인데,
00:03:00이 규칙이 저에게 연락하여 작업을 승인하도록 할 수 있습니다. 현재는
00:03:04Slack만 지원하지만 더 많은 옵션이 곧 추가될 예정입니다. LLM을 심판으로 사용하는 옵션도 있으며,
00:03:09규칙은 매우 사용자 정의 가능하고 유연합니다. 예를 들어
00:03:13답장을 보내는 고객 지원 API 엔드포인트를 확인하여 공격적인
00:03:18콘텐츠, 누락된 인사말, 또는 요청에서 유출되기를 원치 않는 모든 것을 감지할 수 있습니다. 다시 말하지만,
00:03:22이 모든 것이 게이트웨이의 요청 단계에서 수행되므로 이론적으로는 프롬프트 인젝션이나
00:03:27거의 모든 유형의 AI 공격으로부터 보호받을 수 있습니다. Claw Patrol이 해결하는 세 번째 문제는
00:03:31에이전트가 무엇을 했는지 알 수 없다는 것인데, Claw Patrol에서는 모든 요청을
00:03:37여기 대시보드에서 볼 수 있고, 활성 세션과 사용된 토큰도 확인할 수 있습니다.
00:03:42요청을 클릭하면 실제로 실행된 Postgres 명령과 같은 관련 세부 정보를 보거나,
00:03:46API 호출의 경우, API 요청 내용과 응답 결과를 확인할 수 있습니다.
00:03:51이렇게 하면 에이전트가 무엇을 했는지 알아내려고 에이전트가 거쳐 간 개별 서비스의
00:03:55모든 로그를 뒤질 필요 없이, 요청 시점에
00:03:59에이전트가 무엇을 했는지 바로 볼 수 있으므로 에이전트가 수행하는 거의 모든 것을 파악할 수 있습니다.
00:04:03이것이 Claw Patrol이 해결하려는 세 가지 문제인데, 설정은 어떻게 할까요? Claw Patrol을 설치하면,
00:04:07게이트웨이는 HCL 파일 하나로 모두 구성됩니다.
00:04:12이 파일에서 규칙과 자격 증명을 적용할 다양한 엔드포인트를 정의합니다.
00:04:16OpenAI, Slack, SSH, Postgres 등 다양한 엔드포인트가 있고, 게이트웨이를 통과하는 요청이
00:04:22이 중 하나와 일치하면 규칙과 자격 증명을 확인해야 함을 인지합니다.
00:04:26실제 자격 증명 설정도 꽤 간단합니다.
00:04:30자격 증명 유형이 무엇인지, 그리고 어떤 엔드포인트와 일치시켜야 하는지 지정하면 됩니다.
00:04:34Anthropic 구독, Codex, ClickHouse, Postgres 등 많은 유형의 자격 증명을 지원하며,
00:04:39Bearer 토큰이나 사용자 지정 헤더 같은 기본적인 것들도 지원하므로,
00:04:43필요한 거의 모든 유형을 찾을 수 있을 것입니다.
00:04:46만약 없더라도 직접 플러그인을 코딩하여 추가할 수도 있습니다.
00:04:50여기에서 자격 증명을 정의한 후, 대시보드로 이동하여 실제 값을 입력하기만 하면 됩니다. 규칙 설정도 꽤 쉽습니다.
00:04:54규칙을 적용할 엔드포인트를 명시하고,
00:04:56CEL(Common Expression Language)을 사용하여 규칙을 작성하면 됩니다.
00:05:00이는 HTTP, Postgres, Kubernetes 등 다양한 대상을 다룰 수 있습니다.
00:05:05그런 다음, 해당 규칙에 대한 판결을 설정하여 승인할지 거부할지 결정합니다.
00:05:09블랙리스트 방식 대신 화이트리스트 기반 접근 방식을 만드는 경우 승인을 선택할 수 있고,
00:05:14기본적으로 모두 차단한 후 특정 항목만 허용할 수도 있습니다. 제 경우에는
00:05:18단순히 블랙리스트 방식을 사용했습니다.
00:05:22마지막으로 매우 유용한 기능은 프로필입니다. 자격 증명을
00:05:26여러 프로필로 그룹화할 수 있는데, 이는 해당 자격 증명에 연결된 규칙과 엔드포인트도
00:05:31함께 그룹화됨을 의미합니다. 이를 통해 에이전트와 팀을 위한 역할 기반 제어를
00:05:35설정할 수 있습니다. 예를 들어 개발자는 특정 자격 증명과 규칙에 접근할 수 있고,
00:05:40지원 팀 같은 다른 팀은 다른 자격 증명과 규칙을 가질 수 있습니다.
00:05:45규칙을 변경할 때 도움이 되도록 테스트 명령이 있는데, 대시보드에서
00:05:49규칙 동작을 다운로드한 후 로컬 규칙 변경 사항에 대해 다시 실행하여 결과가 바뀌었는지 확인할 수 있습니다.
00:05:54따라서 실수로 인한 유출이 있는지 파악할 수 있습니다.
00:05:59인정하건대 설정 과정이 조금 지루하다고 느꼈고,
00:06:02프로젝트 초기 단계라 곧 개선되리라 확신하지만, 대시보드에서 자격 증명과 규칙을 추가하는
00:06:07간단한 방법이 있다면 정말 좋을 것 같습니다. AdGuard와 비슷하게
00:06:11들어오는 요청을 보고 클릭 한 번으로 규칙이나
00:06:15자격 증명을 추가할 수 있으면 좋겠네요. 로컬 Proxmox 서버의 IP 주소를
00:06:19엔드포인트로 추가하려고 할 때 많은 문제가 발생했습니다.
00:06:24어떤 이유에서인지 요청을 가로채지 못했고, 대시보드에도 아무것도 나타나지 않아
00:06:28골치가 아팠습니다. 수정이 필요하거나 제가 잘못 사용했을 수도 있지만,
00:06:33어쨌든 흐름을 방해하지 않는 수준의 사용성에 도달하려면 작업이 좀 필요합니다.
00:06:38하지만 이건 단순히 에이전트를 YOLO 모드로 보내는 게 아니라 보안에 관한 것이니 일리가 있습니다.
00:06:43Claw Patrol에 대해 어떻게 생각하시는지 아래 댓글로 알려주시고,
00:06:47사용 중인 에이전트 보안 도구가 있다면 공유해 주세요. 아래에서 구독도 해주시고,
00:06:51그럼 다음 영상에서 뵙겠습니다.

Key Takeaway

Claw Patrol은 AI 에이전트가 실제 자격 증명에 직접 접근하지 못하게 가로채고, 중앙 게이트웨이를 통해 요청을 검증 및 기록함으로써 보안과 통제권을 확보하는 오픈 소스 보안 방화벽이다.

Highlights

  • Claw Patrol은 AI 에이전트와 네트워크 사이에 위치하여 비밀 정보 노출, 무분별한 권한 사용, 활동 추적 불가능이라는 세 가지 핵심 보안 문제를 해결한다.

  • 게이트웨이 서버를 통해 API 토큰이나 사용자 지정 헤더를 중앙 관리함으로써 에이전트가 실제 자격 증명에 직접 접근하지 못하도록 차단한다.

  • CEL(Common Expression Language) 기반의 규칙을 통해 에이전트의 특정 작업(예: 데이터베이스 테이블 삭제)을 정밀하게 제어하거나 승인 요청을 보낸다.

  • 대시보드에서 모든 에이전트 요청, 활성 세션, 토큰 사용량을 실시간으로 확인하여 에이전트의 활동 내역을 완전히 투명하게 파악할 수 있다.

  • HCL 파일 하나로 설정이 가능하며, 사용자 지정 플러그인을 작성하여 기존에 지원하지 않는 데이터 엔드포인트도 추가할 수 있다.

Timeline

Claw Patrol의 구조와 역할

  • 게이트웨이 서버가 규칙, 자격 증명, 로그를 관리하며 에이전트 트래픽을 라우팅한다.
  • Tailscale 또는 WireGuard를 통해 에이전트가 실행되는 머신을 게이트웨이에 연결한다.

Claw Patrol은 중앙 게이트웨이 서버를 핵심으로 운영되며, 여러 머신에서 실행되는 에이전트를 하나로 통합 관리한다. 사용자는 단일 명령 실행이나 전체 머신 연결 방식을 선택할 수 있으며, 서버 간의 안전한 통신을 위해 Tailscale과 같은 VPN 기술을 기본으로 사용한다.

비밀 정보 보호를 위한 자격 증명 주입

  • 게이트웨이는 에이전트가 요청을 보낼 때 필요한 API 키나 데이터베이스 비밀번호를 자동으로 주입한다.
  • 에이전트는 실제 자격 증명 값을 알 필요 없이 가짜 값으로 요청을 생성해도 정상적인 데이터 응답을 받는다.

에이전트가 민감한 API나 DB에 접근할 때, 실제 자격 증명은 에이전트 머신이 아닌 게이트웨이 서버에만 존재한다. 에이전트가 요청을 보내면 게이트웨이가 이를 가로채 인증 정보를 덧붙여 실제 서버로 전달하므로, 에이전트가 탈취되거나 프롬프트 인젝션 공격을 당해도 실제 비밀값은 유출되지 않는다.

세밀한 접근 제어 및 정책 관리

  • CEL(Common Expression Language)을 사용하여 에이전트의 요청을 승인하거나 거부하는 정교한 규칙을 설정한다.
  • Human-in-the-loop 기능을 통해 특정 작업 수행 시 사람이 Slack으로 승인 여부를 결정하게 할 수 있다.

데이터베이스 테이블 삭제와 같은 위험한 작업을 방지하기 위해 사용자가 직접 정의한 규칙을 적용한다. 단순히 블랙리스트 방식뿐만 아니라 기본 차단 후 화이트리스트만 허용하는 방식도 가능하며, LLM을 심판으로 활용해 공격적인 콘텐츠 유출을 막는 등 유연한 정책 설정이 가능하다.

에이전트 활동의 가시성 확보

  • 모든 요청과 응답 로그는 대시보드에서 통합 확인이 가능하다.
  • 개별 서비스 로그를 일일이 추적할 필요 없이 에이전트가 수행한 구체적인 작업 내용을 즉시 파악할 수 있다.

에이전트가 어떤 명령을 보냈고 어떤 응답을 받았는지 대시보드에 기록되어 투명성이 보장된다. 이는 에이전트의 오작동이나 의도치 않은 작업을 실시간으로 모니터링하고 분석하는 데 유용하다.

구성 및 설정 방식

  • HCL 파일을 사용하여 규칙과 엔드포인트를 정의하고 관리한다.
  • 프로필 기능을 통해 팀별 또는 역할별로 자격 증명과 규칙을 그룹화하여 제어할 수 있다.
  • 설정 편의성이나 초기 인터페이스 부분은 프로젝트 성장 과정에서 개선이 필요한 영역이다.

사용자는 HCL 파일을 통해 시스템을 설정하고, 필요한 경우 직접 플러그인을 개발하여 엔드포인트를 확장할 수 있다. 프로필 기능을 활용하면 권한을 계층화하여 팀 단위의 보안 정책을 적용할 수 있으며, 규칙 변경 시 영향도를 미리 확인할 수 있는 테스트 명령 기능도 지원한다.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video