حول نموذج الأمان لمحافظ البرامج | موازنة

حول نموذج الأمان لمحافظ البرامج | موازنة

عقدة المصدر: 2671485

يمكننا التمييز بين نوعين شائعين من المحافظ: محافظ البرامج والأجهزة. إنهم يؤدون نفس الوظيفة ، ولكن بطريقة مختلفة. تعتبر محافظ البرامج أسهل في الاستخدام: يكفي برنامج واحد لإنشاء المعاملات والتحقق منها والتوقيع عليها. باستخدام محفظة البرامج ، ليس من الضروري إنشاء معاملة على البرنامج وتأكيدها على جهاز.

قبل اسبوعين، قصص ممنوعة كشف النقاب عن هجوم مستهدف ضد آلاف الأشخاص حول العالم. استغل هذا الهجوم الثغرات الأمنية على Android و iOS لتثبيت برامج التجسس التي طورتها NSO Group: Pegasus. هذه البرامج الضارة قادرة على مراقبة نشاط الجهاز بالكامل ، وتسلل المعلومات الشخصية: الرسائل القصيرة ، ومحادثات WhatsApp و Signal ، والمكالمات الهاتفية ، وما إلى ذلك. توضح هذه المقالة كيف ، في ظل هذه الظروف ، يمكن لمثل هذه البرامج الضارة استخراج جميع أسرار محافظ البرامج ، والاختلافات من وجهة نظر الأمان بين محافظ البرامج على الهواتف المحمولة وأجهزة الكمبيوتر المكتبية.

هذه المقالة لا تهدف إلى أن تكون تقنية للغاية. لإبقائها بسيطة نسبيًا ، ستتم مناقشة الميزات الأساسية فقط.

حماية الأسرار

ما الذي يتم تخزينه في محفظة العملات المشفرة؟

لا تقوم المحافظ في الواقع بتخزين العملات المشفرة للمستخدمين: فهي تخزن فقط الأسرار ، ولا سيما المفاتيح الخاصة ، التي تسمح بالوصول إلى العملات المشفرة والقدرة على إنفاقها. هذه المفاتيح الخاصة هي في الغالب مفاتيح خاصة ECC (تشفير منحنى بيضاوي) على منحنيات مختلفة اعتمادًا على blockchain. المنحنيات الأكثر شيوعًا هي secp256k1 (Bitcoin أو Ethereum ...) أو Ed25519 (Monero) أو BLS12-381 (Ethereum 2).

تُستخدم هذه المفاتيح لتوقيع المعاملات ، وبشكل عام للتفاعل مع أصول blockchain.

يعتمد تخزين هذه المفاتيح على نوع المحفظة: حتمية أم لا. تسمح المحفظة الهرمية الحتمية (HD) بإنشاء شجرة من المفاتيح من سر رئيسي واحد يسمى البذور (cf BIP44). غالبًا ما يتم اشتقاق هذه البذرة من تسلسل ذاكري مكون من 12 أو 18 أو 24 كلمة تم إنشاؤها عشوائيًا أو اختيارها من قبل المستخدم (راجع.BIP39). تسمح فن الإستذكار هذه بالحد من عدد المفاتيح المراد تخزينها: يمكن إعادة حسابها في أي وقت من البداية. تخزن محافظ HD فقط هذا ذاكري أو البذور.

تُنشئ المحافظ غير الحتمية مفتاحًا جديدًا لكل استخدام ويجب تخزينها جميعًا. لا يمكن ترحيل المحافظ غير المحددة بسهولة إلى محفظة أخرى لأن النسخ الاحتياطية غير متوافقة.

