
PMG는 프록시, 샌드박스 및 SafeDep의 위협 인텔리전스 피드를 사용하여 악성 오픈 소스 패키지로부터 개발자와 AI 에이전트를 보호합니다.
악성 npm 및 pip 패키지가 설치되기 전에 차단합니다.
이미 사용 중인 패키지 매니저를 위한 심층 방어.
개발자와 AI 코딩 에이전트는 매일 패키지를 설치합니다. 각 npm install 또는 pip install은 아무도 검토하지 않는 수천 줄의 코드를 실행합니다.
최근 인기 생태계에서 발생한 침해 사례:
PMG는 무료이며 오픈 소스(Apache 2.0)이고, 계정이나 API 키가 필요 없습니다. 모든 패키지 설치를 가로채서 코드가 실행되기 전에 SafeDep의 무료 커뮤니티 API에서 알려진 악성 코드를 확인합니다. 한 번 설치하면 이후 모든 npm install, pip install, poetry add를 보호합니다.
PMG는 심층 방어 접근 방식을 사용합니다. 설정이 필요 없으며 Zsh, Bash, Fish에서 작동하고, 각 설치는 코드가 실행되기 전에 활성화된 보호 계층을 통과하며, 실행 후 감사 추적을 남깁니다.
npm, pip 및 기타 패키지 매니저를 래핑합니다. 개발자와 AI 에이전트는 동일한 명령어를 사용합니다. 워크플로 변경이 없습니다.PMG는 개발자와 AI 에이전트 모두를 보호하고, 샌드박스 및 쿨다운을 기본 제공하는 유일한 무료 오픈 소스 설치 시점 패키지 방화벽입니다.
curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
Homebrew, npm 및 기타 설치 방법은 설치를 참조하세요.
PMG를 셸에 연결하여 패키지 매니저를 가로채도록 합니다.
pmg setup install
# 변경 사항을 적용하려면 터미널을 다시 시작하세요.
팁: PMG 업그레이드 후
pmg setup install을 다시 실행하여 새 구성 옵션을 적용하세요.Linux 모든 사용자 / 골든 이미지:
sudo pmg setup install --system— docs/system-install.md 참조.
설치를 확인하고 보호가 작동 중인지 확인합니다:
pmg setup doctor
선택 사항: PMG는 패키지 매니저에 실행 시 주입하는 즉석 CA로 HTTPS 트래픽을 검사합니다. 실행 간에 단일 CA를 유지하고 OS 신뢰 저장소에서 신뢰하도록 하려면(예: macOS 및 Windows에서 Go와 같이 CA 환경 변수를 무시하는 도구에 필요), 한 번 설치하세요:
pmg setup cert install # 사용자 범위, sudo 불필요 pmg setup cert status # 신뢰 상태 및 만료 확인범위, 교체 및 제거는 Certificate Authority 참조.
PMG가 위협을 차단하는 모습을 확인합니다.
npm install --no-cache --prefer-online [email protected]
참고:
safedep-test-pkg는 SafeDep 데이터베이스에서 악성으로 표시된 무해한 테스트 패키지로, 테스트 및 확인 목적입니다.
평소처럼 패키지 매니저를 계속 사용하거나 AI 코딩 에이전트가 실행하도록 두세요. PMG가 경로에 있어 악성 패키지를 차단합니다.
npm install express
# 또는
pip install requests
PMG는 이미 사용 중인 도구를 지원합니다:
GitHub에서 최신 릴리스를 다운로드하고 SHA-256 체크섬을 확인한 후 $HOME/.local/bin (PATH에 있는 경우) 또는 /usr/local/bin에 설치합니다.
curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
brew tap safedep/tap
brew install safedep/tap/pmg
npm install -g @safedep/pmg
참고: NPM 기반 설치는 Node.js가
mise또는asdf같은 버전 관리자로 관리될 때 깨지기 쉽습니다. 전역npmbin 경로는 활성 Node 버전에 따라 변경되므로, 버전을 전환하면pmg가 PATH에서 사용 불가능하거나(또는 이전 설치를 가리키게) 될 수 있습니다. 이러한 환경에서는 설치 스크립트나 Homebrew를 선호하세요.
# $(go env GOPATH)/bin이 $PATH에 있는지 확인
go install github.com/safedep/pmg@latest
릴리즈 페이지에서 플랫폼에 맞는 최신 바이너리를 다운로드하세요.
매 릴리즈마다 사전 빌드된 멀티 아키텍처(linux/amd64, linux/arm64) 이미지가 GitHub Container Registry에 게시됩니다. 이미지 진입점은 pmg입니다.
# 최신 이미지 가져오기 (또는 버전 태그 고정, 예: :v1.2.3)
docker pull ghcr.io/safedep/pmg:latest
# 모든 pmg 명령어 실행
docker run --rm ghcr.io/safedep/pmg:latest version
한 단계로 CI 워크플로를 보호하세요. PMG는 작업 내 모든 npm install, pip install 등을 분석합니다.
- uses: safedep/pmg@v1
with:
server-mode: true
# HTTP_PROXY를 통해 자동으로 가로채짐
- run: npm ci
- name: PMG 정책 적용
if: always()
run: pmg proxy stop --fail-on-violation # 데몬 중지, 차단 시 작업 실패 처리
기본적으로 악성 코드 차단 및 의존성 쿨다운이 제공됩니다. 샌드박스 격리는 sandbox 입력을 통해 옵트인됩니다. 입력(paranoid, sandbox, cooldown-days, ...)으로 동작을 조정하거나 config-file을 리포지토리의 YAML 파일로 지정하세요. 전체 참조는 docs/github-action.md를 확인하세요.
셸 통합 제거:
pmg setup remove
PMG 구성 파일도 함께 제거하려면:
pmg setup remove --config-file
그런 다음 PMG 자체를 제거합니다:
# Homebrew
brew uninstall safedep/tap/pmg
# NPM
npm uninstall -g @safedep/pmg
PMG 빌드는 재현 가능하며 서명되어 있습니다.
PMG가 나쁜 패키지로부터 여러분을 보호했다면, 이 리포지토리에 스타를 남겨주세요. 다른 사람들이 찾는 데 도움이 됩니다.
기여는 환영합니다. 빌드 및 테스트 지침은 CONTRIBUTING.md를 참조하세요.
모든 기여자에게 감사드립니다 ❤️
PMG는 익명 사용 데이터를 수집합니다. 비활성화하려면 다음 중 하나를 수행하세요:
disable_telemetry: true 설정, 또는PMG_DISABLE_TELEMETRY=true 환경 변수 내보내기| 기능 | PMG | Socket | safe-chain | Snyk | Dependabot |
|---|
| 오픈 소스 / 공개 개발 | ✓ | ✗ | ✓ | ✗ | ✗ |
| 계정 또는 API 키 불필요 | ✓ | ✓ | ✓ | ✗ | ✗ |
| 설치 시 악성 패키지 차단 | ✓ | ✓ | ✓ | ✗ | ✗ |
| 의존성 쿨다운 정책 | ✓ | ✗ | ✓ | ✗ | ✗ |
| 런타임 샌드박싱 | ✓ | ✗ | ✗ | ✗ | ✗ |
| AI 코딩 에이전트 투명하게 보호 | ✓ | ✗ | ✗ | ✗ | ✗ |
| 로컬 감사 로그 | ✓ | ✗ | ✗ | ✗ | ✗ |
| 알려진 CVE 수정 PR | ✗ | ✗ | ✗ | ✓ | ✓ |
| 생태계 | 도구 | 명령어 예시 |
|---|
| Node.js | npm | npm install <pkg> |
pnpm | pnpm add <pkg> | |
yarn | yarn add <pkg> | |
bun | bun add <pkg> | |
npx | npx <pkg> | |
pnpx | pnpx <pkg> | |
| Python | pip | pip install <pkg> |
pipx | pipx run <pkg> | |
poetry | poetry add <pkg> | |
uv | uv add <pkg> | |
uvx | uvx <pkg> |