सुरिकाटा - घुसपैठ का पता लगाने और रोकथाम सुरक्षा उपकरण


सुरिकाटा एक शक्तिशाली, बहुमुखी और ओपन-सोर्स खतरे का पता लगाने वाला इंजन है जो घुसपैठ का पता लगाने (आईडीएस), घुसपैठ की रोकथाम (आईपीएस), और नेटवर्क सुरक्षा निगरानी के लिए कार्यात्मकता प्रदान करता है। यह एक मिश्रण से मेल खाने वाले पैटर्न के साथ गहन पैकेट निरीक्षण करता है जो खतरे का पता लगाने में अविश्वसनीय रूप से शक्तिशाली है।

इस गाइड को लिखते समय, सुरिकाटा का नवीनतम संस्करण 6.0.5 है।

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

Linux में Suricata Intrusion डिटेक्शन टूल इंस्टॉल करना

इस खंड में, हम प्रदर्शित करेंगे कि आरएचईएल-आधारित वितरणों पर सुरिकाटा कैसे स्थापित किया जाए।

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

उपयुक्त पैकेज मैनेजर का उपयोग करके सुरिकाटा को स्थापित करने के लिए, कमांड चलाएँ:

$ sudo apt install suricata -y

एक बार स्थापित होने के बाद सुरिकाटा स्वचालित रूप से शुरू हो जाता है। आप इसकी पुष्टि इस प्रकार कर सकते हैं।

$ sudo systemctl status suricata

सेंटोस स्ट्रीम, रॉकी लिनक्स, अल्मालिनक्स, फेडोरा और आरएचईएल जैसे आरएचईएल वितरण पर सुरिकाटा स्थापित करने के लिए, आपको पहले ईपीईएल भंडार को सक्षम करने की आवश्यकता है।

$ dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm  [RHEL 9]
$ dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm  [RHEL 8]
$ yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm  [RHEL 7]

एक बार ईपीईएल सक्षम हो जाने पर, निम्नलिखित अपेक्षित पैकेजों को संस्थापित करें और अपने सिस्टम में ओआईएसएफ रिपोजिटरी जोड़ें।

----------- On Fedora Systems ----------- 
$ sudo dnf install dnf-plugins-core
$ sudo  dnf copr enable @oisf/suricata-6.0

----------- On RHEL Systems ----------- 
$ sudo dnf install yum-plugin-copr
$ sudo dnf copr enable @oisf/suricata-6.0

इसके बाद, दिखाए गए अनुसार यम पैकेज मैनेजर का उपयोग करके सुरिकाटा स्थापित करें।

$ sudo dnf install suricata -y
Or
$ sudo yum install suricata -y

एक बार सुरिकाटा स्थापित हो जाने के बाद, इसकी स्थिति शुरू करें और सत्यापित करें।

$ sudo systemctl start suricata
$ sudo systemctl status suricata

लिनक्स में स्रोत से सुरिकाटा स्थापित करें

डिफ़ॉल्ट OS रिपॉजिटरी सुरिकाटा का नवीनतम संस्करण प्रदान नहीं करती है। यदि आपका लक्ष्य सुरिकाटा का नवीनतम संस्करण स्थापित करना है, तो आपको इसे स्रोत से स्थापित करना होगा।

इस गाइड को लिखते समय, सुरिकाटा का नवीनतम संस्करण 6.0.5 है। उबंटू/डेबियन और आरएचईएल वितरण पर स्रोत से सुरिकाटा स्थापित करने के लिए, निम्नलिखित पुस्तकालय, संकलन उपकरण और निर्भरता स्थापित करें।

----------- On Debian Systems ----------- 
$ sudo apt install rustc build-essential cargo libpcre3 libpcre3-dbg libpcre3-dev make autoconf automake libtool libcap-ng0 make libmagic-dev libjansson-dev libjansson4 libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap-ng-dev pkg-config libnetfilter-queue1 libnfnetlink0 libnetfilter-queue-dev libnfnetlink-dev -y

----------- On RHEL Systems ----------- 
$ sudo yum install gcc libpcap-devel pcre-devel libyaml-devel file-devel zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make libnetfilter_queue-devel lua-devel PyYAML libmaxminddb-devel rustc cargo lz4-devel -y

इसके बाद, सुरिकाटा नियमों को अद्यतन करने के लिए सुरिकाटा-अपडेट उपकरण स्थापित करें।

$ sudo apt install python3-pip           [On Debian]
$ sudo yum install python3-pip           [On RHEL]
$ pip3 install --upgrade suricata-update

फिर /usr/bin/suricata-update के लिए एक प्रतीकात्मक लिंक बनाएं।

