제공 서비스
웹 보안 점검 · 무료 단건 외부 공격표면 관리 · 지속 자동 AI 취약점 진단 · 신규 모의해킹 · 침투 테스트
요금제 스토어 블로그 파트너 마이페이지 무료 보안 점검
AI 코딩 보안 2026.05.09 · 조회 494

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

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

S
보안 전문 기업 SENTRIX 레드팀
해킹대회 수상 · 보안 실무 10년 · 실전 진단 경험을 바탕으로 작성합니다.

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 보안

내 사이트도 점검해보세요

URL 하나면 21개 항목을 30초에 무료 점검합니다. 회원가입·카드 없이.

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

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

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