LD_PRELOAD คือภัยคุกคามความปลอดภัยจริง ๆ หรือเป็นแค่การตีไข่ใส่กระทะ?

ทีมชุมชน BigGo
LD_PRELOAD คือภัยคุกคามความปลอดภัยจริง ๆ หรือเป็นแค่การตีไข่ใส่กระทะ?

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

หัวข้อหลักของการอภิปราย: คุณสมบัติหรือช่องโหว่?

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

นี่ไม่ใช่ช่องโหว่ หากใครบางคนสามารถแก้ไขตัวแปรสภาพแวดล้อมหรือ /etc/ld.so.conf ของคุณได้ ระบบของคุณก็ถูกบุกรุกอย่าง สมบูรณ์ ทั้งหมด และโดยสิ้นเชิง แล้ว

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

สถานการณ์การโจมตีในทางปฏิบัติและข้อจำกัด

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

ด้านความปลอดภัยของคอนเทนเนอร์ก็ได้รับการตรวจสอบเช่นกัน แม้บทความเดิมจะแนะนำว่าคอนเทนเนอร์ไม่ให้การป้องกันใดๆ แต่ผู้แสดงความคิดเห็นระบุว่าการปฏิบัติด้านความปลอดภัยคอนเทนเนอร์ที่เหมาะสม—เช่น การรันกระบวนการในฐานะผู้ใช้ที่ไม่ใช่ root และการจำกัดความสามารถ—สามารถลดผลกระทบจากการโจมตีเหล่านี้ได้ ประสิทธิภาพขึ้นอยู่กับค่าการกำหนดค่าคอนเทนเนอร์เฉพาะและสถานะความปลอดภัยเป็นอย่างมาก

ความท้าทายในการตรวจจับและการป้องกัน

บางทีแง่มุมที่น่ากังวลที่สุดที่ได้มีการอภิปรายคือความสามารถในการหลีกเลี่ยงการตรวจจับของการโจมตีด้วย LD_PRELOAD ผู้แสดงความคิดเห็นหลายคนชี้ให้เห็นว่าระบบ Endpoint Detection and Response (EDR) จำนวนมากไม่สามารถตรวจจับเทคนิคเหล่านี้ได้ การโจมตีทำงานในระดับที่การเข้าถึงไฟล์ดูเหมือนถูกต้องตามกฎหมายสำหรับเครื่องมือตรวจสอบ เนื่องจากแอปพลิเคชันเป้าหมายจำเป็นต้องเข้าถึงไฟล์ที่ถูกขโมยจริงๆ

การอภิปรายเน้นย้ำว่าการตรวจสอบความปลอดภัยแบบดั้งเดิมอาจพลาดการโจมตีเหล่านี้เพราะการโจมตีไม่ได้เกี่ยวข้องกับพฤติกรรมกระบวนการที่ไม่ปกติหรือการเรียกระบบที่น่าสงสัย กระบวนการ validator ที่เข้าถึงไฟล์คีย์เป็นพฤติกรรมที่คาดหวังได้ และการสกัดกั้นเกิดขึ้นอย่างโปร่งใสผ่านการโหลดไลบรารีล่วงหน้า ทำให้การตรวจจับเป็นเรื่องท้าทายเป็นพิเศษหากไม่มีเครื่องมือตรวจสอบพิเศษสำหรับการใช้งาน LD_PRELOAD

ผลกระทบในวงกว้างต่อความปลอดภัยของระบบ

นอกเหนือจากการอภิปรายโดยตรงแล้ว การสนทนายังเปิดเผยความกังวลที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับพื้นฐานด้านความปลอดภัย ผู้เข้าร่วมหลายคนระบุว่า LD_PRELOAD เป็นเพียงหนึ่งในคุณสมบัติที่คล้ายกันหลายอย่าง—เช่น LD_AUDIT—ที่สามารถบรรลุผลลัพธ์ที่คล้ายกันด้วยการมองเห็นที่น้อยลงไปอีก สิ่งนี้ชี้ให้เห็นถึงรูปแบบที่กว้างขึ้นซึ่งคุณสมบัติการดีบักและการพัฒนาที่ถูกต้องตามกฎหมายสามารถถูกนำไปใช้ใหม่เพื่อจุดประสงค์ที่เป็นอันตราย

การสนทนายังได้触及ถึงมิติของภัยคุกคามจากภายใน เนื่องจากวิธีการโจมตีด้วย LD_PRELOAD ไม่ต้องการสิทธิ์ระดับ root สำหรับวิธีการใช้ตัวแปรสภาพแวดล้อม จึงเป็นความเสี่ยงที่สำคัญในสภาพแวดล้อมที่มีผู้ใช้หลายคน หรือในสถานการณ์ที่ผู้ใช้มีการเข้าถึงที่จำกัดแต่เพียงพอที่จะรันแอปพลิเคชันที่ถูกบุกรุกได้ สิ่งนี้ทำให้การโจมตีมีความเกี่ยวข้องเป็นพิเศษสำหรับสภาพแวดล้อมการโฮสต์แบบใช้ร่วมกันและการใช้งานแบบคอนเทนเนอร์

ความเห็นหลักของชุมชนเกี่ยวกับความปลอดภัยของ LD_PRELOAD

  • มุมมองที่มองข้าม: มองว่านี่ไม่ใช่ปัญหาเนื่องจากต้องมีการบุกรุกระบบมาก่อน
  • ข้อกังวลเชิงปฏิบัติ: ตั้งคำถามว่าผู้โจมตีจะใช้วิธีนี้ในสถานการณ์จริงได้อย่างไร
  • โฟกัสที่การตรวจจับ: เน้นย้ำถึงข้อจำกัดของ EDR ในการระบุการโจมตีเหล่านี้
  • มุมมองที่กว้างขึ้น: ชี้ให้เห็นว่าฟีเจอร์ที่คล้ายกันอย่าง LD_AUDIT มีความเสี่ยงเทียบเท่ากัน

สรุป: การตรวจสอบความเป็นจริง หรือ สัญญาณเตือน?

ชุมชนด้านความปลอดภัยยังคงแบ่งออกในเรื่องความสำคัญในทางปฏิบัติของการโจมตีด้วย LD_PRELOAD แม้จะมีความซับซ้อนทางเทคนิค แต่ข้อกำหนดที่ต้องมีการเข้าถึงระบบมาก่อนทำให้หลายคนมองข้ามพวกมันว่าเป็นปัญหา次要 อย่างไรก็ตาม ความท้าทายในการตรวจจับและต้นกำเนิดที่ถูกต้องตามกฎหมายของคุณสมบัตินี้ทำให้การทำความเข้าใจมันมีค่าสำหรับการวางแผนความปลอดภัยอย่างรอบคอบ เช่นเดียวกับคุณสมบัติด้านความปลอดภัยหลายอย่าง ความตระหนักรู้และการตรวจสอบที่เหมาะสมอาจเป็นกลยุทธ์ป้องกันที่มีประสิทธิภาพมากที่สุดต่อเทคนิคที่ละเอียดอ่อนแต่ทรงพลังนี้

อ้างอิง: LD_PRELOAD, The Invisible Key Theft