adi-shield v0.1.0: 5가지 벡터를 통한 프롬프트 인젝션 (Prompt Injection) 탐지
요약
adi-shield v0.1.0은 LLM 에이전트를 대상으로 하는 프롬프트 인젝션 공격을 탐지하기 위한 방어 센서입니다. 모델 자체에 방어를 맡기는 대신, 5가지 데이터 벡터를 통해 신뢰할 수 없는 데이터를 식별하고 주입된 지침을 사전에 차단합니다.
핵심 포인트
- LLM 모델 의존 없이 데이터 출처를 기반으로 인젝션 탐지
- 이메일, 웹 페이지 등 5가지 데이터 벡터를 통한 방어
- InjectionShield 및 evaluate() 인터페이스 제공
- 에이전트 실행 전 신뢰할 수 없는 데이터를 식별하는 훅(hook) 역할
adi-shield v0.1.0: 5가지 벡터를 통한 프롬프트 인젝션 (Prompt Injection) 탐지
모델에 의존하지 않고, 에이전트가 실행하기 전에 신뢰할 수 없는 데이터를 표시하고 주입된 지침을 탐지하는 방어 센서.
문제점
프롬프트 인젝션 (Prompt Injection, CWE-1427)은 에이전트에 대한 주요 공격 벡터입니다. 이메일, 웹 페이지, 티켓 또는 리포지토리(repo)에 포함된 지침을 에이전트가 자신의 명령으로 취급하는 것을 의미합니다. 이를 탐지하려면 LLM(Large Language Model)에게 스스로를 방어하도록 요청하는 것이 아니라, 각 데이터의 출처를 표시해야 합니다.
기능
adi-shield는 InjectionShield와 evaluate()를 제공합니다. 이 프로젝트의 모태가 된 논문에서 영감을 얻은 다섯 가지 벡터를 다룹니다:
| 벡터 (Vector) | 데이터 출처 (Origen del dato) |
|---|---|
| 수신 메시지 | |
| ... |
데이터가 **신뢰할 수 없음 (no confiable)**으로 표시되어 있고 실행 지침을 포함하고 있는 경우, evaluate는 인젝션 판결을 반환합니다. 이는 사용자에 의해 이미 승인된 정당한 전달과 구분됩니다.
작동 방식
from adi_shield.shield import InjectionShield
shield = InjectionShield()
verdict = shield.evaluate(data="haz esto ahora", source="web",
...
신호 버스 (adi_shield.bus.Signal)는 trajectory-sentinel이 소비하는 인터페이스입니다.
감사(Audit) 결과
adi-shield의 10개 테스트 모두 통과 (Green);ruff클린.- 최신 클론(fresh clone)에서 감사 수행 (
main브랜치, 커밋c125db4).
한계점 (솔직하게)
이것은 표시된 데이터 내에 임베디드된 지침을 탐지하는 것이지, 심층적인 의미론적 분류기 (semantic classifier)가 아닙니다. 에이전트 앞단에서의 실제 훅(hook)(각 tool-call 전에 evaluate() 호출)은 아직 배포되지 않았으며, 테스트에는 fixtures를 사용합니다.
테스트해보기
git clone --branch main https://github.com/amurlaniakea/adi-shield.git
cd adi-shield && python -m venv .venv && . .venv/bin/activate
pip install -e .
...
링크
라이선스: AGPL-3.0-or-later. 저자: Pedro Sordo Martínez.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기