Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/ericyoc/stego_provenance_defense
Defensive ToolsSteganographyAuthenticationPapers & ResearchLearning & EducationAI Security
GitHubericyoc/stego_provenance_defense

stego_provenance_defense

에이전트형 AI를 위한 스테가노그래픽 프롬프트 인젝션 방어로, 디코드 시점 출처 바인딩, HMAC 인증, MCP 신뢰 적용을 사용합니다.

저장소 보기웹사이트
202일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Eric Yocam on Lounge

MCP 에이전트를 위한 디코드 시점 출처 바인딩

텍스트 콘텐츠 스캐너를 무력화하는 스테가노그래피 프롬프트 주입 벡터와, 이를 디코드 경계에서 억제하는 방어 기법인 디코드 시점 출처 바인딩에 대한 재현 가능한 개념 증명입니다.

교육 및 방어적 보안 연구 전용입니다. 이 저장소의 모든 비밀 값은 가짜입니다. 소유하거나 테스트 권한이 있는 시스템에서만 사용하십시오.


요약

공격자가 피해자에게 평범해 보이는 이메일을 보냅니다. 이메일 서명에 있는 브랜드 로고가 스테가노그래피(LSB, DCT 또는 메타데이터)를 통해 명령을 숨깁니다. 이미지는 원본과 시각적으로 동일하고 의심스러운 텍스트도 포함하지 않으므로 콘텐츠 스캐너는 아무것도 보지 못하며 피해자는 아무것도 클릭하지 않습니다. 그러나 피해자의 일상적인 받은편지함 요약 에이전트가 서명을 처리하고, 파이프라인의 도구가 이미지를 디코드하며, 숨겨진 명령이 에이전트의 컨텍스트에 들어갑니다. 여기서 다중 에이전트 MCP 파이프라인에서는 신뢰할 수 있는 피어 출력으로 에이전트 간에 전달되어 중요한 도구 호출을 유도합니다. 이것이 교차 모달 신뢰 세탁입니다. 방어 기법인 디코드 시점 출처 바인딩은 은닉을 역전하는 도구가 실행되는 순간 HMAC으로 서명된 UNTRUSTED 레이블을 발급하고, MCP 계층이 출처 계보 자체를 유지하도록 하여, 손상된 에이전트가 무관한 신뢰 값에 대해 유효한 레이블을 제시하더라도 계보가 신뢰되지 않는 모든 중요한 도구 호출을 차단합니다. 이는 탐지가 아니라 억제하므로 페이로드 문구와 캐리어에 독립적입니다.


결과

공격 성공률(ASR) — 24개 페이로드(세 가지 캐리어 × 여덟 가지 회피 기법: 평문, 무해한 문구, Base64, 토큰 분할, 키릴 문자 동형 문자, 제로 폭 문자, 유니코드 혼동 문자, HTML 주석). 낮을수록 좋습니다. 프로세스 내 오염(taint) 기준선은 디코드 출력을 신뢰할 수 없음으로 표시하지만 교차 도메인 암호학적 바인딩은 수행하지 않는 정보 흐름 제어입니다:

방어 기법유출nASR
무방비(검사 없음)2424100%
콘텐츠 스캐너(키워드/DLP)152462.5%
정규식 의도 파서152462.5%
데이터 흐름 오염(IFC 기준선)0240%
디코드 시점 출처(제안 기법)0240%

오염과 출처는 단일 도메인 ASR에서 동률이지만, 적대적 중계(아래)에서는 갈라지며, 이것이 암호학적 바인딩의 핵심입니다.

유효 레이블 대체 — 손상된 에이전트가 실제로 호출을 유도하는 UNTRUSTED 디코드 출처를 생략하면서, 무해한 도구에서 정당하게 서명된 TRUSTED 바인딩을 제시합니다. 해결책은 MCP 계층이 계보 자체를 유지하고 에이전트가 제공한 바인딩이 아니라 자체 원장에 따라 결정하는 것입니다:

적용 방식결정
에이전트 제공 바인딩만 사용(순진한 방식)허용(유출)
계층 유지, 의존성 누락차단
계층 유지, 인자에 의존성 포함차단
계층 유지, 깨끗한 컨텍스트허용

구성 요소 제거 실험 — 각각 서로 다른 공격을 방어하는 네 가지 구성 요소입니다. 한 번에 하나씩 비활성화합니다. substitution은 도메인 내 공격이고, forged relay는 제시된 바인딩만 보유한 원격 검증자에게 신뢰할 수 없는 중계를 거쳐 전달되는 위조된 TRUSTED 레이블입니다. 결정적으로, HMAC만으로는 대체를 막지 못하며(원장이 막음), 원장만으로는 교차 도메인 중계를 견디지 못합니다(HMAC이 견딤):

