संदिग्ध वेबसाइटों पर जाने पर हम सभी को चेतावनियां मिली हैं। आपका ब्राउज़र या खोज इंजन आपको प्रवेश करने से रोक भी सकता है, यह संदेश प्रदर्शित करते हुए कि यह साइट आपके उपकरण को नुकसान पहुंचा सकती है। लेकिन क्या होगा यदि आप जिस साइट पर जाने का प्रयास कर रहे हैं उसे दुर्भावनापूर्ण के रूप में फ़्लैग नहीं किया गया है?
साइटलॉक की 2022 सुरक्षा रिपोर्ट के अनुसार, 92% संक्रमित वेबसाइटों को सर्च इंजन द्वारा ब्लैकलिस्ट नहीं किया जाता है। इसका मतलब यह है कि जब वे इन साइटों पर जाते हैं तो व्यवसाय और व्यक्ति हमले की चपेट में आ जाते हैं।
ऐसे कई कारण हैं जिनकी वजह से सर्च इंजन में संक्रमित साइटों की कमी होती है। सबसे पहले, किसी वेबसाइट को दुर्भावनापूर्ण के रूप में पहचाने जाने में सप्ताह या महीने भी लग सकते हैं। ऐसा इसलिए है क्योंकि हमलावर पहचान से बचने के लिए लगातार अपनी रणनीति बदल रहे हैं। दूसरे, बहुत से व्यवसायों को पता ही नहीं चलता कि उनकी साइट को हैक कर लिया गया है, जब तक कि बहुत देर न हो जाए। और तीसरा, भले ही किसी वेबसाइट को फ़्लैग किया गया हो, इस बात की कोई गारंटी नहीं है कि उपयोगकर्ता इससे बचेंगे।
तो व्यवसायों और उपयोगकर्ताओं को इन खतरों से बचाने के लिए क्या किया जा सकता है? जिस तरह साइबर अपराधी अपने हमलों को स्वचालित करने के लिए AI का उपयोग करते हैं, उसी तरह हम भी व्यवसायों की रक्षा के लिए AI का उपयोग कर सकते हैं। यह केवल सिद्धांत नहीं है; एआई-आधारित मैलवेयर डिटेक्शन तकनीकों के एक आईईईई विश्लेषण ने निष्कर्ष निकाला कि वे " महत्वपूर्ण लाभ प्रदान करते हैं ," जैसे कि सटीकता, गति और मापनीयता के संदर्भ में।
उदाहरण के लिए, SafeDNS मैलवेयर का पता लगाने में 98% सटीकता प्राप्त करने के लिए " निरंतर मशीन सीखने " का उपयोग करता है। वे मशीन लर्निंग मॉडल को ईंधन देने के लिए "मैलवेयर का डेटाबेस" का उपयोग करते हैं जो व्यवहार के नए पैटर्न को देखने के लिए डेटा का विश्लेषण करते हैं जो खतरे का संकेत दे सकते हैं। इससे उन्हें कोई भी नुकसान करने से पहले, खतरों को जल्दी और प्रभावी ढंग से पहचानने की अनुमति मिलती है।
यदि हम साइबर अपराधियों से एक कदम आगे रहना चाहते हैं, तो हमें अपने व्यवसायों की रक्षा के लिए एआई का उपयोग करना होगा। हालिया शोध एक जागृत कॉल है - यह कार्रवाई करने और एआई-संचालित समाधानों में निवेश करने का समय है।
मैलवेयर का पता लगाने और उससे बचाव करने के कई तरीके हैं। इस खंड में, हम ऐसी ही एक विधि पर एक नज़र डालेंगे: निष्पादन योग्य फ़ाइलों के डेटासेट के आधार पर मैलवेयर का पता लगाने के लिए पायथन का उपयोग करना। पूरा संबद्ध कोड यहां देखें।
हम जिस डेटासेट का उपयोग कर रहे हैं, वह कागल के " मालवेयर एक्ज़ीक्यूटेबल डिटेक्शन " डेटासेट से है। यह निष्पादन योग्य फ़ाइलों के 373 नमूनों से बना है, जिनमें से 301 दुर्भावनापूर्ण फ़ाइलें हैं और जिनमें से 72 गैर-दुर्भावनापूर्ण हैं। जैसा कि आप देख सकते हैं, डेटासेट असंतुलित है , मैलवेयर फ़ाइलों की संख्या से अधिक नियमित फ़ाइलों के साथ।
डेटासेट में F1 से F531 तक 531 विशेषताओं का प्रतिनिधित्व किया गया है, और एक लेबल कॉलम है जो बताता है कि फ़ाइल दुर्भावनापूर्ण है या गैर-दुर्भावनापूर्ण है। हम इन सभी सुविधाओं का उपयोग नहीं करेंगे, लेकिन हम अपने मॉडल बनाने के लिए उनमें से कई का उपयोग करेंगे।
हम अपने डेमो के लिए आवश्यक पुस्तकालयों को आयात करके शुरू करेंगे। हम पांडा, सुन्न और स्किकिट-लर्न लाइब्रेरी का उपयोग करेंगे:
import pandas as pd import numpy as np import sklearn from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn import metrics from sklearn.metrics import classification_report from sklearn.metrics import roc_curve,accuracy_score,confusion_matrix,recall_score,precision_score,f1_score, auc, roc_auc_score from sklearn.model_selection import train_test_split
इसके बाद, हम डेटासेट में लोड करेंगे:
df = pd.read_csv('uci_malware_detection.csv')
अब जब हमने डेटासेट पर एक नज़र डाल ली है, तो चलिए आगे बढ़ते हैं और इसे प्रशिक्षण और परीक्षण सेट में विभाजित करते हैं। हम स्ट्रिंग्स से नंबरों के लेबल भी मैप करेंगे और डुप्लीकेट हटा देंगे:
df['Label'] = df['Label'].map({'malicious': 0, 'non-malicious': 1}) df = df.drop_duplicates(keep=False) X, y = df.drop("Label", axis=1), df["Label"] X_train, X_test, y_train, y_test= train_test_split(X,y, test_size=0.2, random_state=42)
अब हम अपने मॉडल बनाने के लिए तैयार हैं। हम एक साधारण लॉजिस्टिक रिग्रेशन मॉडल का उपयोग करेंगे:
lr_model = LogisticRegression(max_iter=1,000) lr_model.fit(X_train, y_train)
अब हम परीक्षण सेट पर अपने मॉडल के प्रदर्शन का मूल्यांकन कर सकते हैं:
lr_model.score(X_test, y_test) y_pred = lr_model.predict(X_test) print(accuracy_score(y_test, y_pred)) print('ROC-AUC score', roc_auc_score(y_test,y_pred)) print('Confusion matrix:\n ', confusion_matrix(y_test, y_pred))
इस कोड को चलाने से हमें निम्नलिखित आउटपुट मिलते हैं:
0.9864864864864865 ROC-AUC score 0.9705882352941176 Confusion matrix: [[57 0] [ 1 16]]
अंततः, हम उच्च परिशुद्धता और रिकॉल दोनों के साथ एक सटीक मॉडल बनाने में कामयाब रहे हैं। इतना खराब भी नहीं! बेशक, यह सिर्फ अवधारणा का प्रमाण है, क्योंकि वास्तविक दुनिया की स्थिति अधिक जटिल परिमाण के आदेश हैं। बड़े पैमाने पर, बड़े डेटा पर प्रशिक्षित एआई सिस्टम मैलवेयर के खिलाफ लड़ाई में वास्तविक अंतर ला सकता है।