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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Final-project-SQL-injection-pipeline — हाइब्रिड मशीन-लर्निंग पाइपलाइनें वेब ट्रैफ़िक में SQL इंजेक्शन का पता लगाने के लिए, जो DistilBERT और BERT-GNN मॉडल को प्रतिकूल प्रशिक्षण (adversarial training) और मजबूती विश्लेषण (robustness analysis) के साथ जोड़ती हैं। | Kitploit
उपकरण/GitHubGitHub/mlily2024/final-project-sql-injection-pipeline
भेद्यता विश्लेषणवेब सुरक्षामशीन लर्निंगपेपर और शोधलर्निंग और शिक्षाविसंगति का पता लगाना
GitHubmlily2024/final-project-sql-injection-pipeline

Final-project-SQL-injection-pipeline

हाइब्रिड मशीन-लर्निंग पाइपलाइनें वेब ट्रैफ़िक में SQL इंजेक्शन का पता लगाने के लिए, जो DistilBERT और BERT-GNN मॉडल को प्रतिकूल प्रशिक्षण (adversarial training) और मजबूती विश्लेषण (robustness analysis) के साथ जोड़ती हैं।

रिपॉजिटरी देखें
21 महीना पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

SQL इंजेक्शन डिटेक्शन — हाइब्रिड ML पाइपलाइन

MSc शोध-प्रबंध के लिए स्रोत कोड: SQL इंजेक्शन डिटेक्शन के लिए मशीन लर्निंग के साथ वेब एप्लिकेशन फ़ायरवॉल को बेहतर बनाना

लेखकलिलियाने लिनेट मुसोके
संस्थानयूनिवर्सिटी ऑफ रीडिंग, कंप्यूटर साइंस विभाग
कार्यक्रमMSc डेटा साइंस और एडवांस्ड कंप्यूटिंग
पर्यवेक्षकप्रोफेसर अट्टा बदी
प्रस्तुत17 सितंबर 2024

इस रिपॉजिटरी में क्या है

वेब एप्लिकेशन ट्रैफ़िक में SQL इंजेक्शन (SQLi) हमलों का पता लगाने के लिए दो नई हाइब्रिड मशीन-लर्निंग पाइपलाइन, जिनमें से प्रत्येक को एक स्व-निहित Jupyter नोटबुक के रूप में लागू किया गया है:

  1. DistilBERT_Stacked_Ensemble_pipeline.ipynb — एक DistilBERT-स्टैक्ड एन्सेम्बल (मेटा-लर्नर) पाइपलाइन। पारंपरिक ML और एन्सेम्बल क्लासिफायर (लॉजिस्टिक रिग्रेशन, XGBoost, SVM) के स्टैक में इनपुट के रूप में DistilBERT प्रासंगिक एम्बेडिंग का उपयोग करता है, जो एक न्यूरल-नेटवर्क मेटा-लर्नर के अंतर्गत संयुक्त होते हैं। फास्ट ग्रेडिएंट साइन मेथड (FGSM) के साथ प्रतिकूल प्रशिक्षण किया जाता है; हाइपरपैरामीटर Optuna के साथ ट्यून किए जाते हैं।
  2. BERT_GNN_pipeline_FINAL.ipynb — एक BERT–ग्राफ-न्यूरल-नेटवर्क हाइब्रिड पाइपलाइन। BERT SQL क्वेरी की प्रासंगिक एम्बेडिंग उत्पन्न करता है; एक GNN संरचनात्मक पैटर्न को कैप्चर करने के लिए ग्राफ-संरचित क्वेरी प्रतिनिधित्व का मॉडल बनाता है। हाइपरपैरामीटर Optuna के साथ ट्यून किए जाते हैं।

साथ ही दोनों पाइपलाइनों को प्रशिक्षित और मूल्यांकन करने के लिए उपयोग किया गया डेटासेट:

  1. SQL_Injection_Dataset.csv — लेबल वाली SQL क्वेरी (हानिरहित बनाम दुर्भावनापूर्ण)।

मुख्य परिणाम (शोध-प्रबंध से)

पाइपलाइनसटीकताप्रतिकूल सटीकता (FGSM)नोट्स
DistilBERT-स्टैक्ड एन्सेम्बल99.81%99.77%अनुशंसित दृष्टिकोण चयनित; तेज़ निष्पादन समय
BERT-GNN99.48% (99.67% होल्ड-आउट)—बेहतर संरचनात्मक समझ; लंबा निष्पादन समय (23.13 s); होल्ड-आउट-वैलिडेशन रीट्रेन 99.67% तक पहुँचता है, देखें RESULTS.md
सर्वश्रेष्ठ पारंपरिक बेसलाइन (रैंडम फ़ॉरेस्ट)94.47%—उसी अध्ययन में बेंचमार्क किया गया

