
GitHub Action che analizza i file dei modelli ML alla ricerca di codice malevolo e vulnerabilità di sicurezza.
Blocca i modelli AI dannosi nella tua pipeline con una riga di YAML.
GuardModel è una GitHub Action che scansiona automaticamente i file dei modelli ML alla ricerca di codice dannoso, vulnerabilità e rischi di sicurezza nelle pipeline CI/CD. Blocca i modelli pericolosi prima che raggiungano la produzione rilevando attacchi di deserializzazione pickle, malware incorporato e CVE note.
Aggiungi al tuo workflow:
name: GuardModel Security Scan
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: guardmodel/scan@v1
Tutto qui! GuardModel scansionerà tutti i file dei modelli e farà fallire il check se vengono rilevate minacce.
Crea .guardmodel.yml nel tuo 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 rileva:
os.system, subprocess, eval, execctypes, import dinamiciScansione di sicurezza GuardModel
Stato: FAILED - 2 minacce rilevate
I rilevamenti vengono visualizzati nella scheda Sicurezza di GitHub con:
# 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
Contributi benvenuti! Consulta CONTRIBUTING.md.
| Estensione | Formato | Scanner | Livello di rischio |
|---|
.pkl, .pickle | Python Pickle | Pickle Agent | Critico |
.pt, .pth | PyTorch | Pickle Agent | Critico |
.bin | PyTorch/Transformers | Pickle Agent | Critico |
.h5, .hdf5 | HDF5/Keras | Keras Agent | Alto |
.keras | Keras v3 | Keras Agent | Alto |
.onnx | ONNX | ONNX Agent | Medio |
.safetensors | SafeTensors | SafeTensors Agent | Basso |
| Input | Descrizione | Predefinito |
|---|
path | Directory da scansionare | . |
config | Percorso del file di configurazione | .guardmodel.yml |
fail-on | Gravità minima per il fallimento | high |
output-sarif | Genera output SARIF | true |
output-json | Genera output JSON | true |
comment-on-pr | Pubblica commento sulla PR | true |
max-file-size | Dimensione massima del file | 5GB |
| Output | Descrizione |
|---|
status | Stato della scansione (passed, failed, error) |
findings-count | Numero totale di rilevamenti |
critical-count | Rilevamenti di gravità critica |
high-count | Rilevamenti di gravità alta |
sarif-file | Percorso dell'output SARIF |
json-file | Percorso dell'output JSON |
scan-duration | Durata in millisecondi |
| File | Gravità | Minaccia | Dettagli |
|---|
models/model.pkl | Critico | CODE_EXECUTION | rilevata chiamata a os.system |
models/utils.pt | Alto | NETWORK | creazione di socket.socket |