
ML-आधारित फीडबैक WAF का पहला संस्करण
NGWAF @yupengfei, @zhangbosen, @matthewng और @elizabethlim द्वारा बनाया गया है।
NGWAF के प्रारंभिक चरणों में उनके योगदान के लिए @ruinahkoh को विशेष शुक्रिया।
NGWAF एक प्रयोगात्मक अवधारणा प्रमाण है और अपने वर्तमान रूप में उत्पादन उपयोग के लिए तैयार नहीं है।
सामग्री
दिमाग: मशीन-लर्निंग आधारित WAF
देखने का शीशा: स्केलेबल इंटरैक्टिव क्वारंटाइन वातावरण
पुस्तकालय: दिमाग को मजबूत करने के लिए पुनःप्रशिक्षण अनुक्रम
2000 के दशक की शुरुआत से वेब अनुप्रयोगों के विस्फोटक विकास के साथ, वेब-आधारित हमले धीरे-धीरे अधिक व्यापक हो गए हैं। एक सामान्य समाधान वेब एप्लीकेशन फ़ायरवॉल (WAF) है। हालाँकि, पता लगाने के तंत्र में सुधार के लिए वर्तमान WAF के नियमों को बदलना जटिल और कठिन हो सकता है। NGWAF एक उपन्यास मशीन लर्निंग और क्वारंटाइन-टू-हनीपॉट आर्किटेक्चर के साथ इन कमियों को दूर करने का प्रयास करता है।
WAF संचालन से वास्तविक दर्द बिंदुओं से प्रेरित होकर, NGWAF निम्नलिखित प्रक्रियाओं के माध्यम से WAF संचालन को सरल और पुनर्विचार करने का इरादा रखता है:
| दर्द बिंदु | NGWAF सुविधा |
|---|---|
| पता लगाने के तंत्र और नियमों का रखरखाव जटिल हो सकता है | पता लगाने के तंत्र बनाने और अपडेट करने की प्रक्रिया को स्वचालित करने के लिए मशीन लर्निंग का लाभ उठाएं |
| दुर्भावनापूर्ण ट्रैफ़िक को तुरंत ब्लॉक करने से भविष्य में WAF सुधार के लिए खतरे के अभिनेता के व्यवहार से सीखने की संभावना कम हो जाती है | पारंपरिक ड्रॉपिंग और ब्लॉकिंग के बजाय पुनर्निर्देशित क्वारंटाइन के माध्यम से खतरे का उन्मूलन |
तैनाती को सरल और पोर्टेबल बनाने के लिए, हमने डॉकर का उपयोग करके आर्किटेक्चर में विभिन्न घटकों को कंटेनरीकृत किया है और उन्हें डॉकर-कंपोज़ फ़ाइल में कॉन्फ़िगर किया है। यह इसे एक नए इंस्टॉल पर चलाने के लिए त्वरित और आसान बनाता है क्योंकि निर्भरताएँ डॉकर द्वारा स्वचालित रूप से संभाली जाती हैं। तैनाती को किसी स्थानीय या क्लाउड प्रदाता आधारित कुबरनेट्स क्लस्टर में तैनात करने के लिए विस्तारित किया जा सकता है, जिससे उपयोगकर्ता बड़ी मात्रा में ट्रैफ़िक को संभालने के लिए नोड्स/पॉड्स की संख्या बढ़ा सकते हैं।
तैनाती का परीक्षण macOS (डॉकर डेस्कटॉप), लिनक्स (उबंटू) पर किया गया है।
NGWAF तीन प्रमुख घटकों के साथ आउट-ऑफ-द-बॉक्स चलता है, ये घटक जैसा कि ऊपर बताया गया है, सभी कंटेनरीकृत हैं और वांछित उपयोग के अनुसार स्केलेबल हैं। संरक्षित संसाधन को सेटअप के भीतर तैनाती परिवर्तन करके अनुकूलित किया जा सकता है।
विभिन्न पक्षों से अपेक्षित ट्रैफ़िक प्रवाह के साथ NGWAF की उच्च स्तरीय वास्तुकला
NGWAF को निम्नलिखित प्रमुख उपयोगकर्ता लाभों को ध्यान में रखकर डिज़ाइन किया गया था:
NGWAF पारंपरिक नियमसेट को डीप लर्निंग मॉडल से बदल देता है ताकि नियमों के प्रबंधन और अद्यतन की जटिलता को कम किया जा सके। मैन्युअल रूप से नियमों को संपादित करने के बजाय, NGWAF का मशीन लर्निंग दुर्भावनापूर्ण डेटा से पैटर्न सीखने की प्रक्रिया को स्वचालित करता है। क्वारंटाइन वातावरण से एकत्र किए गए डेटा को स्वचालित रूप से साफ और बैच किया जाता है, जिससे इसे हमारे डिटेक्शन मॉडल में पुनः प्रशिक्षित किया जा सकता है यदि वांछित हो।
NGWAF एक नवीन आर्किटेक्चर अपनाता है जिसमें संभावित शत्रुतापूर्ण हमलावरों को अलग करने के लिए एक इंटरैक्टिव और क्वारंटाइन वातावरण शामिल है। पारंपरिक WAF के विपरीत जो पता लगाने पर ब्लॉक करता है, NGWAF खतरे के अभिनेताओं को अनुकरण प्रणालियों में डायवर्ट करता है, उन्हें फँसाता है ताकि उनके दुर्भावनापूर्ण कार्यों के प्रभाव को कम किया जा सके। वातावरण वर्तमान हमले के तरीकों को इकट्ठा करने के लिए एक सिंकहोल के रूप में भी कार्य करता है, जिससे दुर्भावनापूर्ण डेटा का अवलोकन और संग्रह संभव होता है। इस डेटा का उपयोग NGWAF की पहचान क्षमता को और बेहतर बनाने के लिए किया जा सकता है।
NGWAF कार्रवाई में: SQL इंजेक्शन का पता लगाने पर, NGWAF प्रयास को ड्रॉप या ब्लॉक करने के बजाय हमारे क्वारंटाइन वातावरण पर रीडायरेक्ट करता है।
NGWAF के निर्माण के पीछे मार्गदर्शक सिद्धांत ओपन वेब एप्लीकेशन सिक्योरिटी प्रोजेक्ट के मानक जागरूकता दस्तावेज़ - OWASP टॉप 10 2021 से उजागर जोखिमों से बचाव करना है।
प्रशिक्षण डेटा और अनुपालन जाँच इस आवश्यकता के आधार पर एकत्र और संचालित की जाती है।
जब हम न्यूरल जा सकते हैं तो मैनुअल की क्या ज़रूरत
पारंपरिक नियमसेट के बजाय जिसमें विश्लेषकों को समय के साथ मैन्युअल रूप से नियमों की पहचान और जोड़ने की आवश्यकता होती है, NGWAF पता लगाने के तंत्र के लिए एंड-टू-एंड मशीन लर्निंग पाइपलाइन का लाभ उठाता है, जिससे WAF नियम प्रबंधन की जटिलता बहुत कम हो जाती है, विशेष रूप से जटिल पेलोड का पता लगाने में।
ऐसा करने के लिए, हमें पहले एक बेस मॉडल और आर्किटेक्चर बनाने की आवश्यकता थी जिससे उपयोगकर्ता शुरुआत कर सकें, इससे पहले कि वे बाद में अपने स्वयं के अनुप्रयोगों से एकत्र किए गए डेटा का उपयोग पुनःप्रशिक्षण और फ़ाइन-ट्यूनिंग के लिए करें:
बेस मॉडल की सामान्य वास्तुकला एक साधारण RNN है जिसमें एक द्वि-दिशात्मक LSTM मॉड्यूल है जैसा कि नीचे दिखाया गया है:
छवि Tensorflow से ली गई (लिंक)
इस RNN आर्किटेक्चर का उपयोग करके, हम सरल मॉडलों पर प्रदर्शन सुधार प्राप्त करने में सक्षम थे:
यद्यपि हमने बेस मॉडल की सामान्यीकरण क्षमता में सुधार करने के लिए विभिन्न अनुप्रयोगों से लॉग शामिल किए हैं, मॉडल का आगे का रखरखाव और पुनःप्रशिक्षण निम्नलिखित के लिए महत्वपूर्ण होगा:
इसे संबोधित करने के लिए, NGWAF के उपयोगकर्ता हमारे पैकेज्ड एंड-टू-एंड मॉडल रीट्रेनिंग पाइपलाइन से लाभान्वित होते हैं, और हुड के नीचे खुदाई किए बिना कुछ सरल चरणों के साथ आसानी से मॉडल रखरखाव को ट्रिगर कर सकते हैं। (नीचे अनुभाग 3 देखें)।
उन्हें मत जाने दो, उन्हें हिरासत में लो!
पारंपरिक WAF के विपरीत जहां दुर्भावनापूर्ण ट्रैफ़िक को तुरंत ब्लॉक या ड्रॉप कर दिया जाता है। NGWAF एक अधिक लचीला दृष्टिकोण अपना रहा है। जहाँ यह दुर्भावनापूर्ण अभिनेताओं को एक क्वारंटाइन वातावरण में रीडायरेक्ट और हिरासत में लेता है। इस वातावरण में विभिन्न इंटरैक्टिव अनुकरणित हनीपॉट शामिल हैं ताकि अधिक हमले के तरीकों/डेटा को इकट्ठा करने का प्रयास किया जा सके, इन डेटा का उपयोग अधिक आधुनिक और जटिल हमलों का पता लगाने की NGWAF की दर को संभावित रूप से बढ़ाने के लिए किया जाएगा।
वर्तमान में, NGWAF का क्वारंटाइन वातावरण फँसे हुए हमलावर द्वारा प्रस्तुत सभी डेटा को विश्लेषण और विज़ुअलाइज़ेशन के लिए हमारे ELK स्टैक पर अग्रेषित करता है। डेटा को HTTP अनुरोध के विभिन्न घटकों में स्वचालित रूप से स्क्रब किया जाता है, फिर अग्रेषित करने से पहले आंतरिक रूप से JSON प्रारूप में पर्यावरण के बैकएंड पर पैकेज किया जाता है। यह पुनःप्रशिक्षण प्रक्रिया शुरू करते समय डेटा को साफ और अनुक्रमित करने के लिए आवश्यक जनशक्ति लागत को कम करने में मदद करता है।
NGWAF वर्तमान में उपयोगकर्ताओं को क्वारंटाइन वातावरण (ड्रुपोट के अनुकूलित संस्करण पर आधारित) के भीतर हमारे हनीपॉट के फ्रंट-एंड पहलू के रूप और अनुभव में बदलाव करने की अनुमति देता है। उपयोगकर्ताओं को बस डॉकर वॉल्यूम के भीतर एसेट्स फ़ोल्डर को अपनी पसंद के फ्रंट-एंड एसेट्स से बदलना होता है।
NGWAF उन उपयोगकर्ताओं को भी समायोजित करता है जो अपने स्वयं के हनीपॉट को क्वारंटाइन वातावरण के हिस्से के रूप में लिंक करना चाहते हैं। उपयोगकर्ताओं को बस हनीपॉट के HTTP अनुरोधों को पर्यावरण के बैकएंड सर्वर पर अग्रेषित करना होता है (बैकएंड प्रक्रियाएं स्वचालित रूप से डेटा को स्क्रब और विश्लेषण डैशबोर्ड - ELK स्टैक पर अग्रेषित करेंगी)।
स्मार्ट तब तक स्मार्ट नहीं है जब तक आप सीखते नहीं रहते
जैसे-जैसे नए पेलोड और हमले के वेक्टर उभरते हैं, सुरक्षा सुनिश्चित करने के लिए पहचान क्षमताओं को अपग्रेड करना महत्वपूर्ण है। इसलिए, NGWAF में एक पुनःप्रशिक्षण फ़ंक्शन बनाया गया है ताकि रक्षक उन नए पेलोड का पता लगाने के लिए मशीन लर्निंग मॉडल को प्रशिक्षित करने में सक्षम हों। डेटा विज्ञान या तंत्रिका नेटवर्क से अपरिचित उपयोगकर्ता अभी भी इस सरल इंटरफ़ेस के साथ मॉडल को फ़ाइन-ट्यून करने में सक्षम होंगे, क्योंकि जटिल चरण उनके लिए संभाले जाते हैं।
उपयोगकर्ताओं को केवल अपने स्वयं के लाइव सिस्टम से लेबल किए गए डेटा का एक छोटा नमूना अपलोड करना होगा (जैसे, कम 1000 के आसपास), जिसका उपयोग बैकएंड पर मौजूदा मॉडल को फ़ाइन-ट्यून करने के लिए किया जाएगा:
जब प्रशिक्षण पूरा हो जाता है, तो उपयोगकर्ताओं को नए मॉडल का आकलन करने के लिए कुछ संक्षिप्त मॉडल डायग्नोस्टिक्स (जैसे, परीक्षण सेट पर प्रदर्शन और विभिन्न स्कोर थ्रेशोल्ड पर) भी प्रदान किए जाएंगे।
पुनःप्रशिक्षण प्रक्रिया को ट्रिगर करने के लिए, डैशबोर्ड पर जाएँ और इन चरणों का पालन करें:
payload [str]: यह या तो आपके सिस्टम का पेलोड होना चाहिए, या कुछ स्ट्रिंग-आधारित उदाहरण (जैसे, SQLi इंजेक्शन उदाहरण)label [int]: यह गैर-दुर्भावनापूर्ण उदाहरणों के लिए 0 और दुर्भावनापूर्ण उदाहरणों के लिए 1 होना चाहिएis_url [bool]: यह TRUE होना चाहिए यदि पेलोड आपके सिस्टम से है (यानी, पथ और डिवाइस जैसी अन्य सिस्टम जानकारी सहित), और FALSE यदि यह एक स्ट्रिंग-आधारित उदाहरण है (जैसे, "1==1")http://localhost:8088 पर जाएं।
NGWAF NGWAF के माध्यम से गुजरने वाले नेटवर्क डेटा के लॉग को कैप्चर करने के लिए ELK स्टैक का उपयोग करता है, जिससे उपयोगकर्ता आगे के विश्लेषण के लिए NGWAF के माध्यम से गुजरने वाले ट्रैफ़िक की निगरानी कर सकते हैं।
NGWAF लाइव टेलीग्राम सूचना के साथ भी आता है, ताकि मालिकों को NGWAF द्वारा पता लगाए गए लाइव दुर्भावनापूर्ण खतरों के बारे में सूचित किया जा सके।
परीक्षण किए गए ऑपरेटिंग सिस्टम
डॉकर चलने के साथ, नीचे दिए गए कमांड का उपयोग करके निम्नलिखित फ़ाइल चलाएँ:
./run.sh
लक्ष्यों को बदलने के लिए, /waf/WafApp/waf.py फ़ाइल में dest_server और honey_pot_server वेरिएबल को सही लक्ष्यों पर इंगित करें:
# मुझे बदलें
dest_server = "dvwa"
honey_pot_server = "drupot:5000"
एक बार जब डॉकर कंटेनर ऊपर हो जाता है, तो आप अपने लोकलहोस्ट पर जा सकते हैं, जिसमें ये पोर्ट ये सेवाएँ चला रहे हैं:
waf-secrets.env फ़ाइल में निम्नलिखित भी सेट करें:
# ML MODEL API ENDPOINT
API_ENDPOINT="https://xxxxx.xxx"
API_KEY="******************"
# TELEGRAM CONFIG
TELEGRAM_CHAT_ID="-57893457893457345"
TELEGRAM_TOKEN="******************"
waf-admin-secrets.env फ़ाइल में निम्नलिखित भी सेट करें:
# ML MODEL API ENDPOINT
API_ENDPOINT="https://xxxxxx.xxx"
API_KEY="******************"
BUCKET_NAME="******************"
ACCESS_KEY_ID="******************"
SECRET_ACCESS_KEY="******************"
SQL_USERNAME="******************"
SQL_PASSWORD="******************"
SQL_SERVER="******************"
SQL_DATABASE_NAME="******************"
NGWAF एक W.I.P, ओपन सोर्स प्रोजेक्ट है, पैच से पैच में फ़ंक्शन और सुविधाएँ बदल सकती हैं। यदि आप योगदान देने में रुचि रखते हैं, तो कृपया एक मुद्दा या पुल अनुरोध बनाने के लिए स्वतंत्र महसूस करें!
| मॉडल आर्किटेक्चर | सटीकता | F1 स्कोर |
|---|
| हमारा अंतिम मॉडल | 0.995 | 0.993 |
| LSTM मॉड्यूल के बिना तंत्रिका नेटवर्क | 0.956 | 0.891 |
| निर्णय वृक्ष | 0.878 | 0.840 |
| लॉजिस्टिक रिग्रेशन | 0.946 | 0.914 |
| पोर्ट | सेवा | टिप्पणियाँ | क्रेडेंशियल्स (यदि लागू हो) |
|---|
| 8080 | DVWA | जहाँ WAF रहता है | admin:password |
| 5601 | Elasticsearch | लॉग देखने के लिए | elastic:changeme |
| 8088 | एडमिन डैशबोर्ड | WAF मॉडल प्रबंधित करने के लिए डैशबोर्ड | |
| 5001 | Drupot | हनीपॉट |