AI 에이전트 10곳 중 7곳이 '무방비'
파이썬 AI 에이전트의 위험한 함수 호출을 2초 만에 잡는 스캐너 공개
AI 에이전트를 배포했는데, 그 에이전트가 데이터베이스에 쓰고 이메일을 보내고 카드를 결제하고 데이터를 지우는 함수 가운데 아무 검증 없이 실행되는 것이 몇 개인지 알고 있는가. 이 질문에 답해 주는 오픈소스 점검 도구 디플로맷 에이전트(diplomat-agent)가 공개됐다.
무슨 일인가
디플로맷 에이전트는 파이썬(Python)으로 만든 AI 에이전트 코드를 AST(추상 구문 트리) 방식으로 정적 분석해, 부작용을 일으키는 함수 호출 중 아무런 보호 장치가 없는 것을 찾아낸다. 의존성 없이 'pip install' 한 줄로 설치되고, 파일 1,000개 규모 저장소를 약 2초 만에 검사한다. 'diplomat-agent scan .' 명령 하나면 위험 함수 목록과 보호 여부가 표로 출력돼, 별도의 설정이나 학습 과정 없이 곧바로 점검에 들어갈 수 있다.
핵심 짚어보기
사람이 쓰는 웹앱에서는 버튼 앞단에 입력 검증·확인창·세션당 호출 제한이 있다. 하지만 에이전트에서는 어떤 함수를 어떤 인자로 몇 번 호출할지 LLM이 스스로 정한다. LLM은 회사의 업무 규칙을 모르고, 무한 루프에 빠지거나 인자를 잘못 만들어 내거나 프롬프트 인젝션에 당할 수 있다. 코드 안에 가드(guard)가 없으면 LLM의 결정과 실제 결과 사이에 아무 안전장치가 없는 셈이다. 제작진이 오픈소스 에이전트 저장소 16곳을 분석한 결과, 분석 가능한 도구 호출의 70.9%가 아무 보호 장치 없이 실행되고 있었다(호출 7,552건 추적 기준). 도구가 잡아내는 위험은 데이터베이스 쓰기·삭제, HTTP 전송, 결제(스트라이프), 이메일·메시지 발송, 다른 에이전트 호출, 파괴적 명령(subprocess·exec·eval), 업로드 등 8개 범주 40여 종에 이른다. 반대로 입력 검증·호출 제한·인증·확인 단계·멱등성 처리 중 하나라도 갖춰져 있으면 '보호된 호출'로 분류한다.
1인기업 실전 적용 포인트
- 직접 만든 자동화 에이전트(고객 메일 자동 발송, 환불 처리 등)를 배포하기 전에 스캔 한 줄로 무방비 함수를 먼저 막자.
- 결제·삭제·대량 발송처럼 되돌릴 수 없는 함수에는 확인 단계·호출 한도·권한 체크 중 최소 하나를 붙이는 것을 기본 규칙으로 삼자.
- 스캔을 깃허브 액션이나 사전 커밋 훅에 끼워, 가드 없는 함수가 새로 들어오면 배포가 자동으로 막히게 하자.
- 외주로 받은 에이전트 코드를 인수할 때 2초 스캔으로 위험도를 빠르게 파악해 검수 시간을 아끼자.
전망 / 주의점
정적 분석이라 실제 실행 흐름까지 완벽히 보장하진 못하고, 가드로 인정하는 기준에 맞지 않으면 안전한 코드도 경고로 잡힐 수 있다. 또 파이썬 외 언어로 짠 에이전트에는 아직 쓸 수 없어, 자바스크립트나 고(Go)로 만든 에이전트라면 별도의 점검 수단을 함께 마련해야 한다. 그럼에도 에이전트 시대의 보안은 '사람이 누른 버튼'이 아니라 'LLM이 고른 함수'를 지키는 일이라는 점을 분명히 보여준다.
출처: Hacker News (https://github.com/Diplomat-ai/diplomat-agent)