
guarddog v3.2.0
๐ ๐ GuardDog๋ ์ ์ฑ PyPI ๋ฐ npm ํจํค์ง๋ฅผ ์๋ณํ๋ CLI ๋๊ตฌ์ ๋๋ค.
GuardDog
GuardDog๋ ์ ์ฑ PyPI ๋ฐ npm ํจํค์ง, Go ๋ชจ๋, Rust ํฌ๋ ์ดํธ, RubyGems, GitHub Actions ๋๋ VSCode ํ์ฅ์ ์๋ณํ๋ CLI ๋๊ตฌ์ ๋๋ค. ํจํค์ง ์์ค ์ฝ๋์ ๋ํ ์ ์ ๋ถ์(YARA ๊ท์น ๊ธฐ๋ฐ)๊ณผ ํจํค์ง ๋ฉํ๋ฐ์ดํฐ ๋ถ์์ ์ํํ์ฌ ๊ณต๊ธ๋ง ๊ณต๊ฒฉ์ ํ์งํฉ๋๋ค.
GuardDog๋ง์ ์ฐจ๋ณ์ : GuardDog๋ ๋จ์ํ ์์ฌ์ค๋ฌ์ด ํจํด์ ๋์ดํ๋ ๋์ , ๋ฐ๊ฒฌ ์ฌํญ์ ์ฐ๊ด์์ผ ๊ณต๊ฒฉ ์ฒด์ธ ๊ธฐ๋ฐ์ ์ค์ ์ํ์ ์๋ณํฉ๋๋ค. ํจํค์ง๊ฐ ๊ณ ์ํ์ผ๋ก ํ๋๊ทธ๋๋ ค๋ฉด ๋์ผํ ํ์ผ์ ์์ ์ ์ํํ ์ ์๋ ๊ธฐ๋ฅ(์: ๋คํธ์ํฌ ์ ๊ทผ)๊ณผ ์ํ ์งํ(์: ์์ฌ์ค๋ฌ์ด ๋๋ฉ์ธ)๊ฐ ๋ชจ๋ ์์ด์ผ ํฉ๋๋ค.
๋ค์์์ ์ฝ๋๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ์ค์บํฉ๋๋ค:
- NPM: npmjs.org์ ํธ์คํ ๋ ํจํค์ง
- PyPI: PyPI.org์ ํธ์คํ ๋ ์์ค ํ์ผ(tar.gz) ํจํค์ง
- Go: GitHub.com์ ํธ์คํ ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ GoLang ์์ค ํ์ผ
- Rust: crates.io์ ํธ์คํ ๋ ํฌ๋ ์ดํธ
- RubyGems: rubygems.org์ ํธ์คํ ๋ Gem ํจํค์ง
- GitHub Actions: GitHub.com์ ํธ์คํ ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ JavaScript ์์ค ํ์ผ
- VSCode Extensions: marketplace.visualstudio.com์ ํธ์คํ ๋ ํ์ฅ(.vsix) ํจํค์ง

