Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
modelscan — मॉडल सीरियलाइज़ेशन हमलों से सुरक्षा | Kitploit
उपकरण/GitHubGitHub/protectai/modelscan
रक्षात्मक उपकरणस्थैतिक विश्लेषणभेद्यता स्कैनरDevSecOpsआपूर्ति श्रृंखला सुरक्षामशीन लर्निंगAI सुरक्षा
GitHubprotectai/modelscan

modelscan

मॉडल सीरियलाइज़ेशन हमलों से सुरक्षा

रिपॉजिटरी देखें
7651626 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
वेबसाइट

ModelScan बैनर bandit build black mypy tests Supported Versions pypi Version License: Apache 2.0 pre-commit

ModelScan: मॉडल सीरियलाइज़ेशन हमलों से सुरक्षा

मशीन लर्निंग (ML) मॉडल इंटरनेट पर, टीमों के भीतर और टीमों के बीच सार्वजनिक रूप से साझा किए जाते हैं। फाउंडेशन मॉडल के उदय ने सार्वजनिक ML मॉडलों के आगे के प्रशिक्षण/फाइन-ट्यूनिंग के लिए बढ़ते उपभोग को जन्म दिया है। ML मॉडलों का उपयोग महत्वपूर्ण निर्णय लेने और मिशन-महत्वपूर्ण अनुप्रयोगों को संचालित करने के लिए तेजी से किया जा रहा है। इसके बावजूद, मॉडलों की स्कैनिंग अभी भी उस कठोरता के साथ नहीं की जाती जिसके साथ आपके इनबॉक्स में आई PDF फ़ाइल की जाती है।

इसे बदलने की आवश्यकता है, और सही टूलिंग पहला कदम है।

ModelScan पूर्वावलोकन

ModelScan Protect AI का एक ओपन सोर्स प्रोजेक्ट है जो यह निर्धारित करने के लिए मॉडलों को स्कैन करता है कि उनमें असुरक्षित कोड है या नहीं। यह कई मॉडल फॉर्मेट को सपोर्ट करने वाला पहला मॉडल स्कैनिंग टूल है। ModelScan वर्तमान में निम्न का समर्थन करता है: H5, Pickle, और SavedModel फॉर्मेट। यह आपको PyTorch, TensorFlow, Keras, Sklearn, XGBoost का उपयोग करते समय सुरक्षित रखता है, और आगे और भी फॉर्मेट आ रहे हैं।

TL;DR

यदि आप अपने मॉडलों को स्कैन करना शुरू करने के लिए तैयार हैं, तो यह सरल है:

root@kitploit:~
pip install modelscan

इसे इंस्टॉल करने के बाद, एक मॉडल स्कैन करें:

root@kitploit:~
modelscan -p /path/to/model_file.pkl

आपको मॉडल क्यों स्कैन करने चाहिए

मॉडल अक्सर स्वचालित पाइपलाइनों से बनाए जाते हैं, कुछ किसी डेटा वैज्ञानिक के लैपटॉप से आ सकते हैं। दोनों ही स्थितियों में, उपयोग से पहले मॉडल को एक मशीन से दूसरी मशीन पर स्थानांतरित करना आवश्यक होता है। मॉडल को डिस्क पर सहेजने की वह प्रक्रिया सीरियलाइज़ेशन कहलाती है।

मॉडल सीरियलाइज़ेशन हमला वह है जिसमें वितरण से पहले सीरियलाइज़ेशन (सेविंग) के दौरान मॉडल की सामग्री में दुर्भावनापूर्ण कोड जोड़ा जाता है — ट्रोजन हॉर्स का एक आधुनिक संस्करण।

यह हमला मॉडलों की सेविंग और लोडिंग प्रक्रिया का फायदा उठाकर कार्य करता है। जब आप model = torch.load(PATH) के साथ एक मॉडल लोड करते हैं, तो PyTorch फ़ाइल की सामग्री खोलता है और उसके भीतर के कोड को चलाना शुरू कर देता है। मॉडल लोड करते ही एक्सप्लॉइट निष्पादित हो जाता है।

मॉडल सीरियलाइज़ेशन हमले का उपयोग निम्न को निष्पादित करने के लिए किया जा सकता है:

  • क्रेडेंशियल चोरी (आपके वातावरण में अन्य सिस्टमों में डेटा लिखने और पढ़ने के लिए क्लाउड क्रेडेंशियल)
  • डेटा चोरी (मॉडल को भेजा गया अनुरोध)
  • डेटा पॉइज़निंग (मॉडल द्वारा अपना कार्य करने के बाद भेजा गया डेटा)
  • मॉडल पॉइज़निंग (मॉडल के परिणामों को बदलना)

