123% flere rapporterede CVE'er pr. dag i 2026 end sidste år.

Afhængigheder

pip-audit

pip-audit scanner Python-afhængigheder for pakker med kendte sårbarheder. Det kommer fra Python Packaging Authority og virker på miljøer, requirements-filer og projektfiler. Python har ingen ækvivalent til npm audit indbygget i pip, så dette er standardmåden at få en på.

Opdateret

Sådan kører du pip-audit

pip install pip-audit

pip-audit                          # the current environment
pip-audit -r requirements.txt      # a requirements file
pip-audit .                        # a local project
pip-audit --fix --dry-run          # show what would be upgraded
pip-audit --fix                    # upgrade vulnerable packages
pip-audit -s osv                   # use OSV instead of PyPI
pip-audit -f cyclonedx-json        # write a CycloneDX SBOM

Som standard slår det pakker op gennem PyPI's JSON API, som bygger på Python Packaging Advisory Database, og det kan bruge OSV i stedet. Se projektsiden for den fulde liste over muligheder.

Vær forsigtig med, hvad du auditerer

Det overrasker mange. Når du auditerer en requirements-fil, bliver dens afhængigheder resolvet, og projektet advarer om, at pip-audit -r INPUT funktionelt svarer til pip install -r INPUT. Pakkeinstallation kan køre kode, så en ondsindet pakke kan køre under auditen. Projektets egen regel er enkel: Hvis du ikke ville køre pip install på den, så kør heller ikke pip audit på den.

Det betyder også, at tjekket ikke kan beskytte dig mod en pakke uden advisory endnu, for eksempel en ny typosquat eller slopsquatting-pakke.

Kør pip-audit i CI

Der findes en officiel GitHub Action, pypa/gh-action-pip-audit, eller du kan selv køre kommandoen. Den afslutter med en exitkode, der ikke er nul, når den finder en sårbarhed, så en ny advisory kan få et build til at fejle uden nogen kodeændring.

- run: pip install -r requirements.txt pip-audit
- run: pip-audit

Auditér det samme sæt afhængigheder, som du leverer. Requirements med præcise versioner og hashes giver dig et stabilt resultat. Se hvor du skal køre SCA-scanninger for, hvordan det passer sammen med andre tjek.

Hvad pip-audit ikke dækker

  • Din kode. Det analyserer afhængighedstræer, ikke kildekode. Se i stedet SAST vs. SCA.
  • Native biblioteker. Python-wheels indeholder ofte C-biblioteker, og projektet oplyser, at det ikke finder transitive sårbarheder i delte biblioteker, der ikke er Python.
  • Alt andet i buildet. Dit base-image, systempakker og CI-actions ligger uden for dets synsfelt.
  • Nye ondsindede pakker. Det matcher kendte advisories.
  • Det build, der blev leveret. Python-resolution varierer med miljøet, så en audit på en anden maskine kan se andre versioner end releasen. Uden en lockfile kan resolutionsrækkefølgen også variere.

pip-audit vs. andre Python-scannere

Værktøj God til Bemærk
pip-audit Python-afhængigheder, gratis Kun Python
Trivy, Grype Python-pakker i et container-image Dækker også styresystempakker
Kommercielle SCA-værktøjer Policy og workflow på tværs af mange sprog og teams Se de bedste SCA-værktøjer

pip-audit og CRACI

pip-audit er et fornuftigt tjek på pull requests. CRACI arbejder fra den anden side: Som din GitHub Actions-runner registrerer det hver pakke, et job hentede fra PyPI og alle andre kilder, i alle lag af træet, i en SBOM af det build, der producerede releasen. Derefter bliver det ved med at tjekke den SBOM, efterhånden som nye sårbarheder offentliggøres, så du ved, om sidste års release er ramt. Se build-time SBOM'er og SBOM-generering under buildet.

pip-audit: ofte stillede spørgsmål

Hvad er pip-audit?

Et værktøj fra Python Packaging Authority, der scanner Python-miljøer, requirements-filer og projekter for pakker med kendte sårbarheder.

Findes der en npm audit til Python?

pip-audit er det nærmeste alternativ, men det er et separat værktøj og ikke en pip-kommando, så du skal selv installere det.

Hvordan retter du sårbarheder fundet af pip-audit?

Kør pip-audit --fix for at opgradere sårbare pakker, eller --fix --dry-run først for at se, hvad der ville ændre sig. Kør derefter dine tests, og opdater dine fastlåste requirements.

Er det sikkert at køre pip-audit på kode, du ikke stoler på?

Nej. At auditere en requirements-fil svarer funktionelt til at installere den, og installation kan køre kode. Hvis du ikke ville installere en pakke, så lad være med at auditere den.

Kan pip-audit generere en SBOM?

Ja. Det kan skrive CycloneDX i JSON eller XML. SBOM'en beskriver de Python-afhængigheder, det har resolvet, ikke resten af dit build.

Hvilken sårbarhedsdatabase bruger pip-audit?

Som standard PyPI's JSON API, som bygger på Python Packaging Advisory Database. Det kan også bruge OSV.

Se, hvad dit Python-build trak ind

Kør et GitHub Actions-workflow på CRACI, og få en SBOM af hver pakke, jobbet faktisk hentede.

Book en demo