تتمثل ميزات الأمان الرئيسية للمحفظة في إنشاء هذه الأسرار وتخزينها واستخدامها بشكل صحيح. هناك مستويات مختلفة من الأمان ضد أنواع مختلفة من التهديدات:

  • الحماية من هجمات "الخادمة الشريرة": يجب ألا يتمكن المهاجم الذي يتمتع بوصول مؤقت إلى المحفظة من إضافة باب خلفي داخل المحفظة يسمح بسرقة رقم التعريف الشخصي أو كلمة المرور التي تحمي الأسرار.
  • مادة تشفير آمنة: يجب ألا تكون المفاتيح وغير الرسمية التي تم إنشاؤها بواسطة المحفظة متوقعة أبدًا. علاوة على ذلك ، فإن معرفة الأسرار (باستثناء البذرة) التي تم إنشاؤها في وقت ما لن تسمح بالتنبؤ بالسر الذي سيتم إنشاؤه في المستقبل.
  • الحماية عند الراحة: إذا حصل المهاجم على بيانات ثابتة لمحفظة برنامج ، فيجب ألا يتمكن من استخراج المفاتيح.
  • الحماية أثناء الاستخدام السري: عندما تكون المحفظة غير مقفلة ، يجب ألا يتمكن أي مهاجم أو برنامج ضار من الوصول إلى المفاتيح.
محافظ الأجهزة

يهدف نموذج الأمان الخاص بمحفظة الأجهزة إلى تجنب هذه التهديدات الأمنية. تحمي محافظ الأجهزة من البرامج الضارة حسب التصميم. إنها أجهزة مستقلة توقع المعاملات من تلقاء نفسها. تظل مواد التشفير دائمًا داخل الجهاز ولا يتم إرسالها مطلقًا إلى تطبيق البرنامج الذي يتصلون به. تكون واجهة الاتصال دائمًا بسيطة مما يقلل بشكل كبير من سطح الهجوم. يمكن أن تكون شاشة USB أو Micro SD أو كاميرا + (من خلال رمز الاستجابة السريعة) أو Bluetooth منخفضة الطاقة.

علاوة على ذلك ، تدمج محافظ الأجهزة شاشة مباشرة في الجهاز مما يسمح للمستخدم بالتحقق من الإجراءات التي هو على وشك القيام بها عندما يتفاعل مع مفاتيحه السرية. هذه الفحوصات اليدوية على الأجهزة هي إجراء مضاد فعال للغاية ضد البرامج الضارة على الكمبيوتر / الهاتف المحمول. حيث يمكن للبرامج الضارة الموجودة على جهاز كمبيوتر / جهاز محمول الوصول إلى الأسرار (المفاتيح الأولية أو الخاصة) أو حتى تبديل / تعديل العناوين أو المبالغ عند قيام المستخدم بإجراء معاملة ، فإن هذا غير ممكن باستخدام محفظة الأجهزة.

تم تصميم محافظ الأجهزة أيضًا للحماية من هجمات "الخادمة الشريرة" وضد المهاجم الذي يتمتع بإمكانية الوصول المادي. اعتمادًا على محفظة الأجهزة ، لديهم مستويات مختلفة من الأمان ، ولكن في جميع الحالات ، تم تصميمهم للحماية من هذه التهديدات. يمكن العثور على وصف تفصيلي لنماذج التهديد ليدجر نانو هنا.

محافظ البرمجيات

تحمي محافظ البرامج العادية الأسرار بوسائل منتظمة: آليات الأمان لنظام التشغيل الذي تعمل عليه ، وأحيانًا التحكم في الوصول استنادًا إلى رقم التعريف الشخصي أو كلمة المرور.

في ما يلي ، يتم اعتبار محافظ سطح المكتب (Windows ، و macOS ، و Linux) ومحافظ الهاتف المحمول. تعتمد الاختلافات الرئيسية بينهما في الغالب على آليات الأمان التي يوفرها نظام التشغيل.

محافظ البرمجيات على جهاز الكمبيوتر

تعمل العديد من المحافظ الشهيرة ، مثل Electrum أو Exodus أو Atomic أو Bitcoin core ، على أجهزة الكمبيوتر.