ये हमले अविश्वसनीय रूप से सरल हैं और आप हमारे 📓notebooks फ़ोल्डर में कार्यशील उदाहरण देख सकते हैं।

मॉडल सुरक्षा को लागू करना और स्वचालित करना

ModelScan मजबूत ओपन-सोर्स स्कैनिंग प्रदान करता है। यदि आपको व्यापक AI सुरक्षा की आवश्यकता है, तो Guardian पर विचार करें। यह हमारा एंटरप्राइज़-ग्रेड मॉडल स्कैनिंग उत्पाद है।

Guardian अवलोकन

Guardian की विशेषताएँ:

  1. अत्याधुनिक स्कैनिंग: हमारे नवीनतम स्कैनर, व्यापक मॉडल समर्थन, और स्वचालित मॉडल फॉर्मेट पहचान तक पहुँच प्राप्त करें।
  2. सक्रिय सुरक्षा: आपके वातावरण में प्रवेश करने से पहले Hugging Face मॉडलों के लिए सुरक्षा आवश्यकताओं को परिभाषित करें और लागू करें—कोई कोड परिवर्तन आवश्यक नहीं है।
  3. एंटरप्राइज़-व्यापी कवरेज: अपने संगठन में एक सुसंगत सुरक्षा स्थिति लागू करें, अपने CI/CD पाइपलाइनों के साथ सहज रूप से एकीकृत करते हुए।
  4. व्यापक ऑडिट ट्रेल: सभी स्कैन और परिणामों की पूर्ण दृश्यता प्राप्त करें, जिससे आप खतरों की प्रभावी रूप से पहचान और शमन कर सकें।

आरंभ करना

ModelScan कैसे काम करता है

यदि आपके मशीन लर्निंग फ्रेमवर्क के साथ मॉडल लोड करना स्वचालित रूप से हमले को निष्पादित करता है, तो ModelScan दुर्भावनापूर्ण कोड को लोड किए बिना मॉडल की सामग्री की जाँच कैसे करता है?

सरल, यह फ़ाइल की सामग्री को एक स्ट्रिंग की तरह एक बार में एक बाइट पढ़ता है, असुरक्षित कोड सिग्नेचर की तलाश में। यह इसे अविश्वसनीय रूप से तेज़ बनाता है, मॉडलों को उस समय में स्कैन करता है जो आपके कंप्यूटर को डिस्क से कुल फ़ाइल आकार को प्रोसेस करने में लगता है (अधिकांश मामलों में सेकंड)। यह सुरक्षित भी है।

ModelScan असुरक्षित कोड को इस प्रकार वर्गीकृत करता है:

  • CRITICAL
  • HIGH
  • MEDIUM
  • LOW

ModelScan फ़्लो चार्ट

यदि कोई समस्या पाई जाती है, तो कारण निर्धारित करने के लिए तुरंत मॉडल के निर्माता से संपर्क करें।

कुछ मामलों में, डेटा वैज्ञानिक के रूप में चीजों का पुनरुत्पादन आसान बनाने के लिए मॉडल में कोड एम्बेडेड हो सकता है, लेकिन यह आपको हमले के प्रति खोल देता है। यह निर्धारित करने के लिए अपने विवेक का उपयोग करें कि क्या यह आपके वर्कलोड के लिए उपयुक्त है।

कौन से मॉडल और फ्रेमवर्क समर्थित हैं?

यह लगातार विस्तारित होता रहेगा, इसलिए हमारे रिलीज़ नोट्स में बदलावों पर नज़र रखें।

वर्तमान में, ModelScan सभी Pickle व्युत्पन्न फॉर्मेट और कई अन्य का समर्थन करता है:

स्थापना

ModelScan आपके सिस्टम पर एक Python पैकेज के रूप में इंस्टॉल किया जाता है (Python 3.9 से 3.12 समर्थित)। जैसा कि ऊपर दिखाया गया है, आप इसे अपने टर्मिनल में यह चलाकर इंस्टॉल कर सकते हैं:

root@kitploit:~
pip install modelscan

इसे अपने प्रोजेक्ट की निर्भरताओं में शामिल करने के लिए ताकि यह सभी के लिए उपलब्ध हो, इसे अपने requirements.txt या pyproject.toml में इस प्रकार जोड़ें:

root@kitploit:~
modelscan = ">=0.1.1"

Tensorflow या HD5 फॉर्मेट वाले मॉडलों के स्कैनर के लिए एक्स्ट्रा के साथ इंस्टॉलेशन की आवश्यकता होती है:

