로컬 AI 에이전트는 스스로 작업을 수행합니다. 귀사는 이를 제대로 통제하고 있습니까?
한 개발자가 코딩 에이전트에게 배포 실패 원인을 조사해 달라고 요청하는 상황을 함께 상상해보시죠.
에이전트는 프로젝트 디렉터리를 읽고, 소스 코드와 설정 파일을 확인하며, 문제 해결 방법을 찾기 위해 웹을 검색하고, 개발자가 승인한 도구를 사용할 수 있습니다. 오류를 조사하는 동안, 에이전트는 프로젝트의 구성 파일과 환경 변수를 수집한 다음 배포 설정을 검증하기 위해 ‘진단 엔드포인트’로 보내라고 지시하는 악의적으로 변조된 문서 페이지를 검색해 가져옵니다.
에이전트는 이 지시를 문제 해결 작업의 일부로 취급합니다. 그런 다음 구성 파일을 읽고 API 키나 배포 자격 증명과 같은 민감한 값을 포함하여 이를 외부 서비스로 전송하려고 시도합니다.
이 시나리오에서 본질적으로 특이한 점은 없습니다. 해당 에이전트는 사용 승인을 받은 상태입니다. 해당 작업을 수행하려면 디렉터리에 대한 접근 권한이 필요합니다. 문제 해결 과정에서 웹 검색은 일반적인 작업 절차입니다. 위험은 단순히 데이터와 도구에 액세스할 수 있다는 사실에서 오는 것이 아니라, 이러한 기능들이 어떻게 결합되는지, 그리고 에이전트가 사람의 검토 없이도 모든 단계를 스스로 실행할 수 있다는 점에서 비롯됩니다.
로컬 에이전트 보안이 어려운 이유
위의 시나리오는 Claude Code, Codex, Microsoft 365 Copilot과 같은 로컬 AI 에이전트의 보안이 왜 어려운지 정확히 보여줍니다. 로컬 에이전트는 사용자와 가까운 환경에서 작동하며, 사람이 업무를 수행할 때 사용하는 것과 동일한 파일, 권한, 도구를 활용하는 경우가 많습니다. 하지만 기존의 보안 통제는 권한을 사용하기 전에 스스로 판단하고 결정하는 사람을 전제로 설계되었습니다. 에이전트는 기계의 처리 속도로 접근 권한, 맥락, 실행 작업을 결합해 수행할 수 있습니다.
- 분산된 실행 환경: 이 예시에서 코딩 에이전트의 사용은 승인되었더라도, 에이전트의 동작에 영향을 미치는 모든 구성 요소를 보안팀이 파악하고 있는 것은 아닙니다. 여기에는 에이전트가 액세스할 수 있는 디렉터리, 로드된 스킬, 연결된 MCP 서버, 사용할 수 있는 도구가 포함됩니다.
- 여러 요소의 결합으로 발생하는 보안 위험: 각 구성 요소는 개별적으로 보면 모두 정상적일 수 있습니다. 에이전트는 프로젝트 디렉터리에 액세스해야 하며, 웹 검색을 통해 문제 해결에 필요한 정보를 찾을 수 있고, 외부 진단 서비스는 유용해 보일 수 있습니다. 에이전트가 외부에서 가져온 지침과 민감한 설정 파일에 대한 접근 권한, 외부로 데이터를 전송할 수 있는 도구를 결합할 때 보안 위험이 발생합니다.
- 사람의 검토 없이 작업을 수행하는 에이전트: 개발자는 에이전트에게 배포 실패 원인을 조사하도록 요청했을 뿐, 설정 정보를 공유하도록 요청한 것은 아닙니다. 하지만 에이전트는 개발자가 각 단계를 확인하기도 전에, 해킹된 웹페이지의 내용을 작업의 일부로 받아들여 관련 파일을 수집하고 외부로 전송하려고 시도할 수 있습니다.
이는 이론적인 이야기가 아닙니다. Cato AI Labs는 DuneSlide를 통해 MCP 서버나 오염된 웹 검색 결과를 통해 전달된 제로 클릭 프롬프트 인젝션이 어떻게 Cursor의 샌드박스를 벗어나 개발자의 시스템 전체를 침해할 수 있는지 보여주었습니다. 이와 별개로 2025년에 발생한 한 사고에서는, 명시적으로 선언된 코드 프리즈 기간 동안 Replit 코딩 에이전트가 프로덕션 데이터베이스를 삭제하기도 했습니다.
이러한 사례는 AI 에이전트 보안을 위해 최초 한 번의 권한 검토만으로는 충분하지 않다는 점을 보여줍니다. 보안 팀은 에이전트가 어떤 데이터에 접근할 수 있고, 어떤 작업을 수행할 수 있는지 파악해야 합니다. 또한 사용자가 스킬을 추가하고 MCP 서버를 연결하거나 새로운 권한을 부여함에 따라 에이전트의 기능과 권한이 어떻게 달라지는지도 지속적으로 확인해야 합니다.
진화하는 AI 기반 위협, 귀사의 보안 아키텍처는 준비되어 있습니까? | eBook 다운로로컬 에이전트 보안을 위한 Cato의 3단계 프레임워크
효과적인 로컬 에이전트 보안 체계를 구축하려면 다음 세 가지 질문에서 출발해야 합니다.