सभी चार प्रदर्शन मीट्रिक (सटीकता, प्रेसिजन, रिकॉल, F1-स्कोर) दोनों हाइब्रिड पाइपलाइनों के लिए समान मुख्य आंकड़े पर पहुँचते हैं। पूर्ण प्रति-मॉडल तालिकाएँ, कन्फ्यूज़न मैट्रिक्स, ROC वक्र, लर्निंग वक्र और संवेदनशीलता विश्लेषण नोटबुक और शोध-प्रबंध में हैं।

DistilBERT-स्टैक्ड एन्सेम्बल की प्रतिकूल सटीकता 99.77% Guan et al. (2023, Future Internet 15(4):133, DOI 10.3390/fi15040133) द्वारा रिपोर्ट किए गए तुलनीय प्रतिकूल-परीक्षण परिणाम से 2.38% अधिक है — पूर्ण तुलना के लिए शोध-प्रबंध §4.4 देखें।

कार्य को कैसे देखें

  • नोटबुक — रिपो रूट में दो .ipynb फ़ाइलों में पूर्ण पाइपलाइन कोड (डेटा लोडिंग, प्रीप्रोसेसिंग, एम्बेडिंग, प्रशिक्षण, मूल्यांकन, प्रतिकूल मजबूती, संवेदनशीलता विश्लेषण) शामिल है। आउटपुट हटा दिए गए हैं ताकि नोटबुक GitHub पर तेज़ी से और छोटे आकार में रेंडर हों; किसी भी नोटबुक को ऊपर से नीचे चलाने से हर आकृति पुनः उत्पन्न होती है।
  • परिणाम गैलरी — RESULTS.md सभी आकृतियों (कन्फ्यूज़न मैट्रिक्स, ROC वक्र, लर्निंग वक्र, संवेदनशीलता-विश्लेषण प्लॉट, प्रति-मॉडल तुलना) को कुछ भी चलाए बिना देखने योग्य गैलरी के रूप में दिखाता है।
  • सभी आकृतियाँ — प्रत्येक परिणाम आकृति के अलग-अलग PNG निर्यात results/ फ़ोल्डर में हैं, जिनका नाम पाइपलाइन और अनुभाग के अनुसार रखा गया है।

नोटबुक को स्थानीय रूप से कैसे चलाएँ

Python 3.10+ और Jupyter वातावरण के साथ परीक्षण किया गया। सभी निर्भरताएँ स्थापित करने के लिए:

root@kitploit:~
python -m venv .venv
source .venv/bin/activate          # macOS / Linux
.venv\Scripts\activate             # Windows
pip install -r requirements.txt

फिर JupyterLab या VS Code में किसी भी नोटबुक को खोलें और सेल को ऊपर से नीचे चलाएँ। प्रत्येक पाइपलाइन अंत-से-अंत तक स्व-निहित है: डेटा लोडिंग और प्रीप्रोसेसिंग → एम्बेडिंग निष्कर्षण → मॉडल प्रशिक्षण → मूल्यांकन → प्रतिकूल-मजबूती जाँच → संवेदनशीलता विश्लेषण। BERT-GNN प्रशिक्षण चरण के लिए GPU की अनुशंसा की जाती है लेकिन इन्फ़रेंस या DistilBERT-स्टैक्ड एन्सेम्बल के लिए आवश्यक नहीं है।

संसाधन आवश्यकता। DistilBERT (और BERT) एम्बेडिंग-निष्कर्षण चरण भाषा मॉडल और उसके पूर्ण-डेटासेट एम्बेडिंग को एक साथ मेमोरी में रखता है। अंत-से-अंत निष्पादन के लिए DistilBERT-स्टैक्ड एन्सेम्बल पाइपलाइन के लिए लगभग 6–8 GB मुफ्त RAM और BERT-GNN के लिए 8–12 GB की आवश्यकता होती है। नोटबुक मूल रूप से Google Colab पर विकसित किए गए थे (जो 12–16 GB और मुफ्त GPU प्रदान करता है)। यदि कुल 8 GB RAM वाली मशीन पर स्थानीय रूप से चला रहे हैं, तो पहले अन्य एप्लिकेशन बंद करें या प्रत्येक नोटबुक के शीर्ष पर बैज लिंक के माध्यम से Colab में चलाएँ।

संशोधन परिणामों का पुनरुत्पादन

