
GitHub Action que verifica arquivos de modelos de ML em busca de código malicioso e vulnerabilidades de segurança
Bloqueie modelos de IA maliciosos no seu pipeline com uma linha de YAML.
O GuardModel é uma GitHub Action que verifica automaticamente arquivos de modelos de ML em busca de código malicioso, vulnerabilidades e riscos de segurança em pipelines de CI/CD. Ele bloqueia modelos perigosos antes que cheguem à produção, detectando ataques de desserialização pickle, malware embutido e CVEs conhecidas.
Adicione ao seu workflow:
name: GuardModel Security Scan
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: guardmodel/scan@v1
É isso! O GuardModel verificará todos os arquivos de modelo e fará a verificação falhar se ameaças forem detectadas.
Crie .guardmodel.yml no seu repositório:
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
O GuardModel detecta:
os.system, subprocess, eval, execctypes, imports dinâmicosVerificação de Segurança do GuardModel
Status: FALHOU - 2 ameaças detectadas
As descobertas aparecem na aba de Segurança do GitHub com:
# 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
O GuardModel:
MIT
Contribuições são bem-vindas! Consulte CONTRIBUTING.md.
| Extensão | Formato | Scanner | Nível de Risco |
|---|
.pkl, .pickle | Python Pickle | Pickle Agent | Crítico |
.pt, .pth | PyTorch | Pickle Agent | Crítico |
.bin | PyTorch/Transformers | Pickle Agent | Crítico |
.h5, .hdf5 | HDF5/Keras | Keras Agent | Alto |
.keras | Keras v3 | Keras Agent | Alto |
.onnx | ONNX | ONNX Agent | Médio |
.safetensors | SafeTensors | SafeTensors Agent | Baixo |
| Entrada | Descrição | Padrão |
|---|
path | Diretório a verificar | . |
config | Caminho do arquivo de configuração | .guardmodel.yml |
fail-on | Gravidade mínima para falhar | high |
output-sarif | Gerar saída SARIF | true |
output-json | Gerar saída JSON | true |
comment-on-pr | Publicar comentário no PR | true |
max-file-size | Tamanho máximo de arquivo | 5GB |
| Saída | Descrição |
|---|
status | Status da verificação (aprovado, falhou, erro) |
findings-count | Total de descobertas |
critical-count | Descobertas de gravidade crítica |
high-count | Descobertas de gravidade alta |
sarif-file | Caminho para a saída SARIF |
json-file | Caminho para a saída JSON |
scan-duration | Duração em milissegundos |
| Arquivo | Gravidade | Ameaça | Detalhes |
|---|
models/model.pkl | Crítico | CODE_EXECUTION | chamada os.system detectada |
models/utils.pt | Alto | NETWORK | criação de socket.socket |