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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
wheelaudit — Python Wheel 파일 보안 스캐너 — 설치 전에 .whl 파일에서 보안 문제를 스캔합니다. 경로 탐색(CVE-2026-24049), RECORD 변조, 명령어 섀도잉, 비밀 정보, zip 폭탄을 탐지합니다. 의존성 없음. | Kitploit
도구/GitHubGitHub/kriskimmerle/wheelaudit
Static AnalysisVulnerability AnalysisCode AnalysisConfiguration AuditingMalware AnalysisDevSecOpsSecret DetectionSupply Chain Security
GitHubkriskimmerle/wheelaudit

wheelaudit

Python Wheel 파일 보안 스캐너 — 설치 전에 .whl 파일에서 보안 문제를 스캔합니다. 경로 탐색(CVE-2026-24049), RECORD 변조, 명령어 섀도잉, 비밀 정보, zip 폭탄을 탐지합니다. 의존성 없음.

저장소 보기
36개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

wheelaudit

Python Wheel 파일 보안 스캐너 — 설치 전에 .whl 파일의 보안 문제를 스캔합니다.

최근 Python wheel 처리에서 발생한 CVE에서 영감을 받았습니다:

  • CVE-2026-24049: wheel 압축 해제 시 경로 탐색으로 시스템 파일 권한 조작 가능
  • CVE-2026-1703: pip가 wheel 아카이브를 설치할 때 발생하는 경로 탐색
  • Google GHSA-w97x-xxj5-gpjx: Python wheel의 Zip 파서 차등 취약점

의존성 제로. 단일 파일. Python 3.9+.

왜 필요한가?

pip-audit는 패키지에 알려진 CVE가 있는지 확인합니다. wheelaudit는 wheel 파일 자체가 구조적으로 악성인지 확인합니다 — 경로 탐색, 변조된 RECORD 해시, 내장된 비밀 정보, 명령어 섀도잉, zip 폭탄 등. "이 패키지가 알려진 악성인가?"와 "이 패키지가 악성으로 보이는가?"의 차이입니다.

pip install 전에 실행하세요. CI에서 실행하세요. 신뢰할 수 없는 다운로드 wheel에 대해 실행하세요.

설치

root@kitploit:~
# 파일만 복사
curl -O https://raw.githubusercontent.com/kriskimmerle/wheelaudit/main/wheelaudit.py
chmod +x wheelaudit.py

# 또는 저장소 클론
git clone https://github.com/kriskimmerle/wheelaudit.git
cd wheelaudit

사용법

root@kitploit:~
# wheel 파일 스캔
python3 wheelaudit.py package-1.0.0-py3-none-any.whl

# 여러 wheel 스캔
python3 wheelaudit.py *.whl

# wheel 디렉토리 스캔
python3 wheelaudit.py ./wheels/

# CI 모드: 점수가 임계값 미만이면 exit 1
python3 wheelaudit.py package.whl --check --min-score 80

# 도구 통합용 JSON 출력
python3 wheelaudit.py package.whl --json

# 상세 정보 포함 자세한 모드
python3 wheelaudit.py package.whl -v

# 심각도별 필터링
python3 wheelaudit.py package.whl --severity high

# 특정 규칙 무시
python3 wheelaudit.py package.whl --ignore WH11

# stdin에서 읽기
cat package.whl | python3 wheelaudit.py --stdin

규칙

규칙심각도설명
WH01CRITICAL파일 이름의 경로 탐색 (../, 절대 경로, null 바이트)
WH02CRITICAL-HIGHRECORD 파일 무결성 (누락, 변조된 해시, 미등록 파일)
WH03HIGH-LOW의심스러운 파일 유형 (실행 파일, pickle, 아카이브, 숨김 파일)
WH04CRITICAL엔트리 포인트 명령어 섀도잉 (pip, python, sudo 등)
WH05CRITICAL내장된 비밀 정보 (API 키, 토큰, 개인 키)
WH06CRITICAL-LOW파일 권한 문제 (SUID/SGID, 전역 쓰기 가능, 실행 가능 데이터)
WH07HIGH-MEDIUM메타데이터 일관성 (METADATA/WHEEL 누락, 구조적 문제)
WH08HIGHZip 폭탄 탐지 (극단적 압축 비율, 과대 아카이브)
WH09HIGH-MEDIUMPEP 427 준수 (파일 이름 형식, 이름/버전 불일치)
WH10CRITICAL네임스페이스 충돌 (stdlib 모듈 섀도잉)
WH11HIGH-MEDIUM악성 코드 패턴 (eval, exec, os.system, 자격 증명 접근)
WH12MEDIUM-LOW데이터 파일 문제 (.data/의 스크립트, 과대 파일)
WH13HIGHCRC32 조작 (CVE-2025-1889 우회 패턴)
WH14HIGH확장자 불일치 (.py/.txt로 위장한 ELF/PE 바이너리)
WH15HIGH-MEDIUM심볼릭 링크 및 중복 파일 이름

