123% meer gemelde CVE's per dag in 2026 dan vorig jaar.

Afhankelijkheden

pip-audit

pip-audit scant Python-afhankelijkheden op pakketten met bekende kwetsbaarheden. Het komt van de Python Packaging Authority en werkt op omgevingen, requirements-bestanden en projectbestanden. Python heeft geen in pip ingebouwde tegenhanger van npm audit, dus dit is de standaardmanier om er een te krijgen.

Bijgewerkt op

Hoe u pip-audit draait

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

Standaard zoekt het pakketten op via de JSON API van PyPI, die put uit de Python Packaging Advisory Database, en het kan in plaats daarvan OSV gebruiken. Zie de projectpagina voor de volledige lijst met opties.

Wees voorzichtig met wat u audit

Dit verrast veel mensen. Bij het auditen van een requirements-bestand worden de afhankelijkheden ervan geresolved, en het project waarschuwt dat pip-audit -r INPUT functioneel gelijk is aan pip install -r INPUT. Het installeren van pakketten kan code uitvoeren, dus een kwaadaardig pakket kan tijdens de audit draaien. De eigen regel van het project is eenvoudig: als u iets niet met pip install zou installeren, gebruik er dan ook geen pip audit op.

Dit betekent ook dat de controle u niet kan beschermen tegen een pakket dat nog geen advisory heeft, zoals een nieuwe typosquat of een nieuw slopsquatting-pakket.

pip-audit draaien in CI

Er is een officiële GitHub Action, pypa/gh-action-pip-audit, of u draait het commando zelf. Het eindigt met een andere exitcode dan nul zodra het een kwetsbaarheid vindt, dus een nieuwe advisory kan een build laten mislukken zonder codewijziging.

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

Audit dezelfde set afhankelijkheden die u levert. Requirements met exacte versies en hashes geven u een stabiel resultaat. Zie voor hoe dit samengaat met andere controles waar u SCA-scans laat draaien.

Wat pip-audit niet dekt

  • Uw code. Het analyseert afhankelijkheidsbomen, geen broncode. Zie daarvoor SAST vs SCA.
  • Native bibliotheken. Python-wheels bundelen vaak C-bibliotheken, en het project stelt dat het geen transitieve kwetsbaarheden in niet-Python shared libraries detecteert.
  • Al het andere in de build. Uw base image, systeempakketten en CI-actions vallen buiten zijn zicht.
  • Nieuwe kwaadaardige pakketten. Het matcht op bekende advisories.
  • De build die is geleverd. Python-resolutie varieert per omgeving, dus een audit op een andere machine kan andere versies zien dan de release. Zonder lockfile kan ook de volgorde van resolutie variëren.

pip-audit vs andere Python-scanners

Tool Geschikt voor Opmerking
pip-audit Python-afhankelijkheden, gratis Alleen Python
Trivy, Grype Python-pakketten in een containerimage Dekken ook pakketten van het besturingssysteem
Commerciële SCA-tools Beleid en workflow over veel talen en teams Zie de beste SCA-tools

pip-audit en CRACI

pip-audit is een verstandige controle op pull requests. CRACI werkt vanaf de andere kant: als uw GitHub Actions-runner legt het elk pakket dat een job heeft opgehaald van PyPI en elke andere bron, op elk niveau van de boom, vast in een SBOM van de build die de release heeft geproduceerd. Daarna blijft het die SBOM controleren zodra nieuwe kwetsbaarheden worden gepubliceerd, zodat u weet of de release van vorig jaar wordt getroffen. Zie build-time SBOM's en SBOM-generatie tijdens de build.

pip-audit: veelgestelde vragen

Wat is pip-audit?

Een tool van de Python Packaging Authority die Python-omgevingen, requirements-bestanden en projecten scant op pakketten met bekende kwetsbaarheden.

Bestaat er een npm audit voor Python?

pip-audit komt het dichtst in de buurt, maar het is een aparte tool en geen pip-commando, dus u installeert het zelf.

Hoe repareert u kwetsbaarheden die pip-audit vindt?

Draai pip-audit --fix om kwetsbare pakketten te upgraden, of eerst --fix --dry-run om te zien wat er zou veranderen. Draai daarna uw tests en werk uw vastgepinde requirements bij.

Is het veilig om pip-audit op niet-vertrouwde code te draaien?

Nee. Een requirements-bestand auditen is functioneel gelijk aan het installeren ervan, en installeren kan code uitvoeren. Als u een pakket niet zou installeren, audit het dan ook niet.

Kan pip-audit een SBOM genereren?

Ja. Het kan CycloneDX schrijven in JSON of XML. De SBOM beschrijft de Python-afhankelijkheden die het heeft geresolved, niet de rest van uw build.

Welke kwetsbaarheidsdatabase gebruikt pip-audit?

Standaard de JSON API van PyPI, die put uit de Python Packaging Advisory Database. Het kan ook OSV gebruiken.

Zie wat uw Python-build binnenhaalde

Laat één GitHub Actions-workflow op CRACI draaien en krijg een SBOM van elk pakket dat de job daadwerkelijk heeft opgehaald.

Demo boeken