1 คะแนน โดย GN⁺ 2024-04-19 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

ต่อไปนี้คือประเด็นสำคัญจากคำอธิบายและข้อมูลเกี่ยวกับ Randar โดยสรุปในรูปแบบ Markdown:

ภาพรวมของการโจมตี Randar

  • Randar เป็นช่องโหว่สำหรับ Minecraft เวอร์ชัน Beta 1.8 ถึง 1.12.2 ที่สามารถเปิดเผยตำแหน่งของผู้เล่นคนอื่นได้ ด้วยการแคร็ก java.util.Random ที่ถูกนำกลับมาใช้ซ้ำอย่างไม่ถูกต้องในเซิร์ฟเวอร์ Minecraft
  • มันทำงานโดยใช้การย่อแลตทิซ LLL เพื่อหาสถานะภายในของ RNG จากพิกัดที่แม่นยำของไอเท็มดรอปเมื่อบล็อกถูกขุดทำลาย
  • ช่องโหว่นี้ถูกค้นพบโดย n0pf0x (pcm1k) เมื่อวันที่ 7 ตุลาคม 2022

Randar ทำงานอย่างไร

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

การปกป้องคลังของจาก Randar

  • การสร้างคลังของในพื้นที่ Woodland หลอกบางแห่งที่มีอีกพื้นที่หนึ่งอยู่ภายใน 4 ขั้นของ RNG สามารถหลอกผู้ใช้ช่องโหว่ได้
  • การทำให้คลังทั้งหมดอยู่ภายในพื้นที่ดังกล่าว และวางบัญชี AFK ไว้ที่จุดล่อ จะช่วยเพิ่มการป้องกันได้

โค้ดโจมตีฉบับเต็มและการแพตช์

  • มีการให้โค้ด Java แบบเต็มสำหรับแคร็กสถานะ RNG จากพิกัดไอเท็มดรอป และย้อนกลับเพื่อหาตำแหน่งผู้เล่น
  • สำหรับเซิร์ฟเวอร์ Minecraft ที่ยังใช้เวอร์ชันที่มีช่องโหว่ การแพตช์คือแก้ฟังก์ชัน World.setRandomSeed() ให้ใช้ RNG คนละอินสแตนซ์สำหรับการสร้างโลก

หมายเหตุเพิ่มเติมจาก n0pf0x

  • n0pf0x ใช้ระบบแคชเพื่อให้การค้นหา seed ไปยังพิกัดทำได้เร็วกว่าแนวทาง GPU hashmap ของ Mason
  • มีการอธิบายเทคนิคสำหรับติดตาม hit ในมิติ The End ซึ่งยากกว่า เพราะชังก์จะมีผลต่อ RNG เฉพาะตอนถูกสร้างครั้งแรกเท่านั้น
  • "End Occupancy Tracker" ใช้ประเมินว่าผู้เล่นคนใดอยู่ใน The End จากจำนวนการเรียก RNG ต่อ tick เพื่อช่วยระบุว่าใครเป็นต้นเหตุของ hit บางรายการ

