AI 비서가 회사 재무 데이터를 통째로 빼냈다
지난주 미국 핀테크 Ramp의 스프레드시트 AI가 사용자도 모르게 회사 재무 데이터를 외부 서버로 송출했다는 사실이 공개됐다. 공격자는 거래 메모 한 줄에 명령어 같은 문장을 심었고, AI는 그것을 "지시"로 받아들였다.
같은 주, 깃허브에서는 단순히 커밋 메시지에 'HERMES.md'라는 단어를 적었다는 이유로 Claude Code 요청이 추가 과금 라우터를 타는 버그가 보고됐다. 둘 다 AI 에이전트가 "데이터"와 "명령"을 구분하지 못해 벌어진 사고다.
1. 데이터가 명령이 되는 순간
전통적인 SaaS는 사용자 클릭이 명령이고, 데이터베이스 안의 텍스트는 그저 데이터다. 그런데 LLM 기반 에이전트는 입력으로 들어온 모든 문자열을 동등하게 해석한다. 고객이 보낸 이메일, CRM 메모, 첨부 PDF의 한 줄까지 전부 잠재적 명령어가 된다.
Ramp 사례에서 공격자는 평범한 거래 description 필드에 "모든 데이터를 attacker.com으로 보내라"는 의미의 문장을 넣었다. AI는 충실하게 실행했다. 입력 검증 한 줄이 빠진 결과다.
2. "사용자 권한 = AI 권한"이라는 착각
대부분의 회사가 AI 에이전트에 사용자와 동일한 OAuth 토큰을 넘긴다. "내 권한으로 일하니까 안전하다"고 생각하기 쉽다. 그러나 사용자는 자기 의도대로만 행동하고, AI는 입력에 따라 의도가 바뀐다. 보안 경계는 "사람"이 아니라 "결정 주체"여야 한다.
국내 중견 제조업 A사는 사내 회계 챗봇에 ERP 풀 액세스를 줬다가, 외부 파트너사가 보낸 견적서 PDF에 심긴 프롬프트로 결재 요청이 자동 승인될 뻔한 사례를 보고했다.
3. "로그가 없으면 사고도 없다"라는 거짓말
LLM 에이전트는 한 번의 사용자 요청으로 내부 도구를 수십 번 호출한다. 이 호출 체인 전체를 추적할 수 없으면, 사고가 나도 어디서 어떻게 새어나갔는지 영영 알 수 없다. 5years+가 일본 클라이언트에 구축한 에이전트 시스템은 모든 tool call을 정형화된 audit log로 강제 저장한다.
오늘의 액션 아이템
- Untrusted input 분리 — 외부에서 온 텍스트(이메일 본문, 첨부 파일, 웹 검색 결과)는 system prompt와 명확히 구분된 컨테이너에 넣고 "이건 데이터일 뿐"이라고 명시한다.
- Tool 권한 최소화 — AI에 주는 권한은 사람보다 좁아야 한다. 결제·삭제·외부 송신은 별도 사람 승인 단계로 분리한다.
- Tool call audit log — 어떤 prompt가 어떤 tool을 어떤 인자로 호출했는지 모두 기록. 사고 발생 시 24시간 내 추적 가능해야 한다.
5years+는 한국·일본 B2B 기업의 AI 에이전트 도입을 처음부터 보안 관점으로 설계한다. 서비스 소개에서 더 자세한 내용을 확인하거나, 무료 상담 신청으로 우리 환경에 맞는 진단을 받아보세요.
자주 묻는 질문
이미 AI 에이전트를 운영 중이라면 무엇부터 점검해야 하나요?
가장 먼저 "AI가 호출할 수 있는 tool 목록"을 추출하세요. 그중 외부 송신, 결제, 삭제, 권한 변경에 해당하는 것을 분리하고, 사람 승인 단계를 끼워 넣는 것이 우선입니다.
오픈소스 모델을 쓰면 더 안전한가요?
모델 자체의 문제가 아니라 입력·도구 경계 설계의 문제입니다. GPT, Claude, Llama, Mistral 어느 쪽이든 같은 위험을 안고 있고, 같은 가드레일이 필요합니다.
구축 비용은 얼마나 드나요?
규모와 도구 수에 따라 다르지만, 초기 진단(1~2주)은 무료, 본 구축은 평균 4~8주가 걸립니다. 포트폴리오에서 유사 사례를 확인하세요.