रिपॉजिटरी रूट में स्क्रिप्ट संशोधित BERT-GNN पेपर में रिपोर्ट किए गए विस्तारित विश्लेषण को पुनः उत्पन्न करती हैं (एब्लेशन, सही किया गया होल्ड-आउट मूल्यांकन, संरचना-जागरूक ग्राफ, अस्पष्टता मजबूती, सात-परीक्षण मजबूती सूट, पूर्ण मीट्रिक, और क्रॉस-मॉडल निष्पादन समय)। वे प्रतिबद्ध SQL_Injection_Dataset.csv पढ़ती हैं, अपने आउटपुट results/ में लिखती हैं, और मध्यवर्ती आर्टिफैक्ट (BERT एम्बेडिंग, ग्राफ, प्रशिक्षित मॉडल) को .structure_work/ और .corrected_work/ के अंतर्गत कैश करती हैं। वे कैश निर्देशिकाएँ जानबूझकर ट्रैक नहीं की जाती हैं; प्रत्येक स्क्रिप्ट उन्हें डेटासेट से पुनः बनाती है और फिर से शुरू करने योग्य है, इसलिए CPU-केवल मशीन पर बाधित रन को बस फिर से शुरू किया जा सकता है और यह जारी रहेगा।

स्क्रिप्ट उन कैश के माध्यम से एक प्रोड्यूसर→कंज़्यूमर श्रृंखला बनाती हैं, इसलिए उन्हें इस क्रम में चलाएँ (प्रत्येक चरण को केवल डेटासेट और पहले के चरणों द्वारा लिखे गए कैश की आवश्यकता होती है):

root@kitploit:~
pip install -r requirements.txt

python structure_graph_gnn.py        # structure graphs + best.json (Optuna) + structure-GNN result
python corrected_bertgnn_retrain.py  # held-out-validation retrain (chain graph) -> corrected result
python extract_train_cls.py          # train-split BERT [CLS] embeddings (train_cls.npy)
python bert_only_ablation.py         # BERT-only heads on the identical test set
python obfuscation_robustness.py     # trains + caches gnn_model.pt / mlp_model.pkl; evasion recall
python robustness_1_sensitivity.py   # seven-test robustness suite, one script each
python robustness_2_adversarial.py
python robustness_3_obfuscation_extended.py
python robustness_4_adaptive.py
python robustness_5_crossdataset.py
python robustness_6_significance.py
python robustness_7_calibration.py
python metrics_summary.py            # full per-class metric tables
python complexity_breakdown.py       # accuracy by query complexity (Table 4)
python make_result_figures.py        # confusion matrices + comparison charts
python model_execution_times.py      # training + inference time across all models

सभी स्क्रिप्ट अपने पथ रिपॉजिटरी के सापेक्ष हल करती हैं, एक निश्चित सीड (random_state=42) का उपयोग करती हैं, और किसी तर्क की आवश्यकता नहीं होती है। CPU पर चलाना पूरी तरह से समर्थित है (GPU केवल एम्बेडिंग और GNN-प्रशिक्षण चरणों को गति देता है)।

पुनरुत्पादन की अपेक्षित सटीकता। संख्याएँ बिट-दर-बिट के बजाय लगभग ±0.1–0.2 प्रतिशत अंकों तक पुनरुत्पादित होती हैं। मामूली भिन्नता CPU बनाम GPU निष्पादन, PyTorch गैर-नियतिवाद, और प्रारंभिक-रोक युग के रनों के बीच एक या दो से भिन्न होने से आती है। रिपोर्ट किए गए निष्कर्ष (ग्राफ स्वच्छ-सटीकता में कोई लाभ नहीं जोड़ता लेकिन URL-एन्कोडिंग चोरी के प्रति मजबूती में सुधार करता है, और संबंधित सांख्यिकीय परीक्षण) उस मार्जिन के भीतर अच्छी तरह से स्थिर हैं।

आभार

पर्यवेक्षक: प्रोफेसर अट्टा बदी (यूनिवर्सिटी ऑफ रीडिंग)। परियोजना के निष्पादन के दौरान सलाह के लिए PhD उम्मीदवार अहमद अशलाम को भी धन्यवाद। दोनों को शोध-प्रबंध में स्वीकार किया गया है।

उद्धरण

यदि आप इस कार्य का संदर्भ देते हैं:

Musoke, L. L. (2024). Enhancing Web Application Firewall with Machine Learning for SQL Injection Detection. MSc dissertation, University of Reading.

लाइसेंस

MIT लाइसेंस के अंतर्गत जारी किया गया।

साथी रिपॉजिटरी

यह GitHub रिपॉजिटरी यूनिवर्सिटी ऑफ रीडिंग के संस्थागत Gitlab पर मूल सबमिशन को दर्शाती है: https://csgitlab.reading.ac.uk/qz820024/sql-injection-pipeline-project।


मूल कार्य घोषणा (शोध-प्रबंध से): "मैं, लिलियाने लिनेट मुसोके, यूनिवर्सिटी ऑफ रीडिंग के कंप्यूटर साइंस विभाग से, प्रमाणित करती हूँ कि यह मेरा मूल कार्य है, उन उदाहरणों को छोड़कर जहाँ मैंने अन्य लेखकों के योगदान को स्पष्ट रूप से स्वीकार किया है।"

टूल डाउनलोड करें