ความเห็นของ GN⁺

  • Randar เป็นช่องโหว่ร้ายแรง เพราะสามารถหา seed และเปิดเผยตำแหน่งของผู้เล่นได้ทั่วทั้งโลกของเกม หากเป็นเซิร์ฟเวอร์ที่ยังไม่อัปเดตเป็น 1.13 หรือยังไม่ติดแพตช์ ก็อาจเป็นภัยคุกคามอย่างมาก
  • โดยเฉพาะในเซิร์ฟเวอร์แนว anarchy ที่อนุญาตการแฮ็ก ก็มีโอกาสสูงที่จะถูกนำไปใช้เป็นเครื่องมือโกง จึงดูเป็นเรื่องเร่งด่วนที่ต้องมีมาตรการรับมือ
  • การใช้ RNG เดียวทั้งโลกอาจเป็นทางเลือกเพื่อความสะดวก แต่เมื่อพบช่องโหว่แล้ว มันดูเป็นข้อบกพร่องเชิงสถาปัตยกรรมที่อาจส่งผลต่อทั้งเกม ส่วนที่ต้องการ seed ที่คาดเดาได้และใช้ซ้ำควรแยกไปจัดการด้วย RNG คนละตัว
  • อย่างไรก็ตาม เนื่องจากสามารถอนุมานได้จาก PoC replay ของเวอร์ชันก่อน 1.12 เช่นกัน จึงควรย้อนกลับไปตรวจสอบว่า replay เก่า ๆ เคยเปิดเผยฐานสำคัญหรือไม่
  • ไม่ใช่แค่ Minecraft เท่านั้นที่เคยพบช่องโหว่จากการนำ seed กลับมาใช้ซ้ำ เกมอื่น ๆ ก็มีกรณีลักษณะนี้เช่นกัน seed หรือ RNG ที่ใช้ในระบบสำคัญของเกมจึงต้องได้รับการตรวจสอบอย่างรอบคอบ ทั้งคาบของ pseudo-random number, ความสุ่มของ seed และการนำ seed กลับมาใช้ซ้ำ

1 ความคิดเห็น

 
GN⁺ 2024-04-19
ความเห็นจาก Hacker News

นี่คือประเด็นสำคัญที่สรุปจากความเห็นบน Hacker News:

  • ในการแข่งขัน "International RoShamBo Programming Competition" ปี 1999-2000 บอตชื่อ "Nostradamus" ชนะด้วยการย้อนสถานะของตัวสร้างเลขสุ่มเพื่อทำนายการเล่นของบอตพื้นฐานแบบสุ่มได้ถูกต้อง 100%

  • การลดแลตทิซแบบ LLL ซึ่งเป็นอัลกอริทึมเดียวกับที่ใช้ในบอต "Nostradamus" ยังสามารถใช้แคร็กคีย์ของ PuTTY จาก nonce ที่มีอคติได้ ตามที่ 'tptacek อธิบายไว้ในความเห็นบน Hacker News เมื่อไม่นานมานี้

  • เซิร์ฟเวอร์ Minecraft ของ SciCraft ใช้การตั้งค่าที่ซับซ้อนเพื่อควบคุมสถานะ RNG ของเกมแบบกำหนดได้แน่นอน ทำให้เกิดฟ้าผ่าแบบ "สุ่ม" ได้ทุกเฟรมเพื่อให้ดรอปไอเท็มดีขึ้น ดังที่มีการสาธิตไว้ในวิดีโอ YouTube

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

  • แนวคิดเรื่อง "เซิร์ฟเวอร์สำหรับการใช้บั๊กแบบไร้กติกา" ใน Minecraft ถูกนำไปเปรียบเทียบกับภาพของการต่อสู้จริงใน metaverse สมมุติ

  • ชุมชนม็อดดิ้ง/แฮ็ก Minecraft ได้รับคำชมว่ามีความซับซ้อนสูง โดยมีการสาธิตการแคร็ก RNG ภายในเกมที่น่าประทับใจในวิดีโอ YouTube อีกอันหนึ่ง

  • การควบคุม RNG นี้ถูกนำไปเปรียบเทียบกับกราฟ phase space ของ RNG สำหรับ TCP ISN ที่อ่อนแอ

  • ผู้เล่นบางคนชอบเซิร์ฟเวอร์แบบ "อนาธิปไตย" ใน Minecraft เช่น 2b2t และมองว่านี่คือวิธีที่เกมควรถูกเล่น แม้ว่าบางครั้งเซิร์ฟเวอร์เหล่านี้จะได้รับความนิยมมากเกินไปก็ตาม

  • ผู้แสดงความเห็นคนหนึ่งสงสัยเกี่ยวกับภูมิหลังทางอาชีพของแฮ็กเกอร์เกม Minecraft ชื่อดัง Leijurv โดยคาดเดาว่าอาจทำงานในสาย infosec หรือ algorithmic trading จากทักษะที่น่าประทับใจของพวกเขา