رأس القلم
كالي
ل AMD64
ماك
ل ARM64
ماك
قريباً
النوافذ
قريباً

فك تشفير توقيع الويب JSON: البوابة إلى ثغرات التحقق الحرجة

بالنسبة للمبتدئين، فإن فك تشفير توقيع الويب JSON تبدو العملية تافهة - تمرين بسيط لفك تشفير Base64URL لعرض الادعاءات داخل الرمز المميز. ولكن بالنسبة لمهندسي الأمن، ومختبري الاختراق، وباحثي أمن الذكاء الاصطناعي، فإن "فك التشفير" هو مجرد مرحلة استطلاع لساحة معركة أكثر تعقيدًا بكثير.

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

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

فك تشفير توقيع الويب JSON Web Signature Penligent

تشريح JWS: أكثر من مجرد قاعدة 64

قبل تحليل الثغرات، يجب علينا قبل تحليل الثغرات، يجب أن نحاذي البنية المحددة في RFC 7515. يمثل توقيع JSON Web Signature (JWS) محتوى مؤمّن بتوقيع رقمي أو رمز مصادقة الرسائل (MAC).

تتكون سلسلة JWS المدمجة من ثلاثة أجزاء مفصولة بنقاط (.):

الرأس.الحمولة.التوقيع

منطق فك التشفير

عندما تقوم بإجراء فك تشفير توقيع الويب jsonفأنت تقوم بشكل أساسي بتحويل أول جزأين من تنسيق Base64URL إلى JSON.

فيما يلي تطبيق Python الخام للباحثين الأمنيين الذين يفضلون واجهة برمجة التطبيقات الأمنية على الأدوات المستندة إلى الويب التي قد تسجل رموزًا حساسة:

بايثون

'استيراد sys استيراد json استيراد base64

def padding_fix(data): padding_padding المفقودة = len(data) % 4 إذا كانت البيانات المفقودة_padding: البيانات +='=' * (4 - padding_padding المفقودة) إرجاع البيانات

def decode_jws(token): جرب: header_b64, payload_b64, signature_b64 = token.split(".")

    header = json.loads.loads(base64.urlsafe_b64decode(padding_fix(header_b64)))
    الحمولة = json.loads.loads(base64.urlsafe_b64decode(padding_fix(payload_b64)))
    
    إرجاع الرأس، الحمولة
باستثناء ValueError:
    طباعة("[-] تنسيق رمز غير صالح")
    sys.exit(1)

سياق الاستخدام

الرأس، الحمولة = فك تشفير_jws(sys.argv[1])

طباعة(json.dumps(header, indent=2))``

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

معلمة الرأسالوصفالتضمينات الأمنية
زئبقالخوارزمية (على سبيل المثال، HS256، RS256)يملي بدائية التشفير. الهدف الرئيسي لهجمات خفض التصنيف.
اكتبنوع الرمز المميز (على سبيل المثال، JWT)غالبًا ما يتم تجاهلها ولكن يمكن استخدامها للخلط بين الأنواع.
طفلالمعرف الرئيسييلمح إلى المفتاح الذي يجب استخدامه. يمكن التلاعب به من أجل اجتياز الدليل أو حقن SQL في حالات نادرة.
جكو / x5uعنوان URL لمفتاح الويب JSONيشير إلى عنوان URL للمفتاح العام. هدف لاستضافة مفاتيح SSRF أو استضافة مفاتيح خبيثة.
فك تشفير توقيع الويب JSON Web Signature Penligent

فجوة "فك التشفير-التحقق": حيث توجد الثغرات الأمنية

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

1. تجاوز خوارزمية "لا شيء"

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

  1. فك الشفرة الرأس
  2. التغيير زئبق إلى لا شيء (أو لا يوجد, لا شيء).
  3. تجريد التوقيع.

إذا كانت المكتبة تدعم لا شيء (مخصص لتصحيح الأخطاء) ولا يدرج الخوارزميات في القائمة البيضاء، يتم تخطي التحقق من التوقيع بالكامل.

2. ارتباك الخوارزمية (ارتباك المفاتيح)

هذا هجوم أكثر تعقيدًا. ويحدث عندما يدعم الخادم كلاً من التوقيع المتماثل (HMAC) والتوقيع غير المتماثل (RSA/ECDSA) ولكنه يفشل في التحقق من صحة أيهما يستخدم لمفتاح معين.

  • السيناريو: يتوقع الخادم رمزاً مميزاً RS256 (موقّعاً بمفتاح خاص، وتم التحقق منه بمفتاح عام).
  • هجوم: يقوم المهاجم بتنفيذ فك تشفير توقيع الويب json، التغييرات زئبق إلى HS256 (HMAC)، ويوقّع الرمز المميز باستخدام الرمز المميز للخادم المفتاح العام كسر HMAC.
  • النتيجة: نظرًا لأن المفتاح العام غالبًا ما يكون متاحًا للعميل (أو يمكن الوصول إليه بسهولة)، يمكن للمهاجم تزوير توقيع صحيح يتحقق منه الخادم باستخدام المفتاح العام الخاص به (معاملته كسر HMAC).

