การโจมตีช่องโหว่ RCE ของ Atlassian Confluence (CVE-2023-22527)

 

Atlassian เปิดเผยช่องโหว่ Remote Code Execution (RCE) ออกมาเมื่อวันที่ 16 มกราคม 2024 โดยมีหมายเลข CVE-2023-22527 ซึ่งส่งผลกระทบต่อเวอร์ชันเก่าของ Confluence Data Center และ Confluence Server

CVE-2023-22527 เป็นช่องโหว่ระดับ critical ที่เกี่ยวกับ Object-Graph Navigation Language (OGNL) injection และมีคะแนน CVSS สูงถึง 10 คะแนน

OGNL (Object-Graph Navigation Language) เป็นภาษาแสดงผลที่ใช้ใน Java และถูกใช้ในแอปพลิเคชัน เช่น Atlassian Confluence เมื่อแอปพลิเคชันเหล่านี้ไม่สามารถตรวจสอบ และ sanitize ข้อมูลที่ผู้ใช้ป้อนเข้ามาให้ถูกต้อง ก่อนนำมาใช้ใน OGNL มันสามารถส่งผลให้เกิดช่องโหว่ด้านความปลอดภัยที่เรียกว่า 'OGNL insert' ได้

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

Cyble Global Sensor Intelligence (CGSI) network ตรวจพบการพยายามโจมตีโดยใช้ช่องโหว่ CVE-2023-22527 เมื่อวันที่ 26 มกราคม 2024 การวิเคราะห์ของรูปแบบการโจมตีที่ CGSI ตรวจพบ แสดงให้เห็นว่าผู้โจมตีมุ่งเป้าหมายการโจมตีไปที่แอปพลิเคชัน Atlassian Confluence ที่มีช่องโหว่ในประเทศต่อไปนี้

  • China
  • Singapore
  • Brazil
  • United States
  • Russia
  • Vietnam
  • India
  • Germany
  • United Kingdom
  • Romania

 

 

กรณีที่ข้อมูลถูกเปิดเผยใน Atlassian Confluence

ตามรายงานการสแกนของ Cyble ODIN ระบุว่าในช่วงสามเดือนที่ผ่านมามี Confluence มากกว่า 4,000 แห่ง ที่เปิดให้เข้าถึงได้จากอินเทอร์เน็ต โดยส่วนใหญ่อยู่ในประเทศสหรัฐอเมริกา, เยอรมนี, จีน และรัสเซีย


รายละเอียดของช่องโหว่

ช่องโหว่ RCE (การเรียกใช้โค้ดที่เป็นอันตรายจากระยะไกล) ใน Confluence Data Center และ Confluence Server

CVE-2023-22527 (CVSS:3.1: 9.8) ระดับความรุนแรง Critical ช่องโหว่ template injection ใน Confluence Data Center และ Server เวอร์ชันเก่า ที่ทำให้ผู้โจมตีสามารถ Remote Code Execution ในเวอร์ชันที่ได้รับผลกระทบได้

เวอร์ชันที่ได้รับผลกระทบ : Confluence Data Center and Confluence Server endpoints, versions 8.0.x, 8.1.x, 8.2.x, 8.3.x, 8.4.x, and 8.5.0 to 8.5.3

รายละเอียดทางเทคนิค

ช่องโหว่นี้เกิดขึ้นจากไฟล์ template 'velocity' ชื่อ 'text-inline.vm' ซึ่งอนุญาตให้ส่งพารามิเตอร์ label ไปยัง OGNL-sink ได้โดยใช้ expression ตามด้านล่างนี้:

  • #request[‘.KEY_velocity.struts2.context’].internalGet(‘ognl’),

นักวิจัยด้านความปลอดภัยทางไซเบอร์จาก ProjectDiscovery สามารถเข้าถึง class 'org.apache.struts2.views.jsp.ui.OgnlTool' และ execute method Ognl.findValue(String, Object) ได้สำเร็จ

สิ่งสำคัญคือ class ดังกล่าวเชื่อมโยงกับไลบรารี OGNL และไม่ใช่ส่วนหนึ่งของ Struts ดังนั้นการเรียกใช้ 'findValue' จึงเกิดขึ้นนอกเหนือขอบเขต sandbox ของ Struts ซึ่งทำให้ผู้โจมตีสามารถหลีกเลี่ยงข้อจำกัดจาก sandbox ของ Struts ได้

จากการค้นพบของ ProjectDiscovery พบว่ามีข้อจำกัดในความยาวของ OGNL expressions ที่สามารถประเมินค่าได้ โดยกำหนดให้มีข้อจำกัดที่ 200 ตัวอักษร

ในภาพด้านล่างนี้ panel ด้านบน แสดงรายละเอียดของ HTTP request ที่มีข้อจำกัดตัวอักษรเป็น 'P1' โดยจำกัด 200 ตัวอักษร ในขณะที่ panel ด้านล่าง ระบุว่าสามารถอ้างถึงพารามิเตอร์เพิ่มเติมเพื่อหลีกเลี่ยงข้อจำกัดนี้ ซึ่งทำลายข้อจำกัด 200 ตัวอักษร และทำการ execute system commands ได้

บทสรุป

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

ในกรณีของช่องโหว่นี้ที่พบในเวอร์ชัน Confluence Data Center และ Server ผู้โจมตีที่ไม่ได้รับอนุญาตมีโอกาสที่จะใช้ช่องโหว่ template injection ซึ่งทำให้ผู้โจมตีสามารถ execute โค้ดที่เป็นอันตรายบนระบบที่ถูกโจมตีได้

ผู้ใช้งานที่ใช้เวอร์ชันที่เก่า แนะนำให้ตรวจสอบ IOC, ดำเนินการ cleanup อย่างละเอียด และอัปเกรดไปยังเวอร์ชันที่มีความปลอดภัย

คำแนะนำ

  • เพิ่มประสิทธิภาพโครงสร้างระบบความปลอดภัยขององค์กร โดยการอัปเดตแพตซ์ตามคำแนะนำของผู้ผลิตซอฟต์แวร์ Atlassian ซึ่งแนะนำให้อัปเดตไปยังเวอร์ชันล่าสุดที่มีให้ใน Confluence Data Center และ Server
    • Confluence Data Center and Server 8.5.5 (LTS)
    • Confluence Data Center 8.7.2 (Data Center Only)
  •  ดำเนินการตรวจสอบความปลอดภัย และทดสอบการเจาะระบบเป็นประจำ เพื่อระบุ และแก้ไขช่องโหว่ รวมถึงปัญหา template injection
  • ใช้การแบ่งส่วนเครือข่ายที่เหมาะสมเพื่อป้องกันการ lateral movement และลดความเสี่ยงในการเปิดเผยทรัพยากรที่สำคัญผ่านทางอินเทอร์เน็ต
  • สร้างกระบวนการจัดการแพตช์ที่มีการจัดการอย่างดี โดยรวมเอากำหนดการที่กำหนดไว้อย่างชัดเจนสำหรับการอัปเดต และแพตช์เป็นประจำ ให้ลำดับความสำคัญในการอัปเดตแพตซ์ด้านความปลอดภัย

Indicators of Compromise (IoCs)


 

ที่มา : cyble.com