أمان المعاملات أكثر أهمية من أي وقت مضى في الصناعة الناشئة المتسارعة النمو لـ crypto. نظرًا لزيادة استخدام البلوكشين، فإن عدد الطرق التي يمكن للمخترقين من خلالها استغلال الثغرات يزداد. إن هجوم إعادة التشغيل هو أحد المخاطر الخطيرة وغير المفهومة جيدًا.
ما هو هجوم التكرار؟
يحدث هجوم إعادة التشغيل عندما يعيد المهاجم إرسال معاملة مشروعة بهدف خداع النظام. لا يغير المهاجم التوقيع، بل يستخدمه في مكان آخر. قد يؤدي ذلك إلى تكرار نفس المعاملة، مما يشكل تهديدًا للمستخدم.
بما أن التوقيع يظل كما هو، فمن المحتمل أن تقبل سلسلة الكتل الرسالة الزائدة. في الحالات التي لا يتم فيها التحقق من سلسلة الكتل أو التطبيقات، يستغل المهاجم إعادة الإرسال. قد يكون هذا غير آمن بشكل خاص في التفرعات أو بين سلاسل الكتل هذه.
متى تحدث هجمات إعادة التشغيل؟
يمكن أن تحدث هجمات إعادة التشغيل بشكل متكرر عندما ينقسم البلوكشين أو عندما يكون هناك سلسلتان بنفس التنسيق. يمكن استخدام المعاملة الموقعة في كلا السلسلتين دون حماية كافية. وهذا يعني أنه يمكن إرسال الأموال على إحدى السلسلتين وفي نفس الوقت على الأخرى.
غياب الحدود الواضحة بين سلاسل الكتل في الأنظمة يوفر فرصة للمخترقين. كما يستهدفون التطبيقات التي لديها ضعف في التحقق من الرسائل. في كلا الحالتين، يسعى المهاجم لكسب المال من خلال تكرار أنشطة تبدو صالحة.
كان أحد الأمثلة على ذلك حالة إيثريوم وإيثريوم كلاسيك في عام 2016. حيث أعاد المهاجمون تنفيذ المعاملات على كلا الشبكتين بسبب غياب الحماية الأولية. ونتيجة لذلك، أهدر المستخدمون أموالًا دون قصد من خلال إجراء معاملات مرتين.
كيف تمنع المحافظ هجمات التكرار
تحتوي محافظ العملات المشفرة على أدوات أمان قوية تُطبّق قبل أي هجوم إعادة إرسال. أحد هذه الأدوات هو معرف السلسلة المرتبط بكل رسالة موقعة. وهذا يضمن أن التوقيع يمكنه المرور فقط عبر سلسلة واحدة وفشلها على سلاسل البلوكشين الأخرى.
الأداة المهمة الأخرى تُعرف باسم الـ nonce، وهي رقم يُزَاد في كل معاملة. ترفض المحفظة المعاملة في حال إعادة استخدام الـ nonce. وهذا سيضمن أن المخترقين لن يعيدوا إرسال نفس الرسالة أو الدفع.
تُستخدم حدود الوقت أيضًا في بعض المحافظ لتلقي الدفع. على سبيل المثال، يمكن أن يستمر الرسالة لمدة تصل إلى خمس دقائق. ثم تصبح التوقيع غير صالح، ولا يمكن إعادة الإرسال.
الدفاعات على مستوى العقد الذكي والتطبيق
على الرغم من أن المحافظ تعمل بشكل صحيح، يجب على العقود الذكية والتطبيقات أيضًا تأمين نفسها. تحتوي معظم العقود على رقم تسلسلي/مستخدم، وهو العداد التسلسلي لمنع تكرار الإجراءات. وهذا يسمح للعقد رفض أي توقيع شهده.
التطبيقات التي تساعد على التوقيع خارج السلسلة من المرجح أن تتبع معيار EIP-712. يتضمن هذا التنسيق معرف السلسلة واسم التطبيق والعقد. باستخدام هذا المعيار، تربط التطبيقات كل رسالة بالغرض المقصود منها وتحجب إعادة الإرسال.
وفقًا لـ QuillAudits، وهي شركة أمن سلسلة الكتل، لا ينبغي للتطبيقات تجاهل فصل النطاق في الموافقات خارج السلسلة. سيؤدي غياب السياق الصحيح إلى تمكين المهاجمين من استغلال التوافق المتبادل. وهذا يوضح لماذا تعتبر المراجعات الأمنية مهمة في تأمين أنظمة الويب 3.
المكونات الرئيسية
يعتمد حماية إعادة التشغيل على أدوات مميزة وصريحة لضمان السياق الصحيح. هذه الأدوات هي معرفات السلسلة، وقيم غير متكررة للحساب، ووقت الانتهاء. إن مزيجها يجعل من الصعب على المهاجمين تنفيذ هجوم إعادة التشغيل.
العناصر الأكثر أهمية هي:
- معرف السلسلة – تكون المعاملة صالحة في سلسلة كتل واحدة ومرفوضة من قبل سلاسل كتل أخرى.
- Nonce – هذا رقم يُستخدم للتأكد من أن الرسالة الموقعة لا تُستخدم أكثر من مرة.
- العلامة الزمنية أو الحدود الزمنية – سيضيف هذا نافذة زمنية يتم فيها رفض الرسالة المعاد تشغيلها بعد مرور الوقت.
- مُفصِّل النطاق – توصيل رسائل Tether خارج السلسلة إلى تطبيق معين وعقد وسلسلة عبر معايير EIP-712.
- تتبع رقم التكرار للعقد الذكي – يسمح للتطبيقات والعقود بحظر الرسائل المستخدمة أو المكررة على مستوى العقد.
مجموعة من هذه الأدوات تمنع معظم تهديدات إعادة التشغيل. جميع هذه التقنيات تُستخدم من قبل المحافظ والتطبيقات والبروتوكولات لحماية نفسها من تكرار الرسائل. النتيجة هي تجربة أكثر أمانًا للمطورين والمستخدمين.
لماذا تعتبر حماية إعادة التشغيل مهمة للمستخدمين
حماية إعادة التشغيل هي ما يجعل المستخدمين واثقين عند استخدام المحافظ والجسور والبورصات. في غيابها، لا يدرك المستخدمون أنهم خسروا أموالهم. تصبح الأنظمة أكثر أمانًا وموثوقية من خلال رفض إجراء معاملات متكررة أو مُستَغَلة.
تسمح المحافظ التي تعتمد على اسم السلسلة-ID-الاستجابة للمستخدمين بتجنب الأخطاء. عندما يُفهم المستخدمون بوضوح وجهة معاملاتهم، يصبحون قادرين على التحكم. كما أن هذا يقلل من الالتباس أثناء الانتقال بين السلاسل أو التطبيقات.
يُستخدم حماية إعادة التشغيل أيضًا لإجراء سحوبات وإيداعات آمنة من قبل البورصات ووكلاء الحفظ. فهي تُطور عادةً أدوات مخصصة تسمح فقط بالمعاملات على الشبكة المناسبة. وهذا يضمن أمان العملاء واستقرار العمليات في حال حدوث شقوق أو ترقيات.
الاستنتاج
تُعد هجمات التكرار تهديدًا لأمان البلوكشين من خلال استغلال التوقيعات المعاد استخدامها في سلسلة أو أكثر من السلاسل أو الأنظمة. ومع ذلك، فإن المحافظ تساهم بشكل كبير في منعها باستخدام معرف السلسلة وقيم nonces والقيود الزمنية. كما ينبغي للتطبيقات والعقود الذكية المساهمة في هذا الجهد ومراقبة استخدامها وتوقيعاتها.
يجب أن تتعاون الأنظمة وتكون على دراية ببعضها البعض، فهذا هو الطريق الوحيد لكونها أفضل حماية. يقلل المستخدمون من خطر التكرار من خلال استخدام محافظ موثوقة وdApps مُحققَة وعقود ذكية خاضعة للمراجعة. يتوسع مجال البلوكشين، ويجب زيادة الجهد لضمان سلامته.

