Categorygithub.com/refoo0/sca
module
0.0.0-20250125235153-f0431a4c6227
Repository: https://github.com/refoo0/sca.git
Documentation: pkg.go.dev

# README

Install SCA Tools

brew install trivy
brew install osv-scanner
brew tap snyk/tap
brew install snyk

Struktur dieses Repos

  • Ordner app:

    • apps: Hier befinden sich die Anwendungen, die entwickelt wurden, um sie in den Testfällen zu nutzen. Die Namen der Anwendungen in der Arbeit sind wie folgt definiert:
      • app1 = app-patched
      • app2 = app-unpatched
      • app3 = app-transitiv
  • Ordner projects:

    • Enthält die Open-Source-Projekte, die gescannt werden sollen.
  • Ordner testAnwendungen:

    • Selbst entwickelte Testfälle, die mit den Anwendungen gescannt werden.
  • Ordner testAnwendungen-AfterScan:

    • Da Snyk einige Dateien während des Scans überschreibt, enthält dieser Ordner die Testfälle nach dem Scan. Die ursprünglichen Testfälle befinden sich im Ordner testAnwendungen.
  • Ordner results:

    • projects: Ergebnisse der Open-Source-Projekte. Die Ergebnisse sind nach Projekten aufgeteilt. Innerhalb jedes Projekts sind die Ergebnisse zusätzlich nach SCA-Tools unterteilt.
    • projectResults: Enthält die Ergebnisse aller drei Tools, normalisiert und zusammengefasst mit Hilfe eines selbst entwickelten Go-Programms.
    • results.json: Enthält die zusammengefassten Ergebnisse aller Tools und Projekte. Auch dieses wurde mit dem Go-Programm generiert.
    • testAnwendungen: Ergebnisse der Testfälle, aufgeteilt nach Testfällen und SCA-Tools.
  • Ordner scan:

    • Enthält das selbst entwickelte Go-Programm, das die Ergebnisse analysiert und zusammenfasst.
  • Ordner scripts:

    • Enthält die Skripte, um den Scan zu starten.
  • Makefile

Einen Scan starten

Die Skripte benötigen zwei Argumente: den Speicherpfad für die Ergebnisse und den Pfad, der gescannt werden soll.

  • OSV Scanner:

    ./scripts/scanner/osv.sh save-path scan-path
    
  • Snyk:

    ./scripts/scanner/snyk.sh save-path scan-path
    
  • Trivy:

    ./scripts/scanner/trivy.sh save-path scan-path
    
  • Mit allen drei Tools scannen:

    ./scripts/scan.sh save-path scan-path
    

Ergebnisse analysieren

  • Ergebnisse der drei Tools normalisieren

    Argumente:

    SUBDIRS sind die Verzeichnisse, in denen die Ergebnisse der Tools gespeichert sind. Die Ergebnisse der drei Tools werden für jedes Projekt normalisiert und zusammengefasst.

    @for subdir in $(SUBDIRS); do \
        echo "Running analysis for $$subdir"; \
        go run ./scan/main.go analysis \
            $(RESULT_DIR)/$$subdir/osv.json \
            $(RESULT_DIR)/$$subdir/trivy.json \
            $(RESULT_DIR)/$$subdir/snyk.json \
            $(RESULT_DIR)/$$subdir; \
        done
    
  • Ergebnisse alle Tools analysieren und zusammenfasen

    Argumente:

    • Pfad zu den zusammengefassten Ergebnissen der drei Tools für jedes Projekt.
    • Speicherort für die Ergebnisse.

    Das Ergebnis ist eine JSON-Datei, die die analysierten Ergebnisse aller Projekte enthält.

    go run ./scan/main.go generate ./results/projects/projectResults output.json
    

# Packages

No description provided by the author