117 / 736ECL

Eclipse Attack

العقدة متصلة لكن المهاجم يحجب عنها بقية الشبكة

الإنترنت يعمل والاتصالات مفتوحة، ومع ذلك لا ترى العقدة ما يجري فعلا في Bitcoin. في Eclipse Attack يسيطر الخصم على مساراتها إلى الآخرين ويختار الرسائل التي تصل إليها.

تعزل Eclipse Attack العقدة عمدا عن النظراء الصادقين مع إبقاء اتصالها بالمهاجم. Full Node برنامج يتحقق بنفسه من قواعد Bitcoin. يستمر في هذا التحقق، لكنه قد لا يتلقى إلا صورة ناقصة أو قديمة عن الشبكة. لا يجعل الهجوم البيانات غير الصالحة صالحة؛ بل يستغل ما تعجز العقدة عن رؤيته.

تستقبل آنا دفعة بيتكوين وتتابع عقدتها الخاصة، أي جهاز كمبيوتر يشغّل برنامجا يشارك في شبكة Bitcoin. تظهر اتصالات نشطة، لكن خصما يسيطر على جميع المسارات المهمة إلى الخارج. تصل رسائل، ولكن فقط تلك التي يسمح لها برؤيتها. هذا جوهر Eclipse Attack. لا يكفي عادة اتصال خبيث واحد: فقد يجلب مسار يعمل إلى عقدة صادقة الكتل المحجوبة ويخل بسيطرة المهاجم. تجمع الكتلة معاملات في دفعة تُضاف إلى السجل المشترك. [1] [6]

وصف Ethan Heilman وAlison Kendler وAviv Zohar وSharon Goldberg عام 2015 هجمات على شبكة Bitcoin آنذاك. درسوا كيفية ملء جداول عناوين العقدة بعناوين يسيطر عليها المهاجم، كي تتصل عند إعادة الاتصال بأجهزته وحدها. استغلوا طريقة اختيار الاتصالات، من دون كسر الأساليب الرياضية التي تحمي التواقيع الرقمية وغيرها. واقترح البحث دفاعات أيضا؛ لكن نتائجه التاريخية لا تقيس نجاح الهجوم على إصدار Bitcoin Core الحالي. [1] [7]

بعد تحقيق العزل، يستطيع المهاجم اختيار الكتل والمعاملات التي يمررها إلى آنا وتلك التي يحجبها. ويمكنه منع انتشار معاملاتها هي أو مراقبة مصدرها. لا تتطلب السيطرة على الاتصالات وحدها أغلبية قدرة التعدين. لكن ذلك لا يعني أن كل هجوم لاحق يصبح بلا تكلفة إضافية: إنشاء كتل جديدة، مثلا، يحتاج إلى عمل حقيقي. [1] [6]

تواصل Full Node الخاصة بآنا فحص التواقيع وشروط الإنفاق ومكافأة المعدّن المسموحة. التوقيع هنا يعني استخدام مفتاح خاص، وهو قيمة عددية سرية، لإنشاء دليل قابل للتحقق على الإذن بالدفع. يستطيع الآخرون فحص التوقيع دون معرفة تلك القيمة السرية. لن تقبل عقدة آنا معاملة خاطئة لمجرد أن المصدر الوحيد المتاح أرسلها. لكن التحقق لا يكشف كتلة صالحة لم تصل أصلا. يمكنك بالمثل التأكد من أصالة رسالة ورقية وصلتك، من دون أن تعرف أن أحدا حجز كل الرسائل الأحدث. صلاحية المعلومات المتاحة واكتمالها مسألتان مختلفتان. [5] [9]

قد تبقى العقدة عند آخر كتلة تعرفها بينما تتابع العقد الأخرى. وقد يواصل معدّن معزول العمل على فرع تخلت عنه الشبكة ويخسر المكافأة المتوقعة. لكن انتظار كتلة طويلا لا يثبت هجوما بمفرده: التعدين عشوائي وقد يسبب عطل عادي المشكلة أيضا. المهم اجتماع عدة مؤشرات، لا مجرد بطء تحديث الشاشة. [1] [5] [8]