15개 규칙, 5단계 심각도

CRITICAL (20점): 경로 탐색, SUID 비트, 내장된 비밀 정보, 명령어 섀도잉, stdlib 섀도잉, RECORD 해시 변조

HIGH (12점): RECORD 누락, 의심스러운 실행 파일, zip 폭탄, CRC 조작, 확장자 불일치, 심볼릭 링크, 자격 증명 수집 패턴

MEDIUM (6점): 백슬래시 경로, 메타데이터 누락, PEP 427 문제, subprocess/네트워크 패턴

LOW (2점): 숨김 파일, 실행 가능 데이터 파일, 대용량 파일

INFO (0점): 합법적인 네이티브 확장, 환경 변수 접근

출력 예시

정상 wheel (requests 2.32.5)

root@kitploit:~
============================================================
requests 2.32.5 — B (88/100)
============================================================

  [HIGH]
    WH11 의심스러운 패턴: __import__() — 동적 import (requests/packages.py)

  요약: high 1건

악성 wheel

root@kitploit:~
============================================================
evil-pip 99.0.0 — F (0/100)
============================================================

  [CRITICAL]
    WH01 wheel 아카이브의 경로 탐색 (../../../etc/crontab)
    WH04 엔트리 포인트가 시스템 명령어를 가림: 'pip'
    WH04 엔트리 포인트가 시스템 명령어를 가림: 'python'
    WH05 내장된 비밀 정보: GitHub 개인 액세스 토큰 (pip/__init__.py)

  [HIGH]
    WH02 RECORD에 나열되지 않은 파일 (../../../etc/crontab)
    WH03 의심스러운 파일 유형: .exe (pip/payload.exe)
    WH11 의심스러운 패턴: os.system() — 셸 명령어 실행
    WH11 의심스러운 패턴: eval() 호출 — 동적 코드 실행
    WH11 의심스러운 패턴: SSH 디렉토리 참조

  요약: critical 4건, high 5건, medium 2건, low 2건

JSON 출력

root@kitploit:~
{
  "version": "0.1.0",
  "results": [
    {
      "path": "package-1.0.0-py3-none-any.whl",
      "score": 88,
      "grade": "B",
      "metadata": {
        "name": "package",
        "version": "1.0.0",
        "file_count": 15,
        "total_uncompressed_bytes": 45000
      },
      "findings": [
        {
          "rule": "WH11",
          "severity": "high",
          "message": "Suspicious pattern: __import__() — dynamic import",
          "file": "package/compat.py"
        }
      ],
      "summary": {
        "high": 1
      }
    }
  ]
}

CI 통합

GitHub Actions

root@kitploit:~
- name: Audit wheel
  run: |
    python3 wheelaudit.py dist/*.whl --check --min-score 80

설치 전 게이트

root@kitploit:~
pip download some-package --no-deps -d /tmp/wheels
python3 wheelaudit.py /tmp/wheels/*.whl --check
pip install /tmp/wheels/*.whl

작동 방식

wheelaudit는 모든 .whl 파일을 신뢰할 수 없는 zip 아카이브로 취급합니다. 다음을 수행합니다:

  1. 추출 없이 zip 메타데이터 파싱 (안전한 검사)
  2. 아카이브 구조 확인 — 경로 탐색, 심볼릭 링크, 중복
  3. RECORD 무결성 검증 — 해시 및 파일 목록
  4. 파일 유형 검사 — 실행 파일, 바이너리, 숨김 파일
  5. 텍스트 콘텐츠 스캔 — 비밀 정보, 악성 코드 패턴
  6. PEP 427 준수 검증 — 파일 이름, 메타데이터, 구조
  7. 알려진 공격 패턴 탐지 — CVE-2026-24049, CRC 조작, 파서 차등

파일이 디스크에 추출되지 않습니다. 모든 분석은 메모리에서 수행됩니다.

비교

기능wheelauditpip-auditsafetyGuardDog
의존성 제로✅❌❌❌
wheel 콘텐츠 스캔✅❌❌✅
경로 탐색 탐지✅❌❌❌
RECORD 무결성✅❌❌❌
CVE 데이터베이스❌✅✅❌
오프라인 작동✅❌❌❌
Python 3.9+✅✅✅✅

wheelaudit는 pip-audit/safety를 보완합니다 — 이들은 알려진 취약점을 확인하고, wheelaudit는 wheel 자체를 확인합니다.

라이선스

MIT

도구 다운로드