Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
exfil-scan — LLM 출력과 AI 생성 콘텐츠가 사용자 또는 다운스트림 시스템에 도달하기 전에 데이터 유출 신호(EchoLeak, CVE-2025-32711)를 스캔합니다. | Kitploit
도구/GitHubGitHub/vikasudasi/exfil-scan
Data ExfiltrationDevSecOpsSecret DetectionAPI SecurityAI Security
GitHubvikasudasi/exfil-scan

exfil-scan

LLM 출력과 AI 생성 콘텐츠가 사용자 또는 다운스트림 시스템에 도달하기 전에 데이터 유출 신호(EchoLeak, CVE-2025-32711)를 스캔합니다.

저장소 보기
6226일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

exfil-scan

사용자, 로그 또는 다운스트림 시스템에 도달하기 전에 LLM 출력 및 AI 생성 콘텐츠에서 데이터 유출 신호를 스캔합니다.


1) exfil-scan이 존재하는 이유

최신 LLM 애플리케이션은 민감한 프롬프트, 내부 문서, API 응답, 사용자 데이터를 일상적으로 처리합니다. 이로 인해 새로운 보안 경계가 생겨났습니다: 출력 계층입니다.

EchoLeak 공격 계열( CVE-2025-32711 포함)은 숨겨지거나 난독화된 페이로드가 생성된 텍스트에 삽입되어 도구, 링크 또는 파싱 체인을 통해 데이터를 유출하는 데 사용될 수 있음을 입증했습니다.

기존 스캐너는 파일, 종속성, 런타임 트래픽에 중점을 둡니다. 이들은 생성된 모델 출력을 목적에 맞게 검사하지 않습니다.

exfil-scan은 "LLM 응답용 바이러스 스캐너"를 제공합니다:

  • 일반 텍스트, JSON, 마크다운, 로그를 검사합니다
  • 여섯 가지 유형의 의심스러운 유출 패턴을 식별합니다
  • 심각도와 위치와 함께 발견 사항을 보고합니다
  • CI/CD 및 로컬 개발자 워크플로우에 깔끔하게 통합됩니다

2) 감지 항목

범주심각도감지 내용
숨겨진 텍스트높음페이로드를 숨기는 데 사용되는 제로폭 및 보이지 않는 유니코드 시퀀스
인코딩된 데이터높음인코딩된 콘텐츠를 포함할 가능성이 있는 Base64/hex/octal/unicode 이스케이프 연속
URL 내 데이터중간의심스러울 정도로 긴 쿼리 문자열 및 인코딩된 URL 매개변수 페이로드
메타데이터 유출높음구조화/비구조화 출력의 자격 증명 형태 키 및 토큰 형식
유니코드 스테가노그래피중간양방향 제어 문자 및 혼합 스크립트 호모글리프 스타일 단어
구조적 이상낮음극단적인 줄바꿈/탭 연속 및 대체 문자 인코딩 아티팩트

3) 주요 기능

  • 3가지 민감도 프로필: low, medium, high
  • YAML 구성 재정의 지원
  • stdin, 단일 파일 또는 디렉토리 입력
  • text, json, markdown 또는 html 출력
  • 자동화를 위한 안정적인 종료 코드
  • 다른 도구에 임베딩할 수 있는 깔끔한 Python API

4) 설치

소스에서 설치

root@kitploit:~
git clone https://github.com/your-org/exfil-scan.git
cd exfil-scan
pip install -e .

표준 pip 설치(게시 시)

root@kitploit:~
pip install exfil-scan

개발 설치

root@kitploit:~
pip install -e ".[dev]"
pytest

5) 빠른 시작

파이프된 LLM 출력 스캔

root@kitploit:~
echo 'api_key: sk-ABCDEFGHIJKLMNOPQRSTUVWXYZ123456' | exfil-scan

단일 파일 스캔

root@kitploit:~
exfil-scan --input output.txt

디렉토리 재귀 스캔

root@kitploit:~
exfil-scan --directory ./model-logs --recursive

6) CLI 옵션 참조

참고:

  • --input 또는 --directory 중 하나만 사용하세요. 둘 다 사용하지 마세요.
  • 경로가 제공되지 않으면 도구는 stdin에서 읽습니다.
  • 발견 사항이 있으면 프로세스는 코드 1로 종료됩니다.

7) 출력 형식별 사용 예시

일반 텍스트 출력

root@kitploit:~
exfil-scan --input suspicious.txt --format text

예상 형식:

root@kitploit:~
exfil-scan report
=================
Scanned targets: 1
Total findings: 2

1. [HIGH] metadata_leaks/known_token_format:openai_key
   Location: suspicious.txt:1:10
   Description: Matched known credential/token format (openai_key).

JSON 출력

root@kitploit:~
exfil-scan --input suspicious.txt --format json

예상 구조:

root@kitploit:~
{
  "finding_count": 2,
  "scanned_targets": ["suspicious.txt"],
  "findings": [
    {
      "category": "metadata_leaks",
      "rule": "known_token_format:openai_key",
      "severity": "HIGH",
      "description": "Matched known credential/token format (openai_key).",
      "location": "suspicious.txt:1:10",
      "snippet": "..."
    }
  ]
}

HTML 출력