على جهاز الكمبيوتر ، تكون آليات الأمان التي يوفرها نظام التشغيل لعزل عملية المحفظة عن العمليات الأخرى محدودة. يتم تشغيل معظم التطبيقات بواسطة نفس المستخدم ، ويُسمح للتطبيقات بقراءة بيانات التطبيقات الأخرى.

يعتمد أمان محافظ البرامج هذه بشكل أساسي على أمان كلمة المرور التي تحميها ، وأيضًا على حقيقة عدم وجود برامج ضارة تعمل على نظام التشغيل (وهو أمر يصعب ضمانه ، راجع الأخبار الأخيرة المتعلقة بـ Pegasus).

في معظم الأحيان ، يتم تخزين البذور في حاوية مشفرة محمية بكلمة مرور ، ويتمثل الهجوم المباشر ، لبرامج ضارة أو أداة إدارة عن بُعد ، في استرداد هذه الحاوية المشفرة وإرسالها إلى المهاجم. ثم يمكن أن تكون كلمة المرور إما قسرية أو يتم الحصول عليها من خلال استخدام ملف كلوغر.

في السيناريو الذي يدير فيه المهاجم فقط الوصول إلى الحاوية المشفرة (يعثر المهاجم على مفتاح USB يحتوي على محفظة ، أو يثبّت برامج ضارة على جهاز كمبيوتر ، لكن الضحية لا تفتح تطبيق المحفظة أبدًا) ، يجب على المهاجم فرض كلمة المرور.

معظم كلمات المرور سيئة. تم تسريب المليارات من كلمات المرور على الويب ، ويميل الكثير من الأشخاص إلى إعادة استخدام كلمات المرور الخاصة بهم في العديد من الخدمات. تسمح لك الأدوات الجاهزة باسترداد كلمات المرور لمحافظ العملات المشفرة ، مثل com.btcrecover or hashcat. يمكن أن تكون كلمات المرور معقدة ، ولكن يوجد خلف كل محفظة أموال حقيقية ، وبالتالي لن يتردد المهاجمون في استثمار الموارد لكسر كلمات المرور هذه.

اثنان من مبادئ الأمان الأساسية للحفاظ على أمان كلمات المرور الخاصة بك هما استخدام مدير كلمات المرور ، وعدم إعادة استخدام كلمة مرورك مطلقًا لأغراض مختلفة.

يتمثل التهديد الأكثر إثارة للقلق بالنسبة لمحافظ البرامج في البرامج الضارة والسرقة المخصصة ، والتي تم تطويرها خصيصًا لاستنزاف أموالك. مثل هذه البرامج الضارة ، مثل KPOT أو اليكترورات، لا يتعين عليك حتى فرض كلمة المرور الخاصة بك بقوة: يمكنهم التقاطها مباشرة عند إدخالها ، وفك تشفير بيانات تكوين المحفظة ، واستخراج البذور.

إليك تطبيق لعبة ، تم تطويره لهذه المقالة ، يستهدف محفظة Electrum (على الرغم من أنه قد يكون محفظة برامج أخرى). إنه يحاكي برنامجًا ضارًا يسرق كلمة مرور المستخدم عندما يتم إدخالها من قبل الضحية. ثم يتم استخدام كلمة المرور لفك تشفير بيانات المحفظة ، ولعرض المصدر:

كما ترى ، حتى لو كانت كلمة المرور معقدة ، فإن التطبيق قادر على استعادتها لأنه يستنشقها مباشرة في الذاكرة.

هذا المثال مشابه جدًا للمثال الأخير البرمجيات الخبيثة الحملات المستخدمة لسرقة العملات المشفرة. استخدم المجرمون تقنيات الهندسة الاجتماعية لخداع المستخدمين لتنزيل شاشة توقف ضارة. كانت شاشة التوقف هذه تسرق المعلومات من ضحية الكمبيوتر ، بما في ذلك معلومات المحفظة وتبادل العملات المشفرة.

