โปรแกรมแก้ไขฉุกเฉินสำหรับช่องโหว่ที่น่าอับอายในไลบรารี Java Log4j นั้นไม่สามารถป้องกันได้ Apache Software Foundation กำลังเปิดตัวเวอร์ชันใหม่เพื่อแก้ไขช่องโหว่ครั้งแล้วครั้งเล่า
ช่องโหว่ในไลบรารียอดนิยมอย่างล้นหลามสำหรับ Java กำลังเขย่าวงการไอทีทั่วโลก ประมาณว่าห้องสมุดมีอยู่ในสภาพแวดล้อมขององค์กรส่วนใหญ่
Log4j ส่วนใหญ่จะใช้สำหรับการบันทึก กิจกรรมในแอปพลิเคชันสามารถลงทะเบียนด้วยบันทึกย่อ ลองนึกถึงการพิมพ์รายละเอียดการเข้าสู่ระบบหลังจากพยายามเข้าสู่ระบบแล้ว หรือในกรณีของเว็บแอปพลิเคชันใน Java ชื่อของเบราว์เซอร์ที่ผู้ใช้พยายามเชื่อมต่อ
ตัวอย่างหลังเป็นเรื่องปกติ ในทั้งสองกรณี ผู้ใช้ภายนอกมีอิทธิพลต่อบันทึกที่ Log4j ส่งออก เป็นไปได้ที่จะละเมิดอิทธิพลนั้น บันทึกของ Log4j เวอร์ชันใดก็ได้ระหว่างวันที่ 13 กันยายน 2013 ถึง 5 ธันวาคม 2021 สามารถสั่งให้แอปพลิเคชัน Java เรียกใช้โค้ดจากเซิร์ฟเวอร์ระยะไกลบนอุปกรณ์ภายใน
ตั้งแต่ปี 2013 Log4j ได้ประมวลผล API: JNDI หรือการตั้งชื่อ Java และ Directory Interface การเพิ่ม JNDI ช่วยให้แอปพลิเคชัน Java สามารถเรียกใช้โค้ดจากเซิร์ฟเวอร์ระยะไกลบนอุปกรณ์ภายในได้ โปรแกรมเมอร์แนะนำโดยการเพิ่มรายละเอียดบรรทัดเดียวเกี่ยวกับเซิร์ฟเวอร์ระยะไกลในแอปพลิเคชัน
ปัญหาคือไม่ใช่แค่โปรแกรมเมอร์เท่านั้นที่สามารถเพิ่มกฎให้กับแอปพลิเคชันได้ สมมติว่า Log4j บันทึกชื่อผู้ใช้ของการพยายามเข้าสู่ระบบ เมื่อมีคนป้อนบรรทัดดังกล่าวในฟิลด์ชื่อผู้ใช้ Log4j จะรันบรรทัดนั้นและแอปพลิเคชัน Java จะตีความคำสั่งให้รันโค้ดบนเซิร์ฟเวอร์ที่ระบุ เช่นเดียวกับกรณีที่ Log4j บันทึกคำขอ HTTPS หากคุณเปลี่ยนชื่อเบราว์เซอร์เป็นบรรทัด Log4j จะเรียกใช้บรรทัดนั้น โดยสั่งทางอ้อมให้เรียกใช้โค้ดตามที่ต้องการ
แพทช์ฉุกเฉินก็อาจไม่ปลอดภัยเช่นกัน
เมื่อวันที่ 9 ธันวาคม ช่องโหว่ดังกล่าวเริ่มมีการเปิดเผยในวงกว้าง Apache Software Foundation ผู้พัฒนา Log4j ได้ออกโปรแกรมแก้ไขฉุกเฉิน (2.15) เพื่อแก้ไขช่องโหว่ ตั้งแต่นั้นมา ผู้จำหน่ายซอฟต์แวร์จึงมีความสำคัญสูงสุดในการประมวลผลเวอร์ชัน 2.15 และจัดเตรียมโปรแกรมแก้ไขสำหรับองค์กร
อย่างไรก็ตาม องค์กรด้านความปลอดภัย LunaSec ระบุว่าแพตช์นี้ไม่ได้กันน้ำได้อย่างสมบูรณ์ ยังคงสามารถปรับการตั้งค่าและบันทึกคำสั่ง JNDI ได้
โปรดทราบ: ต้องปรับการตั้งค่าที่เกี่ยวข้องด้วยตนเอง เพื่อให้ตัวแปร 2.15 ที่ไม่ได้แก้ไขนั้นปลอดภัยอย่างแท้จริง อย่างไรก็ตาม Luna Sec แนะนำให้ซัพพลายเออร์และองค์กรอัปเดตเป็น Log4j 2.16 2.16 เผยแพร่โดย Apache Software Foundation เพื่อตอบสนองต่อ LunaSec เวอร์ชันใหม่ลบการตั้งค่าที่มีช่องโหว่ออกไปโดยสิ้นเชิง ทำให้ไม่สามารถสร้างเงื่อนไขสำหรับการละเมิดได้