“The unauthorized tool call problem”이라는 글을 읽었다. AI 에이전트가 점점 더 많은 도구를 사용하게 되면서, 보안 문제가 새롭게 대두되고 있다는 내용이었다.
LLM에게 외부 도구를 호출할 권한을 주는 것. Function calling, tool use 등 다양한 이름으로 불리는 이 기능은 AI를 훨씬 더 유용하게 만든다. 하지만 그만큼 위험도 따른다.
프롬프트 인젝션의 진화
프롬프트 인젝션은 이미 알려진 문제다. 하지만 도구 호출이 결합되면 차원이 달라진다. 악의적인 입력이 AI를 조종해서 이메일을 보내거나, 데이터베이스를 조회하거나, 심지어 코드를 실행할 수 있다면?
개발자로서 API 보안에는 익숙하지만, AI 에이전트의 보안은 다른 사고방식이 필요하다. 결정 주체가 결정론적인 코드가 아니라 확률적인 모델이기 때문이다.
신뢰 경계를 어디에 그을 것인가
전통적인 보안에서는 신뢰 경계가 비교적 명확했다. 인증된 사용자, 검증된 입력, 권한에 따른 접근 제어. 하지만 AI 에이전트가 중간에 끼면 경계가 모호해진다.
사용자 → AI → 도구 이 흐름에서 “사용자의 의도”와 “AI가 해석한 의도”가 다를 수 있다. AI가 잘못 해석하거나, 악의적 입력에 의해 오염되거나, 예상치 못한 방식으로 도구를 조합할 수 있다.
아직 답이 없는 문제
솔직히 말해서 이 문제에 대한 완벽한 해결책은 아직 없다. 최소 권한 원칙, 도구 호출 로깅, 중요 작업에 대한 인간 승인 등 여러 방어층을 쌓는 것이 현실적인 접근이다.
AI 에이전트가 점점 더 자율성을 가지게 되면서, 이런 문제는 더 중요해질 것이다. 지금부터 고민하고 대비해야 하지 않을까.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.