للاستنتاج حول محافظ البرامج التي تعمل على أجهزة الكمبيوتر:

  • في معظم الحالات ، تحمي محافظ البرامج التي تعمل على أجهزة الكمبيوتر بذرة المستخدم باستخدام كلمة مرور.
  • يعتمد التحكم في الوصول لملفات المحفظة هذه بشكل أساسي على أمان الكمبيوتر. من الناحية العملية ، من الصعب حماية أجهزة الكمبيوتر من البرامج الضارة ، ومع انتشار العملات المشفرة ، ستصبح الهجمات ضد المحافظ أكثر تعقيدًا.
  • لا يعد استخدام محافظ البرامج هذه لتأمين الأصول الرقمية فكرة جيدة. ستتمكن أي برامج ضارة متخصصة من الحصول على ملفات المحفظة والعثور على كلمات المرور في وضع عدم الاتصال ، أو الحصول على كلمة المرور من خلال برنامج keylogger.
محافظ البرمجيات على الهاتف الذكي

توفر الهواتف الذكية التي تعمل بنظام Android و iOS ميزات أمان افتراضية لا تُستخدم على نطاق واسع في أنظمة تشغيل سطح المكتب.

توفر أنظمة تشغيل الأجهزة المحمولة حماية بيانات المستخدم والتطبيق. على وجه الخصوص ، تعد وضع الحماية للتطبيق إلزامية لجميع التطبيقات. ليس هذا هو الحال ، على سبيل المثال ، Windows: افتراضيًا ، يمكن لأي تطبيق الوصول إلى بيانات المستخدم.

ومن ثم ، لا يمكن لتطبيق ضار قراءة البيانات من تطبيق آخر ، إلا إذا:

  • يجد ثغرة في هذا التطبيق.
  • أو أنها تمكنت من تصعيد الامتيازات ، على سبيل المثال من خلال استغلال ثغرة kernel مما يسمح لها بالوصول إلى الجذر للنظام.

لسوء الحظ ، مثل هذه الهجمات موجودة. إنها أسهل بكثير على الإصدارات القديمة من Android و iOS ، وعلى الأجهزة القديمة أو الرخيصة حيث غالبًا ما يكون كود الطرف الثالث أقل أمانًا.

في نظام تشغيل محدث ، تكون هذه الهجمات أصعب ولكنها ليست غير مجدية عن بُعد. على سبيل المثال ، أظهر إيان بير أن هجوم مذهل للغاية بدون نقرة على iOS 13.5 في ديسمبر 2020. قدم Guang Gong ملف سلسلة استغلال لجذر مجموعة واسعة من أجهزة Android التي تعمل بنظام Qualcomm عن بُعد في يونيو 2020. وقبل أسبوعين ، قصص ممنوعة كشف النقاب عن أن NSO Group استخدمت سلسلة استغلال لاستهداف أجهزة iOS و Android الحديثة باستخدام ثغرات 0 يوم.

يمكن للمهاجمين الأقل تعقيدًا استخدام الثغرات الأمنية المحلية مما يسمح لهم باستخراج بيانات المحفظة من تطبيق ضار. وسطاء الضعف مثل Zerodium pay بمبلغ يصل إلى 200,000 لتصعيد الامتياز إلى الجذر على Android و iOS ، ولكن ما يصل إلى 1,500,000 دولار للهجمات عن بُعد.

درسنا بضع محافظ Android / iOS. يعتمد أمانهم على التطبيق نفسه ، ولكن أيضًا على ميزات الأمان لنظام التشغيل الأساسي. بالطبع ، عند هزيمة أمان نظام التشغيل ، يصبح التطبيق غير آمن بعد الآن

