제공 서비스
웹 보안 점검 소스코드 분석 (SAST) CRM 보안 진단 다크웹 유출 조회
요금제 스토어 블로그 파트너 마이페이지 무료 보안 점검
AI 코딩 보안 2026.05.09 · 조회 133

npm 공급망 공격 시즌2 — Axios·SAP 사고로 본 7천만 다운로드 패키지의 함정 [2026]

2026년 4월 Axios·SAP npm 공격은 주간 7천만 다운로드 의존성까지 침투했다. AI가 자동 설치한 코드의 실제 침해 흐름, lockfile 검증 4단계, CI 차단 스크립트를 정리했다.

npm 공급망 공격은 신뢰하던 인기 패키지가 악성 코드를 품은 채로 자동 설치되어, AI 가 짜 준 npm install 한 줄로 침해가 시작되는 결함이다.
2026-04 Microsoft Security 와 CISA 가 공동 경보한 Axios·SAP 사건은 주간 7천만+ 다운로드를 가진 의존성 체인을 통해 광범위하게 퍼졌다(출처: Microsoft Security Blog "Mitigating the Axios npm supply chain compromise", 2026-04-01 / CISA Vulnerability Summary).
이 글은 AI 도구로 빠르게 SaaS 를 만든 1~3년차 개발자가 이번 사고의 침해 흐름을 5단계로 이해하고, lockfile 검증·CI 차단을 30분 안에 적용할 수 있게 정리한 가이드다.

한눈에 보는 이번 사고

Q. 이번 Axios·SAP 사고가 왜 시즌2 라고 불리나요? A. 2025 년의 chalk·debug 등 인기 패키지 침해 흐름이 2026 년에는 더 큰 트래픽 패키지(주간 7천만+ 다운로드)와 엔터프라이즈 ERP(SAP) 생태계로 확장됐기 때문입니다. Q. AI 코딩으로 만든 SaaS 가 왜 특히 위험한가요? A. AI 도구는 코드를 짜면서 npm install 명령을 자동 제안·실행합니다. 검토 없이 lockfile 갱신이 일어나면 침해된 버전이 그대로 운영에 박힙니다. Q. npm audit / Dependabot 으로 충분하지 않나요? A. 둘 다 이미 공표된 CVE 를 잡는 도구입니다. 공급망 공격은 공표 전 수 시간~수 일이 가장 위험합니다. 발견 즉시 차단할 lockfile 무결성 검증과 후행 모니터링이 함께 필요합니다. Q. 이미 설치했다면 어떻게 확인하나요? A. npm ls axios 로 실제 깔린 버전을 확인하고, 공식 경보의 영향 버전 범위와 대조 후 키 회전·로그 역추적·재배포 3단계를 실행해야 합니다.

침해 5단계 흐름

  1. 관리자 계정 탈취: 인기 패키지 메인테이너의 npm 계정을 피싱·세션 탈취로 장악
  2. 악성 버전 배포: 정상 패키지의 postinstall 스크립트에 외부 호출 코드 삽입 후 신버전 publish
  3. 자동 전파: CI·로컬에서 npm install 시 새 버전 다운로드, postinstall 실행
  4. 2차 페이로드: 환경변수·.npmrc·CI 시크릿·클라우드 메타데이터(169.254.169.254) 외부 전송
  5. 은폐: 며칠 뒤 정상 코드로 재배포되며 침해 흔적 희석
핵심: 침해는 npm install 한 번에 끝난다. 사후 패치보다 lockfile 고정·CI 격리·런타임 외부 호출 차단이 비용 대비 효과가 크다.

이번 사고에서 새는 데이터 — AI 코딩 SaaS 기준

경로유출되는 것2차 피해
로컬 개발자 환경~/.npmrc 토큰, GitHub PAT, AWS 자격리포 코드 / 배포 권한 탈취
CI(GitHub Actions 등)secrets.*, OIDC 토큰운영 인프라 직접 접근
운영 서버환경변수, EC2 메타데이터(IAM 임시 자격)S3/DB 임의 접근
고객 데이터API 로 수집되는 PII·결제 토큰개인정보보호법 과징금 사고로 직결

