Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

Log4Shell คืออะไรและจะป้องกันระบบ Linux ของคุณจากมันได้อย่างไร

Log4Shell คืออะไรและจะป้องกันระบบ Linux ของคุณจากมันได้อย่างไร

ช่องโหว่ของ Log4Shell (CVE-2021-44228) ได้รับการอธิบายโดยนักวิจัยและผู้เชี่ยวชาญด้านความปลอดภัยทางไซเบอร์จำนวนมากว่าเป็นช่องโหว่ซีโร่เดย์ที่สำคัญที่สุดตลอดกาล มีผลกับยูทิลิตี้ Java ที่ใช้กันอย่างแพร่หลายในชื่อ Log4j ซึ่งมีมาตั้งแต่ปี 2544 สำหรับการบันทึกและการสื่อสารเหตุการณ์ เช่น การทำงานของระบบตามปกติและข้อผิดพลาดของซอฟต์แวร์ เราจะแสดงวิธีป้องกันระบบ Linux ของคุณจากระบบ

ช่องโหว่ของ Log4Shell ทำงานอย่างไร

ในระดับพื้นฐาน ช่องโหว่เกิดจากการตรวจสอบอินพุตที่ไม่เหมาะสม สิ่งนี้จะเกิดขึ้นเมื่อซอฟต์แวร์ไม่ตรวจสอบข้อมูลที่ได้รับอย่างเหมาะสม นำไปสู่ช่องโหว่ที่อาจเกิดขึ้น เนื่องจากอินพุตที่ตรวจสอบไม่ถูกต้องสามารถนำมาใช้เพื่อให้โปรแกรมดำเนินการตามที่ไม่ควรทำ

Log4Shell ใช้ประโยชน์จากคำขอที่ Log4j ส่งไปยังเซิร์ฟเวอร์โดยเฉพาะ โดยใช้ LDAP และ JNDI โดยใช้ประโยชน์จากคำขอเหล่านี้ ผู้โจมตีสามารถรันโค้ดบนระบบที่มีช่องโหว่ ซึ่งอาจนำไปสู่ผู้ประสงค์ร้ายเข้าควบคุมระบบอย่างสมบูรณ์และมีความสามารถในการติดตั้งแรนซัมแวร์หรือขโมยข้อมูล

Log4Shell คืออะไรและจะป้องกันระบบ Linux ของคุณจากมันได้อย่างไร

Log4Shell ส่งผลต่ออะไร

เนื่องจาก Java เป็นภาษาการเขียนโปรแกรมที่ได้รับความนิยมอย่างมาก ซอฟต์แวร์จำนวนมากที่เขียนด้วย Java ที่ใช้ Log4j สำหรับฟังก์ชันการบันทึกจึงได้รับผลกระทบจากช่องโหว่นี้ ซอฟต์แวร์ที่เป็นที่รู้จักและใช้บ่อยที่สุดบางตัวที่ได้รับผลกระทบจากช่องโหว่นี้ ได้แก่ Apache และวิดีโอเกมชื่อ Minecraft

จะทราบได้อย่างไรว่าซอฟต์แวร์ใดได้รับผลกระทบ

Log4Shell เช่นเดียวกับช่องโหว่ความปลอดภัยทางไซเบอร์อื่น ๆ ได้รับการบรรเทาโดยการแก้ไขซอฟต์แวร์ที่ได้รับผลกระทบ อย่างไรก็ตาม กรณีของ Log4Shell นั้นมีความพิเศษมากกว่าเล็กน้อย เนื่องจากมันส่งผลกระทบกับซอฟต์แวร์ที่หลากหลาย และอาจเป็นเรื่องยากที่จะเก็บรายการสิ่งที่ได้รับผลกระทบและสิ่งที่ไม่ได้รับผลกระทบ

โชคดีที่ National Cyber ​​Security Center ของเนเธอร์แลนด์ได้เผยแพร่รายการที่ครอบคลุมบน GitHub ซึ่งรวมถึงชื่อซอฟต์แวร์ที่พัฒนาโดยองค์กรต่างๆ เพื่อแจ้งให้ทราบว่ามีความเสี่ยงต่อ Log4Shell หรือไม่

วิธีสแกนเซิร์ฟเวอร์ Apache ของคุณเพื่อหาช่องโหว่

เนื่องจากช่องโหว่นี้ส่งผลกระทบอย่างมากต่อความปลอดภัยทางไซเบอร์และชุมชนซอฟต์แวร์ จึงไม่น่าแปลกใจที่มีเครื่องมือสำหรับผู้ดูแลระบบที่จะสแกนหาช่องโหว่ของเซิร์ฟเวอร์

สแกนเนอร์ตัวหนึ่งดังกล่าวคือ Log4j-RCE-Scanner ซึ่งช่วยให้คุณสแกนหาช่องโหว่ในการเรียกใช้คำสั่งจากระยะไกลบน Apache Log4j ได้จากที่อยู่หลายแห่ง

การติดตั้ง Log4j-RCE-Scanner

ก่อนที่เราจะเริ่ม เราต้องติดตั้งการพึ่งพา httpx และ curl .

สามารถติดตั้ง Curl ได้อย่างง่ายดายบนระบบที่ใช้ Ubuntu และ Debian โดยใช้ apt คำสั่ง:

sudo apt install curl
Log4Shell คืออะไรและจะป้องกันระบบ Linux ของคุณจากมันได้อย่างไร

สามารถทำได้เช่นเดียวกันบน 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/
Log4Shell คืออะไรและจะป้องกันระบบ Linux ของคุณจากมันได้อย่างไร

