⚖ Decision Matrix · Security Tooling

Mini Shai-Hulud 류 공급망 멀웨어 탐지 OSS 도구 선정

13개 GitHub 조직 · 324개 레포 · 멀티언어(Py/TS/Rust/Go/Shell) 환경에서 npm 공급망 멀웨어(.vscode folderOpen 트로이 + 위장 binary + 난독화 JS)를 정확히 탐지·차단할 OSS 도구 7개를 가중 평가.

옵션
7
평가 기준
7
가중치 합
100
1위 점수
8.60
평가일
2026-05-19
01

평가 기준 · 가중치

사용자의 환경(다중 조직 + 대량 레포 + 실제 PR #55 멀웨어 경험)을 반영해 7개 기준으로 가중치 100을 분배.

30%

Shai-Hulud 탐지 정확도

folderOpen task · 위장 binary · 난독화 JS 패턴을 잡는지

20%

324 레포 운영 비용

CI runner 시간, 라이선스, 인프라 비용

15%

False Positive 비율

실 운영에서 노이즈 수준

10%

멀티 언어 지원

Python · TS · Rust · Go · Shell 커버리지

10%

CI/CD 통합 용이성

GH Actions native + pre-commit hook

10%

OSS · 무료 범위

영구 무료로 사용 가능한 범위

5%

2026 유지보수

활성 커뮤니티 + rule pool

02

점수 매트릭스 · 가중 합산

순위 옵션 탐지
30%
비용
20%
FP
15%
언어
10%
CI
10%
OSS
10%
유지
5%
총점 막대
🥇 1 Semgrep + Gitleaks + Trivy + Zizmor 9 8 7 9 9 10 9 8.60
🥈 2 Socket CLI + OSV-Scanner + Phylum 9 7 8 6 9 7 9 7.95
🥉 3 Aikido AppSec OSS tier (managed) 8 7 9 9 9 5 9 7.90
4 StepSecurity Harden-Runner + Allstar + Scorecard 6 8 8 8 10 7 9 7.55
5 CodeQL + Dependency-Track + Trivy (self-host) 7 5 7 9 8 8 9 7.10
6 GitHub Advanced Security 단독 5 3 7 8 10 4 10 5.85
7 Wazuh + osquery + YARA (host EDR) 4 6 6 5 4 10 9 5.65
채점 기준

각 기준 10점 만점. 가중 합산 = Σ(점수 × 가중치/100). 사용자가 fingu-tips 레포에서 직접 검증한 결과(Semgrep custom rule 4 hit)와 알려진 사고 사례(tj-actions, Ultralytics, XZ Utils)를 근거로 채점.

03

옵션별 장단점

RANK 1

Semgrep + Gitleaks + Trivy + Zizmor

8.60 /10

OSS 4종 조합. CI 통합 사실상 표준. 사용자가 실제 PR #55 멀웨어를 정확히 4건 탐지 검증함.

장점
  • Semgrep custom rule 작성으로 folderOpen+woff2 패턴 0 FP로 탐지
  • 모두 100% OSS / 무제한 무료 / GH Actions native
  • r2c-community rule 5,000+ · Trivy/Gitleaks/Zizmor 모두 활발
단점
  • 4개 도구 룰·결과 fan-in 관리 필요 (대시보드 자체구축)
  • 실제 실행 시점(runtime) 차단은 불가능 — commit 후 탐지
  • npm 패키지 자체의 신뢰도 평가(typosquat 등)는 약함
RANK 2

Socket CLI + OSV-Scanner + Phylum

7.95 /10

npm/PyPI 공급망 특화. 패키지 install 단계에서 행위 분석으로 차단.

장점
  • install-time 자동 차단 (Mini Shai-Hulud · Ultralytics 류 정확히 잡음)
  • OSV.dev 통합 DB로 8+ ecosystem CVE 즉시 매칭
  • Socket의 ML 행위 분석은 알려지지 않은 패키지도 정밀
단점
  • Rust/Go/Shell 등 비-패키지 코드는 커버 불가
  • Socket·Phylum freemium — 대규모는 유료 plan 검토
  • 코드 레벨 패턴(.vscode folderOpen 등)은 탐지 불가
RANK 3

Aikido AppSec OSS tier (managed)

7.90 /10

Semgrep+Trivy+Gitleaks 등을 묶음 관리하는 SaaS. ML 우선순위화로 노이즈 감소.

장점
  • 도구 운영 부담 0 — 하나의 대시보드
  • ML 기반 FP 자동 dedup으로 alert fatigue 감소
  • 커스텀 룰도 UI에서 관리
단점
  • Free tier는 ~10 repo / 2 user — 324 레포는 유료 (월 수백 달러)
  • SaaS이므로 코드 외부 전송 — 보안 컴플라이언스 검토 필요
  • 커스텀 룰 디버깅이 self-host보다 제한적
RANK 4

StepSecurity Harden-Runner + Allstar + Scorecard

7.55 /10

CI runner 격리 + org 정책 강제. tj-actions 사고 이후 사실상 표준.

장점
  • runner egress allowlist로 GitHub C2 호출 자체 차단
  • org-wide branch protection / fork 정책 자동 강제
  • scorecard 점수로 레포 보안 가시화
단점
  • commit 패턴 자체(folderOpen 등) 탐지는 안 함 — 행위만 차단
  • 고급 Harden-Runner 기능은 유료
  • 로컬 개발자 머신 보호는 0
RANK 5

CodeQL + Dependency-Track + Trivy (self-host)

7.10 /10

SBOM 중심 self-host. enterprise 컴플라이언스 환경에 적합.

장점
  • SBOM 통합 관리로 의존성 invariant 추적
  • CodeQL 의미 분석(taint flow)은 정교
  • 모든 데이터 self-host — 컴플라이언스 강함
단점
  • Dep-Track 서버 운영 비용 + 학습 곡선
  • CodeQL 라이선스: OS 외 상용 사용은 제한 (검토 필요)
  • folderOpen 같은 IDE 설정 변조는 못 잡음
RANK 6

GitHub Advanced Security 단독

5.85 /10

Dependabot + Secret scanning + CodeQL 묶음. GitHub native.

장점
  • Zero config, GitHub UI 통합 (PR 차단·alert 표시)
  • Dependabot 자동 PR 생성·머지
  • secret scanning은 secret 발견 즉시 push 차단
단점
  • org 전체 GHAS = 매월 $49/active dev — 다조직 13개에 매우 비쌈
  • CodeQL은 의미 분석 강력하지만 IDE 설정·folderOpen은 탐지 안 됨
  • npm 공급망 행위 분석 부재 (Dependabot은 CVE만)
RANK 7

Wazuh + osquery + YARA (host EDR)

5.65 /10

호스트 레벨 EDR. 실행 시점에 의심 행위 차단.

장점
  • runtime 행위 탐지 — 코드 스캔이 놓친 것 잡음
  • FIM(파일 무결성)로 launchd · settings.json 변조 감지
  • 100% OSS · self-host
단점
  • commit 자체는 못 막음 — 멀웨어가 다른 레포로 전파 후 탐지
  • 호스트별 agent 배포 필요 — 324 레포가 아닌 호스트 단위 운영
  • CI runner마다 별도 모니터링 필요 (특히 GH-hosted runner는 불가)
04

최종 추천 · 상황별 처방

최우선 채택: Semgrep + Gitleaks + Trivy + Zizmor

이미 사용자 환경에 모두 설치 + fingu-tips 레포에서 4 hit 검증 완료. 무료, OSS, 다른 어떤 옵션보다 folderOpen+woff2 같은 IDE 변조 패턴을 정확히 잡음. 지금 당장 324 레포에 GH Actions workflow 한 줄 추가하면 끝.

① 즉시 (단일 PR)

1위 채택 + 사용자 custom Shai-Hulud rule (`~/.semgrep/rules/shai-hulud.yml`)을 org-wide workflow로 전파. CI runner 시간 ~30초/레포.

② 1~2주 내

1위 + Socket CLI 결합. npm install 단계에서 차단 → commit 자체를 방지. Free tier로 시작, 한도 초과 시 유료 검토.

③ tj-actions 류 차단

+ Harden-Runner 추가. CI runner outbound egress allowlist로 GitHub C2 호출 차단. 중요 레포부터 점진 적용.

④ 관리형 원하면

Aikido 유료 plan으로 1위 도구들 묶음 관리. 도구 4개 운영 부담 줄어듦. 다만 비용·SaaS 데이터 전송 trade-off.

⑤ self-host 의무

컴플라이언스로 SaaS 금지면 5위(CodeQL + Dep-Track + Trivy). Dep-Track 서버 1대 운영 비용 감수.

⑥ 호스트 보호

7위(Wazuh agent)를 개발자 머신/CI runner에 추가 배포. 코드 스캔이 놓친 runtime 행위 차단의 last-mile defense.

주의 · 어떤 단일 도구도 100% 잡지 못함

Mini Shai-Hulud 같은 정교한 공급망 멀웨어는 commit 패턴 + 행위 + 의존성 + runtime을 모두 막아야 함. 1위(코드 스캔) + 2위(install 차단) + 4위(runner 격리) 조합이 실전 방어선. 단일 도구는 반드시 우회 경로가 존재.

05

평가의 한계