دراسة حالة: CVE-2022-21449 ("الورقة النفسية")

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

CVE-2022-21449 (CVSS 7.5)، الملقبة بـ "الورقة النفسية"، أثرت على تطبيق Java لتوقيعات ECDSA. إنه مثال رئيسي على السبب في أن مجرد التحقق من صحة "وجود توقيع" غير كافٍ.

الآلية

في ECDSA، يتضمن التحقق معادلة رياضية: $v = R'$ (مبسطة). تكمن الثغرة في جافا ECDSA حيث إذا تم تعيين كل من جزئي التوقيع $r$ و $s$ على 0فإن منطق التحقق سيعيد بشكل غير صحيح صحيح لـ أي الحمولة.

يمكن للمهاجم

  1. فك الشفرة JWS شرعي.
  2. تعديل الحمولة (على سبيل المثال, {"admin": صحيح}).
  3. أنشئ توقيعًا حيث $r=0$ و$s=0$.
  4. أرسلها إلى واجهة خلفية تستند إلى Java (تعمل على Java 15 أو 16 أو 17 أو 18).

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

تدقيق JWS القائم على الذكاء الاصطناعي: نهج التدقيق القائم على الذكاء الاصطناعي

يعتبر التحليل اليدوي لرموز JWS فعالاً في عمليات الاستغلال الفردية، ولكن غالباً ما تستخدم بنيات الخدمات المصغرة الحديثة مئات المفاتيح المختلفة وسياسات التناوب وتكوينات الخوارزميات. لا يمكن للمهندس البشري أن يقوم يدويًا فك تشفير توقيع الويب json واختبار كل تباديل حقن الرؤوس وإرباك المفاتيح والتجاوزات الخاصة بالمكتبة عبر سطح الهجوم بأكمله.

وهنا تصبح اختبارات الاختراق الآلية التي تعتمد على الذكاء الاصطناعي ضرورية.

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

  1. فك التشفير السياقي: فهو يعترض حركة المرور، ويفك رموز JWS، ويفهم السياق (على سبيل المثال، "يُستخدم هذا الرمز المميز لبوابة الدفع، وليس فقط تسجيل الدخول").
  2. توليد الحمولة التكيفية: إنه لا يحاول فقط الزرعة: لا شيء. يقوم بتحليل استجابات أخطاء الخادم لاستنتاج مكتبة الواجهة الخلفية. إذا اكتشف بيئة جافا، فقد يحاول إجراء أشكال مختلفة من CVE-2022-21449. إذا رأى طفل يتحرى عن حقن SQL أو حقن الأوامر عبر معرّف المفتاح.
  3. تحليل التدفق المنطقي: يمكن ل Penligent تحديد ما إذا تم التحقق من الرمز المميز بشكل صحيح في نقطة نهاية واحدة ولكن ببساطة فك الشفرة وموثوق بها دون التحقق منها في خدمة ثانوية صغيرة - وهو عيب معماري شائع.

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

إرشادات التصلب للمهندسين

لتأمين التطبيقات ضد هجمات JWS، يجب أن ننتقل من "الثقة الضمنية" إلى "التحقق الصريح".

1. فرض خوارزمية القائمة البيضاء

لا تعتمد أبدًا على زئبق رأس من الرمز المميز الذي تم فك تشفيره لتحديد طريقة التحقق. قم بترميز الخوارزمية المتوقعة في أداة التحقق الخاصة بك.

جافا سكريبت

// النهج الآمن (مكتبة Node.jose jose) const تم التحقق منه = await jose.jwtVerify(token, secretKey, { الخوارزميات: ['RS256'], // قائمة بيضاء بشكل صريح فقط RS256 });

2. التحقق من صحة طفل (معرّف المفتاح)

إذا كان الإعداد الخاص بك يستخدم مفاتيح متعددة (JWKS)، فتأكد من أن طفل يتطابق الرأس مع مفتاح في قائمتك البيضاء. لا تقم بتمرير طفل مباشرة إلى استعلام قاعدة بيانات أو استدعاء نظام الملفات.

3. استخدام المكتبات الحديثة

تجنب كتابة أغلفة التشفير الخاصة بك. استخدم مكتبات تم اختبارها في المعارك مثل خوسيه (Node.js), PyJWT (بايثون)، أو جيه جيه دبليو تي (جافا). ومع ذلك، تأكد من اشتراكك في النشرات الأمنية لهذه المكتبات.

4. افصل فك التشفير عن التحقق (منطقياً)

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

الخاتمة

القدرة على فك تشفير توقيع الويب json مهارة أساسية، لكنها مجرد خدش للسطح. بالنسبة للمهندس الأمني، فإن JSON الخام هي خريطة من التهيئات الخاطئة المحتملة. من خوارزمية "لا شيء" الكلاسيكية إلى التجاوزات الحسابية مثل CVE-2022-21449، تعتمد سلامة الويب على التحقق الدقيق، وليس فقط على فك التشفير الناجح.

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

المراجع:

شارك المنشور:
منشورات ذات صلة