يتم استخدام طريقتين لحماية البذور بشكل شائع:

  • حماية كلمة السر - بيانات المحفظة محمية بكلمة مرور يدخلها المستخدم. التصميم هو نفسه بالنسبة لمحافظ سطح المكتب. من الناحية العملية ، يصعب استخراج البيانات أكثر من استخلاصها من جهاز كمبيوتر ، لأن استرداد بيانات التطبيق من تطبيق ضار أكثر صعوبة من الناحية الفنية ، للأسباب الموضحة أعلاه. ومع ذلك ، فإن استرداد كلمة المرور بمجرد سرقة البيانات أسهل من الناحية العملية: إدخال كلمات مرور معقدة على الهواتف المحمولة أمر شاق ، وبالتالي يميل المستخدمون إلى اختيار كلمات مرور أبسط. علاوة على ذلك ، عادةً ما تكون آليات اشتقاق المفاتيح (المستخدمة لإنشاء مفتاح من كلمة مرور) على الأجهزة المحمولة أسهل في التعطيل ، نظرًا لأنها غالبًا ما تكون خفيفة الوزن لأسباب تتعلق بالأداء.
  • Coinomi و Metamask هي أمثلة على هذه المحافظ.

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

هذه الطريقة ليست خاصة بالمحفظة. يمكن تكييفها (أكثر أو أقل) بسهولة مع أي محفظة محمية بكلمة مرور. هذا هو نفس المثال مع Coinbase Wallet:

[المحتوى جزءا لا يتجزأ]

  • يعتمد الأمان على Android Keystore (أو iOS Keychain) - في هذه الحالة ، يتم تشفير بيانات المحفظة بمفتاح تشفير مخزن في Android Keystore (iOS Keychain). تم تصميم هذه الخدمات في البداية لتخزين مفاتيح التشفير بأمان ، وتستخدمها العديد من التطبيقات لإنشاء مفتاح يقوم بتشفير جميع بيانات المستخدم الحساسة ، وتنفذ التطبيقات التي تستخدم Keystore الآلية التالية:
    • يطلب التطبيق من Keystore إنشاء مفتاح تشفير لمعرف معين. يقوم Keystore بإنشاء المفتاح وتخزينه بشكل آمن.
    • عندما يريد التطبيق تشفير أو فك تشفير blob ، فإنه يرسل blob مع معرف المفتاح إلى Keystore.
    • أخيرًا ، يتحقق keystore مما إذا كان التطبيق لديه حقًا حقوق استخدام هذا المفتاح ويرسل بيانات الإخراج إلى التطبيق.

باستخدام هذا النموذج ، لا يمكن للتطبيق معرفة قيمة المفتاح ولكن يمكنه استخدامه. من الممكن أيضًا ربط عناصر تحكم وصول إضافية بالمفتاح: على سبيل المثال ، يمكن أن يكون الوصول إلى المفتاح مشروطًا بمصادقة المستخدم (طلب رمز PIN أو نمط إلغاء القفل).

يمكن أن توفر هذه الآلية أمانًا إضافيًا ، مقارنة بالحماية القائمة على كلمة المرور. في الواقع ، في الهواتف الحديثة ، يكون Keystore مدعومًا ببيئة تنفيذ موثوقة (TEE) ، أو أحيانًا عنصر آمن.

هذا يعني أن المهاجم الذي يتمتع بامتيازات الجذر لن يتمكن من استخراج مفاتيح التشفير من مخزن المفاتيح. ومع ذلك ، سيكونون قادرين على استخدام Keystore كأداة فك تشفير أوراكل ، وتشفير أو فك تشفير أي بيانات يريدون.

يقدم Keystore التشفير ، ولكن أيضًا خدمات التوقيع. لذا ، هل يمكن أن تحمي المحفظة مفاتيح التشفير الخاصة بها ، مما يجعل استخراجها صعبًا؟ الجواب للأسف لا: لا تستخدم محافظ البرامج Keystore لتوقيع المعاملاتو يتم دائمًا التلاعب بالمفاتيح الخاصة في نص عادي بواسطة التطبيق.

هذا لسبب بسيط: KeyStore و KeyChain يقدمان خدمات توقيع وتشفير عامة ، لكنهما لا يدعمان التشفير المستخدم في العملات المشفرة. على سبيل المثال ، يقوم KeyStore بتنفيذ توقيع ECDSA ولكن فقط على منحنيات NIST المحددة في FIPS 186-4 (P-224 و P-256 و P-384 و P-521). يستخدم Bitcoin منحنى آخر ، ثانية 256 k1، وهو غير مدعوم حتى الآن.

