마루옵스서버 · 네트워크 · AI 기술 노트

소개문의

GitHub Package Firewall 공개 프리뷰: 현재 npm 지원과 설치 경로 점검

키보드와 마우스가 놓인 작업대

참고 사진 · 키보드와 마우스가 놓인 작업대 · 사진: Jeff Sheldon ugmonk / 원본 / CC0 · 목록용 크기 조정

GitHub가 패키지 메타데이터와 다운로드를 검사하는 Package Firewall을 Enterprise Cloud 대상 공개 프리뷰로 소개했습니다. 초기 지원 대상은 npm이며, 프리뷰 기간 무료와 향후 정식 제공의 사용량 기반 과금을 구분했습니다. GitHub 공식 발표

패키지 설치 시점의 정책 검사는 악성 의존성이 실행되기 전의 통제 지점을 추가합니다. 하지만 에이전트나 CI가 다른 레지스트리, 직접 URL이나 기존 캐시를 사용하면 의도한 경로를 통과하지 않을 수 있어요.

이 글의 목차

의존성 설치가 실행 경계가 되는 이유

프로젝트의 의존성은 앱을 실행할 때만 영향을 주는 것이 아닙니다. 패키지를 설치하는 단계에 스크립트가 실행되거나 빌드 도구가 추가 파일을 가져올 수 있습니다. CI와 코딩 에이전트는 작업을 위해 이런 설치를 자주 자동으로 수행합니다. 개발자가 최종 코드 변경만 검토해도 설치 중 발생한 행동은 이미 지나갔을 수 있어요. 설치 시점에 검사하는 통제가 필요한 배경입니다.

이 통제는 악성 패키지 신호와 정책을 검사할 기회를 더하지만 모든 실행을 안전하다고 증명하는 것은 아닙니다. 정상 패키지로 보이는 경우에도 과도한 파일 접근이나 네트워크 권한은 별도 문제입니다. 의존성을 검사하는 경로와 빌드 작업 자체의 권한을 함께 줄여야 공급망 통제의 여러 층을 구성할 수 있습니다.

메타데이터와 실제 파일이 같은 경로를 지나야 합니다

설치 도구는 먼저 버전과 의존성 같은 메타데이터를 받고 실제 패키지 파일을 내려받습니다. 설정 일부만 바꾸면 한 요청은 검사 경로를 거치고 다른 요청은 직접 외부로 나갈 수 있습니다. 개발 PC와 CI, 에이전트 실행 환경에서 각각 어떤 주소로 요청하는지 확인해야 합니다. 기존 내부 미러가 있다면 그 미러의 상위 다운로드 경로도 포함합니다.

캐시도 구분해서 봅니다. 다운로드를 검사하는 기능이 이미 캐시에 있는 파일을 자동으로 다시 검사한다고 가정해서는 안 됩니다. 직접 URL과 별도 저장소에 고정된 의존성도 정책 경로를 우회할 수 있습니다. 지원 생태계가 npm이라는 현재 범위를 기준으로 점검하고 다른 언어의 패키지까지 같은 상태라고 확대하지 않습니다.

차단 정책에는 예외의 수명도 필요합니다

예를 들어 긴급 수정이 담긴 새 버전이 대기 기간 정책에 걸릴 수 있습니다. 이런 경우 누가 근거를 검토해 예외를 승인하고 언제 예외를 해제할지 정합니다. 예외가 필요한 이유와 대상 패키지·버전을 좁혀 남기면 나중에 모든 새 버전을 통과시키는 넓은 허용으로 변하는 일을 줄일 수 있습니다.

대표 프로젝트에서 빈 캐시 설치와 캐시 사용 설치를 나누어 빌드 성공률과 지연을 비교합니다. 정책으로 차단된 사례가 의도한 결과인지도 검토합니다. 장애 때 무조건 상위 레지스트리로 직접 연결하도록 바꾸면 검사 경계가 사라질 수 있으므로 복구 절차도 승인해 둡니다. 프리뷰 평가 비용과 정식 제공 후의 과금 조건은 따로 계산합니다.

npm 시험 적용 범위

  • 실제 레지스트리 설정과 직접 다운로드·캐시 경로를 확인합니다.
  • 정상 패키지 차단 시 승인·예외·감사 절차를 정합니다.
  • 프리뷰 한계와 정식 제공 시 비용 조건을 검토합니다.

설치 경로를 바꾸는 작업은 빌드 성공률에 영향을 줄 수 있습니다. 대표 프로젝트부터 검증하고 정책을 단계적으로 적용합니다.

발표문 기준일: 2026-10-20 · 확인일: 2026-10-24