AI 에이전트의 비밀 유출을 방지하기 위한 Python 라이브러리 제작 (ModelFuzz)
요약
AI 에이전트의 프롬프트 인젝션 공격으로 인한 데이터 유출을 방지하기 위한 Python 라이브러리 ModelFuzz를 소개합니다. 실행 계층에서 도구 호출을 가로채 정책 위반을 검사하며, 에이전트의 보안 취약점을 테스트할 수 있는 CLI 스캐너를 제공합니다.
핵심 포인트
- 프롬프트 필터링 대신 실행 계층에서 도구 인자를 검증하여 보안 강화
- @shield_tool 데코레이터를 통해 정책 위반 시 도구 실행 차단
- CLI 스캐너를 활용한 에이전트 레드팀 테스트 및 취약점 점검 가능
- 오픈 소스 프로젝트로 PyPI를 통해 간편하게 설치 및 사용 가능
최근 AI 에이전트 (AI agents)를 구축해 오고 있는데, 솔직히 말해서 이들의 보안 모델은 저를 공포에 떨게 합니다.
우리는 LLM (Large Language Models)에게 shell.run, http.post, fs.read와 같은 강력한 도구 (tools)에 대한 접근 권한을 부여합니다. 하지만 에이전트가 악성 이메일이나 오염된 웹페이지를 읽게 되면, 프롬프트 인젝션 (prompt injection)에 의해 속아서 해당 도구들을 사용하여 데이터를 유출할 수 있습니다.
LLM이 공격을 거부하기를 바라는 것은 진정한 보안 전략이 아닙니다.
그래서 저는 ModelFuzz를 만들었습니다. 이는 실행 계층 (execution layer)에서 도구 호출 (tool call)을 가로채는 오픈 소스 (open-source) Python 라이브러리입니다.
방어: @shield_tool
프롬프트를 필터링하려고 시도하는 대신, ModelFuzz는 도구가 실행되기 전에 인자 (arguments)를 확인합니다. 만약 도난당한 API 키나 안전하지 않은 URL과 같은 정책 위반 (policy violation)이 감지되면, 도구는 단순히 실행되지 않습니다.
from modelfuzz import shield_tool
@shield_tool
...
설령 LLM이 프롬프트 인젝션에 완전히 속더라도, 도구는 절대 실행되지 않습니다.
공격: modelfuzz scan
저는 또한 에이전트를 레드팀 (red-teams) 테스트할 수 있는 CLI 스캐너를 구축했습니다. 이는 로컬 모델 (local model)에 기만적인 프롬프트 인젝션 공격을 가하여, 모델이 도구를 호출하도록 속일 수 있는지 확인합니다.
modelfuzz scan --endpoint http://localhost:11434/v1 --model qwen2.5:1.5b
로컬 qwen2.5:1.5b 모델을 대상으로 테스트했을 때, 5번 중 4번이나 뚫렸습니다.
사용해 보세요
이 프로젝트는 100% 오픈 소스이며 PyPI에 공개되어 있습니다.
pip install "modelfuzz[scan]"
- GitHub: higagan/modelfuzz
- Website: modelfuzz.com
어떤 보안 정책이 누락되었다고 생각하시는지, 혹은 다음에 어떤 에이전트 프레임워크 (agent frameworks)가 지원되기를 원하시는지 정말 알고 싶습니다!
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기