Vuonna 2026 raportoitiin päivässä 131% enemmän CVE:itä kuin edellisenä vuonna.

Riippuvuudet

pip-audit

pip-audit skannaa Python-riippuvuuksista paketit, joissa on tunnettuja haavoittuvuuksia. Se on Python Packaging Authorityn työkalu, ja se toimii ympäristöille, requirements-tiedostoille ja projektitiedostoille. Pipiin ei ole sisäänrakennettu npm auditin vastinetta, joten tämä on vakiintunut tapa saada sellainen.

Päivitetty

Näin ajat pip-auditin

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

Oletuksena se hakee paketit PyPI:n JSON-API:n kautta, joka perustuu Python Packaging Advisory Databaseen, ja se voi käyttää myös OSV:tä. Kaikki asetukset löydät projektin sivulta.

Mieti tarkkaan, mitä auditoit

Tämä yllättää monet. Requirements-tiedoston auditointi ratkaisee sen riippuvuudet, ja projekti varoittaa, että pip-audit -r INPUT vastaa toiminnaltaan komentoa pip install -r INPUT. Paketin asennus voi ajaa koodia, joten haitallinen paketti voi käynnistyä auditoinnin aikana. Projektin oma sääntö on yksinkertainen: jos et ajaisi sille pip install, älä aja sille pip audit.

Tämä tarkoittaa myös, ettei tarkistus suojaa paketilta, jolle ei vielä ole tietoturvatiedotetta, kuten uudelta typosquat- tai slopsquatting-paketilta.

pip-auditin ajaminen CI:ssä

Tarjolla on virallinen GitHub Action, pypa/gh-action-pip-audit, tai voit ajaa komennon itse. Se päättyy nollasta poikkeavaan paluukoodiin, kun se löytää haavoittuvuuden, joten uusi tietoturvatiedote voi kaataa buildin ilman koodimuutosta.

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

Auditoi sama riippuvuusjoukko, jonka toimitat. Tarkat versiot ja tiivisteet sisältävät requirements-tiedostot antavat vakaan tuloksen. Miten tämä sopii yhteen muiden tarkistusten kanssa, kerrotaan sivulla missä SCA-skannaukset kannattaa ajaa.

Mitä pip-audit ei kata

  • Oma koodisi. Se analysoi riippuvuuspuita, ei lähdekoodia. Siihen katso SAST vs. SCA.
  • Natiivikirjastot. Pythonin wheel-paketit sisältävät usein C-kirjastoja, ja projektin mukaan se ei tunnista transitiivisia haavoittuvuuksia muissa kuin Pythonin jaetuissa kirjastoissa.
  • Kaikki muu buildissa. Peruskuva, järjestelmäpaketit ja CI-actionit jäävät sen näkökentän ulkopuolelle.
  • Uudet haitalliset paketit. Se vertaa tunnettuihin tietoturvatiedotteisiin.
  • Toimitettu buildi. Pythonin riippuvuuksien ratkaisu vaihtelee ympäristön mukaan, joten toisella koneella tehty auditointi voi nähdä eri versiot kuin julkaisu. Ilman lukitustiedostoa (lockfile) myös ratkaisujärjestys voi vaihdella.

pip-audit vs. muut Python-skannerit

Työkalu Sopii Huomio
pip-audit Python-riippuvuuksiin, maksutta Vain Python
Trivy, Grype Konttikuvan Python-paketteihin Kattavat myös käyttöjärjestelmän paketit
Kaupalliset SCA-työkalut Käytäntöihin ja työnkulkuihin monessa kielessä ja tiimissä Katso parhaat SCA-työkalut

pip-audit ja CRACI

pip-audit on järkevä tarkistus pull requesteissa. CRACI toimii toiselta puolelta: GitHub Actions -runnerinasi se tallentaa jokaisen paketin, jonka jobi haki PyPI:stä ja kaikista muista lähteistä, puun joka tasolla, julkaisun tuottaneen buildin SBOM:iin. Sen jälkeen se tarkistaa SBOM:ia jatkuvasti uusien haavoittuvuuksien julkaisun myötä, joten tiedät, koskeeko haavoittuvuus viime vuoden julkaisua. Katso buildin aikana tallennetut SBOM:t ja SBOM-generointi buildin aikana.

pip-audit: usein kysytyt kysymykset

Mikä pip-audit on?

Python Packaging Authorityn työkalu, joka skannaa Python-ympäristöt, requirements-tiedostot ja projektit paketeista, joissa on tunnettuja haavoittuvuuksia.

Onko Pythonille olemassa npm auditin kaltaista työkalua?

pip-audit on lähin vastine, mutta se on erillinen työkalu eikä pipin komento, joten asennat sen itse.

Miten pip-auditin löytämät haavoittuvuudet korjataan?

Aja pip-audit --fix päivittääksesi haavoittuvat paketit, tai ensin --fix --dry-run nähdäksesi, mitä muuttuisi. Aja sitten testisi ja päivitä lukitut requirements-versiosi.

Onko pip-auditia turvallista ajaa epäluotettavaan koodiin?

Ei. Requirements-tiedoston auditointi vastaa toiminnaltaan sen asentamista, ja asennus voi ajaa koodia. Jos et asentaisi pakettia, älä auditoi sitä.

Voiko pip-audit generoida SBOM:n?

Kyllä. Se voi kirjoittaa CycloneDX:ää JSON- tai XML-muodossa. SBOM kuvaa sen ratkaisemat Python-riippuvuudet, ei muuta buildiasi.

Mitä haavoittuvuustietokantaa pip-audit käyttää?

Oletuksena PyPI:n JSON-API:a, joka perustuu Python Packaging Advisory Databaseen. Se voi käyttää myös OSV:tä.

Näe, mitä Python-buildisi haki

Aja yksi GitHub Actions -työnkulku CRACI:lla ja saat SBOM:n jokaisesta paketista, jonka jobi todella haki.

Varaa demo