Handleiding bij de broncodepreview · 0.1.0
Scanneruitvoering en voorbereiding
Volg vastgelegde tools, brondekking en gevalideerde gegevensgeneraties naar genormaliseerde bevindingen.
De API-referentie is in het Engels.
Een scan combineert geautoriseerde bronweergave, ingeschakelde tools, gevalideerde scannergegevens en een expliciete dekkingsuitkomst. De toolcatalogus wordt in broncode beheerd. Hij ontdekt geen willekeurige programma’s, downloadt geen ontbrekende database tijdens scannen en belooft niet de nieuwste upstreamrelease.
Laat de aangevraagde dekking toe vóór het starten
De API controleert de actuele voorcontrolerevisie bij scancreatie. Een volledige scan wordt vóór aanmaak van scan of job geweigerd als een ingeschakelde tool geblokkeerd is. Een expliciet bevestigde beperkte scan vereist minstens één gereedstaande ingeschakelde tool. Hij registreert ontbrekende tools en redenen, blijft gedeeltelijk en kan de gate niet halen.
Standaardscans gebruiken geen AI. Een aangevraagde scanbrede Advisor-pass gebruikt de afzonderlijk geautoriseerde lokale providerroute en verandert niet wat scanners controleerden. Zie de Advisor-gids.
incremental_diff voert momenteel alle ingeschakelde scanners uit tegen de volledige bronweergave. Het overzicht registreert effective_mode=full, geen gewijzigd-bestandenaantal en incremental-diff-fallback-full. De implementatie claimt geen incrementeel resultaat van tools zonder gedeeld volledig contract voor gewijzigde bestanden. Scantoelating en uitvoeringsterugval bepalen deze beslissingen.
Volg het native uitvoeringspad
- Kies en autoriseer bron
Houd repository-, bestands- of mapreikwijdte expliciet. POSIX en Remote WSL gebruiken nauwe alleen-lezen mounts; ondersteunde native Windows-paden gebruiken begrensde verzegelde momentopnamen.
- Beoordeel de scannervoorcontrole
Lees gereedheid, gegevensversheid en bedoelde reikwijdte vóór toelating.
- Laat één scanopdracht toe
De API controleert clientbevoegdheid en verzoekbetekenis en bewaart daarna opdracht- en jobidentiteiten.
- Analyseer de toegelaten bron
De worker roept de scanner aan met gevalideerde offlinegegevens. Aangevraagde incremental_diff valt momenteel terug op volledige bronanalyse.
- Verzamel begrensde resultaten
Scanneradapters normaliseren en redigeren bekende gevoelige patronen. De worker valideert pagina's vóór opslag van bevindingen.
- Lees dekking en daarna de gate
Alleen toepasselijk volledig bewijs bereikt de beleidsbeslissing. Een afgeronde scan kan nog falen door resterende blokkerende bevindingen.
Tools draaien achtereenvolgens in eigen procesgroepen met eindige uitvoeringsgrenzen. Syft draait vóór Grype; Grype leest de gesaneerde SBOM van dezelfde scan. Grype inschakelen zonder Syft levert onvolledig bewijs.
Elke adapter levert waar nodig eigen configuratie, beperkte omgeving en privéscratchpaden. Geparste native uitvoer wordt vóór normalisatie gecontroleerd. Ontbrekende verplichte uitvoer, ongeldige records, ongeldige locaties of analysefouten mogen niet stilzwijgend een schone scan worden. De adapter verwijdert ruwe rapporten na verwerking; ruwe SARIF, JSONV2, JSONL en stderr zijn geen downloadbare artefacten.
De matrix beschrijft het vastgelegde uitvoeringscontract. Opdrachtfragmenten verklaren de adapter en zijn geen zelfstandige opdrachten die CodeSecurity-autorisatie, gegevensverificatie en resourcecontroles reproduceren.
| Tool en bron | Versie | Daadwerkelijke uitvoering en invoer | Native uitvoer en voorbereiding |
|---|---|---|---|
| Trivy | 0.73.0 |
fs controleert kwetsbaarheden, geheimen en misconfiguratie. Een tweede library-only-rootfs-pass dekt verpakte afhankelijkheden, waaronder Java-archieven. Eigen configuratie en ignorebestanden; updates, telemetrie en versiecontroles uit. |
SARIF van beide passes; gevalideerde Trivy-database, Java-database en checks. |
| Gitleaks | 8.30.1 |
dir scant vastgelegde bron met eigen standaardregelconfiguratie. Inline-gitleaks:allow-onderdrukkingen worden genegeerd; een .gitleaksignore in de root veroorzaakt weigering. |
SARIF; vastgelegde binary en native detectorregels. Dit scant mappen, niet Gitleaks-Git-geschiedenis. |
| OpenGrep | 1.27.0 |
scan gebruikt het gevalideerde beoordeelde rules.yml-startpunt. De native kern staat in het image; versiecontroles en metrics zijn uit. |
SARIF; een geverifieerde beoordeelde regelgeneratie is vereist. |
| Bearer | 2.1.0+lomo.1 |
scan gebruikt eigen configuratie en externe beoordeelde regelmap; standaardregels, versiecontrole en telemetrie zijn uit. |
JSONV2; geverifieerde Bearer-regels en buildidentiteit van de gewijzigde binary. Analysefouten maken bewijs onvolledig. |
| Grype | 0.117.0 |
sbom: leest gesaneerde Syft-uitvoer van deze scan. Het legt de repository niet zelf opnieuw vast. Automatische applicatie- en databaseupdates zijn uit. |
SARIF; geverifieerde Grype-database en Syft-afhankelijkheid uit dezelfde scan. |
| Checkov | 3.3.10 |
Een mapscan schakelt Kubernetes-, Dockerfile- en Terraform-frameworks in, met eigen configuratie, downloads uit en soft-failrapportage. .checkov.yaml of .checkov.yml in de root veroorzaakt weigering. |
SARIF; vastgelegde image-invoer. Het samengevoegde mapargument vermijdt het target-config-ontdekkingspad van deze versie. |
| TruffleHog | 3.96.0 |
filesystem gebruikt --no-update --no-verification. Gedetecteerde credentials worden niet bij externe providers getest. |
JSONL; vastgelegde binary en native detectors. |
| Syft | 1.51.0 |
dir: inventariseert vastgelegde bron; applicatie-updatecontrole staat uit. |
CycloneDX JSON, gesaneerd vóór Grype-gebruik en publicatie als toegelaten SBOM. |
Het toolregister, de daadwerkelijke adaptertakken en toollock geven volledige argumenten en identiteiten. Optionele secrets-lite, sast-lite en iac-lite beginnen uitgeschakeld en hebben expliciet beperkte dekking.
Houd rekening met bron- en parsergrenzen
Bronvastlegging staat maximaal 5.000 bestanden, 8 MiB per gewoon bestand en 64 MiB totale broninhoud toe. Geschikte tekstanalyse heeft een afzonderlijke bestandsgrens van 1 MiB. Een groot codebestand vastleggen maakt het niet volledig geanalyseerd.
Het brondekkingsbewijs registreert geschikte bestanden en weglatingen zoals te veel bestanden, te grote inhoud, binaire of ongeldige UTF-8-invoer, onleesbare bestanden en niet-ondersteunde typen. Native rapportverwerking heeft een invoergrens van 64 MiB. Stdout en stderr delen begrensde containerscratchopslag maar hebben nog geen afzonderlijke streaminggrenzen.
Genormaliseerde bevindingen bevatten scanner, regel, ernst, bronlocatie, melding, fragment, fingerprint en begrensde metadata. Exacte duplicaten kunnen samenvallen; twee verschillende canonieke bevindingen met dezelfde fingerprint worden geweigerd. Bevindingen worden deterministisch geordend vóór transport. Het overzicht bewaart toolfouten, brondekking, aangevraagde/effectieve modus en scannergegevensidentiteit.
Volledig bewijs betekent dat geschikte invoer en ondersteunde native rapporten zonder gemelde weglatingen zijn verwerkt. Het betekent niet dat elke taalconstructie, afhankelijkheid of zwakte gedekt is of dat een gemelde riskante API exploiteerbaar is. Een bevindingenvrije scan kan gedeeltelijk blijven; een volledige scan kan beleidsmatig falen. Dekking en canonicalisatie voeden de publicatiegrens voor bewijs.
Bereid gegevens buiten bronuitvoering voor
- Lees voorbereiding en versheid
Cataloguswaarnemingen, geïnstalleerde gegevens, scannergezondheid en vervaldatum beschrijven verschillende zaken.
- Haal beoordeelde componenten op
De updater zonder brontoegang downloadt alleen geselecteerde beoordeelde gegevenscomponenten.
- Plaats en valideer
Componentidentiteit en inhoud worden gecontroleerd voordat de kandidaatgeneratie gekozen kan worden.
- Selecteer een volledige generatie
Activering schakelt naar gevalideerde gegevens. Een oude waarneming of onderbroken publicatie moet worden verzoend.
- Scan met alleen-lezen gegevens
Runtimescanners lezen de actieve generatie. Verlopen gebundelde definities vereisen bijgewerkte beoordeelde broncode en voorbereiding.
De aparte updater heeft netwerktoegang tot beoordeelde gegevensbronnen en beschrijfbare cacheopslag, maar geen projectbronmount. Hij plaatst een kandidaat privé, valideert vastgelegde identiteiten en inhoud, verzegelt een volledige generatie en selecteert die atomair. Een gedeeltelijk gedownloade map is geen actieve cachegeneratie.
Tijdens uitvoering bepaalt de scanner gereedheid en componentpaden uit één gevalideerde generatie. Hij mag tools niet tegen de ene pointerrevisie goedkeuren en gegevens uit een andere lezen. Actieve- en vorige-generatieverificatie zijn afzonderlijk: een slechte vorige generatie kan rollback blokkeren zonder een geverifieerde actieve generatie ongeldig te maken.
| Gereedheidsinvoer | Versheidsregel op deze revisie |
|---|---|
| Trivy OS- en Java-databases | UpdatedAt van de uitgever; waarschuwing na zeven dagen, verval na veertien. |
| Grype-database | Vastgelegde intrinsieke buildtijdstempel; waarschuwing na zeven dagen, verval na veertien. |
| Trivy-checks | Geverifieerd verkrijgingstijdstempel; waarschuwing na zeven dagen, verval na veertien. |
| Beoordeelde OpenGrep- en Bearer-regels | Onveranderlijke beoordeelde identiteit, zonder verzonnen tijdsverval. |
Ongewijzigde locks opnieuw bouwen of dezelfde database opnieuw downloaden vernieuwt geen intrinsiek tijdstempel. Gegevens met waarschuwing blijven bruikbaar maar kunnen nieuwere kwetsbaarheden missen. Verlopen gegevens vereisen een beoordeelde bron-/lockupdate. Rollback controleert ook identiteit, compatibiliteit en versheid; annulering draait een reeds geactiveerde generatie niet terug.
Dienstgezondheid, een voltooide download en Ready to Scan zijn verschillende resultaten. Bronbepaalde offlinevlaggen en netwerktopologie vereisen ook echte image-uitgangsverificatie vóór uitspraken over een specifieke build. Zie generatieactivering, runtimeverificatie en operatorvoorbereiding.
Bewaar upstreamlicenties bij de tools
De tabel vermeldt identificaties uit de beoordeelde lock en koppelt vastgelegde upstreamteksten. Het is een broninventaris, geen volledige beoordeling van herdistributie- of afhankelijkheidslicenties.
| Tool | Vastgelegde licentie en upstreamtekst |
|---|---|
| Trivy | Apache-2.0 |
| Gitleaks | MIT |
| OpenGrep | LGPL-2.1-or-later in de lock |
| Bearer | Elastic-2.0 |
| Grype | Apache-2.0 |
| Checkov | Apache-2.0 |
| TruffleHog | AGPL-3.0-or-later |
| Syft | Apache-2.0 |
Lomo’s Apache-2.0-licentie vervangt deze voorwaarden niet. De licentie-index bewaart een onopgelost verschil tussen OpenGrep’s lockexpressie en COPYRIGHT-formulering. Bearer bevat een wijzigingsvermelding en bronrecept en patch; het is niet uitwisselbaar met een ongewijzigde upstreambinary. Beoordeel upstreamvermeldingen, wijzigingen, ingebedde afhankelijkheden, regels en gegevens voor de bedoelde distributie.