root@kitploit:~
pip install 'modelscan[ tensorflow, h5py ]'

CLI के माध्यम से ModelScan का उपयोग करना

ModelScan CLI के माध्यम से निम्नलिखित आर्ग्युमेंट्स का समर्थन करता है:

याद रखें कि मॉडल किसी भी अन्य रूप के डिजिटल मीडिया की तरह हैं, उपयोग से पहले आपको किसी भी अविश्वसनीय स्रोत की सामग्री को स्कैन करना चाहिए।

CLI एग्ज़िट कोड

CLI एग्ज़िट स्टेटस कोड निम्न हैं:

  • 0: स्कैन सफलतापूर्वक पूरा हुआ, कोई भेद्यता नहीं मिली
  • 1: स्कैन सफलतापूर्वक पूरा हुआ, भेद्यताएँ मिलीं
  • 2: स्कैन विफल, स्कैनिंग के दौरान modelscan ने एक त्रुटि उत्पन्न की
  • 3: टूल को कोई समर्थित फ़ाइल पास नहीं की गई
  • 4: उपयोग त्रुटि, CLI को अमान्य या अपूर्ण विकल्प पास किए गए

Python में प्रोग्रामेटिक रूप से ModelScan का उपयोग करना

जबकि ModelScan को CLI के माध्यम से आसानी से उपयोग किया जा सकता है, आप इसे सीधे अपने Python अनुप्रयोगों या वर्कफ़्लो में भी एकीकृत कर सकते हैं।

root@kitploit:~
from modelscan.modelscan import ModelScan
from modelscan.settings import DEFAULT_SETTINGS

# Initialize ModelScan with default settings
scanner = ModelScan(settings=DEFAULT_SETTINGS)

# Scan a model file or directory 
results = scanner.scan("/path/to/model_file.pkl")

# Check if issues were found
if scanner.issues.all_issues:
    print(f"Found {len(scanner.issues.all_issues)} issues!")
    
    # Access issues by severity
    issues_by_severity = scanner.issues.group_by_severity()
    for severity, issues in issues_by_severity.items():
        print(f"{severity}: {len(issues)} issues")
        
# Generate a report (default is console output)
scanner.generate_report()

आप स्कैन व्यवहार को अपनी स्वयं की सेटिंग्स के साथ अनुकूलित कर सकते हैं:

root@kitploit:~
# Start with default settings and customize
custom_settings = DEFAULT_SETTINGS.copy()

# Update settings as needed
custom_settings["reporting"]["module"] = "modelscan.reporting.json_report.JSONReport"
custom_settings["reporting"]["settings"]["output_file"] = "scan_results.json"

# Initialize with custom settings
scanner = ModelScan(settings=custom_settings)

परिणामों को समझना

एक बार स्कैन पूरा हो जाने पर, यदि कोई समस्या पाई जाती है तो आपको इस प्रकार का आउटपुट दिखाई देगा:

ModelScan स्कैन आउटपुट

यहाँ हमारे पास एक ऐसा मॉडल है जिसमें ReadFile और WriteFile दोनों के लिए एक असुरक्षित ऑपरेटर है। स्पष्ट रूप से हम नहीं चाहते कि हमारे मॉडल मनमाने ढंग से फ़ाइलें पढ़ें और लिखें। अब हम इस मॉडल के निर्माता से संपर्क करेंगे ताकि यह निर्धारित किया जा सके कि वे इससे क्या करने की अपेक्षा करते हैं। इस विशेष मामले में यह एक हमलावर को हमारे AWS क्रेडेंशियल पढ़ने और उन्हें किसी अन्य स्थान पर लिखने की अनुमति देता है।

उपयोग के लिए यह एक सख्त NO है।

अपनी ML पाइपलाइनों और CI/CD पाइपलाइनों में ModelScan को एकीकृत करना

एड-हॉक स्कैनिंग एक बेहतरीन पहला कदम है, कृपया इसे स्वयं, सहकर्मियों और मित्रों में इस आदत के रूप में डालें कि जब भी वे किसी नए मॉडल को एक्सप्लोर करने के लिए डाउनलोड करें तो यह करें। यह प्रोडक्शन MLOps प्रक्रियाओं के लिए सुरक्षा में सुधार करने के लिए पर्याप्त नहीं है।

