احراز هویت

یک آسیب‌پذیری حیاتی دور زدن احراز هویت در یکی از بزرگترین پلتفرم‌های Auth0 «شناسایی به عنوان یک سرویس»(۱) کشف شده است که می‌تواند به یک مهاجم مخرب اجازه دهد که به هر پورتال یا برنامه‌ای که از سرویس Auth0 برای احراز هویت استفاده می‌کند، دسترسی داشته باشد.

Auth0 راه‌حل‌های احراز هویت مبتنی بر token را برای تعدادی از پلتفرم‌ها شامل توانایی ادغام احراز هویتِ رسانه‌های اجتماعی(۲) در یک برنامه ارائه می‌دهد.

با بیش از ۲۰۰۰ شرکت سازمانی و مدیریت روزانه ۴۲ میلیون ورود به سیستم و میلیاردها ورود به سیستم در ماه، Auth0 یکی از بزرگترین پلتفرم‌های احراز هویت است.

محققان شرکت امنیتی Cinta Infinita، در حالی که در سپتامبر ۲۰۱۷ در حال تست نفوذ یک برنامه بودند [۱]، یک نقص (CVE-2018-6873) در Auth0’s Legacy Lock API را کشف کردند[۲] که به علت اعتبارسنجی نادرست پارامتر مخاطب JSON Web Tokens یا JWT به وجود آمده بود.

محققان با موفقیت از این نقص بهره‌برداری کردند تا با استفاده از یک حمله درخواست متقابل(۳) جعلی (CSRF/XSRF) در برابر برنامه‌هایی که در حال اجرای احراز هویت Auth0 هستند، احراز هویت را در هنگام ورود به سیستم دور بزنند.

آسیب‌پذیری CSRF بر روی Auth0 (CVE-2018-6874) به یک مهاجم اجازه می‌دهد که از یک JWT مجاز امضا شده‌ که برای یک حساب کاربری جداگانه ایجاد شده، برای دسترسی به حساب قربانی مورد هدف مجددا استفاده کند.

برای این کار، همه چیزی که مهاجم نیاز دارد در اختیار داشتن شناسه‌کاربری یا آدرس پست الکترونیک قربانی است که می‌تواند با استفاده از کلاهبرداری‌های ساده مهندسی اجتماعی(۴) به دست آید.

بر طبق گفته محققان، این حمله در برابر بسیاری از سازمان‌ها قابل اجرا است: “تا زمانی که فیلدها و مقادیرِ مورد انتظار برای JWT را می‌دانیم. در اغلب موارد که ما مشاهده کردیم، نیازی به مهندسی اجتماعی نیز نبود. احراز هویت‌ها برای برنامه‌هایی که از یک پست الکترونیک یا یک عدد صحیح برای شناسایی کاربر استفاده می‌کنند خیلی آسان دور زده می‌شود.”

این شرکت امنیتی این آسیب‌پذیری را به تیم امنیتی Auth0 در ماه اکتبر ۲۰۱۷ گزارش کرده است. این شرکت بسیار سریع عمل کرد و این آسیب‌پذیری را در کمتر از ۴ ساعت برطرف کرد.

با این حال، از آنجا که SDK آسیب‌پذیر و کتابخانه‌های پشتیبانی شده از Auth0 در سمت سرویس‌گیرنده پیاده‌سازی شده‌اند، Auth0 تقریبا به مدت شش ماه با هر یک از مشتریان خود تماس گرفت و به آن‌ها قبل از افشای این مسئله برای حل این آسیب‌پذیری کمک کرد.

تیم Auth0 در گزارش خود گفت[۳]: “برخلاف اصلاح موردی که توسط Cinta Infinita کشف شده بود، این مسئله را نمی‌توان بدون مجبور ساختن مشتریان برای ارتقاء کتابخانه‌ها/SDK ها، حل کرد.”

این شرکت آسیب‌پذیری‌های زیادی را با نوشتن مجدد کتابخانه‌های تحت تاثیر و انتشار نسخه‌های جدید SDK های خود (auth0.js 9 و Lock 11) برطرف کرده است.

Cinta Infinita همچنین شش ماه برای افشای این آسیب‌پذیری منتظر ماند و به تیم Auth0 به اندازه کافی زمان برای به‌روزرسانی تمامPrivate SaaS Appliance  های آن‌ها داد.

این شرکت امنیتی اکنون یک ویدیو اثبات ادعا[۴] را منتشر کرده است که نشان می‌دهد چگونه شناسه فرد قربانی را بدست می‌آورند و کلمه عبور احراز هویت را در هنگام ورود بر روی داشبورد مدیریتی Auth0 توسط گول زدن یک token احراز هویت دور می‌زنند.

منابع

[۱] https://medium.com/@cintainfinita/knocking-down-the-big-door-8e2177f76ea5

[۲] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6873

[۳] https://auth0.com/blog/managing-and-mitigating-security-vulnerabilities-at-auth0/

[۴] https://youtu.be/9E7kfdGN1eY

[۵] https://thehackernews.com/2018/04/auth0-authentication-bypass.html


(۱) identity-as-a-service
(۲) social media
(۳) cross-site
(۴) social engineering