구성정직대체위조 릴레이
전체 메커니즘차단됨차단됨차단됨
− 디코드 표시누출됨누출됨누출됨
− 암호화 인증 (HMAC)차단됨차단됨누출됨
− 신뢰 계보 추적차단됨누출됨차단됨
− 싱크 중재누출됨누출됨누출됨

교차 컨텍스트 전파 — 오염(taint)은 도구 반환 핸들뿐 아니라 에이전트 간 메시지 경계를 넘어서도 유지된다. 에이전트 A의 신뢰할 수 없는 디코드가 에이전트 B의 별도 컨텍스트에 있는 중요 호출에 도달하며, 중재된 채널(위협 모델이 이미 에이전트 간 통신에 요구하는)에서는 오염이 전파되어 B가 차단된다. 계층이 중재하지 않는 채널은 설계상 모델 범위 밖이며, 범위 내의 누출이 아니다:

채널 A → BB의 중요 호출
중재된 에이전트 간 메시지 (범위 내)차단 (오염 전파됨)
중재되지 않은 부채널 (모델 범위 밖)해당 없음

오버헤드 확장성 — MintBinding은 ~O(1)이며(깊이와 무관하게 ~10–14 µs); EnforceCritical은 순회하는 의존성 폐쇄에 대해 선형이며(깊이 1에서 ≈10 µs → 깊이 100에서 ≈0.66 ms → 깊이 1000에서 ≈6.7 ms), 동시 오염 컨텍스트 수에 대해서는 평탄하다(~6–7 µs). 현실적인 폐쇄(깊이가 수십 수준)는 ~0.1 ms 미만으로 유지된다.

정당한 작업 유용성 — 감사된 신뢰 승격 경로(예: OCR된 인보이스 번호와 같은 특정 디코드 값을 권한 부여 하에 재라벨링)는 공격이 차단된 상태를 유지하면서 오탐 차단을 제거한다:

체제완료오탐 차단공격 차단됨
승격 없음2/3 (67%)1예
신뢰 승격3/3 (100%)0예

디코드 집합 완전성 — 등록 가정을 직접적으로 검증:

디코드 집합스테고 공격정당한 중요 호출
정확함차단됨허용됨
디코더 누락누출됨허용됨
과도하게 광범위함차단됨오탐 차단

핸드오프 간 라벨 무결성 — 바인딩은 정직한 릴레이를 거쳐도 유지되며 침해된 워커에 저항한다:

릴레이 시나리오검증자 결정
정직한 릴레이, 1 / 3 / 5 / 10 홉검증됨; 차단됨
침해됨: 페이로드 재작성, HMAC 유지차단 (HMAC 불일치)
침해됨: TRUSTED 위조차단 (HMAC 불일치)
침해됨: 바인딩 제거차단 (유효한 라벨 없음)

오버헤드 — 결정 지점에서는 사실상 무료: 바인딩 발급과 검증은 각각 ~8–9 µs (합계 ~17 µs)로, ~11 ms의 디코드 도구 호출에 비해 ~0.2% 미만이 추가된다. 캐리어 왜곡은 낮다(LSB ≈ 76 dB PSNR, 메타데이터 무손실; DCT ≈ 18 dB — 지각적 비인지성 주장이 아닌 왜곡 지표).


포함된 내용

stego_provenance_defense_poc.ipynb   # the full PoC (run top-to-bottom)
requirements.txt                     # dependencies (mcp pinned <2)

노트북을 실행하면 모든 그림, 표, CSV가 Colab에서는 MyDrive/stego_provenance_poc/{figures,tables,data}에, 로컬에서는 ./stego_provenance_poc/에 기록됩니다. 모든 그림과 표는 셀에 의해 생성되므로, 전체 과정은 깨끗한 실행으로부터 재현 가능합니다.


실행하기

Google Colab (권장)

  1. Colab에서 stego_provenance_defense_poc.ipynb를 엽니다.
  2. 런타임 → 모두 실행. Google Drive를 마운트하고 의존성을 자체적으로 설치합니다.
  3. 출력은 MyDrive/stego_provenance_poc/{figures,tables,data} 아래에 나타납니다.

로컬

pip install -r requirements.txt
jupyter notebook stego_provenance_defense_poc.ipynb