निम्नलिखित को पूरा करने के लिए मॉडल स्कैनिंग को एक से अधिक बार करने की आवश्यकता है:

  1. आगे के काम के लिए लोड करने से पहले सभी प्री-ट्रेंड मॉडलों को स्कैन करें, ताकि एक समझौता किया गया (compromised) मॉडल आपके मॉडल निर्माण या डेटा साइंस वातावरण को प्रभावित न कर सके।
  2. प्रशिक्षण के बाद सभी मॉडलों को स्कैन करें, ताकि आपूर्ति श्रृंखला हमले (supply chain attack) का पता लगाया जा सके जो नए मॉडलों से समझौता करता है।
  3. एंडपॉइंट पर तैनात करने से पहले सभी मॉडलों को स्कैन करें, यह सुनिश्चित करने के लिए कि संग्रहीत होने के बाद मॉडल से समझौता नहीं किया गया है।

नीचे दिए गए लाल ब्लॉक एक पारंपरिक ML पाइपलाइन में इसे उजागर करते हैं। MLOps पाइपलाइन ModelScan के साथ

प्रक्रियाएँ फाइन-ट्यूनिंग या LLM, फाउंडेशनल मॉडल, या बाहरी मॉडल के किसी भी संशोधन के लिए समान होंगी।

यदि यह आपकी ML पाइपलाइनों के बाहर किया जाता है, तो मॉडलों की तैनाती के दौरान उपयोग को सुरक्षित करने के लिए अपने CI/CD सिस्टम की तैनाती प्रक्रियाओं में स्कैन एम्बेड करें।

गहराई में जाना

📓notebooks फ़ोल्डर के अंदर आप कई नोटबुक एक्सप्लोर कर सकते हैं जो दिखाते हैं कि TensorFlow और PyTorch जैसे विभिन्न ML फ्रेमवर्क के विरुद्ध मॉडल सीरियलाइज़ेशन हमले कैसे किए जा सकते हैं।

यह जानने के लिए कि ये हमले वास्तव में कैसे काम करते हैं, 🖹 मॉडल सीरियलाइज़ेशन हमला एक्सप्लेनर देखें।

यदि आप स्टैटिक संदर्भ में मॉडलों का मूल्यांकन करने के लिए कोई अन्य दृष्टिकोण पाते हैं, तो कृपया संपर्क करें, हमें और अधिक जानना अच्छा लगेगा!

लाइसेंस

Copyright 2024 Protect AI

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

आभार

हम Matthieu Maitre से काफी प्रेरित थे, जिन्होंने PickleScan बनाया। हम उनके काम की सराहना करते हैं और ModelScan के साथ इसे महत्वपूर्ण रूप से विस्तारित किया है। ModelScan को PickleScan के समान भावना से OSS किया गया है।

योगदान

हमें खुशी होगी यदि आप हमारे ओपन सोर्स ModelScan प्रोजेक्ट में योगदान करें। यदि आप योगदान देना चाहते हैं, तो कृपया योगदान पृष्ठ पर दिए गए विवरण का पालन करें।

टूल डाउनलोड करें
ML लाइब्रेरीAPIसीरियलाइज़ेशन फॉर्मेटmodelscan समर्थन
Pytorchtorch.save() and torch.load()Pickleहाँ
Tensorflowtf.saved_model.save()Protocol Bufferहाँ
Keraskeras.models.save(save_format= 'h5')HD5 (Hierarchical Data Format)हाँ
keras.models.save(save_format= 'keras')Keras V3 (Hierarchical Data Format)हाँ
क्लासिक ML लाइब्रेरीज़ (Sklearn, XGBoost आदि)pickle.dump(), dill.dump(), joblib.dump(), cloudpickle.dump()Pickle, Cloudpickle, Dill, Joblibहाँ
उपयोगआर्ग्युमेंटविवरण
modelscan -h-h or --helpउपयोग सहायता देखें
modelscan -v-v or --versionसंस्करण जानकारी देखें
modelscan -p /path/to/model_file-p or --pathस्थानीय रूप से संग्रहीत मॉडल स्कैन करें
modelscan -p /path/to/model_file --settings-file ./modelscan-settings.toml--settings-fileकस्टम कॉन्फ़िगरेशन का उपयोग करके स्थानीय रूप से संग्रहीत मॉडल स्कैन करें
modelscan create-settings-file-l or --locationएक कॉन्फ़िगर करने योग्य सेटिंग्स फ़ाइल बनाएं
modelscan -r-r or --reporting-formatआउटपुट का प्रारूप। विकल्प हैं console, json, या custom (settings-file में परिभाषित किए जाने हेतु)। डिफ़ॉल्ट console है
modelscan -r reporting-format -o file-name-o or --output-fileआउटपुट रिपोर्ट के लिए वैकल्पिक फ़ाइल नाम
modelscan --show-skipped--show-skippedस्कैन के दौरान छोड़ी गई फ़ाइलों की सूची प्रिंट करें