หลังจากติดตั้งการพึ่งพาที่จำเป็นทั้งหมดแล้ว ให้โคลนที่เก็บ Log4J-RCE-Scanner:

git clone https://github.com/adilsoybali/Log4j-RCE-Scanner
Log4Shell คืออะไรและจะป้องกันระบบ Linux ของคุณจากมันได้อย่างไร

เข้าถึงไดเร็กทอรีที่สร้างขึ้นใหม่:

cd Log4j-RCE-Scanner/

สุดท้าย เพิ่มการอนุญาตที่จำเป็นสำหรับสคริปต์ทุบตี:

chmod +x log4j-rce-scanner.sh
Log4Shell คืออะไรและจะป้องกันระบบ Linux ของคุณจากมันได้อย่างไร

การใช้ Log4j-RCE-Scanner

หลังจากที่คุณติดตั้งสแกนเนอร์แล้ว คุณก็จะพบกับส่วนสนุก ๆ ของการใช้งานจริงได้

อ่านส่วนช่วยเหลือของสคริปต์โดยพิมพ์:

bash log4j-rce-scanner.sh -h
Log4Shell คืออะไรและจะป้องกันระบบ Linux ของคุณจากมันได้อย่างไร

ตอนนี้คุณสามารถสแกนเซิร์ฟเวอร์ Apache ของคุณเพื่อหาช่องโหว่ของ Log4shell

bash log4j-rce-scanner.sh -d [domain] -b [Burp collaborator]

คุณสามารถระบุโดเมนและ Burp Collaborator ได้โดยใช้ -d และ -b ธง หากโดเมนของคุณมีช่องโหว่ การเรียกกลับ DNS ที่มีชื่อโดเมนที่มีช่องโหว่จะถูกส่งไปยัง Burp Collaborator

หรืออีกทางหนึ่ง -l นอกจากนี้ยังสามารถใช้แฟล็กเพื่อระบุรายการโดเมนได้

Log4Shell คืออะไรและจะป้องกันระบบ Linux ของคุณจากมันได้อย่างไร

การติดตั้งและการใช้เครื่องสแกนแบบ Python

หากคุณต้องการใช้สคริปต์ Python แทน คุณสามารถใช้เครื่องสแกน log4 ซึ่งพัฒนาโดย Cybersecurity and Infrastructure Security Agency ของสหรัฐอเมริกา

วิธีติดตั้ง:

git clone https://github.com/cisagov/log4j-scanner/

เข้าสู่ไดเร็กทอรี:

cd log4j-scanner/log4-scanner/

คุณสามารถติดตั้งการพึ่งพาที่จำเป็นได้โดยใช้ pip3 . ที่ใช้ Python คำสั่ง:

pip3 install -r requirements.txt
Log4Shell คืออะไรและจะป้องกันระบบ Linux ของคุณจากมันได้อย่างไร

คุณสามารถดู "ความช่วยเหลือ" ที่สคริปต์ให้มาโดยใช้ -h ธง:

python3 log4j-scan.py -h
Log4Shell คืออะไรและจะป้องกันระบบ Linux ของคุณจากมันได้อย่างไร

การสแกน URL เดียวทำได้ง่ายและสามารถทำได้โดยใช้ -u ธง:

python3 log4j-scan.py -u example.com
Log4Shell คืออะไรและจะป้องกันระบบ Linux ของคุณจากมันได้อย่างไร

คุณยังสามารถสแกนรายการ URL โดยใช้ -l ธง:

python3 log4j-scan.py -l list.txt
Log4Shell คืออะไรและจะป้องกันระบบ Linux ของคุณจากมันได้อย่างไร

วิธีการแพตช์ Apache

เพื่อต่อสู้กับช่องโหว่นี้ สิ่งสำคัญอย่างยิ่งคือต้องทำให้การกำหนดค่า Apache ของคุณทันสมัยอยู่เสมอ

การตรวจสอบเวอร์ชันของ Apache สามารถทำได้หลายวิธี:โดยการตรวจสอบจากแผงการดูแลระบบ เช่น CPanel หรือ WebHost Manager คุณสามารถตรวจสอบเวอร์ชันได้ด้วยการเรียกใช้ httpd คำสั่งด้วย -v ธง:

httpd -v

Apache สามารถอัปเดตเป็นเวอร์ชันล่าสุดและปลอดภัยที่สุดได้โดยใช้ apt คำสั่งบนระบบ Debian และ Ubuntu:

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. ฉันต้องใช้ยูทิลิตี้ Burp Collaborator เพื่อรับการเรียกกลับ DNS ด้วยชื่อโดเมนที่มีช่องโหว่หรือไม่

ตามที่ผู้พัฒนาเครื่องสแกนที่ใช้ Bash Burp Collaborator ใช้ควบคู่ไปกับสคริปต์เพื่อรับการเรียกกลับ DNS ด้วยชื่อโดเมนที่มีช่องโหว่ หรือจะใช้ที่อยู่ Interact.sh ก็ได้

3. ฉันต้องการการพึ่งพาอื่น ๆ เพื่อใช้เครื่องสแกนแบบ Bash หรือไม่

สำหรับการใช้งานพื้นฐาน คุณจะต้องติดตั้ง httpx และ Curl ในระบบของคุณเป็นการพึ่งพา อย่างไรก็ตาม ในการปลดล็อกฟังก์ชันบางอย่าง คุณจะต้องติดตั้ง Subfinder, Assetfinder และ Amass ด้วย