قد يعرض المهاجم على آنا فرعا خاصا صالحا يتضمن دفعتها، بينما ينفق الأموال نفسها بطريقة أخرى في الشبكة الأوسع. بعد استعادة الاتصال، قد تنتقل العقدة إلى فرع صالح ذي عمل متراكم أكبر؛ وهذا Reorg، أي استبدال جزء من السجل المقبول. وقد تفقد الدفعة في الفرع المتروك تأكيدها. لكن على المهاجم توفير Proof of Work لكتله. وهو نتيجة قابلة للتحقق لعملية بحث تتطلب حسابات مكلفة، وتحتاج هذه الكتل إليها أيضا. وقد يأتي العمل اللازم كذلك من معدّنين عزلهم المهاجم. لا يخدع رقم تأكيدات مختلق Full Node؛ فالنجاح يعتمد أيضا على مدة العزل وموارد الخصم. [1] [5] [6]

تحاول الدفاعات منع انتهاء جميع الاتصالات لدى الخصم نفسه. يجمع Bitcoin Core العناوين المعروفة في مجموعات ويدعم تنوع الشبكات عند اختيار الاتصالات الصادرة. عنوان IP يحدد موقعا في الشبكة يتصل به البرنامج. لكن عناوين IP المختلفة قد يملكها مشغّل واحد أو تمر عبر البنية التحتية نفسها. تقلل هذه الإجراءات التركز وتصعّب الهجوم، ولا تثبت استقلال كل نظير. [3] [4]

يستخدم Bitcoin Core اتصالات قصيرة تسمى feeler لفحص إمكانية الوصول إلى عنوان آخر. أما اتصالات ترحيل الكتل الإضافية فلها دور مختلف: يمكنها جلب رؤوس كتل جديدة، أي سجلات تقنية موجزة للكتل، ومنظور آخر لاستمرار السلسلة. لذلك ليس دقيقا القول إن كل feeler ينزّل السجل الحديث فورا. يوضح الكود المشار إليه من Bitcoin Core 29.0 هذه الدفاعات المختلفة؛ ولا يضمن أي منها وحده انتهاء العزل. [4] [8]

قد يوفر نظير معروف تضيفه يدويا مسارا آخر، إن كان متاحا ومرتبطا فعلا ببقية الشبكة. لكن عدة اتصالات تمر عبر مزود واحد قد لا تكون مستقلة. من الأنسب استخدام برنامج لا يزال مدعوما وفهم إعدادات الاتصال، بدلا من نسخ قوائم عناوين الآخرين بلا تدقيق. يبقى تحققك الذاتي قائما: الثقة في إتاحة المصدر لا تمنحه إذنا بإرسال كتل غير صالحة. [2] [4] [6]

تعني Sybil Attack أن خصما واحدا يعمل بهويات كثيرة، وقد يساعد ذلك في Eclipse Attack. ويصف Eclipse نجاح عزل عقدة معينة أو مجموعة مختارة عن المصادر الصادقة. أما الانقسام الأوسع فيفصل أجزاء كاملة من الشبكة ولا يلزم أن ينشأ بهذه الطريقة. ما يهم المستخدم هو أن Full Node تتيح التحقق المستقل، لكنها تحتاج أيضا إلى معلومات خارج سيطرة المهاجم. [1] [6]

للحصول على صورة أوضح، اقرأ هذا المدخل مع Sybil Attack, Block Propagation, Compact Blocks, Nakamoto Consensus, Bitcoin, Full Node. تشير إلى هذا المدخل أيضًا الإنفاق المزدوج, Byzantine Generals Problem, Nakamoto Consensus, Sybil Attack.

DOC · 001Heilman et al. — Eclipse Attacks on Bitcoinمصدر أولي DOC · 002Bitcoin Developer Guide — P2P Networkتوثيق DOC · 003Bitcoin Core v29.0 — addrmanتوثيق DOC · 004Bitcoin Core v29.0 — Peer connectionsتوثيق DOC · 005Bitcoin Developer Guide — Block Chainتوثيق DOC · 006Bitcoin Optech — Eclipse attacksتوثيق DOC · 007USENIX Security 2015 — Eclipse Attacks on Bitcoin’s Peer-to-Peer Networkمصدر أولي DOC · 008Bitcoin Core v29.0 — Message processingتوثيق DOC · 009Bitcoin Core v29.0 — Block validationتوثيق
تمت المراجعة: المصادر أولًا · ليست نصيحة استثمارية