آسیب پذیری خطرناک Drupal OpenID

۱کمیته رکن چهارم – این آسیب پذیری در ماژول OpenID در هسته سیستم مدیریت محتوای Drupal می باشد که به شخص حمله کننده اجازه ورود به سیستم را با نام کاربری سایر کاربران، از جمله مدیر سایت می دهد. این آسیب پذیری در وهله ی اول کاربران سایت را تهدید میکند و به صورت مستقیم تهدیدی علیه سرور محسوب نمیشود.

به گزارش کمیته رکن چهارم،

۱٫   اطلاعات عمومی آسیب پذیری

این آسیب پذیری در ماژول OpenID در هسته سیستم مدیریت محتوای Drupal می باشد که به شخص حمله کننده اجازه ورود به سیستم را با نام کاربری سایر کاربران، از جمله مدیر سایت می دهد. این آسیب پذیری در وهله ی اول کاربران سایت را تهدید میکند و به صورت مستقیم تهدیدی علیه سرور محسوب نمیشود. برای یک سناریوی موفق، فردی که مورد نفوذ قرار میگیرد باید با استفاده از سیستم OpenID وارد سایت شده باشد. همین امر باعث میشود که با وجود خطرناک بودن این آسیب پذیری و طیف وسیعی از نسخه های آسیب پذیر ، تعداد کمی از سایت های استفاده کننده از سیستم Drupal در خطر باشند. این آسیب پذیری دارای شناسه CVE-2015-3234 و شامل نسخه های ۶٫X تا ۶٫۳۵ و ۷٫X تا ۷٫۳۷ میباشد.
۱-۱٫  openID چیست ؟

OpenID که به اختصار OID نیز نامیده می شود یک استاندارد باز و پروتکل غیر متمرکز از بنیاد غیر انتفاعی OpenID Foundation می باشد که به کاربران امکان احراز هویت را با استفاده از سایت هایی که با این سیستم همکاری دارند میدهد. در این روش OpenID Provider که به اختصار OP نامیده می شود یک URL در اختیار کاربر قرار می دهد. با استفاده از تبادل URL بین کاربر نهایی و سایت پشتیبانی کننده (Relying Party ، به اختصار RP) تصدیق هویت بین RP و OP انجام میپذیرد. به زبان ساده تر OpenID یک تکنولوژی است که به کاربران اجازه میدهد با یک بار ساخت اکانت در سایت های ارائه دهنده ی این سرویس، به تمامی سایت هایی که از این سیستم پشتیبانی میکنند وارد شود. در حال حاضر کمپانی های بسیاری از جمله AOL,Yahoo,Google,Microsoft,Paypal و … به عنوان یک OpenID Provider سرویس OpenID را به کاربران ارائه میدهند.

۲٫  توضیحات فنی این آسیب پذیری

در این آسیب پذیری شخص نفوذگر از یکی از OP ها امکان جعل هویت را خواهد داشت. در واقع بعد از یک حمله ی موفق، نتیجه نهایی شکلی همانند Session Hijacking خواهد داشت. در یک سناریوی موفق ، شخص نفوذ گر در ابتدا با OpenID خود Authenticate میشود ولی در هنگام بازگشت پاسخ به سمت سیستم Drupal ، با ایجاد تغییر در پاسخ، مقدار مربوط به OpenID هر کاربر دیگر سایت (از جمله مدیر سایت) را در پاسخ قرار میدهد. سیستم Drupal این تغییر را متوجه میشود و درصدد رفع این مغایرت برمی آید. ایراد اصلی کدنویسی در همین بخش سیستم است. سیستم فقط حالت خاصی را به منظور کشف تغییر بررسی میکند و با توجه به کامل نبودن این بررسی به اشتباه با یک درخواست از OP ، تمامی مشخصات مربوط به کاربری که مورد نفوذ قرار میگیرد را دریافت میکند و در Session مربوط به شخص نفوذگر قرار میدهد. در واقع به جای اینکه مشخصات مربوط به نفوذگر را دریافت کند، به اشتباه مشخصات شخصی را که مورد حمله قرار گرفته است دریافت میکند. کد آسیب پذیر در فایل openid.module در مسیر modules/openid/openid.module قرار دارد. در کد های زیر دو قطعه کد آسیب پذیر و ایمن (پس از اعمال وصله ی رسمی Drupal) قرار گرفته اند. کد هایی که تغییر داشته اند با رنگ قرمز ، کدهایی که اضافه شده اند با رنگ سبز و کد هایی که مکان آنها جا به جا شده است با رنگ خاکستری مشخص شده اند :
۱

شکل ۱ کد آسیب پذیر
قطعه کد وصله شده :

۲
شکل ۲ کد وصله شده
آسیب پذیری در قسمتی است که چک کننده ی برابری شناسه ادعایی بازگشتی و شناسه ارسال شده به OP است. با تغییر شناسه ادعایی به شناسه مورد نظر که شناسه هدف می باشد در نهایت شناسه ادعایی مورد تایید قرار می گیرد و هویت شخص نفوذگر به هویت شخص هدف تغییر پیدا می کند. در این وصله قطعه کدی اضافه شده است تا علاوه بر تغییر شروط تایید شناسه ادعایی در نهایت در صورت یکسان نبودن شناسه ادعایی ، شناسه باید در اسناد XRDS موجود باشد. اسناد XRDS نوعی از اسناد بر پایه XML می باشند که در OpenID از آن ها به منظور تبادل اطلاعات استفاده میشود.
۳٫ روش وصله کردن

بهترین روش برای رفع این آسیب پذیری آپدیت نسخه های آسیب پذیر به آخرین نسخه ( ۶٫۳۶ یا ۷٫۳۸ ) می باشد. راه دیگر جایگزینی فایل های openid.module در پوشه ی /modules/openid/ و openid_test.module در پوشه /modules/openid/tests/ با فایل های موجود در نسخه ۷٫۳۸ یا ۶٫۳۶ است. هرچند فایل های تست در این آسیب پذیری نقش مستقیم نداشته و تغییر فایل openid.module در فولدر /modules/openid/ به تنهایی نیز برای رفع آسیب پذیری کفایت می کند.

درباره نویسنده

پست های مرتبط

پاسخ دهید


خبرگزاری هرانا

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


Type The Red Captcha Characters Below.