Log4Shell (CVE-2021-44228) দুর্বলতাকে অনেক সাইবার নিরাপত্তা গবেষক এবং বিশেষজ্ঞরা সর্বকালের সবচেয়ে গুরুত্বপূর্ণ শূন্য-দিনের দুর্বলতা হিসাবে বর্ণনা করেছেন। এটি Log4j নামে একটি বহুল-ব্যবহৃত জাভা ইউটিলিটিকে প্রভাবিত করে, যা 2001 সাল থেকে নিয়মিত সিস্টেম অপারেশন এবং সফ্টওয়্যার ত্রুটির মতো ইভেন্ট লগিং এবং যোগাযোগের জন্য হয়ে আসছে। এখানে আমরা আপনাকে দেখাই যে কিভাবে আপনার লিনাক্স সিস্টেমকে এর বিরুদ্ধে রক্ষা করতে হয়।
কিভাবে Log4Shell দুর্বলতা কাজ করে?
একটি মৌলিক স্তরে, অনুপযুক্ত ইনপুট বৈধতার কারণে দুর্বলতা সৃষ্টি হয়। এটি ঘটে যখন সফ্টওয়্যারটি প্রাপ্ত ডেটা সঠিকভাবে যাচাই করে না, যা সম্ভাব্য দুর্বলতার দিকে পরিচালিত করে, যেহেতু ভুলভাবে যাচাই করা ইনপুট প্রোগ্রামটিকে এমন কাজগুলি করতে ব্যবহার করা যেতে পারে যা এটি অনুমিত নয়৷
Log4Shell বিশেষভাবে LDAP এবং JNDI ব্যবহার করে Log4j সার্ভারে পাঠানো অনুরোধের সুবিধা নেয়। এই অনুরোধগুলির সুবিধা গ্রহণ করে, একজন আক্রমণকারী যেকোন দুর্বল সিস্টেমে কোড চালাতে পারে, যার ফলে একজন দূষিত অভিনেতা সিস্টেমের সম্পূর্ণ নিয়ন্ত্রণ নিতে পারে এবং র্যানসমওয়্যার ইনস্টল করার বা ডেটা চুরি করার ক্ষমতা রাখে৷
Log4Shell কি প্রভাবিত করে?
যেহেতু জাভা একটি অত্যন্ত জনপ্রিয় প্রোগ্রামিং ভাষা, তাই জাভাতে লেখা অনেক সফ্টওয়্যার যা এর লগিং কার্যকারিতার জন্য Log4j ব্যবহার করে এই দুর্বলতা দ্বারা প্রভাবিত হয়। এই দুর্বলতা দ্বারা প্রভাবিত সবচেয়ে সুপরিচিত এবং সাধারণভাবে ব্যবহৃত সফ্টওয়্যারগুলির মধ্যে রয়েছে Apache এবং Minecraft নামক ভিডিও গেম৷
কোন সফ্টওয়্যার প্রভাবিত হয়েছে তা কীভাবে জানবেন?
Log4Shell, অন্যান্য সাইবার নিরাপত্তার দুর্বলতার মতো, এটি দ্বারা প্রভাবিত সফ্টওয়্যারটিকে প্যাচ করে প্রশমিত করা হয়। যাইহোক, Log4Shell-এর কেসটি একটু বেশিই অনন্য, কারণ এটি এত বিস্তৃত সফ্টওয়্যারকে প্রভাবিত করে এবং কোনটি প্রভাবিত এবং কোনটি নয় তার একটি তালিকা রাখা কঠিন।
সৌভাগ্যবশত, নেদারল্যান্ডের ন্যাশনাল সাইবার সিকিউরিটি সেন্টার GitHub-এ একটি বিস্তৃত তালিকা প্রকাশ করেছে, যাতে বিভিন্ন সংস্থার দ্বারা তৈরি করা সফ্টওয়্যারগুলির নাম রয়েছে, যা জানায় যে তারা Log4Shell-এর জন্য ঝুঁকিপূর্ণ কিনা৷
ভালনারেবিলিটির জন্য কিভাবে আপনার অ্যাপাচি সার্ভার স্ক্যান করবেন
যেহেতু এই দুর্বলতা সাইবারসিকিউরিটি এবং সফ্টওয়্যার সম্প্রদায়গুলিকে ব্যাপকভাবে প্রভাবিত করেছে, এতে কোন আশ্চর্যের কিছু নেই যে অ্যাডমিনিস্ট্রেটরদের দুর্বলতার জন্য তাদের সার্ভারগুলি স্ক্যান করার জন্য উপলব্ধ সরঞ্জাম রয়েছে৷
এরকম একটি স্ক্যানার হল Log4j-RCE-Scanner, যা আপনাকে Apache Log4j-এ একাধিক ঠিকানায় দূরবর্তী কমান্ড এক্সিকিউশন দুর্বলতার জন্য স্ক্যান করতে দেয়।
Log4j-RCE-স্ক্যানার ইনস্টল করা হচ্ছে
আমরা শুরু করার আগে, আমাদের এটির নির্ভরতা, httpx
ইনস্টল করতে হবে এবং curl
.
apt
ব্যবহার করে উবুন্টু এবং ডেবিয়ান-ভিত্তিক সিস্টেমে কার্ল সহজেই ইনস্টল করা যেতে পারে কমান্ড:
sudo apt install curl
pacman
ব্যবহার করে আর্চ লিনাক্সে একই কাজ করা যেতে পারে কমান্ড:
sudo pacman -Sy curl
এবং yum
ব্যবহার করে CentOS এবং Fedora ইনস্টলেশনে কমান্ড:
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-স্ক্যানার সংগ্রহস্থল ক্লোন করুন:
git clone https://github.com/adilsoybali/Log4j-RCE-Scanner
নতুন তৈরি ডিরেক্টরি অ্যাক্সেস করুন:
cd Log4j-RCE-Scanner/
অবশেষে, ব্যাশ স্ক্রিপ্টের জন্য প্রয়োজনীয় এক্সিকিউটেবল অনুমতি যোগ করুন:
chmod +x log4j-rce-scanner.sh
Log4j-RCE-স্ক্যানার ব্যবহার করা
আপনি স্ক্যানার ইনস্টল করার পরে, আপনি অবশেষে এটি ব্যবহার করার মজার অংশে যেতে পারেন৷
টাইপ করে স্ক্রিপ্টের সহায়তা বিভাগটি পড়ুন:
bash log4j-rce-scanner.sh -h
এখন, আপনি Log4shell দুর্বলতার জন্য আপনার Apache সার্ভার স্ক্যান করতে পারেন।
bash log4j-rce-scanner.sh -d [domain] -b [Burp collaborator]
আপনি -d
ব্যবহার করে আপনার ডোমেন এবং Burp Collaborator নির্দিষ্ট করতে পারেন এবং -b
পতাকা যদি আপনার ডোমেন দুর্বল হয়, তাহলে দুর্বল ডোমেন নামের DNS কলব্যাকগুলি Burp Collaborator-কে পাঠানো হয়৷
বিকল্পভাবে, -l
ডোমেনের একটি তালিকা নির্দিষ্ট করতেও পতাকা ব্যবহার করা যেতে পারে।
পাইথন-ভিত্তিক স্ক্যানার ইনস্টল এবং ব্যবহার করা
আপনি যদি পরিবর্তে একটি পাইথন স্ক্রিপ্ট ব্যবহার করতে পছন্দ করেন, আপনি লগ 4-স্ক্যানার ব্যবহার করতে পারেন, যা মার্কিন যুক্তরাষ্ট্রের সাইবারসিকিউরিটি এবং অবকাঠামো নিরাপত্তা সংস্থা দ্বারা তৈরি করা হয়েছে৷
এটি ইনস্টল করতে:
git clone https://github.com/cisagov/log4j-scanner/
ডিরেক্টরি অ্যাক্সেস করুন:
cd log4j-scanner/log4-scanner/
আপনি পাইথন-ভিত্তিক 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 এর সংস্করণ চেক করা অনেক উপায়ে করা যেতে পারে:আপনার প্রশাসনিক প্যানেল থেকে চেক করে, যেমন CPanel, বা WebHost Manager। আপনি httpd
চালিয়ে সংস্করণটিও পরীক্ষা করতে পারেন -v
দিয়ে কমান্ড পতাকা:
httpd -v
Apache apt
ব্যবহার করে সর্বশেষ, সবচেয়ে নিরাপদ সংস্করণে আপডেট করা যেতে পারে ডেবিয়ান এবং উবুন্টু সিস্টেমে কমান্ড:
sudo apt update && sudo apt upgrade apache2
একই ফলাফল yum
ব্যবহার করেও সম্পন্ন করা হয় CentOS-এ কমান্ড:
sudo yum install httpd
প্রায়শই জিজ্ঞাসিত প্রশ্ন
1. Log4j এর কোন সংস্করণগুলি দুর্বলতার দ্বারা প্রভাবিত হয়?
2.1.7.1 এর নীচের সংস্করণগুলি শোষণের জন্য ঝুঁকিপূর্ণ৷ সংস্করণ 2.15.0 সবচেয়ে সহজে শোষণযোগ্য উপাদানগুলিকে সংশোধন করেছে, 2.17.1 দূরবর্তী কোড কার্যকর করার দুর্বলতাকে শোষণ করা কঠিন।
2. দুর্বল ডোমেইন নামের DNS কলব্যাক পেতে আমার কি Burp Collaborator ইউটিলিটি দরকার?
ব্যাশ-ভিত্তিক স্ক্যানারের বিকাশকারীর মতে, বার্প কোলাবোরেটরটি দুর্বল ডোমেন নামগুলির সাথে DNS কলব্যাকগুলি পেতে স্ক্রিপ্টের পাশাপাশি ব্যবহৃত হয়। বিকল্পভাবে, একটি Interact.sh ঠিকানা ব্যবহার করা যেতে পারে।
3. ব্যাশ-ভিত্তিক স্ক্যানার ব্যবহার করার জন্য আমার কি অন্য নির্ভরতা দরকার?
মৌলিক ব্যবহারের জন্য, নির্ভরতা হিসাবে আপনার সিস্টেমে শুধুমাত্র httpx এবং Curl ইনস্টল করতে হবে। যাইহোক, কিছু কার্যকারিতা আনলক করার জন্য, আপনাকে সাবফাইন্ডার, অ্যাসেটফাইন্ডার এবং অ্যামাস ইনস্টল করতে হবে।