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

ModelScan Protect AI का एक ओपन सोर्स प्रोजेक्ट है जो यह निर्धारित करने के लिए मॉडलों को स्कैन करता है कि उनमें असुरक्षित कोड है या नहीं। यह कई मॉडल फॉर्मेट को सपोर्ट करने वाला पहला मॉडल स्कैनिंग टूल है। ModelScan वर्तमान में निम्न का समर्थन करता है: H5, Pickle, और SavedModel फॉर्मेट। यह आपको PyTorch, TensorFlow, Keras, Sklearn, XGBoost का उपयोग करते समय सुरक्षित रखता है, और आगे और भी फॉर्मेट आ रहे हैं।
यदि आप अपने मॉडलों को स्कैन करना शुरू करने के लिए तैयार हैं, तो यह सरल है:
pip install modelscan
इसे इंस्टॉल करने के बाद, एक मॉडल स्कैन करें:
modelscan -p /path/to/model_file.pkl
मॉडल अक्सर स्वचालित पाइपलाइनों से बनाए जाते हैं, कुछ किसी डेटा वैज्ञानिक के लैपटॉप से आ सकते हैं। दोनों ही स्थितियों में, उपयोग से पहले मॉडल को एक मशीन से दूसरी मशीन पर स्थानांतरित करना आवश्यक होता है। मॉडल को डिस्क पर सहेजने की वह प्रक्रिया सीरियलाइज़ेशन कहलाती है।
मॉडल सीरियलाइज़ेशन हमला वह है जिसमें वितरण से पहले सीरियलाइज़ेशन (सेविंग) के दौरान मॉडल की सामग्री में दुर्भावनापूर्ण कोड जोड़ा जाता है — ट्रोजन हॉर्स का एक आधुनिक संस्करण।
यह हमला मॉडलों की सेविंग और लोडिंग प्रक्रिया का फायदा उठाकर कार्य करता है। जब आप model = torch.load(PATH) के साथ एक मॉडल लोड करते हैं, तो PyTorch फ़ाइल की सामग्री खोलता है और उसके भीतर के कोड को चलाना शुरू कर देता है। मॉडल लोड करते ही एक्सप्लॉइट निष्पादित हो जाता है।
मॉडल सीरियलाइज़ेशन हमले का उपयोग निम्न को निष्पादित करने के लिए किया जा सकता है:
ये हमले अविश्वसनीय रूप से सरल हैं और आप हमारे 📓notebooks फ़ोल्डर में कार्यशील उदाहरण देख सकते हैं।
ModelScan मजबूत ओपन-सोर्स स्कैनिंग प्रदान करता है। यदि आपको व्यापक AI सुरक्षा की आवश्यकता है, तो Guardian पर विचार करें। यह हमारा एंटरप्राइज़-ग्रेड मॉडल स्कैनिंग उत्पाद है।

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

यदि कोई समस्या पाई जाती है, तो कारण निर्धारित करने के लिए तुरंत मॉडल के निर्माता से संपर्क करें।
कुछ मामलों में, डेटा वैज्ञानिक के रूप में चीजों का पुनरुत्पादन आसान बनाने के लिए मॉडल में कोड एम्बेडेड हो सकता है, लेकिन यह आपको हमले के प्रति खोल देता है। यह निर्धारित करने के लिए अपने विवेक का उपयोग करें कि क्या यह आपके वर्कलोड के लिए उपयुक्त है।
यह लगातार विस्तारित होता रहेगा, इसलिए हमारे रिलीज़ नोट्स में बदलावों पर नज़र रखें।
वर्तमान में, ModelScan सभी Pickle व्युत्पन्न फॉर्मेट और कई अन्य का समर्थन करता है:
| ML लाइब्रेरी | API | सीरियलाइज़ेशन फॉर्मेट | modelscan समर्थन |
|---|---|---|---|
| Pytorch | torch.save() and torch.load() | Pickle | हाँ |
| Tensorflow | tf.saved_model.save() | Protocol Buffer | हाँ |
| Keras | keras.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 | हाँ |