للتلخيص ، يعد Keystore و Keychain خدمتين جيدتين للحماية مفاتيح سرية وخاصة. يمكنهم تقديم بعض الأمان عن طريق تشفير البيانات الحساسة: سيتم معالجة بعض فئات الثغرات الأمنية (قراءة ملف تعسفي ، على سبيل المثال) بواسطة تشفير Keystore. ومع ذلك ، إذا لم يكن تصعيد امتياز الجذر كافيًا لاستخراج القيم الأساسية من Keystore المدعوم بالأجهزة ، فإنه يكفي لفك تشفير البيانات الحساسة. يستطيع المهاجم القادر على استخدام أداة التطبيق استعادة أسراره.

للإبرام على محافظ الهاتف المحمول:

  • تعمل آلية العزل بين التطبيقات التي يوفرها iOS / Android على رفع مستوى الأمان مقارنة بمحفظة البرامج التي تعمل على الكمبيوتر. يحتاج المهاجم أولاً إلى تصعيد الامتياز للوصول إلى بيانات التطبيق. هذا ممكن على الأجهزة التي عفا عليها الزمن. يمكن للمهاجمين المهرة (Ian Beer فعل ذلك في 6 أشهر فقط ولكن ... إنه Ian Beer) يمكنهم أيضًا القيام بذلك على الأجهزة الحديثة المصححة.
  • يمكن أن تضيف خدمات حماية المفاتيح (KeyStore و KeyChain) طبقة إضافية من الأمان لحماية الأسرار أثناء الراحة. ومع ذلك ، نظرًا لأنها لا تدعم خوارزميات التشفير لتطبيقات العملات المشفرة ، فلا يزال من الممكن استخراج المفتاح.
  • في جميع الحالات ، يمكن للمهاجم الذي لديه حق الوصول إلى الجذر إما استرداد البذرة في حالة الراحة ، عند استخدامها ، أو الاستفادة من حقوق المستخدم لإفراغ المحفظة باستخدام محفظة البرنامج كمنصة أوراكل.

فيما يلي مثال أخير على برنامج تجسس لعبة يستهدف محفظة Blockchain.com (على الرغم من أنه يمكن إجراء ذلك على العديد من المحافظ الأخرى بنفس السهولة). يتم تثبيته عن بعد ويراقب المحفظة. بمجرد المصادقة على المستخدم باستخدام بصمة إصبعه ، يتم إلغاء قفل مفتاح التشفير وفك تشفير بيانات المحفظة. أدوات التجسس التطبيق لاسترداد مفتاح التشفير هذا. ثم يقوم بسحب بيانات المفتاح والمحفظة إلى خادم بعيد:

[المحتوى جزءا لا يتجزأ]

وفي الختام

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

  • تعمل آلية العزل بين التطبيقات التي يوفرها iOS / Android على رفع مستوى الأمان مقارنة بمحفظة البرامج التي تعمل على الكمبيوتر. يحتاج المهاجم أولاً إلى تصعيد الامتياز للوصول إلى بيانات التطبيق.
  • يمكن أن تضيف خدمات حماية المفاتيح (KeyStore و KeyChain) طبقة إضافية من الأمان لحماية الأسرار أثناء الراحة. ومع ذلك ، نظرًا لأنها لا تدعم خوارزميات التشفير لتطبيقات العملة المشفرة ، يجب معالجة المفاتيح مباشرةً من التطبيق ، لذا فهي توفر حماية محدودة.
  • في جميع الحالات ، يمكن للمهاجم الذي لديه حق الوصول إلى الجذر ، إما استرداد البذرة في حالة الراحة ، عند استخدامها ، أو الاستفادة من حقوق المستخدم لإفراغ المحفظة باستخدام محفظة البرامج باعتبارها أوراكل.

الطابع الزمني:

اكثر من دفتر الحسابات