ช่องโหว่ของ Log4Shell (CVE-2021-44228) ได้รับการอธิบายโดยนักวิจัยและผู้เชี่ยวชาญด้านความปลอดภัยทางไซเบอร์จำนวนมากว่าเป็นช่องโหว่ซีโร่เดย์ที่สำคัญที่สุดตลอดกาล มีผลกับยูทิลิตี้ Java ที่ใช้กันอย่างแพร่หลายในชื่อ Log4j ซึ่งมีมาตั้งแต่ปี 2544 สำหรับการบันทึกและการสื่อสารเหตุการณ์ เช่น การทำงานของระบบตามปกติและข้อผิดพลาดของซอฟต์แวร์ เราจะแสดงวิธีป้องกันระบบ Linux ของคุณจากระบบ
ช่องโหว่ของ Log4Shell ทำงานอย่างไร
ในระดับพื้นฐาน ช่องโหว่เกิดจากการตรวจสอบอินพุตที่ไม่เหมาะสม สิ่งนี้จะเกิดขึ้นเมื่อซอฟต์แวร์ไม่ตรวจสอบข้อมูลที่ได้รับอย่างเหมาะสม นำไปสู่ช่องโหว่ที่อาจเกิดขึ้น เนื่องจากอินพุตที่ตรวจสอบไม่ถูกต้องสามารถนำมาใช้เพื่อให้โปรแกรมดำเนินการตามที่ไม่ควรทำ
Log4Shell ใช้ประโยชน์จากคำขอที่ Log4j ส่งไปยังเซิร์ฟเวอร์โดยเฉพาะ โดยใช้ LDAP และ JNDI โดยใช้ประโยชน์จากคำขอเหล่านี้ ผู้โจมตีสามารถรันโค้ดบนระบบที่มีช่องโหว่ ซึ่งอาจนำไปสู่ผู้ประสงค์ร้ายเข้าควบคุมระบบอย่างสมบูรณ์และมีความสามารถในการติดตั้งแรนซัมแวร์หรือขโมยข้อมูล
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
สามารถทำได้เช่นเดียวกันบน 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/
สุดท้าย เพิ่มการอนุญาตที่จำเป็นสำหรับสคริปต์ทุบตี:
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]
คุณสามารถระบุโดเมนและ Burp Collaborator ได้โดยใช้ -d
และ -b
ธง หากโดเมนของคุณมีช่องโหว่ การเรียกกลับ DNS ที่มีชื่อโดเมนที่มีช่องโหว่จะถูกส่งไปยัง Burp Collaborator
หรืออีกทางหนึ่ง -l
นอกจากนี้ยังสามารถใช้แฟล็กเพื่อระบุรายการโดเมนได้
การติดตั้งและการใช้เครื่องสแกนแบบ 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
คุณสามารถดู "ความช่วยเหลือ" ที่สคริปต์ให้มาโดยใช้ -h
ธง:
python3 log4j-scan.py -h
การสแกน URL เดียวทำได้ง่ายและสามารถทำได้โดยใช้ -u
ธง:
python3 log4j-scan.py -u example.com
คุณยังสามารถสแกนรายการ URL โดยใช้ -l
ธง:
python3 log4j-scan.py -l list.txt
วิธีการแพตช์ 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 ด้วย