각 단계의 결과는 다음 단계를 위한 기반이 됩니다. 가시성을 확보해야 전체 현황을 파악할 수 있습니다. 보안 상태 평가는 접근 경로와 권한, 공격이 발생했을 때 영향을 받을 수 있는 범위를 파악해 전체 현황을 구체적으로 분석합니다. 실시간 보안 제어는 이러한 분석 결과를 바탕으로 실제 상호작용 과정에서 위험한 행위를 탐지하고 차단합니다.
개발자의 배포 실패 조사 시나리오에서는 세 가지 보안 관련 질문이 제기됩니다.
1. 가시성: 실제 환경에 무엇이 있습니까?
먼저 에이전트 자체부터 파악해야 합니다. 누가 에이전트를 사용하고 있습니까? 에이전트가 어떤 파일에 접근할 수 있습니까? 에이전트의 기능을 확장하는 MCP 서버, 도구, 스킬에는 어떤 것들이 있습니까?
이 예시에서 보안팀은 개발자가 코딩 에이전트를 사용한다는 사실은 알고 있을 수 있습니다. 하지만 해당 에이전트가 웹을 검색하고, 설정 파일이 포함된 프로젝트 디렉터리에 접근하며, 연결된 배포 도구까지 사용할 수 있다는 사실은 파악하지 못할 수 있습니다. 설치된 애플리케이션의 인벤토리 목록만으로는 충분하지 않습니다. 보안팀은 에이전트의 실제 작업 환경과 접근 범위를 결정하는 구성 요소까지 파악할 수 있어야 합니다.
이러한 가시성을 확보하면 보안팀은 단순히 “이 에이전트의 사용을 허용할 것인가?”를 판단하는 데서 나아가, “이 에이전트는 어떤 시스템과 연결되어 있으며, 어떤 기능을 실행 환경에 추가하는가?”라는 관점에서 보안 위험을 파악할 수 있습니다.
2. 보안 상태 평가: 어떤 위험을 초래합니까?
다음으로 에이전트가 실제로 보유한 접근 권한과 보안 사고 발생 시 영향을 미칠 수 있는 범위를 파악해야 합니다.
배포 실패 원인을 조사하려면 에이전트에 코드베이스에 대한 일정 수준의 접근 권한이 필요합니다. 하지만 에이전트가 비밀 정보, 운영 환경 인증 정보, 소스 코드 저장소 또는 외부로 데이터를 전송할 수 있는 도구에도 접근할 수 있는 것은 아닐까요? 설치된 스킬이 에이전트의 기능을 확장해 본래 요청된 작업 범위를 벗어난 동작까지 수행하게 할 수는 없을까요? MCP 서버가 신뢰할 수 없는 콘텐츠를 에이전트의 컨텍스트에 포함시킬 수는 없을까요?
모든 로컬 에이전트에 대해 보안 팀은 다음과 같은 질문에 답할 수 있어야 합니다.
- 에이전트가 접근할 수 있는 디렉터리와 파일은 무엇인가요?
- 에이전트가 호출할 수 있는 도구와 MCP 서버는 무엇인가요?
- 에이전트가 보유한 권한은 무엇이며, 해당 권한으로 어떤 작업을 수행할 수 있나요?
- 에이전트가 사용하는 스킬과 MCP 서버는 무엇이며, 각각 어디에서 제공되었고 어떤 보안 위험을 초래하나요?
각 구성 요소는 개별적으로 보면 모두 정상적일 수 있습니다. 위험은 이들이 함께 작동할 때 발생합니다. 로컬 텍스트 파일을 읽을 수 있는 에이전트와 설정 파일에 접근하고, 외부 도구를 호출하며, 배포 설정까지 변경할 수 있는 에이전트는 보안 위험의 수준이 다릅니다.
보안 상태 평가는 에이전트가 위험한 상호작용에 노출되기 전에 추가적인 보안 통제가 필요한 영역을 판단할 수 있도록 지원합니다.
3. 런타임 제어: 안전하지 않은 동작을 막을 수 있습니까?
가시성 확보와 보안 상태 평가는 불확실성을 줄여줍니다. 실시간 보안 제어는 에이전트가 변조된 문서 페이지를 가져와 이를 바탕으로 작업을 수행하려 할 때 어떤 조치가 이루어지는지를 결정합니다.
효과적인 보안 제어를 위해서는 사용자 프롬프트, 모델의 응답, 도구의 입력과 출력, 에이전트가 수행하려는 작업까지 전체 상호작용 과정을 실시간으로 검사해야 합니다. 신뢰할 수 없는 콘텐츠가 에이전트의 동작을 다른 방향으로 유도하려는 시도를 탐지하고, 그로 인해 발생할 수 있는 위험한 후속 작업을 차단해야 합니다.
위험 수준에 맞는 대응 조치가 이루어져야 합니다. 보안팀은 위험도가 낮은 상호작용은 모니터링하고, 민감한 데이터는 마스킹하며, 도구 호출을 차단하거나 필요에 따라 작업 전체를 중단할 수 있습니다.
보안팀은 위험도가 낮은 상호작용은 모니터링하고, 민감한 데이터는 마스킹하며, 도구 호출을 차단하거나 필요에 따라 작업 전체를 중단할 수 있습니다. 이를 통해 기업은 하나의 통합된 지점에서 보안을 제어할 수 있으며, 네트워크, 엔드포인트, API 및 다양한 연동 방식을 통해 보안 기능을 배포할 수 있습니다.
이는 특히 프롬프트 인젝션 공격에 대응하는 데 중요합니다. 악의적인 지침은 사용자가 처음 요청한 내용에 포함되어 있지 않더라도, 에이전트가 요약하거나 가져오도록 요청받은 콘텐츠 안에 삽입될 수 있습니다. 실시간 보안 제어는 이러한 지침이 에이전트의 컨텍스트에 유입되는 단계에서 이를 식별하고, 에이전트가 해당 지침에 따라 위험한 후속 작업을 수행하지 못하도록 차단해야 합니다.
공유 컨텍스트 기반 보안 운영
로컬 에이전트로 인한 보안 위험은 사용자, 기기, 애플리케이션, 에이전트, 데이터 소스, 네트워크 전반에 걸쳐 발생합니다. 이러한 정보가 서로 분리되어 있으면 위험한 상호작용이 발생한 경위를 파악하기 어렵고, 조사와 대응에도 더 많은 시간이 걸립니다.
보안팀은 서로 연결된 통합 정보를 바탕으로 에이전트의 활동을 파악할 수 있어야 합니다. 에이전트의 사용자, 접근한 도구와 데이터, 해당 작업에 부여된 권한, 그리고 이에 따른 보안 정책의 적용 결과까지 연결해 확인할 수 있어야 합니다. 이를 통해 보안팀은 서로 다른 시스템의 정보를 일일이 취합하지 않고도 위험 요소 파악부터 사고 조사, 대응까지 일관된 흐름으로 진행할 수 있습니다.
Cato는 네트워크, 엔드포인트, API 및 다양한 연동 방식을 통해 배포할 수 있는 통합 보안 제어 체계로 에이전트 보안을 제공합니다. 이를 통해 보안팀은 에이전트, 사용자, 데이터, 도구 간의 상호작용을 파악하고, 위험한 활동이 실제 실행으로 이어지기 전에 일관된 보안 정책을 적용할 수 있습니다. AI 우선 보안 프레임워크와 AI에 특화된 보안 기능을 결합해, Cato는 현재의 로컬 에이전트는 물론 미래에 등장할 차세대 AI 도구까지 안전하게 보호합니다.
엔터프라이즈 환경에서 AI 에이전트를 안전하게 보호하는 방법에 대해 자세히 알아보세요.