GuardDog ์๋ ๋ฐฉ์
GuardDog๋ ์ฝ๋ ๊ธฐ๋ฅ๊ณผ ์ํ ์งํ๋ฅผ ์ฐ๊ด์ํค๋ ์ํ ๊ธฐ๋ฐ ํ์ง ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค:
- ํ์ง: ๊ท์น์ ๊ธฐ๋ฅ(์ฝ๋๊ฐ ํ ์ ์๋ ์ผ) ๋๋ ์ํ(์์ฌ์ค๋ฌ์ด ์งํ)์ ์๋ณํฉ๋๋ค.
- ์ฐ๊ด ๋ถ์: ๋์ผํ ํ์ผ์์ ๋ฐ๊ฒฌ๋ ๊ธฐ๋ฅ๊ณผ ์ํ์ ์ํ์ ๊ตฌ์ฑํฉ๋๋ค (ํ์ผ ๊ฐ ์ผ์น๋ ์ํ์ ๊ตฌ์ฑํ๋ ์ฌ๊ฐ๋๋ ๋ฎ์์ง๋๋ค).
- ์ ์ํ: ์ํ์ ๊ณต๊ฒฉ ์ฒด์ธ์ ์์ฑ๋์ ์ ๊ตํจ์ ๋ฐ๋ผ 0-10์ ์ผ๋ก ์ ์ํ๋ฉ๋๋ค.
- ๋ณด๊ณ : ํจํค์ง๋ ์์ธ ์ํ ๋ถ์๊ณผ ํจ๊ป ์ฌ๊ฐ๋ ๋ฑ๊ธ(๋ฎ์/์ค๊ฐ/๋์)์ ๋ฐ์ต๋๋ค.
์ ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ธ๊ฐ?
๊ธฐ์กด SAST ๋๊ตฌ๋ ๋ชจ๋ ์์ฌ์ค๋ฌ์ด ํจํด์ ๋ ๋ฆฝ์ ์ผ๋ก ํ๋๊ทธํ์ฌ ์๋ฆผ ํผ๋ก๋ฅผ ์ ๋ฐํฉ๋๋ค. GuardDog๋ ๋ค์์ ์ดํดํฉ๋๋ค:
- ๊ธฐ๋ฅ๋ง์ผ๋ก๋ ์ ์ฑ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค (๋คํธ์ํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ HTTP ์์ฒญ์ ํด์ผ ํฉ๋๋ค)
- ์ํ ์งํ๋ง์ผ๋ก๋ ์คํ์ผ ์ ์์ต๋๋ค (ํ ์คํธ ํฝ์ค์ฒ, ๋ฌธ์)
- ๊ธฐ๋ฅ + ์ํ์ด ํจ๊ป ์์ผ๋ฉด ์ค์ ์ํ์ ๋ํ๋ ๋๋ค (์ ์์ ์ธ ์์ ์ ํ ์ ์๊ณ ์ค์ ๋ก ์ํํ ์ฝ๋)
์ํ ์ ์ํ
ํจํค์ง๋ ๋ค ๊ฐ์ง ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก 0-10 ์ฌ์ด์ ์ ์๋ฅผ ๋ฐ์ต๋๋ค:
| ์์ธ | ๊ฐ์ค์น | ์ค๋ช |
|---|---|---|
| ์ฌ๊ฐ๋ | 30% | ๊ฐ์ฅ ๋์ ์ฌ๊ฐ๋์ ๋ฐ๊ฒฌ ํญ๋ชฉ(๋ฎ์/์ค๊ฐ/๋์) |
| ๊ณต๊ฒฉ ์ฒด์ธ | 20% | ์์ ํ ๊ณต๊ฒฉ ๋จ๊ณ์ ์กด์ฌ ์ฌ๋ถ(์ด๊ธฐ โ ์ค๊ธฐ/ํ๊ธฐ) |
| ํน์ด์ฑ | 30% | ํจํด์ด ๋ฉ์จ์ด์ ์ ์ ์ฝ๋๋ฅผ ๊ตฌ๋ณํ๋ ํน์ด์ฑ ์ ๋ |
| ์ ๊ตํจ | 20% | ๊ธฐ์ ๋ฐ์ ์์ค |
์ ์ ๋ผ๋ฒจ:
- 0: ํ์ง๋ ์ํ ์์
- 0.1-3: ๋ฎ์ ์ํ(๋จ์ผ ๋จ๊ณ ์ํ, ๋ฎ์ ํน์ด์ฑ)
- 3.1-7.5: ์ค๊ฐ ์ํ(๋ถ๋ถ์ ๊ณต๊ฒฉ ์ฒด์ธ, ๋ฉํ๋ฐ์ดํฐ ์งํ ๋๋ ๋จ์ผ ๋จ๊ณ ์ฝ๋ ๋ฐ๊ฒฌ)
- 7.6-10: ๋์ ์ํ(์์ค ์ฝ๋ ์ฆ๊ฑฐ๊ฐ ์๋ ๋ค๋จ๊ณ ๊ณต๊ฒฉ ์ฒด์ธ โ ์์ ๊ฐ๋ฅ์ฑ์ด ๊ฑฐ์ ํ์คํจ)
๊ณต๊ฒฉ ์ฒด์ธ ๋จ๊ณ (MITRE ATT&CK ๊ธฐ๋ฐ):
- ์ด๊ธฐ: ์ด๊ธฐ ์ ๊ทผ, ์คํ ๊ธฐ๋ฅ
- ์ค๊ธฐ: ์ง์์ฑ, ๋ฐฉ์ด ์ฐํ, ์๊ฒฉ ์ฆ๋ช ์ ๊ทผ
- ํ๊ธฐ: ๋ช ๋ น ๋ฐ ์ ์ด, ๋ฐ์ดํฐ ์ ์ถ, ์ํฅ
GuardDog์ฉ ์ Datadog Agent ํตํฉ ๋ฐ Cloud SIEM ์ฝํ ์ธ ํฉ์ ํ์ธํ์ธ์.
์์ํ๊ธฐ
์ค์น
GuardDog๋ฅผ ์คํํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ uvx๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค:
uvx guarddog pypi scan requests
๋ก์ปฌ์ ์ค์นํ๋ ค๋ฉด:
uv tool install guarddog
# or
pip install guarddog
๋๋ Docker ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ์ธ์:
docker pull ghcr.io/datadog/guarddog
alias guarddog='docker run --rm ghcr.io/datadog/guarddog'
์ฐธ๊ณ : Windows์์ ์ง์๋๋ ์ ์ผํ ์ค์น ๋ฐฉ๋ฒ์ Docker์ ๋๋ค.
์ฌ์ฉ ์์
# Scan the most recent version of the 'requests' package
guarddog pypi scan requests
# Scan a specific version of the 'requests' package
guarddog pypi scan requests --version 2.28.1
# Scan the 'request' package using 2 specific heuristics
guarddog pypi scan requests --rules exec-base64 --rules code-execution
# Scan the 'requests' package using all rules but one
guarddog pypi scan requests --exclude-rules exec-base64
# Scan a local package archive
guarddog pypi scan /tmp/triage.tar.gz
# Scan a local package directory
guarddog pypi scan /tmp/triage/
# Scan a package stored in S3 (a folder/prefix or a single archive object)
guarddog pypi scan s3://my-bucket/path/to/package/
guarddog pypi scan s3://my-bucket/path/to/package.tar.gz
# Scan every package referenced in a requirements.txt file of a local folder
guarddog pypi verify workspace/guarddog/requirements.txt
# Scan every package referenced in a requirements.txt file and output a sarif file - works only for verify
guarddog pypi verify --output-format=sarif workspace/guarddog/requirements.txt
# Output JSON to standard output - works for every command
guarddog pypi scan requests --output-format=json
# All the commands also work on npm, go, crates, rubygems
guarddog npm scan express
guarddog go scan github.com/DataDog/dd-trace-go
guarddog go verify /tmp/repo/go.mod
# Scan Rust crates
guarddog crates scan serde
guarddog crates verify /tmp/repo/Cargo.lock
# Scan RubyGems packages
guarddog rubygems scan rails
guarddog rubygems verify /tmp/repo/Gemfile.lock
# Additionally can support scanning GitHub actions that are implemented in JavaScript
guarddog github_action scan DataDog/synthetics-ci-github-action
guarddog github_action verify /tmp/repo/.github/workflows/main.yml
# Scan VSCode extensions from the marketplace
guarddog extension scan ms-python.python
# Scan a specific version of a VSCode extension
guarddog extension scan ms-python.python --version 2023.20.0
# Scan a local VSCode extension directory or VSIX archive
guarddog extension scan /tmp/my-extension/
# Run in debug mode
guarddog --log-level debug npm scan express
์๋๋ฐ์ค ์ค์บ๋
ํจํค์ง๋ฅผ ์ค์บํ ๋ GuardDog๋ ์ปค๋ ์์ค ์๋๋ฐ์ค(Linux์์๋ Landlock, macOS์์๋ Seatbelt, nono ์ฌ์ฉ) ๋ด์์ ์์ค ์ฝ๋ ๋ถ์์ ์คํํฉ๋๋ค. ์๋๋ฐ์ค๋ ๋ชจ๋ ๋คํธ์ํฌ ์ ๊ทผ์ ์ฐจ๋จํ๊ณ ํ์ผ ์์คํ ์์ ์ ๋ถ์์ ํ์ํ ๊ฒฝ๋ก๋ก๋ง ์ ํํฉ๋๋ค. ์ด๋ฅผ ํตํด ์์นด์ด๋ธ ์ถ์ถ ๋๋ ์ค์บ ์ค์ ์ฝ๋๋ฅผ ์คํํ๋ ค๋ ์ ์ฑ ํจํค์ง๋ก๋ถํฐ ๋ณดํธํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์๋๋ฐ์ค๋ ํ์์
๋๋ค. ํ๋ซํผ์์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ๋ณดํธ ์์ด ์คํํ๋ ๋์ ์ค์บ์ด ์คํจํฉ๋๋ค. ์๋๋ฐ์ค ์์ด ์ค์บํ๋ ค๋ฉด ๋ช
์์ ์ผ๋ก --no-sandbox๋ฅผ ์ ๋ฌํด์ผ ํฉ๋๋ค:
# Default: require the sandbox, exit with an error if it's unavailable
guarddog pypi scan requests
# Explicitly disable the sandbox
guarddog pypi scan requests --no-sandbox
์๊ฒฉ ํจํค์ง์ ๊ฒฝ์ฐ ์ธ ๋จ๊ณ๊ฐ ์๋ก ๋ค๋ฅธ ๊ถํ ์์ค์ผ๋ก ์คํ๋ฉ๋๋ค:
- ๋ค์ด๋ก๋ ๋ฐ ๋ฉํ๋ฐ์ดํฐ ๋ถ์์ ์๋๋ฐ์ค ์์ด ์คํ๋ฉ๋๋ค(๋คํธ์ํฌ ์ ๊ทผ ํ์)
- ์์นด์ด๋ธ ์ถ์ถ์ ์๋๋ฐ์ค๋ ํ์ ํ๋ก์ธ์ค์์ ์คํ๋ฉ๋๋ค(๋คํธ์ํฌ ์ฐจ๋จ, ํ์ผ ์์คํ ์ ํ)
- ์์ค ์ฝ๋ ๋ถ์(YARA)์ ์๋๋ฐ์ค ์ ์ฉ ํ ๋ฉ์ธ ํ๋ก์ธ์ค์์ ์คํ๋ฉ๋๋ค(๋คํธ์ํฌ ์ฐจ๋จ, ์ถ์ถ๋ ํ์ผ๋ก ํ์ผ ์์คํ ์ ํ)
์๋๋ฐ์ค๋ ์์นด์ด๋ธ ์ถ์ถ ์ค ๋ฐ์ํ๋ ๊ฒฝ๋ก ํ์ ๋ฐ ์ฝ๋ ์คํ ์ทจ์ฝ์ (CVE-2022-23530, CVE-2022-23531, CVE-2026-22870, CVE-2026-22871)์ ์ํํ๊ธฐ ์ํด ๋์ ๋์์ต๋๋ค.
S3์์ ํจํค์ง ์ค์บ
GuardDog๋ S3์ ์ ์ฅ๋ ํจํค์ง๋ฅผ ํด๋/์ ๋์ฌ ๋๋ ๋จ์ผ ์์นด์ด๋ธ ๊ฐ์ฒด ํํ๋ก ์ค์บํ ์ ์์ต๋๋ค:
guarddog npm scan s3://my-bucket/path/to/package/
guarddog npm scan s3://my-bucket/path/to/package.tar.gz
์ด ๊ธฐ๋ฅ์ ๊ธฐ์กด AWS ์๊ฒฉ ์ฆ๋ช
(ํ๊ฒฝ ๋ณ์, ~/.aws, SSO ๋๋ IAM ์ญํ )์ ์ฌ์ฉํฉ๋๋ค. GuardDog๋ ์์
์ ์์ํ๊ธฐ ์ ์ STS๋ฅผ ํตํด ์ธ์ฆ์ ํ์ธํ๊ณ ์ ํจํ ์๊ฒฉ ์ฆ๋ช
์ด ์์ผ๋ฉด ์ค๋ฅ์ ํจ๊ป ์ข
๋ฃ๋ฉ๋๋ค. ๊ฐ์ฒด๋ ์์ ๋๋ ํฐ๋ฆฌ์ ๋๊ธฐํ๋๊ณ ๋ค๋ฅธ ์ ๋ขฐํ ์ ์๋ ์ฝํ
์ธ ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์๋๋ฐ์ค์์ ์ค์บ๋ ํ ๋์คํฌ์์ ์ ๊ฑฐ๋ฉ๋๋ค.
๊ท์น
GuardDog๋ ์ํ ๊ธฐ๋ฐ ์ ์ํ ์์ง์ ๋ชจ๋ ์ฐธ์ฌํ๋ ๋ ๊ฐ์ง ์ ํ์ ํ์ง ๊ท์น์ ์ฌ์ฉํฉ๋๋ค:
- ์์ค ์ฝ๋ ๊ท์น(YARA): ๊ธฐ๋ฅ๊ณผ ์ํ์ ํ์งํ๋ ํจํค์ง ์์ค ์ฝ๋์ ์ ์ ๋ถ์
- ๋ฉํ๋ฐ์ดํฐ ๊ท์น(Python ๊ฐ์ง๊ธฐ): ๊ณต๊ธ๋ง ๊ณต๊ฒฉ ์งํ๋ฅผ ํ์งํ๋ ํจํค์ง ๋ ์ง์คํธ๋ฆฌ ๋ฉํ๋ฐ์ดํฐ ๋ถ์
์์ฝ์์คํ ๋ณ ์ ์ฒด ๊ท์น ๋ชฉ๋ก์ **RULES.md**๋ฅผ ์ฐธ์กฐํ์ธ์.
์ ๊ท์น ์์ฑ์ ๋ํ ์ง์นจ์ **WRITING_RULES.md**๋ฅผ ์ฐธ์กฐํ์ธ์.
GitHub Action์์ GuardDog ์คํ
CI ํ์ดํ๋ผ์ธ์ GuardDog๋ฅผ ํตํฉํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ SARIF ์ถ๋ ฅ ํ์์ ํ์ฉํ์ฌ GitHub์ code scanning ๊ธฐ๋ฅ์ ์ ๋ก๋ํ๋ ๊ฒ์ ๋๋ค.
์ด๋ฅผ ํตํด ๋ค์์ ์ป์ ์ ์์ต๋๋ค:
- GuardDog ์ค์บ ์ถ๋ ฅ์ ๊ธฐ๋ฐ์ผ๋ก ํ ํ ๋ฆฌํ์คํธ ์๋ ๋๊ธ
- GitHub UI์์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋ ๋ด์ฅ ์คํ ๊ด๋ฆฌ
GuardDog๋ฅผ ์ฌ์ฉํ๋ ์ํ GitHub Action:
name: GuardDog
on:
push:
branches:
- main
pull_request:
branches:
- main
permissions:
contents: read
jobs:
guarddog:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
name: Scan dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v7
- run: uvx guarddog pypi verify requirements.txt --output-format sarif --exclude-rules repository_integrity_mismatch > guarddog.sarif
- name: Upload SARIF file to GitHub
uses: github/codeql-action/upload-sarif@v3
with:
category: guarddog-builtin
sarif_file: guarddog.sarif
๊ฐ๋ฐ
๋ก์ปฌ GuardDog ๋ฒ์ ์คํ
- poetry์
python >=3.10ํ๊ฒฝ์ด ์๋์ง ํ์ธํ์ธ์poetry env use 3.10.0 - ์ข
์์ฑ ์ค์น
poetry install - guarddog ์คํ
poetry run guarddog๋๋poetry shell์คํ ํguarddog์คํ
๋จ์ ํ ์คํธ
๋ชจ๋ ๋จ์ ํ
์คํธ ์คํ: make test
ํจํค์ง ๋ฉํ๋ฐ์ดํฐ ํด๋ฆฌ์คํฑ์ ๋ํ ๋จ์ ํ
์คํธ ์คํ: make test-metadata-rules (ํ
์คํธ๋ ์ฌ๊ธฐ์ ์์ต๋๋ค).
๋ฒค์น๋งํน
์ ์ ๋ฐ ์ ์ฑ ํจํค์ง์ GuardDog๋ฅผ ์คํํ์ฌ ์คํ๊ณผ ๋ฏธํ์ ํ์ธํ ์ ์์ต๋๋ค. ./tests/samples๋ฅผ ์ฐธ์กฐํ์ธ์.
์ฝ๋ ํ์ง ๊ฒ์ฌ
๋ค์ ๋ช ๋ น์ผ๋ก ํ์ ์ฒด์ปค๋ฅผ ์คํํ์ธ์:
mypy --install-types --non-interactive guarddog
๊ทธ๋ฆฌ๊ณ ๋ฆฐํฐ๋ ๋ค์ ๋ช ๋ น์ผ๋ก ์คํํ์ธ์:
flake8 guarddog --count --select=E9,F63,F7,F82 --show-source --statistics --exclude tests/analyzer/sourcecode,tests/analyzer/metadata/resources,evaluator/data
flake8 guarddog --count --max-line-length=120 --statistics --exclude tests/analyzer/sourcecode,tests/analyzer/metadata/resources,evaluator/data --ignore=E203,W503
ํ๊ฒฝ ๋ณ์๋ฅผ ํตํ ๊ตฌ์ฑ
GuardDog์ ๋์์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ ์ํ ์ ์์ต๋๋ค:
์ผ๋ฐ ๊ตฌ์ฑ
| ํ๊ฒฝ ๋ณ์ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
|---|---|---|
GUARDDOG_PARALLELISM | ๋ณ๋ ฌ ์ฒ๋ฆฌ์ ์ฌ์ฉํ ์ค๋ ๋ ์ | ์ฌ์ฉ ๊ฐ๋ฅํ CPU ์ |
GUARDDOG_VERIFY_EXHAUSTIVE_DEPENDENCIES | ์ข
์์ฑ์ ๊ฐ๋ฅํ ๋ชจ๋ ๋ฒ์ ๋ถ์ (true/false) | false |
GUARDDOG_NPM_INCLUDE_DEV_DEPENDENCIES | npm package.json ํ์ผ ์ค์บ ์ devDependencies ํฌํจ (true/false); guarddog npm verify --include-dev-dependencies๋ก ํธ์ถ๋ณ๋ก ์ ํํ ์๋ ์์ | false |
GUARDDOG_TOP_PACKAGES_CACHE_LOCATION | ์์ ํจํค์ง ์บ์ ๋๋ ํฐ๋ฆฌ ์์น | guarddog/analyzer/metadata/resources |
GUARDDOG_YARA_EXT_EXCLUDE | YARA ์ค์บ์์ ์ ์ธํ ํ์ผ ํ์ฅ์์ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ชฉ๋ก | ini,md,rst,txt,lock,json,yaml,yml,toml,xml,html,csv,sql,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,changelog,readme,makefile,dockerfile,pkg-info,d.ts |
๋ฉํ๋ฐ์ดํฐ ๊ท์น ๊ตฌ์ฑ
| ํ๊ฒฝ ๋ณ์ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
|---|---|---|
GUARDDOG_NEW_DEPENDENCY_RISK_THRESHOLD | risky_new_dependency ๊ท์น์์ ์๋ก ๋์
๋ ์ข
์์ฑ์ด ์์ ํจํค์ง๋ฅผ ํ๋๊ทธํ๊ธฐ ์ํ ์ต์ ์ํ ์ ์ | 5.0 |
์์นด์ด๋ธ ์ถ์ถ ๋ณด์ ์ ํ
GuardDog๋ ์์ถ ํญํ ๋ฐ ํ์ผ ๋์คํฌ๋ฆฝํฐ ๊ณ ๊ฐ ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํจํค์ง ์์นด์ด๋ธ ์ถ์ถ ์ ์ฌ๋ฌ ๋ณด์ ๊ฒ์ฌ๋ฅผ ๊ตฌํํฉ๋๋ค:
| ํ๊ฒฝ ๋ณ์ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
|---|---|---|
GUARDDOG_MAX_UNCOMPRESSED_SIZE | ํ์ฉ๋๋ ์ต๋ ์์ถ ํด์ ํฌ๊ธฐ(๋ฐ์ดํธ) (๋์คํฌ ๊ณต๊ฐ ๊ณ ๊ฐ ๋ฐฉ์ง) | 2147483648 (2 GB) |
GUARDDOG_MAX_COMPRESSION_RATIO | ํ์ฉ๋๋ ์ต๋ ์์ถ ๋น์จ (์์ฌ์ค๋ฌ์ด ์์ถ ํจํด ๊ฐ์ง) | 100 (100:1) |
GUARDDOG_MAX_FILE_COUNT | ์์นด์ด๋ธ์ ํ์ฉ๋๋ ์ต๋ ํ์ผ ์ (ํ์ผ ๋์คํฌ๋ฆฝํฐ/inode ๊ณ ๊ฐ ๋ฐฉ์ง) | 100000 |
๊ด๋ฆฌ์
์ ์
๊ฐ์ฌ์ ๊ธ
์๊ฐ:
- ๋ฐฑ์คํ๋ฒ์ ๋์ดํ ์ปฌ๋ ์ : ์คํ์์ค ์ํํธ์จ์ด ๊ณต๊ธ๋ง ๊ณต๊ฒฉ ๊ฒํ
- npm ๊ณต๊ธ๋ง์ ์ฝ์ ์ ๋ฌด์์ธ๊ฐ?
- npm ๋ฐ PyPI ๋ ์ง์คํธ๋ฆฌ์ ์ผ๋ฐ์ ์ธ ์ํ์ ๋ํ ์กฐ์ฌ
- Python ๋ฉ์จ์ด ํ์ง ์ ๊ทผ ๋ฐฉ์์ ๋ฒค์น๋งํฌ ๋น๊ต
- ์ธํฐํ๋ฆฌํฐ ์ธ์ด์ฉ ํจํค์ง ๊ด๋ฆฌ์์ ๋ํ ๊ณต๊ธ๋ง ๊ณต๊ฒฉ ์ธก์ ์ ํฅํ์ฌ