چیزیں جاننے کے لئے: |
- ٹرسٹ والیٹ کی سیڈ جنریشن ناقص تھی، کل اینٹروپی صرف 32 بٹس تھی۔ ہم نے تمام ممکنہ بیجوں پر مشتمل ایک فائل بنائی ہے۔
- خوش قسمتی سے، لیجر ڈونجن نے کمزوری کو بہت جلد دریافت کر لیا اور ممکنہ طور پر کرپٹو ایکو سسٹم کے سب سے بڑے ہیک سے بچ گیا۔ |
14 نومبر 2022 کو، ٹرسٹ والیٹ، ایک وسیع پیمانے پر استعمال ہونے والے سافٹ ویئر والیٹ نے اپنے براؤزر کی توسیع کے اجراء کا اعلان کیا۔ یہ براہ راست براؤزر سے متعدد بلاک چینز پر ڈیجیٹل اثاثوں تک رسائی کی اجازت دیتا ہے، اور موجودہ iOS اور اینڈرائیڈ ایپس میں ایک طویل انتظار کا اضافہ ہے۔
دی لیجر ڈونجن نے حال ہی میں اس براؤزر ایکسٹینشن میں ایک اہم کمزوری کا پتہ لگایا ہے، جس سے حملہ آور کو صارف کے کسی تعامل کے بغیر، اس ایکسٹینشن کے ساتھ بنائے گئے کسی بھی پرس کے تمام اثاثے چوری کرنے کی اجازت دی گئی ہے۔ کسی اکاؤنٹ کا پتہ جاننے سے، فوری طور پر اس کی نجی کلید کا حساب لگانا، پھر اس کے تمام فنڈز تک رسائی ممکن ہے۔ ذیل میں کمزوری کی تفصیلات ہیں، لیجر ڈونجن نے اسے کیسے دریافت کیا، وقت کے ساتھ اس کے اثرات، کمزور اثاثوں کا تخمینہ، اور ٹرسٹ والیٹ نے اسے ٹھیک کرنے کے لیے کس طرح جواب دیا۔ لیکن آئیے بنیادی باتوں کو یاد کرنے کے ساتھ شروع کریں۔
بٹوے کیسے بنائے جاتے ہیں۔
اینٹروپی نسل مشکل ہے۔ بحیثیت سائنسدان، ہمیں تولیدی صلاحیت اور وجہ اور اثر کے اصولوں کے ساتھ مظاہر کی وضاحت کرنے کے قابل ہونا پسند ہے۔ لہذا، عام طور پر یہ بے ترتیب پن پیدا کرنے کے لئے مشکل ہے. مزید برآں، یہ ظاہر کرنا مشکل ہے کہ بے ترتیب نمبر درست ہیں، اور ایک برا لیکن قطعی طور پر ناقص بے ترتیب نمبر جنریٹر مبصر کو آسانی سے بے وقوف بنا سکتا ہے۔ اچھی بے ترتیب ہونے کے لیے، ہمیں بٹس اور بائٹس (اور یہاں تک کہ تمام ٹکڑوں کے سائز) کی یکساں تقسیم، اور غیر متوقع صلاحیت کی ضرورت ہے۔ کسی ترتیب کے مبصر کے لیے، ترتیب کے اگلے حصے کے بارے میں کوئی معلومات حاصل کرنا ناممکن ہونا چاہیے۔
چونکہ ان خصوصیات کو حاصل کرنا ناقابل یقین حد تک مشکل ہے، اس لیے کرپٹو کرنسی کی جگہ جہاں تک ممکن ہو بے ترتیب پن پر انحصار کرنے سے بچنے کی کوشش کرتی ہے – لیکن ہمیں پھر بھی ایک مرحلے پر اس کی ضرورت ہے: جب ہم نیا پرس بناتے ہیں۔
آپ شاید پہلے سے ہی اپنی یادداشت سے واقف ہیں، 12 سے 24 انگریزی الفاظ جو آپ کو اپنے بٹوے کا بیک اپ لینے کی اجازت دیتے ہیں (اگر نہیں، تو آپ چیک کر سکتے ہیں لیجر اکیڈمی اسی موضوع پر مضمون)۔
کے مطابق، یہ یادداشت 16 سے 32 بائٹس کے اینٹروپی کو انکوڈ کرتی ہے۔ BIP 39 معیاری - اس انٹراپی کا معیار اہم ہے، کیونکہ یہ تمام زنجیروں پر آپ کے بٹوے کے ذریعے استعمال ہونے والی تمام چابیاں کا بیج ہو گا، جس کی وضاحت ایک متعین اخذ کرنے کے عمل کے بعد ہو گی۔ بی آئی پی 32 اور بی آئی پی 44 معیار.
یہ درجہ بندی کا تعین کرنے والی اسکیم آج کل کافی حد تک ہر جگہ موجود ہے، اس بات پر غور کرتے ہوئے کہ صارفین کے لیے لامحدود چابیاں اور اس کی پورٹیبلٹی کا بیک اپ بنانا کتنا آسان بناتا ہے (BIP 39 کے "متفقہ طور پر نفاذ کی حوصلہ شکنی" ہونے کے باوجود)۔ سائنر رومنگ ایک طاقتور خصوصیت ہے – جب آپ کا پسندیدہ پرس ناکام ہو جاتا ہے یا مایوس ہو جاتا ہے، تو آپ اپنی یادداشت کو اپنے ساتھ لے جا سکتے ہیں (یا اس سے بھی بہتر، آپ کا لیجر ڈیوائس)، کسی دوسرے پر سوئچ کر سکتے ہیں، اپنی مالی آزادی برقرار رکھ سکتے ہیں اور اس کے ڈاؤن ٹائم کے کسی بھی اثر کو محدود کر سکتے ہیں۔
لیکن ایک بار پھر، اس کے لیے ایک بے عیب اینٹروپی ماخذ کی ضرورت ہے۔
کمزوری کا جائزہ
ٹرسٹ والیٹ پر انحصار کرتا ہے۔ والیٹ کور پر اعتماد کریں۔، ایک کراس پلیٹ فارم لائبریری جو بہت سے بلاکچینز کے لیے کم سطح کے کرپٹوگرافک والیٹ کی فعالیت کو نافذ کرتی ہے۔ یہ موبائل پر مرکوز تھا، لیکن یہ اپریل 2022 سے Wasm کو بھی نشانہ بناتا ہے (دیکھیں۔ 2132 #).
اگرچہ زیادہ تر ٹرسٹ والیٹ کور پورٹیبل ہے، کچھ ماڈیولز اور فنکشنز ہدف کے لیے بہت مخصوص ہیں۔ یہ خاص طور پر محفوظ رینڈم جنریشن حصے کا معاملہ ہے، جو خفیہ مواد جیسا کہ پرائیویٹ کیز، اور ایچ ڈی والیٹس کے لیے یادداشت بنانے کے لیے استعمال ہوتا ہے۔ ہر عمل درآمد آپریٹنگ سسٹم کے ذریعہ پیش کردہ سیڈورینڈم نمبر جنریٹر (PRNG) کا فائدہ اٹھاتا ہے:
- iOS کے لیے،
SecRandomCopyBytes
استعمال کیا جاتا ہے. - اینڈرائیڈ کے لیے، اینٹروپی ایک مثال کے ذریعے فراہم کی جاتی ہے۔
java.security.SecureRandom
.
یہ عام طور پر ایک اچھا عمل ہے، جیسا کہ سمجھا جاتا ہے کہ اس طرح کی قدیم چیزیں محفوظ ہیں۔
Wasm پسدید
Wasm ہدف سے فرق ہے۔ یہ ماڈیول کئی ماحول پر چل سکتا ہے، جیسے کہ کوئی بھی براؤزر جو Wasm، یا Node.js کو سپورٹ کرتا ہے۔ یہ پلیٹ فارم ایک عام مضبوط PRNG فراہم نہیں کرتے ہیں، اور کوئی بھی ان ماحول سے "کلاسک" سسٹم انٹرفیس تک رسائی حاصل نہیں کر سکتا۔ مثال کے طور پر، لینکس کے لیے Chrome میں چلنے والا Wasm ماڈیول براہ راست نہیں پڑھ سکتا /dev/urandom
.
اس سے نمٹنے کے لیے، ایک سرشار نام نہاد "سیکیور رینڈم جنریٹر" لاگو کیا گیا ہے۔ 2240 #. یہ ایم اسکرپٹن میں بنائے گئے پی آر پر مبنی ہے (پی آر دیکھیں 12240 # ایم اسکرپٹن میں) پڑھنے سے بچنے کے لئے بالکل ٹھیک لکھا گیا ہے۔ /dev/urandom
.
مصنف کے مطابق:
ہم یہاں کیا کرتے ہیں آسان ہے، ہم لپیٹتے ہیں std::random_device
ساتھ std::mt19937
اور ایک بے ترتیب uint32 قدر واپس کریں، جس سے متاثر ہو کر emscripten-core/emscripten#12240.
یہاں ایک اہم مسئلہ ہے، جو Wasm کے لیے والٹ کور اور اس پر انحصار کرنے والی کسی بھی پروڈکٹ کے لیے ایک اہم خطرے کا باعث بنتا ہے: استعمال شدہ PRNG مرسین ٹویسٹر ہے، اور اسے خفیہ مقاصد کے لیے استعمال نہیں کیا جانا چاہیے۔ مزید برآں، خصوصی ورژن mt19937 ان پٹ سیڈ کے طور پر ایک ہی 32 بٹ قدر لیتا ہے۔
یہاں کے نتائج کیا ہیں؟ Wasm کے لیے حسب ضرورت رینڈم ماڈیول دو افعال کو نافذ کرتا ہے: random32
جو ایک 32 بٹ بے ترتیب قدر پیدا کرتا ہے، اور random_buffer
جو بے ترتیب ڈیٹا کے ساتھ صوابدیدی سائز کے بفر کو بھرتا ہے۔ Wallet Core پروجیکٹ میں، یہ فنکشنز خصوصی طور پر trezor-crypto کے ذریعے استعمال کیے جاتے ہیں، Trezor کی طرف سے تیار کردہ کرپٹوگرافک لائبریری ان کے ہارڈویئر بٹوے پر محفوظ کرپٹوگرافی کو یقینی بنانے کے لیے۔
اب دیکھتے ہیں کہ ایچ ڈی والیٹس کیسے تیار ہوتے ہیں:
- انٹری پوائنٹ HDWallet ہے۔ بعد میں اس کی حفاظت کے لیے ایک طاقت، اور پاسفریز کی ضرورت ہوتی ہے:
https://github.com/trustwallet/wallet-core/blob/3.1.0/src/HDWallet.cpp#L45
یہ فنکشن پھر کال کرتا ہے۔ mnemonic_generate
BIP-39 یادداشت بنانے کے لیے:
https://github.com/trustwallet/wallet-core/blob/3.1.0/trezor-crypto/crypto/bip39.c#L55
mnemonic_generate
کالز random_buffer
، جو مرسین ٹویسٹر PRNG کا استعمال کرتے ہوئے بھرے ہوئے بے ترتیب بفر کو آؤٹ پٹ کرتا ہے، جس کی مثال ابھی سیڈ کی گئی ہے:
https://github.com/trustwallet/wallet-core/blob/3.1.0/wasm/src/Random.cpp#L19
چونکہ بیج صرف 32 بٹس کا ہے، والٹ کور کا Wasm ورژن صرف 2^32 (~ 4 بلین) ممکنہ یادداشت بنانے کی اجازت دیتا ہے۔ یہ تمام یادداشتیں ایک کمپیوٹر میں چند گھنٹوں میں تیار کی جا سکتی ہیں۔
وہاں سے، ایک حملہ آور اس قابل ہے:
- تمام بیجوں، نجی کلیدوں، پھر ٹرسٹ والیٹ کے ذریعے ہینڈل کی جانے والی ہر کریپٹو کرنسی کے پتے کی گنتی کریں۔
- تمام استعمال شدہ پتے نکالنے کے لیے متعلقہ بلاکچینز کو اسکین کریں۔
- Trust Wallet for Wasm کے ذریعے بنائے گئے بٹوے کے تمام پتے حاصل کرنے اور ان کے فنڈز چوری کرنے کے لیے چوراہے کا حساب لگائیں۔
اس طرح کے حملے کو چلانے میں چند گھنٹے سے زیادہ وقت لگتا ہے، لیکن چند GPUs کے ساتھ ایک دن سے بھی کم وقت میں ممکن ہے (دیکھیں medium.com/@johncantrell97/how-i-checked-over-1-trillion-mnemonics-in-30-hours-to-win-a-bitcoin لاگت کے تخمینہ کے لیے۔ یہاں حملہ 256 گنا آسان ہے)۔
ٹرسٹ والیٹ براؤزر ایکسٹینشن کے لیے درخواست
۔ والیٹ براؤزر ایکسٹینشن پر بھروسہ کریں۔ کرومیم پر مبنی براؤزرز کے لیے ایک توسیع ہے۔ یہ واضح طور پر ایک MetaMask مدمقابل ہے، اور اسے "محفوظ ملٹی چین کرپٹو والیٹ اور ہزاروں Web3 وکندریقرت ایپلی کیشنز (dApps) کے گیٹ وے" کے طور پر برانڈ کیا گیا ہے۔
ایکسٹینشن کلوز سورس ہے، لیکن اس کے کوڈ کا آسانی سے تجزیہ کیا جا سکتا ہے۔ یہ Trust Wallet Core کے کمزور Wasm نفاذ پر انحصار کرتا ہے۔
جب ایک پرس بنایا جاتا ہے، تو ایکسٹینشن بے ترتیب 12 بٹ سیڈ سے 128 الفاظ کی یادداشت بناتی ہے۔ یادداشت اس طرح پیدا ہوتی ہے:
HDWallet.create
اوپر بیان کردہ HDWallet کنسٹرکٹر کے لیے خود کار طریقے سے تیار کردہ Wasm ریپر ہے۔ یعنی کمزور random_buffer
فنکشن کا استعمال کیا جاتا ہے، لہذا میمونکس کو بروٹ فورس اٹیک کے ساتھ صارف کے ایڈریس سے بازیافت کیا جاسکتا ہے۔
یہ توسیع درج ذیل اثاثوں کو سنبھالتی ہے: AVAX، BNB، ETH، MATIC، SOL اور TWT۔
- پتے ETH، BNB، MATIC، AVAX اور TWT کے لیے ایک جیسے ہیں۔ یہ معیاری Ethereum ایڈریس ہیں، ایک ہی اخذ کرنے والے راستے کا اشتراک کرتے ہیں (m/44'/60'/0'/0/0)۔
- سولانا ایک مختلف اخذ کرنے کا راستہ استعمال کرتا ہے: m/44'/501'/0'/0'۔
ٹرسٹ والیٹ ایکسٹینشن کے تمام صارفین کے فنڈز نکالنے کے لیے، حملہ آور یہ کر سکتا ہے:
- ہر ممکنہ یادداشت کی گنتی اور ذخیرہ کریں، پھر Ethereum نجی کلید اور Ethereum ایڈریس، جو اس ایکسٹینشن کے ذریعے تیار کیا جا سکتا ہے۔
- ٹرسٹ والیٹ براؤزر ایکسٹینشن کی پہلی ریلیز کے بعد سے بنائے گئے تمام استعمال شدہ ایتھریم پتوں کو جمع کریں، اور انہیں مقامی طور پر اسٹور کریں۔
- ایڈریس ڈیٹا بیس میں تلاش کریں۔
- پرائیویٹ کلید کے ساتھ خالی پرس، اگر پتہ استعمال کیا گیا ہو۔
ان اقدامات کو ہر سلسلہ کے لیے دوبارہ تیار کیا جا سکتا ہے۔ اب ہم تفصیل سے بتاتے ہیں کہ کس طرح لیجر ڈونجن نے ایتھریم اور بائنانس اسمارٹ چین پر اس حملے کو، بلاشبہ، بٹوے کو نکالے بغیر نافذ کیا۔
ٹرسٹ والیٹ پر حملہ کرنا
کمزوری ایک حملہ آور کو براؤزر ایکسٹینشن کے ذریعے تخلیق کردہ پرس کے کسی بھی پتے سے یادداشت کی گنتی کرنے کی اجازت دیتی ہے۔ اس کے لیے، کسی کو ممکنہ یادداشت اور نتیجے کے پتے کے درمیان نقشہ سازی کی ضرورت ہے۔
ٹرسٹ والیٹ ایکسٹینشن ان تمام پتوں کو تیار کرنا جو بنا سکتی ہے۔
پہلے بیان کی گئی PRNG میں کمزوری کی بنیاد پر، ٹرسٹ والیٹ ایکسٹینشن کے ذریعے بنائے جانے والے تمام پتوں (اور متعلقہ نجی کلیدوں) کو شمار کرنا ممکن ہے۔ میرا خیال ہر ممکن ایڈریس کو ایک بڑی میز میں محفوظ کرنا تھا۔ پھر، Ethereum blockchain سے نکالے گئے پتوں کی فہرست سے، کوئی بھی چیک کر سکتا ہے کہ آیا اس ٹیبل میں کچھ پتے موجود ہیں۔ اگر ایسا ہے تو، اس کی نجی کلید کی گنتی کی جا سکتی ہے۔
اینٹروپی سے نیومونک اور پھر ایتھریم ایڈریس تک اخذ معیاری اخذ کرنے کا طریقہ کار استعمال کرتا ہے BIP-32, BIP-39، اور BIP-44 اکاؤنٹ کا درجہ بندی
پہلی مشکل ان تمام پتوں کی گنتی میں تھی۔ PRNG بیج سے ایڈریس میں تبدیلی کے لیے درج ذیل اقدامات کی ضرورت ہے:
- اینٹروپی نسل: مرسین ٹویسٹر کو بیج کے ساتھ شروع کریں، اور ابتدائی اینٹروپی کو جمع کرنے کے لیے اسے 16 بار کال کریں۔
- اینٹروپی سے یادداشت: آخری لفظ میں سرایت شدہ حتمی چیکسم کی گنتی کرنے کے لیے ایک SHA-256۔
- یادداشت سے بیج: یادداشت کو 512 تکرار کے ساتھ PKBDF2-HMAC-SHA512 کا استعمال کرتے ہوئے 2048 بٹ بیج میں تبدیل کیا جاتا ہے۔ فی تکرار 2 SHA-512 کمپیوٹیشنز ہیں، اس لیے کل لاگت 4096 SHA-512 کمپیوٹیشن ہے۔
- BIP-32 ماسٹر کلید سے بیج: 1 HMAC SHA-512 جس کی قیمت 2 SHA-512 کمپیوٹیشن ہے۔
- Ethereum نجی کلید کی ماسٹر کلید: ماسٹر کلید m/44'/60'/0'/0/0 پر اخذ کی گئی ہے۔ اس کے لیے 3 سخت چائلڈ پرائیویٹ کلید مشتقات اور 2 نارمل چائلڈ کلید اخذ کی ضرورت ہے۔
- ہر سخت بچے کی نجی کلید کے اخذ کرنے کے لیے ایک HMAC SHA-512 (2 SHA-512) کیلکولیشن اور secp256k1 پر ایک اضافہ درکار ہوتا ہے۔
- ان پٹ میں فراہم کردہ نجی کلید کو عوامی کلید میں تبدیل کرنے کے لیے ہر نارمل چائلڈ پرائیویٹ کلید اخذ کرنے کے لیے چائلڈ پرائیویٹ کلید اخذ کرنے اور secp256k1 پر اسکیلر ضرب کی ضرورت ہوتی ہے۔
- ایڈریس کے لیے ایتھریم نجی کلید: اس آخری مرحلے کے لیے نجی سے عوامی کلید کی تبدیلی کی ضرورت ہے، اس لیے ایک اور اسکیلر ضرب، اور ایک Keccak-256 ہیش۔
ان تمام مراحل کی کل لاگت یہ ہے:
- مرسین ٹویسٹر کو ابتدائی اور 16 کالز
- 1 SHA-256
- 4108 SHA-512
- 5 پوائنٹس کا اضافہ
- secp2k256 پر 1 اسکیلر ضرب
سب سے مہنگے مراحل SHA-512 کمپیوٹیشنز اور اسکیلر ضرب ہیں۔ اسے مختصر کرنے کے لیے، PRNG بیج کو Ethereum ایڈریس میں تبدیل کرنے کا مجموعی عمل سست ہے۔ ایک سی پی یو پر اس طرح کی گنتی چلانے میں مہینوں لگیں گے، اور شاید ڈونجن میں دستیاب سی پی یوز پر کئی ہفتے لگیں گے۔ لہذا، ہم نے اسے OpenCL کا استعمال کرتے ہوئے لاگو کیا (کی بنیاد پر BIP39 سولور GPU) اور اسے 2 NVIDIA GeForce GTX 1080 Ti GPUs پر چلایا۔
اس ٹول کا آؤٹ پٹ ایک بڑی فائل ہے جس میں تمام ایتھریم ایڈریس ہیں جو ایکسٹینشن جنریٹ کر سکتی ہے۔ چونکہ 2^32 ممکنہ بیج ہیں، اور ہر پتہ 20 بائٹس لمبا ہے، اس لیے یہ ٹیبل 80 جی بی لیتا ہے۔
وہاں سے، ٹیبل کی تلاش سست ہے: ایک ایڈریس سے ملنے کے لئے، یہ اس تمام بڑے ٹیبل کے ذریعے دوبارہ کرنے کی ضرورت ہوگی.
ان تلاش کو تیز کرنے کے لیے، ہم ایتھریم ایڈریس کے پہلے بائٹ کے مطابق، میز کو 256 چھوٹی میزوں میں تقسیم کرتے ہیں۔ ہر ٹیبل میں PRNG بیجوں کے جوڑے، اور ان کے نتیجے میں Ethereum کا پتہ ہوتا ہے۔
آخر میں، ہر ٹیبل میں تیزی سے تلاش کرنے کے قابل ہونے کے لیے، ہم نے انہیں Ethereum ایڈریس کے مطابق ترتیب دیا۔ اب ان میزوں پر بائنری تلاش کرنا ممکن ہے: ان ترتیب شدہ میزوں پر تلاش کرنا بہت سستا ہے۔
کچھ ڈسک کی جگہ بچانے کے لیے، ہم نے PRNG بیج اور ہر ایتھریم ایڈریس کے صرف پہلے 8 بائٹس کو محفوظ کیا۔ آخری 12 بائٹس ضروری نہیں ہیں، کیونکہ میرے استعمال کے معاملے میں تصادم نہ ہونے کے برابر ہیں۔ ہر اندراج میں 12 بائٹس لگتے ہیں۔ پوری میزیں پھر 48 جی بی لیں۔
یہاں ہر قدم کے لیے اوقات ہیں:
ان جدولوں کا استعمال کرتے ہوئے، پتہ بنانے کے لیے استعمال ہونے والی یادداشتوں کو فوری طور پر بازیافت کرنا ممکن ہے۔ کمزوری کے اثرات کا اندازہ لگانے کے لیے، بائننس نے مجھ سے 3 ٹیسٹ ایڈریسز کی یادداشت پوچھی جو انہوں نے فراہم کی۔ یہاں نتیجہ ہے:
3 یادداشتوں اور نجی کلیدوں کو بازیافت کرنے میں چند سو ملی سیکنڈ لگے۔ ہمارے ٹیسٹ کے مطابق، یہ عمل درحقیقت اتنا تیز ہے کہ ایتھریم بلاکچین پر تمام لین دین کو حقیقی وقت میں پروسیس کیا جا سکے اور جیسے ہی ان کے استعمال ہوتے ہی تمام کمزور پتوں کو توڑ دیا جا سکے۔. پہلے سے جانچے گئے پتوں کو کیش کرنے سے، یہی بات دیگر بلاک چینز جیسے BSC پر بھی لاگو ہوتی ہے۔ اس حملے کے منظر نامے میں، کوئی بھی لین دین کی نگرانی کر سکتا ہے جب وہ میمپول تک پہنچ جائے، اور اصل وقت میں بھیجنے والے یا وصول کنندہ کی نجی کلیدوں کا حساب لگائیں۔
تمام استعمال شدہ Ethereum پتوں کی فہرست
ہم جو چاہیں گے وہ یہ ہے کہ کمزور بٹوے کی اصل تعداد اور ان کے توازن کا اندازہ لگانا۔ یہ آسان لگتا ہے، کیونکہ تمام لین دین عوامی ہیں، اس لیے تمام پتے بلاک چین پر دستیاب ہیں۔ تاہم، استعمال شدہ پتوں کی فہرست کو براہ راست بازیافت کرنے کا کوئی طریقہ نہیں ہے۔
ہم نے ایک ایسا طریقہ نافذ کیا جو Ethereum blockchain کے ہر بلاک کے ذریعے دہرایا جاتا ہے۔ ہم نے تمام لین دین کے ارسال کنندہ اور وصول کنندہ کے پتے اور ERC-20 معاہدوں پر ہر کال کے ایڈریس کے پیرامیٹرز کو نکالا۔
نوٹ کریں کہ اس طریقہ کے ساتھ، صرف استعمال شدہ بٹوے کا پتہ لگایا جا سکتا ہے: کچھ کمزور بٹوے جنہوں نے اثاثے حاصل نہیں کیے، انہوں نے کبھی بھی بلاکچین کے ساتھ تعامل نہیں کیا۔
ہم نے بلاکس 14820000 اور 16096000 کے درمیان ایتھریم بلاکچین کو اسکین کیا۔ بلاک 14820000 21 مئی 2022 کو بنایا گیا تھا، اس لیے پل کی درخواست سے بالکل پہلے جس نے ٹرسٹ والیٹ کور میں کمزور کوڈ شامل کیا تھا۔ جب میں نے یہ پوسٹ لکھی تو 16096000 تازہ ترین بلاک تھا۔
ایسا لگتا ہے کہ عوامی نوڈس کی شرح کی حد ہے، لہذا میں نے کئی درجن گھنٹوں کے دوران کل 147,910,120 پتے جمع کرنے کے لیے متوازی طور پر متعدد عوامی نوڈس سے استفسار کیا۔ نقل ہٹانے کے بعد، ہم 32,613,317 منفرد پتوں کی فہرست حاصل کرتے ہیں۔
بائنانس اسمارٹ چین کے لیے بھی یہی طریقہ استعمال کیا گیا ہے۔ عوامی بی ایس سی نوڈس کو اسکین کیا گیا ہے۔
کمزور کھاتوں کی تعداد کا تخمینہ لگانا
آخر میں، یہ جانچنے کے لیے ایک ٹول ہے کہ آیا ٹرسٹ والیٹ ایکسٹینشن کے ذریعے کوئی پتہ بنایا گیا ہے۔ یہ تیار کردہ جدولوں میں تلاش کرتا ہے، PRNG بیج حاصل کرتا ہے، اور وہاں سے یادداشت، Ethereum پرائیویٹ کلید اور متعلقہ ایڈریس کی گنتی کرتا ہے۔
حساب کتاب بہت تیز ہے۔ I/O کو کم سے کم کرنے اور نیسٹڈ بائنری تلاش کو انجام دینے کے لیے امیدواروں کے پتوں کو پہلے سے ترتیب دیا گیا تھا۔ 32 ملین پتوں کی تلاش میں ایک سادہ Python اسکرپٹ کا استعمال کرتے ہوئے چند منٹ لگتے ہیں۔
یہاں ایک ایڈریس کے ساتھ ایک مثال ہے جو a سے لیا گیا ہے۔ عوامی ٹویٹ ٹرسٹ والیٹ کی توسیع کے اعلان کا جواب دینا۔ میں نے اسے ایک مثال کے طور پر لیا جیسا کہ اس ایڈریس میں ہے۔ کبھی استعمال نہیں کیا گیا، لہذا صارف کے فنڈز خطرے میں نہیں ہیں۔
ٹول 1,873,720 کے ڈیٹاسیٹ پر چلایا گیا ہے جس کی تفصیل اوپر دی گئی ہے۔ تمام پتوں کی جانچ کرنے اور کمزور اکاؤنٹس کی نجی کلیدوں کی کمپیوٹنگ میں 4 منٹ 22 سیکنڈ لگے، اس لیے یہ بہت سستا ہے۔
کمزور پرائیویٹ کیز کی اس فہرست کے ساتھ، تمام متعلقہ پتوں، ان کے بیلنس اور ظاہر ہے کہ ان کو ختم کرنا ممکن ہے۔ .
تدارک
2022، 17 نومبر
ان کا استعمال کرتے ہوئے Binance کو خطرے کی اطلاع دی گئی ہے۔ بگ فضل پروگرام 2022، 17 نومبر کو۔
خطرے کی تصدیق کے لیے، بائننس نے ہمیں 3 پتے بھیجے اور ان سے یادداشت فراہم کرنے کو کہا:
کیا آپ براہ کرم اپنے ٹول کو چلانے اور ان 3 پتوں کے لیے یادداشت فراہم کرنے کی کوشش کر سکتے ہیں؟
Wallet 1 – 0xdf6D9547e163D5E7eafBe2FeB24Bfa12A4C913C0
Wallet 2 – 0xE1E0580cb5eA0c0FD034FF2cdfc872ce4493676C
Wallet 3 – 0x02b2Ae981b138F066344774A2AD75225A046c377
شکریہ!
ڈاؤن لوڈ، اتارنا کے حوالے.
ایک بار جب تمام ممکنہ پتوں کا پہلے سے حساب لگا لیا جائے تو، کسی پتے سے یادداشت کو بازیافت کرنا اتنا ہی آسان ہے جتنا کہ 4 بلین اندراجات کے ٹیبل میں تلاش کرنا۔ تین یادداشتوں کو 0.2 سیکنڈ میں بازیافت کیا گیا ہے:
2022، 21 نومبر
کچھ دن بعد، 21 نومبر کو، Trustwallet ٹیم عوامی طور پر عزم Github پر نئے ناقص بیجوں کی تخلیق سے گریز کرنے والے فکس۔ ہم کافی پریشان تھے کہ کوئی اسے محسوس کرے گا اور اس کمزوری کا فائدہ اٹھائے گا۔
ایکس این ایم ایکس ، نومبر
ٹرسٹ والٹ ٹیم نے اپنے صارفین کو خبردار کرنے کے لیے ایپ کو اپ ڈیٹ کیا، انہیں نئے ناقص بیج پیدا کرنے سے روکا اور موصول ہونے والے بہاؤ کو ہٹا دیا۔
وہاں سے، ہم نے صورت حال اور خطرے میں فنڈز کی نگرانی کی۔ اس کمزور بٹوے کے اجراء کے چند ہی دنوں بعد، تقریباً 30 ملین ڈالر خطرے میں تھے۔
ایکس این ایم ایکس ایکس ، مارچ۔
Trustwallet ٹیم نے ہمیں سب سے زیادہ انعام دیا جو وہ پیش کرتے ہیں: $100k
2023، اپریل 22
صارفین کے اپنے فنڈز منتقل کرنے کے مہینوں انتظار کے بعد، ٹرسٹ والٹ ٹیم نے اس خطرے کا انکشاف کیا اور لکھا پوسٹمارٹم. ابھی تک، باقی فنڈز کے ساتھ بٹوے اب بھی ہیں جو چوری کیے جا سکتے ہیں ($100k)۔ ٹرسٹ والیٹ نے چوری شدہ رقوم کی واپسی کا وعدہ کیا۔
نتیجہ
یہ کمزوری ایک کرپٹو بگ - ہمیشہ کے لیے سمجھوتہ کیے گئے اکاؤنٹس کی بدترین صورت حال کو واضح کرتی ہے۔
اچھی بے ترتیب پن پیدا کرنا ایک مشکل کام ہے - لیجر ڈیوائسز ہماری تصدیق شدہ سمارٹ کارڈ چپس میں مخصوص سلیکون منطق پر انحصار کرتی ہیں جو کہ پچھلے 40 سالوں سے محفوظ صنعتوں کا سنہری معیار رہا ہے تاکہ اعلیٰ معیار کی بے ترتیب پن اور چھیڑ چھاڑ کی مزاحمت کی ضمانت دی جاسکے۔
ان اکاؤنٹس کے مالکان سے رابطہ کرنے کی پیچیدگی اور ان سمجھوتہ شدہ اکاؤنٹس کو ہر قسم کے مختلف سافٹ ویئر اور ہارڈویئر والیٹس پر استعمال کرنے کے امکان کو دیکھتے ہوئے، TrustWallet نے اپنے صارفین کے لیے خطرے کو کم کرنے کے لیے ایک اچھا کام کیا۔
(بہت) (قریب) مستقبل میں اس بات کا امکان ہے کہ بوٹس ان پتوں پر جمع کیے گئے فنڈز چوری کرنے والے پہلے لڑیں گے، جیسا کہ ماضی میں دماغ کے بٹوے کے ساتھ کیا ہوا.
دنیا کو بچانے کے لیے Jean-Baptiste Bédrune کا خصوصی شکریہ۔ ٹرسٹ والیٹ ایکسٹینشن کے اجراء کے چند ہی دن بعد، تقریباً 30 ملین ڈالر خطرے میں تھے۔ اگر ایک حملہ آور کو چند مہینوں کے بعد کمزوری کا پتہ چل جاتا تو ایک ڈراؤنا خواب ہو سکتا تھا۔
اپنی تحقیقات کے دوران، ہم نے یہ بھی دیکھا کہ کچھ پتے کمزور تھے جب کہ وہ ٹرسٹ والیٹ کی ریلیز سے کافی عرصہ پہلے تیار کیے گئے تھے۔ اس کا شاید مطلب یہ ہے کہ یہ کمزوری والیٹ کے کچھ دوسرے نفاذ میں موجود ہے جس سے متعلق ہے…
- SEO سے چلنے والا مواد اور PR کی تقسیم۔ آج ہی بڑھا دیں۔
- پلیٹوآئ اسٹریم۔ ویب 3 ڈیٹا انٹیلی جنس۔ علم میں اضافہ۔ یہاں تک رسائی حاصل کریں۔
- ایڈریین ایشلے کے ساتھ مستقبل کا نقشہ بنانا۔ یہاں تک رسائی حاصل کریں۔
- PREIPO® کے ساتھ PRE-IPO کمپنیوں میں حصص خریدیں اور بیچیں۔ یہاں تک رسائی حاصل کریں۔
- ماخذ: https://www.ledger.com/blog/funds-of-every-wallet-created-with-the-trust-wallet-browser-extension-could-have-been-stolen
- : ہے
- : ہے
- : نہیں
- $UP
- 1
- 12
- 13
- 14
- 15٪
- 2022
- 23
- 24
- 30
- 39
- 40
- 49
- 8
- a
- قابلیت
- اوپر
- تک رسائی حاصل
- کے مطابق
- اکاؤنٹ
- اکاؤنٹس
- حاصل
- اصل میں
- شامل کیا
- اس کے علاوہ
- پتہ
- پتے
- کے بعد
- پھر
- تمام
- کی اجازت
- اجازت دے رہا ہے
- کی اجازت دیتا ہے
- پہلے ہی
- بھی
- an
- اور
- لوڈ، اتارنا Android
- کا اعلان کیا ہے
- اعلان
- ایک اور
- کوئی بھی
- اپلی کیشن
- ایپلی کیشنز
- ایپلی کیشنز (DApps)
- ایپس
- اپریل
- کیا
- ارد گرد
- مضمون
- AS
- اثاثے
- منسلک
- At
- حملہ
- مصنف
- دستیاب
- AVAX۔
- سے اجتناب
- سے بچا
- گریز
- بیک اپ
- برا
- متوازن
- توازن
- کی بنیاد پر
- مبادیات
- BE
- رہا
- اس سے پہلے
- کیا جا رہا ہے
- نیچے
- بہتر
- کے درمیان
- بگ
- سب سے بڑا
- ارب
- بائنس
- بائننس اسمارٹ چین
- بیپ
- بلاک
- blockchain
- بلاکس
- بلاکس
- bnb
- خودکار صارف دکھا ئیں
- فضل
- دماغ
- برانڈڈ
- توڑ
- براؤزر
- براؤزر
- جسمانی طاقت
- بی ایس ایس
- بفر
- بگ کی اطلاع دیں
- لیکن
- by
- فون
- کالز
- کر سکتے ہیں
- امیدوار
- نہیں کر سکتے ہیں
- کیس
- مصدقہ
- چین
- زنجیروں
- سستے
- چیک کریں
- بچے
- چپس
- کروم
- واضح طور پر
- کوڈ
- کامن
- مسٹر
- پیچیدگی
- سمجھوتہ کیا
- حساب
- گنتی
- کمپیوٹنگ
- کمپیوٹر
- کمپیوٹنگ
- کی توثیق
- نتائج
- پر غور
- پر مشتمل ہے
- معاہدے
- تبادلوں سے
- تبدیل
- تبدیل
- کور
- درست
- اسی کے مطابق
- قیمت
- سکتا ہے
- جوڑے
- کورس
- CPU
- تخلیق
- بنائی
- پیدا
- اہم
- کراس پلیٹ فارم
- کرپٹو
- کرپٹو ماحولیاتی نظام
- کرپٹو پرس
- cryptocurrency
- cryptographic
- کرپٹپٹ
- اپنی مرضی کے
- DApps
- اعداد و شمار
- ڈیٹا بیس
- دن
- دن
- مہذب
- وکندریقرت ایپلی کیشنز
- وقف
- کی وضاحت
- مظاہرہ
- جمع
- اخذ کردہ
- بیان کیا
- کے باوجود
- تفصیل
- تفصیلی
- تفصیلات
- پتہ چلا
- ترقی یافتہ
- آلہ
- کے الات
- DID
- فرق
- مختلف
- مشکل
- مشکلات
- ڈیجیٹل
- ڈیجیٹل اثاثے۔
- براہ راست
- حوصلہ شکنی
- دریافت
- تقسیم
- do
- ٹائم ٹائم
- درجن سے
- نالی
- نقل
- کے دوران
- ہر ایک
- آسان
- آسانی سے
- آسان
- ماحول
- ایمبیڈڈ
- انگریزی
- کافی
- کو یقینی بنانے کے
- اندراج
- ماحول
- ERC-20
- تخمینہ
- ETH
- ethereum
- ایتیروم بلاچین
- بھی
- ہر کوئی
- مثال کے طور پر
- خاص طور سے
- موجودہ
- موجود ہے
- مہنگی
- وضاحت
- وضاحت کی
- دھماکہ
- مدت ملازمت میں توسیع
- نکالنے
- ناکام رہتا ہے
- واقف
- فاسٹ
- پسندیدہ
- نمایاں کریں
- چند
- لڑنا
- فائل
- بھرے
- فائنل
- مالی
- مالی آزادی
- آخر
- پہلا
- درست کریں
- ناقص
- بہنا
- کے بعد
- کے لئے
- مجبور
- ہمیشہ کے لیے
- خوش قسمتی سے
- ملا
- آزادی
- سے
- تقریب
- فعالیت
- افعال
- فنڈز
- مستقبل
- گیٹ وے
- جمع
- عام طور پر
- پیدا
- پیدا
- پیدا کرنے والے
- نسل
- جنریٹر
- حاصل
- GitHub کے
- گولڈ
- گولڈ سٹینڈرڈ
- اچھا
- GPUs
- عطا کی
- اس بات کی ضمانت
- ہیک
- تھا
- ہینڈل
- ہوا
- ہارڈ
- ہارڈ ویئر
- ہارڈ ویئر والیٹ
- ہیش
- ہے
- لہذا
- یہاں
- درجہ بندی
- ہائی
- سب سے زیادہ
- HOURS
- کس طرح
- تاہم
- HTTPS
- سو
- i
- خیال
- ایک جیسے
- if
- وضاحت کرتا ہے
- فوری طور پر
- اثر
- نفاذ
- عملدرآمد
- عمل
- اہم
- ناممکن
- in
- ناقابل یقین حد تک
- صنعتوں
- انفینٹی
- معلومات
- ابتدائی
- ان پٹ
- متاثر
- مثال کے طور پر
- بات چیت
- انٹرفیسز
- چوراہا
- میں
- تحقیقات
- iOS
- IT
- تکرار
- تکرار
- میں
- ایوب
- صرف
- رکھیں
- کلیدی
- چابیاں
- جان
- جاننا
- آخری
- بعد
- تازہ ترین
- لیڈز
- لیجر
- چھوڑ دیا
- کم
- لیتا ہے
- لائبریری
- کی طرح
- امکان
- LIMIT
- لینکس
- لسٹ
- مقامی طور پر
- منطق
- لانگ
- طویل وقت
- طویل انتظار
- تلاش
- بنا
- بنا
- بناتا ہے
- بہت سے
- تعریفیں
- ماسٹر
- میچ
- مواد
- Matic میں
- زیادہ سے زیادہ چوڑائی
- مئی..
- کا مطلب ہے کہ
- میمپول
- میٹا ماسک
- طریقہ
- منتقلی
- دس لاکھ
- لاکھوں
- منٹ
- منٹ
- میمونکس
- ماڈیول
- ماڈیولز
- کی نگرانی
- نگرانی کی
- ماہ
- زیادہ
- اس کے علاوہ
- سب سے زیادہ
- بہت
- ملٹی چین
- ضروری
- my
- قریب
- ضروری
- ضرورت ہے
- ضروریات
- کبھی نہیں
- نئی
- اگلے
- نہیں
- نوڈ
- Node.js
- نوڈس
- عام
- خاص طور پر
- نوٹس..
- نومبر
- اب
- تعداد
- تعداد
- NVIDIA
- حاصل
- ہوا
- of
- پیش کرتے ہیں
- کی پیشکش کی
- on
- ایک
- صرف
- کام
- آپریٹنگ سسٹم
- or
- دیگر
- ہمارے
- پیداوار
- پر
- مجموعی طور پر
- مالکان
- جوڑے
- متوازی
- پیرامیٹرز
- حصہ
- گزشتہ
- راستہ
- انجام دینے کے
- پلیٹ فارم
- پلاٹا
- افلاطون ڈیٹا انٹیلی جنس
- پلیٹو ڈیٹا
- مہربانی کرکے
- پوائنٹ
- امکان
- ممکن
- پوسٹ
- طاقتور
- pr
- پریکٹس
- ٹھیک ہے
- حال (-)
- خوبصورت
- کی روک تھام
- پہلے
- اصولوں پر
- نجی
- ذاتی کلید
- نجی چابیاں
- شاید
- مسئلہ
- عمل
- مصنوعات
- منصوبے
- وعدہ
- خصوصیات
- حفاظت
- فراہم
- فراہم
- عوامی
- عوامی کلید
- مقاصد
- ازگر
- معیار
- جلدی سے
- بے ترتیب
- بے ترتیب پن
- شرح
- تک پہنچنے
- اصلی
- اصل وقت
- وصول
- وصول کرنا
- حال ہی میں
- کو کم کرنے
- جہاں تک
- متعلقہ
- جاری
- انحصار کرو
- باقی
- ہٹا دیا گیا
- اطلاع دی
- درخواست
- کی ضرورت
- کی ضرورت ہے
- مزاحمت
- نتیجہ
- نتیجے
- واپسی
- رسک
- رن
- چل رہا ہے
- محفوظ
- اسی
- محفوظ کریں
- بچت
- منظر نامے
- سکیم
- سائنسدانوں
- تلاش کریں
- محفوظ بنانے
- سیکورٹی
- دیکھنا
- بیج
- بیج
- لگتا ہے
- بھیجنے والا
- بھیجا
- تسلسل
- کئی
- اشتراک
- مختصر
- ہونا چاہئے
- سلیکن
- اسی طرح
- سادہ
- بعد
- ایک
- صورتحال
- سائز
- سست
- چھوٹے
- ہوشیار
- اسمارٹ چین
- So
- سافٹ ویئر کی
- سورج
- کچھ
- کسی
- اسی طرح
- ماخذ
- خلا
- بات
- خصوصی
- مخصوص
- تیزی
- تقسیم
- اسٹیج
- معیار
- معیار
- شروع کریں
- مرحلہ
- مراحل
- ابھی تک
- چوری
- چوری شدہ فنڈز
- ذخیرہ
- ذخیرہ
- طاقت
- مضبوط
- اس طرح
- امدادی
- سمجھا
- سوئچ کریں
- کے نظام
- ٹیبل
- ٹیکل
- لے لو
- لیتا ہے
- ہدف
- اہداف
- ٹاسک
- ٹیم
- ٹیسٹ
- ٹیسٹنگ
- ٹیسٹ
- سے
- شکریہ
- کہ
- ۔
- مبادیات
- دنیا
- ان
- ان
- تو
- وہاں.
- یہ
- وہ
- اس
- ان
- ہزاروں
- تین
- کے ذریعے
- وقت
- اوقات
- کرنے کے لئے
- آج
- ٹوکن
- لیا
- کے آلے
- موضوع
- کل
- معاملات
- تبدیل
- تبدیلی
- ٹیزر
- بھروسہ رکھو
- ٹرسٹ والٹ
- کوشش
- دو
- ٹی ڈبلیو ٹی
- ہر جگہ موجود
- منفرد
- منفرد پتے
- اپ ڈیٹ
- us
- استعمال کی شرائط
- استعمال کیا جاتا ہے
- رکن کا
- صارف کے فنڈز
- صارفین
- کا استعمال کرتے ہوئے
- عام طور پر
- قیمت
- ورژن
- بہت
- خطرے کا سامنا
- قابل اطلاق
- انتظار کر رہا ہے
- بٹوے
- بٹوے
- تھا
- راستہ..
- we
- Web3
- مہینے
- تھے
- جب
- جس
- جبکہ
- پوری
- کس کی
- بڑے پیمانے پر
- گے
- ساتھ
- بغیر
- لفظ
- الفاظ
- دنیا
- فکر مند
- بدترین
- گا
- لکھا
- سال
- آپ
- اور
- زیفیرنیٹ