
GitHub Action जो ML मॉडल फाइलों में दुर्भावनापूर्ण कोड और सुरक्षा कमजोरियों के लिए स्कैन करता है
अपने पाइपलाइन में YAML की एक लाइन से दुर्भावनापूर्ण AI मॉडल को ब्लॉक करें।
GuardModel एक GitHub Action है जो CI/CD पाइपलाइनों में ML मॉडल फ़ाइलों को दुर्भावनापूर्ण कोड, कमज़ोरियों और सुरक्षा जोखिमों के लिए स्वचालित रूप से स्कैन करता है। यह pickle deserialization हमलों, एम्बेडेड मैलवेयर और ज्ञात CVE का पता लगाकर खतरनाक मॉडल को प्रोडक्शन तक पहुँचने से रोकता है।
अपने वर्कफ़्लो में जोड़ें:
name: GuardModel Security Scan
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: guardmodel/scan@v1
बस इतना ही! GuardModel सभी मॉडल फ़ाइलों को स्कैन करेगा और यदि खतरे का पता चलता है तो चेक विफल कर देगा।
| एक्सटेंशन | प्रारूप | स्कैनर | जोखिम स्तर |
|---|---|---|---|
.pkl, .pickle | Python Pickle | Pickle Agent | क्रिटिकल |
.pt, .pth | PyTorch | Pickle Agent | क्रिटिकल |
.bin | PyTorch/Transformers | Pickle Agent | क्रिटिकल |
.h5, .hdf5 | HDF5/Keras | Keras Agent | उच्च |
.keras | Keras v3 | Keras Agent | उच्च |
.onnx | ONNX | ONNX Agent | मध्यम |
.safetensors | SafeTensors | SafeTensors Agent | निम्न |
अपने रिपॉजिटरी में .guardmodel.yml बनाएँ:
version: 1
# स्कैन करने के लिए निर्देशिकाएँ
include:
- models/
- weights/
# अनदेखा करने के लिए निर्देशिकाएँ
exclude:
- tests/fixtures/
# CI विफल करने के लिए गंभीरता सीमा
fail_on: high # critical, high, medium, low, none
# SHA256 द्वारा ज्ञात-सुरक्षित मॉडलों की अनुमति सूची
allowlist:
- sha256: "abc123..."
reason: "सुरक्षा टीम द्वारा सत्यापित"
# अधिकतम फ़ाइल आकार
max_file_size: 5GB
max_total_size: 20GB
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|---|---|
path | स्कैन करने के लिए निर्देशिका | . |
config | कॉन्फ़िग फ़ाइल पथ | .guardmodel.yml |
fail-on | विफल करने के लिए न्यूनतम गंभीरता | high |
output-sarif | SARIF आउटपुट उत्पन्न करें | true |
output-json | JSON आउटपुट उत्पन्न करें | true |
comment-on-pr | PR टिप्पणी पोस्ट करें | true |
max-file-size | अधिकतम फ़ाइल आकार | 5GB |
| आउटपुट | विवरण |
|---|---|
status | स्कैन स्थिति (passed, failed, error) |
findings-count | कुल खोज |
critical-count | क्रिटिकल गंभीरता वाली खोज |
high-count | उच्च गंभीरता वाली खोज |
sarif-file | SARIF आउटपुट का पथ |
json-file | JSON आउटपुट का पथ |
scan-duration | मिलीसेकंड में अवधि |
GuardModel पहचानता है:
os.system, subprocess, eval, execctypes, गतिशील आयातGuardModel Security Scan
स्थिति: विफल - 2 खतरे पाए गए
फ़ाइल गंभीरता खतरा विवरण models/model.pklक्रिटिकल CODE_EXECUTION os.systemकॉल पाया गयाmodels/utils.ptउच्च NETWORK socket.socketनिर्माण
खोज GitHub सुरक्षा टैब में दिखाई देती हैं:
# निर्भरताएँ स्थापित करें
npm install
pip install -r requirements.txt
# बिल्ड करें
npm run build
# परीक्षण करें
npm test
pytest tests/
# रिलीज़ के लिए पैकेज करें
npm run package
guardmodel/
├── action.yml # GitHub Action परिभाषा
├── src/ # TypeScript स्रोत
│ ├── index.ts # एंट्री पॉइंट
│ ├── orchestrator.ts # स्कैन समन्वय
│ ├── config.ts # कॉन्फ़िगरेशन
│ ├── walker.ts # फ़ाइल खोज
│ └── reporters/ # आउटपुट स्वरूपण
├── python/
│ ├── agents/ # स्कैनर एजेंट
│ │ ├── pickle_agent.py
│ │ ├── keras_agent.py
│ │ ├── onnx_agent.py
│ │ └── safetensors_agent.py
│ └── rules/ # पहचान नियम
└── tests/ # परीक्षण सूट
GuardModel:
MIT
योगदान का स्वागत है! कृपया CONTRIBUTING.md देखें।