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그럼 다음 영상에서 뵙겠습니다.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video