root@kitploit:~
exfil-scan --directory ./outputs --recursive --format html --output report.html

예상 동작:

  • 발견 사항 테이블이 포함된 독립형 HTML 페이지를 생성합니다
  • 안전한 렌더링을 위해 콘텐츠를 이스케이프합니다
  • 심각도, 범주, 규칙, 위치, 설명을 포함합니다

마크다운 출력

root@kitploit:~
exfil-scan --input suspicious.txt --format markdown --output report.md

예상 형식:

root@kitploit:~
# exfil-scan Report

- Scanned targets: 1
- Total findings: 2

8) 구성 및 민감도

리포지토리에는 default-config.yaml이 포함되어 있습니다. --config를 사용하여 자신만의 파일을 전달할 수 있습니다.

민감도 조정:

  • low: 더 적은 오탐, 더 큰 임계값
  • medium: 균형 잡힌 기본값
  • high: 더 미묘한 패턴을 포착

CLI 민감도 재정의:

root@kitploit:~
exfil-scan --input out.txt --sensitivity high

9) 사용자 정의 패턴 및 정책 튜닝

자신만의 토큰 형식과 메타데이터 키를 추가할 수 있습니다:

root@kitploit:~
sensitivity: medium
rules:
  metadata_keys:
    - api_key
    - db_password
    - internal_token
  token_patterns:
    custom_jwt: "\\beyJ[A-Za-z0-9_\\-]{10,}\\.[A-Za-z0-9_\\-]{10,}\\.[A-Za-z0-9_\\-]{10,}\\b"
    corp_secret: "\\bcorp_[A-Za-z0-9]{24,}\\b"

그런 다음 실행합니다:

root@kitploit:~
exfil-scan --input response.log --config ./my-config.yaml

10) 아키텍처 개요

모듈 책임:

  • exfil_scan/cli.py: 인수 파싱, 입력 선택, 출력 렌더링, 종료 처리
  • exfil_scan/config.py: 기본값, YAML 로딩, 재귀 병합, 프로필 정규화
  • exfil_scan/scanner.py: 여섯 가지 탐지 엔진, 발견 사항 데이터클래스, 보고서 포맷팅
  • tests/test_scan.py: 탐지 및 출력 형식 회귀 테스트

실행 흐름:

  1. CLI가 인수를 파싱합니다.
  2. 구성이 기본값과 선택적 재정의를 로드합니다.
  3. 스캐너가 stdin/파일/디렉토리에서 텍스트를 읽습니다.
  4. 활성화된 각 범주가 독립적으로 실행됩니다.
  5. 발견 사항이 심각도순으로 정렬되어 렌더링됩니다.
  6. 종료 코드가 자동화를 위해 통과/실패/오류를 전달합니다.

11) 종료 코드

코드의미
0발견 사항 없음(깨끗함)
1발견 사항 감지됨
2런타임 또는 인수 오류

이로 인해 CI 통합이 간단해집니다:

root@kitploit:~
exfil-scan --directory ./artifacts --recursive --format json --output exfil-report.json

탐지 항목이 발견되면 종료 코드 1을 기준으로 작업이 신속하게 실패할 수 있습니다.


12) 테스트

테스트 실행:

root@kitploit:~
pytest

커버리지에는 다음이 포함됩니다:

  • 여섯 가지 탐지 범주 전체
  • 네 가지 출력 모드 전체의 보고서 포맷팅
  • 안정적인 동작을 위한 규칙 수준 단언

13) 보안 참고 사항

exfil-scan은 휴리스틱 스캐너입니다. 콘텐츠 안전성을 입증하는 것이 아니라 위험을 줄이고 의심스러운 출력을 표면화하도록 설계되었습니다.

권장 배포 패턴:

  1. CI에서 테스트 프롬프트와 픽스처 출력에 스캐너를 실행합니다
  2. 프로덕션 가드레일에서 생성된 응답에 스캐너를 실행합니다
  3. 발견 사항을 분석가 트리아지 및 텔레메트리로 라우팅합니다
  4. 오탐 검토를 기반으로 구성 임계값을 지속적으로 튜닝합니다

14) 라이선스

이 프로젝트는 MIT 라이선스로 라이선스가 부여됩니다. 전체 약관은 LICENSE를 참조하세요.


15) 기여

기여를 환영합니다. PR을 열 때 다음을 포함하세요:

  • 명확한 재현 단계
  • 예상 및 실제 동작
  • 새 탐지 로직에 대한 테스트
  • 새 규칙 도입 시 문서 업데이트
도구 다운로드
옵션유형기본값설명
-i, --inputpath없음입력 파일 하나를 스캔합니다
-d, --directorypath없음디렉토리의 지원되는 모든 파일을 스캔합니다
-r, --recursiveflagfalse--directory와 함께 중첩 디렉토리를 재귀적으로 검색합니다
-c, --configpath없음YAML 구성 파일 경로
-s, --sensitivitylow|medium|highconfig/default민감도 프로필을 재정의합니다
-f, --formattext|json|html|markdowntext보고서 형식을 렌더링합니다
-o, --outputpathstdout렌더링된 보고서를 파일에 씁니다
--versionflagn/aCLI 버전을 출력합니다
-h, --helpflagn/a사용법 및 인수를 표시합니다