نقاط الضعف OAuth |. كيفية تنفيذ إذن آمن في تطبيق الويب الخاص بك

Anonim
نقاط الضعف OAuth |. كيفية تنفيذ إذن آمن في تطبيق الويب الخاص بك 2740_1

هذه المقالة ستتعامل مع نقاط ضعف Oauth المعروفة. سيتعلم القراء أيضا كيفية تنفيذ إذن آمن وآمن في تطبيق الويب.

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

مقدمة

يستخدم بروتوكول OAuth 2.0 على نطاق واسع في التطبيقات المختلفة. باستخدامه، تصبح واجهة مستخدم مريحة متوفرة، مصادقة وتسهيل التصريح مقارنة بالطرق التقليدية لإدخال اسم المستخدم وكلمة المرور. مع التنفيذ السليم والمدروس، سيكون بروتوكول OAUTH أكثر أمانا من الترخيص التقليدي، لأن المستخدمين لا يحتاجون إلى مشاركة بياناتهم المحاسبية مع تطبيق لجهة خارجية للوصول إلى مورد معين. غالبا ما يفضل المستخدمون تسجيل الدخول باستخدام حسابات Google الخاصة بهم أو Facebook أو LinkedIn، بدلا من إنشاء حساب جديد في كل مرة تحتاج إلى التسجيل على بعض موقع الويب. وبالتالي، يبسط بروتوكول OAuth في حد كبير حياتنا.

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

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

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

سرقة Tockey oAuth باستخدام رأس المشغل

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

ملاحظة: يعتبر Hearer Header رأس استعلام HTTP، فإنه ينقل مضيف عنوان URL الذي يتم إرسال الطلب منه.

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

سرقة Tockey Oauth باستخدام المعلمة Redirect_uri

يبدأ التطبيق عملية التفويض عن طريق إرسال طلب إلى خادم Oauth:

https://www.example.com/signin/authorize؟ budm... chiltirect_uri=httpps:/demo.example.com/loginsuccessful.

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

https://www.example.com/signin/authorize؟ Tower... ıredirect_uri=httpps://localhost.evil.com.

يتم حظر عناوين URL مماثلة في بعض الأحيان. يمكن للمهاجم إعادة توجيه البيانات المستلمة عن عنوان URL المفتوح، مثل هذا:

https://www.example.com/oauth20_authorize.srf؟ Buda. redirect_uri=httpps://accounts.google.com/backtoouthsubtarget؟next=httpset://evil.com.

أو هذا:

https://www.example.com/oauth2/authorize؟ [...]٪ IRECT_URI = HTTPS٪ 3A٪ 2F٪ 2FAPS.Facebook.com٪ 2Fattacker٪ 2F.

عند تنفيذ OAuth، لا يمكنك أبدا تضمين المجالات بأكملها في القائمة البيضاء. يجب إضافة عدد قليل فقط من عناوين URL إلى "REDIRECT_URI" غير المعاد توجيه الطلب لفتح إعادة توجيه.

تزوير الطلبات عبر الإنترنت

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

تجدر الإشارة إلى كيفية تنفيذ هجوم CSRF على OAuth وكما يمكن استخدام المعلمة "الحالة" للتخفيف من آثار الضعف.

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

لذلك، كيف يمكنني منع هذا الموقف باستخدام المعلمة "الحالة"؟

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

يتم إرسال هذه القيمة إلى مزود الخدمة عند إعادة توجيه. الآن يدعو القراصنة الضحية لفتح عنوان URL الذي احتفظ به.

يتم إصدار رمز الترخيص وإرساله إلى العميل في الجلسة جنبا إلى جنب مع معلمة "الدولة".

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

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

مؤلف المقال المترجم: سيمون صليبا.

مهم! المعلومات فقط للأغراض الأكاديمية. يرجى الامتثال للتشريع ولا تطبق هذه المعلومات لأغراض غير قانونية.

مواد أكثر إثارة للاهتمام على cisoclub.ru. اشترك في الولايات المتحدة: Facebook | VK |. تويتر | Instagram |. برقية |. زن |. رسول |. ICQ جديد | يوتيوب | نبض.

اقرأ أكثر