$ sudo ln -s /usr/local/bin/suricata-update /usr/bin/suricata-update

अब wget कमांड पर जाएं।

$ wget https://www.openinfosecfoundation.org/download/suricata-6.0.6.tar.gz

एक बार डाउनलोड हो जाने के बाद, टारबॉल फ़ाइल को निकालें और इसे इंस्टॉल करें।

$ sudo tar -xvf suricata-6.0.6.tar.gz
$ cd suricata-6.0.6
$ ./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var
$ make
$ make install-full

लिनक्स में सुरीकाटा को कॉन्फ़िगर करना

सुरिकाटा को कॉन्फ़िगर करना शुरू करने के लिए, हमें आंतरिक आईपी और बाहरी नेटवर्क को निर्दिष्ट करने की आवश्यकता है। ऐसा करने के लिए, कॉन्फ़िगरेशन फ़ाइल तक पहुँचें।

$ sudo vim /etc/suricata/suricata.yaml

HOME_NET निर्देश के लिए, अपने Linux सिस्टम का IP पता निर्दिष्ट करें।

HOME_NET: "[173.82.235.7]"

इसके बाद, EXTERNAL_NET निर्देश को !$HOME_NET पर सेट करें।

EXTERNAL_NET: "!$HOME_NET"

इसके बाद, नेटवर्क इंटरफ़ेस निर्दिष्ट करें जिस पर सुरिकाटा नेटवर्क ट्रैफ़िक का निरीक्षण करेगा। हमारे मामले में, यह eth0 इंटरफ़ेस है।

आप ip कमांड का उपयोग करके अपने सक्रिय नेटवर्क इंटरफ़ेस को सत्यापित कर सकते हैं:

$ ip a

कॉन्फ़िगरेशन फ़ाइल में, नेटवर्क इंटरफ़ेस के नाम से इंटरफ़ेस निर्देश को अपडेट करें।

- interface: eth0

इसके बाद, सुनिश्चित करें कि डिफ़ॉल्ट-नियम-पथ विशेषता /etc/suricata/rules.

फिर परिवर्तनों को सहेजें और कॉन्फ़िगरेशन फ़ाइल को बंद करें। फिर परिवर्तनों को लागू करने के लिए सुरिकाटा को पुनः आरंभ करें।

$ sudo systemctl status suricata

Linux में Suricata रूलसेट अपडेट कर रहा है

डिफ़ॉल्ट रूप से, सुरिकाटा /etc/suricata/rules निर्देशिका में स्थित खोज नियमों के सीमित सेट के साथ जहाज करता है। हालांकि, घुसपैठ का पता लगाने में इन्हें कमजोर और अप्रभावी माना जाता है। आपको इमर्जिंग थ्रेट (ET) नियमों को लोड करना होगा जिन्हें सुरिकाटा के लिए सबसे व्यापक नियम सेट माना जाता है।

सुरिकाटा एक उपकरण प्रदान करता है जिसे सुरीकाटा-अपडेट के रूप में जाना जाता है जो बाहरी प्रदाताओं से नियम प्राप्त करता है। अपने सर्वर के लिए अप-टू-डेट नियम प्राप्त करने के लिए, निम्न आदेश चलाएँ।

$ sudo suricata-update -o /etc/suricata/rules

आउटपुट से, आप suricata-update को मुफ्त इमर्जिंग थ्रेट्स ET ओपन रूल्स लाते हुए और उन्हें Suricata की /etc/suricata/rules/suricata रूल्स फाइल में सेव करते हुए देख सकते हैं। इसके अलावा, यह संसाधित किए गए नियमों की संख्या को इंगित करता है। इस उदाहरण में, कुल 35941 जोड़े गए। उनमें से, 28221 को सक्षम किया गया, 18 को हटा दिया गया और 1249 को संशोधित किया गया।

लिनक्स में सुरिकाटा नियम जोड़ना

सुरीकाटा-अपडेट टूल आपको नियम-सेट प्रदाताओं से नियम प्राप्त करने की अनुमति देता है। कुछ मुफ्त हैं जैसे ईटी ओपन सेट, जबकि अन्य को सशुल्क सदस्यता की आवश्यकता होती है।

नियम प्रदाताओं के डिफ़ॉल्ट सेट को सूचीबद्ध करने के लिए, दिखाए गए अनुसार suricata-update कमांड चलाएँ।

$ sudo suricata-update list-sources

एक नियम सेट जोड़ने के लिए, उदाहरण के लिए, टीग्रीन/शिकार नियमसेट, निम्न कमांड चलाएँ।

$ sudo suricata-update enable-source tgreen/hunting