출력은 ./stego_provenance_poc/에 저장됩니다. GPU는 선택 사항이며(에이전트 모델이 작음), 보안 결과는 모델에 의존하지 않습니다.


방어 방식의 작동 원리

이 방어는 흔히 혼동되는 두 가지 보장을 결합하며, 기여는 HMAC 단독이 아니라 이 둘의 결합에 있습니다:

  • 데이터 출처 보안: 위조되거나 재라벨링된 데이터 의존성을 통해 중요 작업이 승인될 수 없습니다(서명된 바인딩).
  • 컨텍스트 영향 억제: 신뢰할 수 없는 명령이 실행 컨텍스트에 영향을 준 뒤에는 승인된 클리어런스 없이 중요 작업이 실행될 수 없습니다(레이어가 유지하는 원장 + 컨텍스트 오염).

MCP 레이어에서의 두 가지 결정적 연산으로, 레이어 자체가 계보를 유지합니다:

  • MintBinding (각 도구 내부, 반환 시): 도구가 은닉 변환을 역전하거나 어떤 입력이든 UNTRUSTED인 경우(전염성) trust = UNTRUSTED로 {payload, tool, trust, provenance, deps}를 스탬프하고, 해석된 입력 의존성 deps를 기록하며, HMAC_k(payload‖tool‖trust‖provenance‖deps)로 서명하고, 레이어의 원장에 기록하며, (신뢰할 수 없는 경우) 컨텍스트의 오염 집합에 추가합니다.
  • EnforceCritical (중요 도구 경계에서): 에이전트가 제공한 바인딩이 아니라 레이어의 원장을 기준으로 결정합니다. 호출의 인자 계보를 해석하고, HMAC 실패, 불완전한 계보, UNTRUSTED 데이터 출처, 또는 비어 있지 않은 컨텍스트 오염 중 하나라도 있으면 차단하며, 그렇지 않으면 허용합니다. 계보를 에이전트가 아닌 레이어가 보유하므로, 침해된 에이전트는 신뢰할 수 없는 의존성을 생략하여 숨길 수 없습니다.

보안 불변식. (i) 키가 MCP 레이어에 격리되고, (ii) 디코드 도구가 완전히 등록되며, (iii) 모든 중요 호출이 중재되고, (iv) 레이어가 각 호출의 완전한 계보(해석된 인자 의존성 + 각 컨텍스트에 진입하는 디코드 출처)를 기록한다는 조건 하에서: 감사된 신뢰 승격이 해당 특정 출처를 클리어하지 않는 한, 전이적 계보(데이터 또는 컨텍스트)에 UNTRUSTED 디코드 출처가 포함된 중요 도구 호출은 실행되지 않습니다.


범위 및 한계

  • 이 방어는 작업을 보호하며 요약 텍스트는 보호하지 않습니다: 세탁된 명령이 여전히 에이전트의 서술을 왜곡할 수는 있지만, 중요 도구에는 도달할 수 없습니다.
  • 이는 통제된 테스트베드(24개 페이로드, 로고 1개, 소형 모델 1개, 기준선으로 키워드/정규식 스캐너와 인프로세스 오염 추적기)로, 메커니즘 검증이지 프로덕션 규모의 측정이 아닙니다.
  • 보안은 모든 은닉 역전 도구가 디코드 도구로 등록되고, HMAC 키가 MCP 레이어 내에 유지되며, 레이어가 각 호출의 완전한 계보를 포착하는 것에 달려 있습니다. 마지막 항목은 구현 의무입니다: 컨텍스트 오염은 보수적 과대 근사이므로, 중재 경로나 오염 추적 컨텍스트에 전혀 진입하지 않는 영향은 잔여 위험입니다(위의 디코드 집합 완전성 및 유효 레이블 치환 결과 참조).

위협 분류 체계와의 매핑

  • OWASP Top 10 for Agentic Applications (2026): ASI01 에이전트 목표 하이재킹, ASI02 도구 오용, ASI06 메모리 및 컨텍스트 오염, ASI07 안전하지 않은 에이전트 간 통신(이 방어는 ASI07 통제책입니다).
  • OWASP Top 10 for LLM Applications: LLM01 프롬프트 인젝션, LLM02 안전하지 않은 출력 처리, LLM06 민감 정보 노출, LLM08 과도한 권한.

라이선스

교육 및 방어적 보안 연구를 위해 공개되었습니다. LICENSE를 참조하세요.

도구 다운로드