30초 자가 점검

# 1. 영향 패키지가 깔렸는지
npm ls axios
npm ls @sap/<패키지명>

# 2. lockfile 변경이 최근 의도와 일치하는지
git log --since="2 weeks ago" -- package-lock.json

# 3. 의심 postinstall 패턴 검색
grep -R "postinstall" node_modules/*/package.json | grep -E "curl|wget|nc |child_process"

# 4. 외부 호출 흔적 (로컬·CI 모두)
grep -RE "https?://[a-z0-9.-]+\.(ru|cn|xyz|top)" node_modules/ 2>/dev/null | head
위 명령 중 2~4번에서 결과가 잡히면 침해 가능성. 외부 노출 인프라(.env·관리자 페이지·민감 파일·헤더 17종)는 CodeScan 30초 무료 스캔으로 동시에 점검.

lockfile 무결성 4단계

1. lockfile 강제 일치 (가장 빠른 1수)

# CI 에서 lockfile 과 package.json 불일치 시 즉시 실패
npm ci    # npm install 대신
# pnpm: pnpm install --frozen-lockfile
# yarn: yarn install --immutable

2. 새 버전 자동 채택 금지

  • package.json 범위 표기(^·~) 점검 — 패치만 허용
  • Dependabot/Renovate 는 자동 머지 금지, 사람 리뷰 필수
  • AI 도구가 의존성 갱신 PR 을 자동 만드는 환경이면 화이트리스트 적용

3. postinstall 격리

# 1) 가능하면 끄기
npm config set ignore-scripts true
# 2) CI 한정으로 끄고 실행이 필요한 패키지만 명시
NPM_CONFIG_IGNORE_SCRIPTS=true npm ci

4. 사후 감지 모니터링

  • OSV-Scanner / Socket / Snyk Advisor 등 신뢰 평판 도구 1개 이상 CI 에 결합
  • 운영 서버 egress 화이트리스트 — 알려진 의존 도메인만 허용

GitHub Actions 차단 스크립트 (복사용)

name: ci
on: [push, pull_request]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - name: install (locked + no scripts)
        run: |
          npm ci --ignore-scripts
      - name: dependency audit
        run: |
          npm audit --audit-level=high
          npx --yes osv-scanner --lockfile package-lock.json
      - name: postinstall pattern scan
        run: |
          ! grep -R "postinstall" node_modules/*/package.json \
            | grep -E "curl|wget|nc |child_process" || (echo "suspicious postinstall" && exit 1)

발견했다면 — 사고 대응 4단계

  1. 의존성 격리: 영향 버전을 정확히 박은 핫픽스 PR 즉시 배포 ("axios": "1.x.y" 등)
  2. 시크릿 일제 회전: .npmrc, GitHub PAT, AWS·Stripe·Toss·OpenAI 키 등 모두 회전 — API 키 유출 대응 가이드
  3. 로그 역추적: 침해 추정 시점 이후 외부 호출·메타데이터 요청·DB 대량 조회 로그 점검
  4. 고객 통지·당국 신고: PII 유출 가능성 있으면 개인정보보호법상 통지 의무 점검 — 긴급 대응 가이드

AI 코딩 환경 별 추가 체크

환경추가 점검
Vercel / Netlify빌드 환경변수, OIDC 권한 범위, 빌드 캐시 격리
Bolt / Replit / Cursor자동 설치되는 의존성 PR 사람 리뷰 의무화
GitHub Actionspull_request_target 사용 점검, OIDC aud 제한
로컬 개발ignore-scripts 기본 on, 개인 토큰은 1Password CLI 등 격리

