Randar: LLL लैटिस रिडक्शन का उपयोग कर सर्वर RNG को क्रैक करने वाली Minecraft भेद्यता
(github.com/spawnmason)Here are the key points from the Randar explanation and information, summarized in Markdown format:
Randar exploit overview
- Randar Minecraft के Beta 1.8 से 1.12.2 वर्ज़न तक के लिए एक exploit है, जो Minecraft server में गलत तरीके से दोबारा इस्तेमाल किए गए
java.util.Randomको क्रैक करके दूसरे खिलाड़ियों की लोकेशन उजागर कर सकता है - यह LLL lattice reduction का उपयोग करके block टूटने पर गिरने वाले items के सटीक coordinates के आधार पर RNG की internal state पता लगाता है
- इस exploit की खोज n0pf0x (pcm1k) ने 7 अक्टूबर 2022 को की थी
How the Randar exploit works
- Minecraft के code में terrain generation (जैसे Woodland Mansions) और in-game actions (जैसे blocks mining) के बीच RNG को गलती से दोबारा इस्तेमाल किया जाता है
- जब कोई chunk load होता है, तो वह Woodland Mansions जैसी structures की जाँच करता है और chunk coordinates के आधार पर RNG seed को reset करता है
- जब कोई खिलाड़ी उसके तुरंत बाद कोई block mine करता है, तो गिरने वाले item के coordinates RNG state से तय होते हैं
- Lattice reduction का उपयोग करके item drop coordinates से RNG की सटीक internal state पता की जा सकती है
- RNG state को पीछे की ओर step करने पर सबसे हाल में loaded chunk coordinates मिल जाते हैं, जिससे खिलाड़ी की लोकेशन उजागर हो जाती है
Protecting stashes from Randar
- खास "decoy" Woodland regions में stashes बनाना, जहाँ 4 RNG steps के भीतर कोई दूसरा region मौजूद हो, exploiters को भ्रमित कर सकता है
- पूरे stash को उस region के भीतर रखना और decoy पर एक AFK account तैनात करना अतिरिक्त सुरक्षा देता है
Complete exploit code and patching
- Item drop coordinates से RNG state क्रैक करने और खिलाड़ी की लोकेशन खोजने के लिए पीछे की ओर step करने वाला पूरा Java code उपलब्ध कराया गया है
- जो Minecraft servers अभी भी vulnerable versions पर हैं, उनके लिए patch में
World.setRandomSeed()function को बदलकर world generation के लिए अलग RNG instance इस्तेमाल करना शामिल है
Additional notes from n0pf0x
- n0pf0x ने Mason के GPU hashmap approach की तुलना में seed-to-coordinate lookups को तेज़ करने के लिए caching system का उपयोग किया
- The End dimension में hits track करने की techniques भी बताई गई हैं, जहाँ यह अधिक मुश्किल है क्योंकि chunks केवल पहली generation पर RNG को प्रभावित करते हैं
- एक "End Occupancy Tracker" प्रति tick RNG calls के आधार on यह अनुमान लगाता है कि कौन से खिलाड़ी The End में हैं, ताकि यह पता लगाया जा सके कि कुछ hits किसने किए
GN⁺ की राय
- Randar एक गंभीर exploit है क्योंकि यह seed का पता लगाकर पूरे world में खिलाड़ियों की लोकेशन लीक कर सकता है. अगर server ने 1.13 में update नहीं किया है या patch लागू नहीं किया है, तो यह बड़ा खतरा बन सकता है
- खासकर cheat tools की अनुमति देने वाले anarchy servers में इसका दुरुपयोग होने की संभावना बहुत अधिक है, इसलिए इसके लिए जल्द उपाय तैयार करना ज़रूरी लगता है
- पूरे world पर लागू होने वाला एकल RNG इस्तेमाल करना शायद सुविधा के लिए था, लेकिन भेद्यता मिलने पर यह पूरे game को प्रभावित करने वाली एक संरचनात्मक खामी साबित होती है. जिन हिस्सों में predictable और repetitive seed की ज़रूरत हो, उन्हें अलग RNG से संभालना बेहतर है
- हालांकि 1.12 से पहले के वर्ज़न के PoC replay से भी अनुमान लगाया जा सकता है, इसलिए यह भी देखना चाहिए कि पिछले replays में कहीं महत्वपूर्ण bases उजागर तो नहीं हुए
- सिर्फ Minecraft ही नहीं, दूसरे games में भी seed reuse से जुड़ी vulnerabilities के उदाहरण मिले हैं. Game के core systems में इस्तेमाल होने वाले seed या RNG के साथ बहुत सावधानी ज़रूरी है. Pseudorandom sequence की period, seed की randomness और seed reuse जैसी बातों की जाँच होनी चाहिए
1 टिप्पणियां
Hacker News राय
Hacker News टिप्पणियों से संक्षेप में मुख्य बिंदु इस प्रकार हैं:
1999-2000 की "International RoShamBo Programming Competition" में "Nostradamus" नाम का एक bot random baseline bot की चालों का 100% सटीकता के साथ अनुमान लगाने के लिए random number generator की state को reverse करके जीत गया था.
LLL lattice reduction, वही algorithm जिसका इस्तेमाल "Nostradamus" bot में हुआ था, biased nonces से PuTTY keys crack करने के लिए भी इस्तेमाल किया जा सकता है, जैसा कि हाल की एक Hacker News टिप्पणी में 'tptacek' ने समझाया था.
SciCraft Minecraft server ने game की RNG state को deterministically manipulate करने के लिए एक sophisticated setup इस्तेमाल किया, ताकि बेहतर item drops के लिए हर frame में "random" lightning strikes trigger किए जा सकें, जैसा कि एक YouTube वीडियो में दिखाया गया है.
कुछ commenters को यह exploit एक साथ fascinating और चेतावनी देने वाला लगता है, क्योंकि यह दिखाता है कि code में random sources के आपस में interact करने से कितने जोखिम पैदा हो सकते हैं. इसे सबसे कम payoff के लिए किए गए सबसे sophisticated exploits में से एक माना जाता है.
Minecraft में "free for all bug abusing server" के विचार की तुलना इस बात से की गई है कि किसी hypothetical metaverse में असली लड़ाई शायद कैसी दिखेगी.
Minecraft modding/hacking community की sophistication की सराहना की गई है, और एक दूसरे YouTube वीडियो में game के अंदर RNG cracking के कुछ प्रभावशाली उदाहरण दिखाए गए हैं.
इस RNG manipulation की तुलना weak TCP ISN RNG के phase space plots से की गई है.
कुछ players Minecraft के "anarchy" servers जैसे 2b2t को पसंद करते हैं, और मानते हैं कि game ऐसे ही खेला जाना चाहिए, भले ही कभी-कभी ये servers ज़रूरत से ज़्यादा popular हो जाते हों.
एक commenter Minecraft के एक प्रमुख game hacker Leijurv की professional background को लेकर जिज्ञासु है, और अनुमान लगाता है कि उनकी प्रभावशाली skills को देखते हुए वे शायद infosec या algorithmic trading में काम करते हों.