Log4Shell (CVE-2021-44228) भेद्यता को कई साइबर सुरक्षा शोधकर्ताओं और विशेषज्ञों द्वारा अब तक की सबसे गंभीर जीरो-डे भेद्यता के रूप में वर्णित किया गया है। यह Log4j नामक एक व्यापक रूप से उपयोग की जाने वाली Java यूटिलिटी को प्रभावित करती है, जो 2001 से लॉगिंग और इवेंट संचार के लिए मौजूद है, जैसे नियमित सिस्टम ऑपरेशन और सॉफ्टवेयर त्रुटियां। यहां हम आपको दिखाते हैं कि अपने Linux सिस्टम को इससे कैसे बचाया जाए।
Log4Shell भेद्यता कैसे काम करती है?
मूल स्तर पर, यह भेद्यता अनुचित इनपुट वैलिडेशन के कारण होती है। यह तब होता है जब सॉफ्टवेयर प्राप्त डेटा को ठीक से मान्य नहीं करता, जिससे संभावित भेद्यताएं पैदा होती हैं, क्योंकि गलत तरीके से मान्य इनपुट का उपयोग प्रोग्राम को उन कार्यों को करने के लिए किया जा सकता है जो इसे नहीं करने चाहिए।
Log4Shell विशेष रूप से उन अनुरोधों का लाभ उठाता है जो Log4j सर्वरों को भेजता है, LDAP और JNDI का उपयोग करके। इन अनुरोधों का लाभ उठाकर, एक हमलावर किसी भी कमजोर सिस्टम पर कोड निष्पादित कर सकता है, जिससे एक दुर्भावनापूर्ण अभिनेता सिस्टम का पूरा नियंत्रण ले सकता है और रैंसमवेयर इंस्टॉल करने या डेटा चोरी करने की क्षमता प्राप्त कर सकता है।
Log4Shell क्या प्रभावित करता है?
चूंकि Java एक अत्यधिक लोकप्रिय प्रोग्रामिंग भाषा है, इसलिए Java में लिखे गए बहुत सारे सॉफ्टवेयर जो अपने लॉगिंग कार्यक्षमता के लिए Log4j का उपयोग करते हैं, इस भेद्यता से प्रभावित होते हैं। इस भेद्यता से प्रभावित कुछ सबसे प्रसिद्ध और आमतौर पर उपयोग किए जाने वाले सॉफ्टवेयर में Apache और Minecraft नामक वीडियो गेम शामिल हैं।
कैसे पता करें कि कौन से सॉफ्टवेयर प्रभावित हैं?
Log4Shell, किसी अन्य साइबर सुरक्षा भेद्यता की तरह, इससे प्रभावित सॉफ्टवेयर को पैच करके कम किया जाता है। हालांकि, Log4Shell का मामला थोड़ा अधिक अनूठा है, क्योंकि यह इतनी विस्तृत श्रृंखला के सॉफ्टवेयर को प्रभावित करता है, और यह ट्रैक करना मुश्किल हो सकता है कि क्या प्रभावित है और क्या नहीं।
सौभाग्य से, नीदरलैंड के राष्ट्रीय साइबर सुरक्षा केंद्र ने GitHub पर एक व्यापक सूची प्रकाशित की है, जिसमें विभिन्न संगठनों द्वारा विकसित सॉफ्टवेयर के नाम शामिल हैं, जो बताती है कि वे Log4Shell के प्रति संवेदनशील हैं या नहीं।
अपने Apache सर्वर को भेद्यता के लिए कैसे स्कैन करें
चूंकि इस भेद्यता ने साइबर सुरक्षा और सॉफ्टवेयर समुदायों को बहुत प्रभावित किया है, इसलिए यह कोई आश्चर्य की बात नहीं है कि प्रशासकों के लिए अपने सर्वरों को भेद्यता के लिए स्कैन करने के लिए उपकरण उपलब्ध हैं।
ऐसा ही एक स्कैनर Log4j-RCE-Scanner है, जो आपको Apache Log4j पर रिमोट कमांड एक्जीक्यूशन भेद्यता के लिए कई पतों पर स्कैन करने की अनुमति देता है।
Log4j-RCE-Scanner इंस्टॉल करना
शुरू करने से पहले, हमें इसके डिपेंडेंसीज, httpx और curl को इंस्टॉल करने की आवश्यकता है।
Curl को Ubuntu और Debian-आधारित सिस्टम पर apt कमांड का उपयोग करके आसानी से इंस्टॉल किया जा सकता है:
sudo apt install curl
इसी तरह Arch Linux पर pacman कमांड का उपयोग करके किया जा सकता है:
sudo pacman -Sy curl
और CentOS और Fedora इंस्टॉलेशन पर yum कमांड का उपयोग करके:
sudo yum install curl
httpx को निम्न कमांड के साथ इंस्टॉल किया जा सकता है:
git clone https://github.com/projectdiscovery/httpx cd httpx/cmd/httpx && go build . sudo mv httpx /usr/local/bin/
सभी आवश्यक डिपेंडेंसीज इंस्टॉल करने के बाद, Log4j-RCE-Scanner रिपॉजिटरी को क्लोन करें:
git clone https://github.com/adilsoybali/Log4j-RCE-Scanner
नव निर्मित डायरेक्टरी में जाएं:
cd Log4j-RCE-Scanner/
अंत में, Bash स्क्रिप्ट के लिए आवश्यक निष्पादन योग्य अनुमतियां जोड़ें:
chmod +x log4j-rce-scanner.sh
Log4j-RCE-Scanner का उपयोग करना
स्कैनर इंस्टॉल करने के बाद, आप अंततः इसका उपयोग करने के मजेदार हिस्से पर पहुंच सकते हैं।
स्क्रिप्ट के सहायता अनुभाग को पढ़ने के लिए टाइप करें:
bash log4j-rce-scanner.sh -h
अब, आप अपने Apache सर्वर को Log4shell भेद्यता के लिए स्कैन कर सकते हैं।
bash log4j-rce-scanner.sh -d [domain] -b [Burp collaborator]
आप -d और -b फ्लैग का उपयोग करके अपना डोमेन और Burp Collaborator निर्दिष्ट कर सकते हैं। यदि आपका डोमेन कमजोर है, तो कमजोर डोमेन नाम के साथ DNS कॉलबैक Burp Collaborator को भेजे जाते हैं।
वैकल्पिक रूप से, डोमेन की सूची निर्दिष्ट करने के लिए -l फ्लैग का भी उपयोग किया जा सकता है।
Python-आधारित स्कैनर इंस्टॉल करना और उपयोग करना
यदि आप Python स्क्रिप्ट का उपयोग करना पसंद करते हैं, तो आप log4-scanner का उपयोग कर सकते हैं, जिसे संयुक्त राज्य अमेरिका की साइबर सुरक्षा और बुनियादी ढांचा सुरक्षा एजेंसी द्वारा विकसित किया गया है।
इसे इंस्टॉल करने के लिए:
git clone https://github.com/cisagov/log4j-scanner/
डायरेक्टरी में जाएं:
cd log4j-scanner/log4-scanner/
आप Python-आधारित pip3 कमांड का उपयोग करके आवश्यक डिपेंडेंसीज इंस्टॉल कर सकते हैं:
pip3 install -r requirements.txt
आप -h फ्लैग का उपयोग करके स्क्रिप्ट द्वारा प्रदान की गई "सहायता" देख सकते हैं:
python3 log4j-scan.py -h
एकल URL को स्कैन करना सरल है और -u फ्लैग का उपयोग करके किया जा सकता है:
python3 log4j-scan.py -u example.com
आप -l फ्लैग का उपयोग करके URL की सूची भी स्कैन कर सकते हैं:
python3 log4j-scan.py -l list.txt
Apache को पैच कैसे करें
इस भेद्यता का मुकाबला करने के लिए, अपने Apache कॉन्फिगरेशन को अद्यतन रखना अत्यंत महत्वपूर्ण है।
Apache के संस्करण की जांच कई तरीकों से की जा सकती है: अपने प्रशासन पैनल से, जैसे CPanel या WebHost Manager। आप httpd कमांड को -v फ्लैग के साथ चलाकर भी संस्करण की जांच कर सकते हैं:
httpd -v
Apache को नवीनतम, सबसे सुरक्षित संस्करण में अपडेट किया जा सकता है, Debian और Ubuntu सिस्टम पर apt कमांड का उपयोग करके:
sudo apt update && sudo apt upgrade apache2
इसी परिणाम को CentOS पर yum कमांड का उपयोग करके भी प्राप्त किया जा सकता है:
sudo yum install httpd
अक्सर पूछे जाने वाले प्रश्न
1. Log4j के कौन से संस्करण भेद्यता से प्रभावित हैं?
2.1.7.1 से नीचे के संस्करण शोषण के प्रति संवेदनशील हैं। संस्करण 2.15.0 ने सबसे आसानी से शोषक तत्वों को ठीक किया, 2.17.1 ने एक कठिन-से-शोषक रिमोट कोड एक्जीक्यूशन भेद्यता को ठीक किया।
2. क्या मुझे कमजोर डोमेन नामों के साथ DNS कॉलबैक प्राप्त करने के लिए Burp Collaborator यूटिलिटी की आवश्यकता है?
Bash-आधारित स्कैनर के डेवलपर के अनुसार, Burp Collaborator का उपयोग स्क्रिप्ट के साथ कमजोर डोमेन नामों के साथ DNS कॉलबैक प्राप्त करने के लिए किया जाता है। वैकल्पिक रूप से, एक Interact.sh पता भी इस्तेमाल किया जा सकता है।
3. क्या मुझे Bash-आधारित स्कैनर का उपयोग करने के लिए अन्य डिपेंडेंसीज की आवश्यकता है?
बुनियादी उपयोग के लिए, आपको केवल अपने सिस्टम पर httpx और Curl इंस्टॉल करने की आवश्यकता है। हालांकि, कुछ कार्यक्षमता को अनलॉक करने के लिए, आपको Subfinder, Assetfinder, और Amass भी इंस्टॉल करने की आवश्यकता होगी।