실제 사례·근거

  • Microsoft Security Blog (2026-04-01) "Mitigating the Axios npm supply chain compromise" — 침해 흐름·완화 가이드(출처: microsoft.com/security/blog).
  • CISA Vulnerability Summary (Week of April 27) — 영향 패키지·KEV 추가 항목(출처: cisa.gov).
  • 2025 chalk/debug 침해 — 동일 패턴 1차 사고. 본 사고는 트래픽·생태계 규모만 확대.

오늘 시작할 5가지 액션

  1. npm ci --ignore-scripts 로 CI 변경 (30분)
  2. 위 GitHub Actions 차단 스크립트 적용
  3. OSV-Scanner 또는 Socket 1개 결합
  4. 관련 글: 공급망 5체크, API 키 유출 점검, 긴급 대응
  5. 외부 노출은 CodeScan 30초 무료 스캔

CodeScan 이 잡아 주는 것

CodeScan 은 해킹대회 수상·레드팀 운영 경력의 보안 전문 기업 SENTRIX 가 운영하는 보안 점검 SaaS 다. 공급망 사고의 결과로 흔히 노출되는 .env·관리자 페이지·민감 파일·헤더 17종을 URL 한 줄로 자동 점검한다.

다음에 해야 할 한 가지

공급망 공격은 운영팀이 어떻게 막을지가 아니라, "이미 설치된 패키지가 안전한가" 를 30분 안에 확인할 수 있느냐가 핵심이다.

👉 실무자라면 지금 위 GitHub Actions 스크립트를 복사해 적용하고 CodeScan 30초 무료 스캔으로 인프라 노출을 함께 끊어라.

👉 임원/CISO 라면 SENTRIX 30분 1:1 공급망 보안 진단으로 lockfile·CI·런타임 3계층 점검을 권장한다.

{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ {"@type":"Question","name":"Axios·SAP npm 공급망 사고는 무엇인가요?","acceptedAnswer":{"@type":"Answer","text":"2026년 4월 Microsoft·CISA가 공동 경보한 사고로, 주간 7천만+ 다운로드 인기 패키지에 악성 코드가 박혀 npm install 한 줄로 침해가 전파됐습니다."}}, {"@type":"Question","name":"AI 코딩 SaaS 가 특히 위험한 이유는?","acceptedAnswer":{"@type":"Answer","text":"AI 도구가 npm install을 자동 제안·실행하기 때문입니다. 검토 없이 lockfile이 갱신되면 침해 버전이 그대로 운영에 박힙니다."}}, {"@type":"Question","name":"npm audit 으로 충분한가요?","acceptedAnswer":{"@type":"Answer","text":"충분하지 않습니다. audit/Dependabot은 공표된 CVE를 잡는 도구이고, 공급망 공격은 공표 전이 가장 위험합니다. lockfile 무결성·CI 격리·런타임 외부호출 차단을 같이 두어야 합니다."}}, {"@type":"Question","name":"이미 설치했다면 어떻게 확인하나요?","acceptedAnswer":{"@type":"Answer","text":"npm ls 로 실제 깔린 버전을 영향 범위와 대조하고, 의심 시 키 회전·로그 역추적·재배포 3단계를 실행하세요."}}, {"@type":"Question","name":"가장 빠른 1수는 무엇인가요?","acceptedAnswer":{"@type":"Answer","text":"CI 를 npm ci --ignore-scripts 로 바꾸는 것입니다. lockfile 일치와 postinstall 차단을 동시에 얻을 수 있습니다."}} ] }
npm 공급망 공격 Axios 침해 SAP 침해 AI 코딩 보안 의존성 보안 lockfile CI 보안

내 사이트도 점검해보세요

CodeScan으로 보안 취약점을 무료로 점검할 수 있습니다.

무료 스캔 시작하기 →
🛒
추천 상품
웹서비스 런칭 전 보안 세팅
런칭 전에 반드시 해야 하는 보안 설정을 원격으로 직접 해드립니다. HTTPS, 환경변수 분리, 보안 헤더…
220,000원 150,000원

🔒 바이브코딩 보안 체크리스트 받기

바이브코딩 보안 체크리스트(PDF)를 무료로 받아보세요.