एक बार जब आप नियम सेट जोड़ लेते हैं, तो -o /etc/suricata/rules ध्वज के साथ एक बार फिर suricata-update कमांड चलाएँ।

$ sudo suricata-update -o /etc/suricata/rules

लिनक्स में सुरीकाटा नियमों का परीक्षण

इससे पहले कि आप सुरिकाटा का परीक्षण शुरू करें, यह जांचने की सिफारिश की जाती है कि क्या कॉन्फ़िगरेशन ठीक है। ऐसा करने के लिए, निम्न आदेश चलाएँ:

$ sudo suricata -T -c /etc/suricata/suricata.yaml -v

सुनिश्चित करें कि कोई त्रुटि रिपोर्ट नहीं की गई है। यदि आप आरएचईएल, सेंटोस स्ट्रीम, फेडोरा और रॉकी लिनक्स चला रहे हैं तो सुरिकाटा को प्रारंभ और सक्षम करें।

$ sudo systemctl start suricata 
$ sudo systemctl enable suricata 

अब तक, हमने सफलतापूर्वक सुरीकाटा को स्थापित और कॉन्फ़िगर किया है और नियमों को अपडेट किया है। ET ओपन रूल सेट में दुर्भावनापूर्ण ट्रैफ़िक का पता लगाने के लिए 30,000 से अधिक नियम हैं। इस खंड में, हम सुरीकाटा का परीक्षण करेंगे और जांचेंगे कि क्या यह संदिग्ध नेटवर्क ट्रैफ़िक का पता लगा सकता है।

हम सूरीकाटा के क्विकस्टार्ट गाइड द्वारा अनुशंसित घुसपैठ का अनुकरण करके ईटी ओपन नियमों का परीक्षण करेंगे।

IDS कार्यक्षमता का परीक्षण 2100498 की एक हस्ताक्षर आईडी के साथ testmynids.org वेबसाइट पर एक HTTP अनुरोध भेजकर किया जाएगा जो एक एनआईडीएस (नेटवर्क घुसपैठ और जांच प्रणाली) ढांचा है।

$ curl http://testmynids.org/uid/index.html

आपको निम्न आउटपुट मिलना चाहिए।

uid=0(root) gid=0(root) groups=0(root)

भेजा गया HTTP अनुरोध आईडी कमांड के आउटपुट की नकल करके अलर्ट ट्रिगर करने के लिए डिज़ाइन किया गया है जो एक शेल के माध्यम से एक समझौता किए गए रिमोट सिस्टम पर चल सकता है।

अब संबंधित अलर्ट के लिए सुरीकाटा के लॉग्स को देखें। सुरीकाटा दो लॉग फाइलों के साथ जहाज करता है जो डिफ़ॉल्ट रूप से सक्षम होते हैं।

/var/log/suricata/fast.log
/var/log/suricata/eve.log

हम /var/log/suricata/fast.log लॉग फ़ाइल में एक लॉग प्रविष्टि की जाँच करेंगे जो कि grep कमांड से संबंधित है। हम क्विकस्टार्ट दस्तावेज़ से 2100498 नियम पहचानकर्ता का उपयोग करके लॉग प्रविष्टियों की खोज करेंगे।

$ grep 2100948 /var/log/suricata/fast.log

आपको निम्न आउटपुट मिलेगा जो घुसपैठ को दर्शाता है। यहां, 173.82.235.7 सर्वर का सार्वजनिक आईपी पता है।

09/09/2022-22:17:06.796434  [**] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 13.226.210.123:80 -> 173.82.235.7:33822

वैकल्पिक रूप से, आप 2100498 के हस्ताक्षर आईडी के लिए /var/log/suricata/eve.log लॉग फ़ाइल की जांच कर सकते हैं जैसा कि दिखाया गया है।

$ jq 'select(.alert .signature_id==2100498)' /var/log/suricata/eve.json

यह लिनक्स पर सुरीकाटा को स्थापित और कॉन्फ़िगर करने के तरीके के बारे में एक व्यापक मार्गदर्शिका थी। हमने विभिन्न संस्थापन विधियों को देखा है, सुरिकाटा को कैसे कॉन्फ़िगर करें और सुरिकाटा नियमों को कैसे अपडेट करें और साथ ही सुरिकाटा सिस्टमड सेवा को कैसे प्रबंधित करें और नेटवर्क घुसपैठ परीक्षण कैसे करें।

यह हमारी आशा है कि अब आप अपने सिस्टम को नेटवर्क घुसपैठ या दुर्भावनापूर्ण ट्रैफ़िक से सुरक्षित रखने के लिए सुरीकाटा को आराम से स्थापित और उपयोग कर सकते हैं।