
GitHub Action, die ML-Modelldateien auf schädlichen Code und Sicherheitsschwachstellen scannt
Blockieren Sie bösartige KI-Modelle in Ihrer Pipeline mit einer Zeile YAML.
GuardModel ist eine GitHub Action, die automatisch ML-Modelldateien auf bösartigen Code, Schwachstellen und Sicherheitsrisiken in CI/CD-Pipelines scannt. Es blockiert gefährliche Modelle, bevor sie die Produktion erreichen, indem es Pickle-Deserialisierungsangriffe, eingebettete Malware und bekannte CVEs erkennt.
Fügen Sie Ihrem Workflow hinzu:
name: GuardModel Security Scan
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: guardmodel/scan@v1
Das war's! GuardModel scannt alle Modelldateien und schlägt die Prüfung fehl, falls Bedrohungen erkannt werden.
Erstellen Sie eine .guardmodel.yml in Ihrem Repository:
version: 1
# Directories to scan
include:
- models/
- weights/
# Directories to ignore
exclude:
- tests/fixtures/
# Severity threshold to fail CI
fail_on: high # critical, high, medium, low, none
# Allowlist known-safe models by SHA256
allowlist:
- sha256: "abc123..."
reason: "Verified by security team"
# Maximum file sizes
max_file_size: 5GB
max_total_size: 20GB
GuardModel erkennt:
os.system, subprocess, eval, execctypes, dynamische ImporteGuardModel Sicherheitsscan
Status: FEHLGESCHLAGEN - 2 Bedrohungen erkannt
Die Funde erscheinen im GitHub-Sicherheits-Tab mit:
# Install dependencies
npm install
pip install -r requirements.txt
# Build
npm run build
# Test
npm test
pytest tests/
# Package for release
npm run package
guardmodel/
├── action.yml # GitHub Action definition
├── src/ # TypeScript source
│ ├── index.ts # Entry point
│ ├── orchestrator.ts # Scan coordination
│ ├── config.ts # Configuration
│ ├── walker.ts # File discovery
│ └── reporters/ # Output formatters
├── python/
│ ├── agents/ # Scanner agents
│ │ ├── pickle_agent.py
│ │ ├── keras_agent.py
│ │ ├── onnx_agent.py
│ │ └── safetensors_agent.py
│ └── rules/ # Detection rules
└── tests/ # Test suite
GuardModel:
MIT
Beiträge willkommen! Bitte siehe CONTRIBUTING.md.
| Erweiterung | Format | Scanner | Risikostufe |
|---|
.pkl, .pickle | Python Pickle | Pickle Agent | Kritisch |
.pt, .pth | PyTorch | Pickle Agent | Kritisch |
.bin | PyTorch/Transformers | Pickle Agent | Kritisch |
.h5, .hdf5 | HDF5/Keras | Keras Agent | Hoch |
.keras | Keras v3 | Keras Agent | Hoch |
.onnx | ONNX | ONNX Agent | Mittel |
.safetensors | SafeTensors | SafeTensors Agent | Niedrig |
| Input | Beschreibung | Standard |
|---|
path | Zu durchsuchendes Verzeichnis | . |
config | Pfad zur Konfigurationsdatei | .guardmodel.yml |
fail-on | Mindestschweregrad für Fehlschlag | high |
output-sarif | SARIF-Ausgabe generieren | true |
output-json | JSON-Ausgabe generieren | true |
comment-on-pr | PR-Kommentar posten | true |
max-file-size | Maximale Dateigröße | 5GB |
| Output | Beschreibung |
|---|
status | Scan-Status (bestanden, fehlgeschlagen, Fehler) |
findings-count | Gesamtzahl der Funde |
critical-count | Kritische Funde |
high-count | Hochschwere Funde |
sarif-file | Pfad zur SARIF-Ausgabe |
json-file | Pfad zur JSON-Ausgabe |
scan-duration | Dauer in Millisekunden |
| Datei | Schweregrad | Bedrohung | Details |
|---|
models/model.pkl | Kritisch | CODE_EXECUTION | os.system-Aufruf erkannt |
models/utils.pt | Hoch | NETWORK | socket.socket-Erstellung |