Skillware 0.4.8 — 모든 에이전트를 위한 오프라인 프롬프트 인젝션 방화벽 (Offline Prompt Injection
요약
Skillware v0.4.8이 에이전트 보안을 위한 오프라인 프롬프트 인젝션 방화벽 스킬을 출시했습니다. LLM을 사용하지 않는 결정론적 휴리스틱 방식을 통해 외부 데이터로부터 유입되는 악의적인 지침을 로컬에서 즉시 탐지하고 차단합니다.
핵심 포인트
- LLM 없이 Python 휴리스틱 기반으로 동작하여 비용과 지연 시간 없음
- Gemini, Claude, OpenAI 등 다양한 모델 호환 어댑터 지원
- 숨겨진 HTML, 유니코드 밀수 등 다양한 인젝션 패턴 탐지
- API 키나 네트워크 호출이 필요 없는 완전한 오프라인 방식
당신의 에이전트가 방금 스크랩된 페이지, 붙여넣은 이메일, PDF 내보내기 파일, GitHub 댓글 스레드를 읽어 들였습니다. 그리고 그 데이터 덩어리 어딘가에, 보이지 않게 **“이전 지침을 무시하세요(ignore previous instructions)”**라는 문구가 숨어 있습니다.
대부분의 스택은 해당 텍스트를 모델 컨텍스트 (model context)로 바로 전송하며 시스템 프롬프트 (system prompt)가 버텨주기만을 바랍니다. 그것은 보안 전략이 아닙니다. 그것은 룰렛 게임입니다.
Skillware v0.4.8은 새로운 레지스트리 스킬(registry skill)인 security/prompt_injection_firewall을 출시합니다. 이는 신뢰할 수 없는 텍스트 내의 적대적인 지침을 탐지하기 위한 오프라인 방식의 결정론적 (deterministic) 사전 점검 스캐너입니다. 한 번 로드한 후, 콘텐츠가 루프에 진입하기 전에 execute()를 호출하십시오. 동일한 스킬로 Gemini, Claude, OpenAI, DeepSeek, Ollama 또는 모든 OpenAI 호환 호스트에서 어댑터 (adapter) 재작성 없이 사용할 수 있습니다.
이 오프라인 프롬프트 인젝션 방화벽 번들은 숨겨진 HTML, 유니코드 밀수 (Unicode smuggling), 중첩된 인코딩 (nested encodings), 지침 무시 (instruction overrides)와 같은 일반적인 인젝션 패턴에 대해 모든 AI를 **실질적으로 더 탄력적 (resilient)**으로 만들어 줍니다. 단 한 줄의 설치만으로 가능하며, 클라우드 감사 모델 (cloud auditor model)이 필요하지 않습니다.
작성자: @mrmasa88. Skillware v0.4.8에 포함되어 배포되었습니다.
새로운 스킬: security/prompt_injection_firewall
레지스트리 ID (Registry ID): security/prompt_injection_firewall
카탈로그 (Catalog): prompt_injection_firewall.md
사이트 (Site): skillware.site/skills/security/prompt_injection_firewall
이것은 “이것이 악의적인지 GPT에게 물어보세요”와 같은 방식이 아닙니다. 루프 내에 LLM이 없습니다 (no LLM in the loop). API 키도 필요 없고, 네트워크 호출도 없습니다. 로컬 kb/ 탐지기를 활용한 순수 Python 휴리스틱 (heuristics) 방식입니다.
점검 항목
| 채널 | 예시 |
|---|---|
| 숨겨진 마크업 (Hidden markup) | HTML/CSS 디스플레이 트릭, 주석, 마크다운 주석, 메타데이터 속성 |
| ... |
신뢰할 수 없는 원시 텍스트를 전달하면, is_safe, risk_level, 구조화된 findings, 그리고 특정 구간을 안전하게 제거할 수 있는 경우 선택적인 sanitized_text를 반환받게 됩니다.
민감도 (Sensitivity): strict · balanced (기본값) · lenient — 교차 검증 규칙(corroboration rules)이 엄격해지거나 완화되지만, lenient 모드에서도 치명적인 데이터 유출(exfiltration) 탐지는 절대 통과되지 않습니다.
면책 조항 (Disclaimer): 휴리스틱 탐지(Heuristic detection)는 항상 오탐(false positives)과 미탐(false negatives) 사이의 트레이드오프가 발생합니다. 이를 도구 범위 지정(tool scoping), 헌법(constitution), 그리고 인간의 검토와 함께 사용하는 **위험 감소 계층 (risk-reduction layer)**으로 취급해야 하며, 암호학적 보증(cryptographic guarantee)으로 간주해서는 안 됩니다.
직접 시도하기: 설치 및 직접 실행
pip install "skillware[security_prompt_injection_firewall]"
from skillware.core.loader import SkillLoader
bundle = SkillLoader.load_skill("security/prompt_injection_firewall")
...
리포지토리 내 실행 가능한 데모:
python examples/prompt_injection_firewall_demo.py
직접 시도하기: 모든 에이전트 루프 (agent loop)
지갑 스크리닝(wallet screening), UK Companies House, 또는 bg_remover와 동일한 패턴을 따릅니다. 번들을 로드하고, 사용 중인 제공자(provider)에 맞게 조정하며, 도구 호출(tool calls)을 execute()에 연결하세요:
from skillware.core.loader import SkillLoader
bundle = SkillLoader.load_skill("security/prompt_injection_firewall")
...
파이프라인 내 배치 위치:
- RAG 이전 — 크롤러, 업로드, 제3자 API로부터 가져온 청크(chunks)를 스캔
- 도구 인자 (tool args) 이전 — 다른 도구가 직접 작성하지 않은 HTML/markdown을 반환할 때
- 요약 (summarization) 이전 — 이메일 스레드, 티켓 본문, 이슈 댓글
외부 루프가 공개 웹(open web)에 접속할 때는 compliance/pii_masker (마스킹) 또는 compliance/tos_evaluator (정책)와 함께 사용하세요. 이 방화벽은 다음과 같은 질문에 답합니다: 누군가 에이전트를 하이재킹(hijack)하려고 시도하고 있는가?
제공자별 코드 스니펫: skillware.site/skills/security/prompt_injection_firewall · 에이전트 루프 가이드
CLI 스모크 테스트 (smoke test):
skillware test security/prompt_injection_firewall
또한 v0.4.5 이후 — 0.4.8 이전의 변경 사항
마지막으로 v0.4.5 (배경 제거기 출시, 설치 추가 기능 전면 개편) 버전을 고정(pin)했다면, 0.4.8까지의 흐름은 다음과 같습니다:
v0.4.6 — 더 깊은 통합 (deeper integrations)
finance/wallet_screening— 페이지가 구분된 (Paginated) Etherscantxlist지원 (최대 10,000개의 일반 트랜잭션). 히스토리가 잘리거나 사용할 수 없는 경우, 에이전트가 불완전한 PnL (손익)을 절대적인 사실로 취급하지 않도록metadata.warnings(etherscan_txlist_truncated등)를 보고에 포함합니다.finance/uk_companies_house_handler— Phase v2a: 턴(turn) 간context전파, 다단계 파이프라인을 위한partial상태 지원, 세션 상태(session state)로부터의 담당 임원 조회(officer lookup) 폴백(fallback). 대화형 Gemini 예제가 전체 채팅 루프로 업그레이드되었습니다.- OpenAI 호환 호스트 (OpenAI-compatible hosts) — 가이드 1개 + Groq 실행 가능 예제: 동일한
to_openai_tool()을 사용하며,base_url과 API 키만 교체하면 됩니다 (openai_compatible.md). Groq, OpenRouter, Mistral, Together, vLLM, LiteLLM 프록시 등 — 벤더별로 스킬을 새로 작성할 필요가 없습니다.
v0.4.7 — 인용 (citation)
- 공식 소프트웨어 인용(Zenodo 아카이브 릴리스)을 위한 루트
CITATION.cff및 README Citing 섹션 추가.
v0.4.8 — 보안 + 강화 (security + hardening)
| 영역 | 변경 사항 |
|---|---|
| 새로운 스킬 | security/prompt_injection_firewall (#46) |
| ... |
현재 레지스트리: 새로운 security/ 카테고리를 포함하여 11개 도메인에 걸친 15개 스킬 보유.
업그레이드:
pip install -U "skillware==0.4.8"
전체 변경 이력: CHANGELOG.md#048---2026-08-03
Skillware 요약
전통적인 에이전트 "스킬(skills)"은 종종 취약한 Markdown 레시피에 의존합니다. 이는 본질적으로 LLM에게 산문(prose)으로부터 사용자의 의도를 **추측(guess)**하도록 요청하는 것입니다. 이러한 확률론적 접근 방식은 실패한 반복 과정에서 토큰을 낭비하고, 일관되지 않은 출력을 생성하며, 모델 업데이트나 노이즈가 많은 웹 스크래핑이 발생할 때마다 성능이 드리프트(drift)됩니다.
Skillware는 추측을 결정론적 실행(deterministic execution)으로 대체합니다.
각 기능은 설치 가능한 번들입니다:
skill.py— 감사 가능한 (auditable) Python;execute()는 구조화된 JSON을 반환합니다.instructions.md— _모델(model)_이 도구를 호출해야 하는 시점 정의manifest.yaml— 스키마 (schema), 헌법 (constitution), 발행자 (issuer), 요구사항 (requirements)- 테스트 + 카탈로그 문서 (Tests + catalog docs) — wheel 파일에 포함되어 제공됩니다.
SkillLoader.load_skill("category/skill_name")를 호출하여 사용하고, 호스트에 맞춰 한 번만 적응(adapt)시킨 뒤, 지침(instructions)을 시스템 컨텍스트 (system context)로 전달하고, 도구 사용 시 execute()를 호출합니다. 모델은 언제(when) 할지를 결정하고, 스킬은 어떻게(how) 할지를 결정합니다. 매번 동일한 방식으로 말이죠.
이러한 분리 덕분에 방화벽 스킬이 또 다른 프롬프트 엔지니어링 (prompt engineering) 연습이 되지 않고도 루프 (loop) 앞에 위치할 수 있습니다. 또한 지갑 스크리닝 (wallet screening), 영국 레지스트리 조회 (UK registry lookups), 토큰 예산 (token budgets), 배경 제거 (background removal) 기능들이 하나의 레지스트리 ID와 하나의 에이전트 하네스 (agent harness)를 공유할 수 있는 이유이기도 합니다.
문서: skillware.site/documentation · MCP / LangChain과의 비교
이번 릴리스 트레인 (release train) 기여자
공로를 돌려야 할 분들입니다:
security/prompt_injection_firewall— @mrmasa88 (#46)creative/bg_removerv0.2 — @AyushSrivastava1818 (#257, #268)ISSUE_RESOLVER.md프로필 — 이슈 리졸버 (issue resolver) 유지 관리자 + dogfood 프로필 (#145, #271)finance/uk_companies_house_handlerv2a — @Areen-09 (#220)finance/wallet_screening페이지네이션 (pagination) — 레지스트리 유지 관리자 (#214)- OpenAI 호환 문서 + Groq 예시 — (#261)
스킬 제안 및 PR을 환영합니다 — 인간과 에이전트 모두: skillware.site/contributing
링크
링크
- 사이트: skillware.site
- GitHub: ARPAHLS/skillware
- Prompt Injection Firewall 카탈로그: docs/skills/prompt_injection_firewall.md
- 추가 설치: skillware.site/documentation#install-extras
- v0.4.8 릴리스: GitHub Releases
- Skill 라이브러리: skillware.site/skills
만약 에이전트가 사용자가 작성하지 않은 텍스트를 수집한다면, 모델이 처리하기 전에 스캔해야 합니다. 설치할 한 줄, 등록할 ID, 어떤 호스트에서든 가능합니다.
ARPA HLS의 DEV 관련 읽을거리:
에이전트가 로컬에서 이미지 배경 제거 · NLP를 통한 UK Companies House 조회 · 토큰 제한기 (Token Limiter) · Skillware 0.4.3 — Gemini 도구
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기