کمیته رکن چهارم – پس از شیوع بیماری کرونا شاهد افزایش میزان استفاده از فناوری ابر عمومی هستیم. در واقع حدود ۶۰ درصد از سازمانها انتظار دارند که به دلیل همه گیری کرونا میزان استفاده از فناوری ابری نسبت به آنچه انتظارش را داشته اند، بیشتر شود.
در عصر رونق ارایه نرمافزار به عنوان سرویس (SaaS[۱]) و فراگیری گسترده ابرهای ترکیبی، مجرمان سایبری در پی سوءاستفاده از پروتکل OAuth (پروتکلی که از آن برای واگذاری سطح اختیارات استفاده می شود) برای نفوذ به محیطهای ابری هستند. بنابراین کنترل برنامههای کاربردی که کاربران با آنها در تعامل می باشند تبدیل به یک امر بسیار مهم و الزامی برای کسبوکارها شده است.
در این مطلب، نگاهی کامل تر به OAuth، نقش آن در فراهم کردن امکان دسترسی به منابع محیط ابر، روش سوءاستفاده از OAuth توسط مهاجمان و کارهای قابل انجام توسط سازمانها برای حفاظت از دادههای ابری شان خواهیم داشت.
آشنایی با OAuth
از زمان آغاز فعالیت سیستمهای رایانشی، فراهم کردن امکان دسترسی و مجوز کار با سیستمهای مختلف برای کاربران همواره امری چالش برانگیز بوده است. پلتفرم ورود یکپارچه (SSO[۲]) به سیستم، راهکاری برای حل این مسأله است که به کاربران امکان میدهد برای دسترسی به مجموعهای از منابع و برنامههای کاربردی، تنها یک بار وارد حساب کاربری شان شده و دیگر نیازی به چندین بار احراز هویت نداشته باشند.
ظهور برنامههای کاربردی مدرن و افزایش حجم سرویسهای مبتنی بر ابر و همچنین میزبانی دادهها در محیط های ابری باعث افزایش تقاضا جهت به اشتراک گذاری اطلاعات حسابهای ابری کاربران با برنامههای کاربردی مختلف شده است.
پروتکل OAuth که در سال ۲۰۱۰ میلادی به عنوان یک استاندارد باز منتشر شد، قابلیتهای SSO را در اختیار کاربرانی قرار میدهد که نیازمند دسترسی به منابع در محیطهای مختلف هستند. OAuth یک پروتکل مجوزدهی است که در واقع از آن برای ایجاد امکان دسترسی کاربران به منابع مختلف استفاده میشود و دیگر نیازی به اعتبارسنجی چند باره هویت آنها نمی باشد. گوگل و سایر ارایه دهندگان خدمات ابری، از زمان ظهور پروتکل OAuth به شدت از آن حمایت کرده اند. تحول این پروتکل و ارتقای آن به OAuth 2.0 منجر به اضافه شدن قابلیتهایی شده است که امروزه بیشتر سرویسهای ابری از آن استفاده میکنند.
در حال حاضر چگونه از OAuth استفاده میشود؟
هر زمان یک برنامه کاربردی که توسط فروشندهای ایجاد شده و متفاوت از سازنده دستگاه یا سیستمعامل بوده و نیاز به دسترسی به APIهایی داشته باشد که برای دستگاههای همراه کاربران مهم محسوب میشود، این دستگاه برای تأیید دسترسی یک اعلان را نمایش میدهد (مثلاً برای تأیید استفاده از دادههای جیپیاس از طریق یک API سیستمی خاص). این APIها میتوانند نقش یک درگاه امنیتی را داشته باشند که اجازه تبادل اطلاعات را صادر میکنند.
البته در این روش، مشکلات خاصی هم وجود دارد. برای بررسی ارتباط این سیستم با مجوزهای OAuth، گوگل را به عنوان مثال در نظر بگیرید. گوگل برای محول کردن اختیار دسترسی به منابع API، از پروتکل OAuth 2.0 استفاده میکند. همه برنامههای کاربردی برای دسترسی به API گوگل با استفاده از OAuth 2.0، از الگوهایی یکسان پیروی میکنند.
بنابراین ابتدا مالک برنامه کاربردی، اعتبارنامه OAuth 2.0 را از طریق کنسول API گوگل به دست میآورد. برای اینکه یک برنامه کاربردی بتواند با استفاده از API گوگل به دادههای خصوصی کاربران دسترسی پیدا کند باید یک کلید رمزنگاری دسترسی کسب کند که امکان دسترسی به API گوگل را فراهم میکند. سپس، محدوده دسترسی اعطا شده توسط کاربر و توکن دسترسی تولید شده، با دسترسیهای مورد نیاز برنامه کاربردی مورد نظر مقایسه میشود.
برنامه کاربردی باید قابلیتها و امکاناتی را که بدون دسترسی به API مربوطه امکان کار ندارند، غیرفعال کند. وقتی سرور احراز هویت گوگل که دسترسی کاربران را مدیریت میکند توکن را تأمین کرد، این توکن به صورت هدر درخواست مجوز HTTP برای API گوگل ارسال میشود. توکنهای دسترسی صادر شده توسط سرور احراز هویت گوگل، طول عمر محدودی دارند اما برنامههای کاربردی میتوانند در هنگام نیاز، درخواست تازه سازی این توکنها را ارسال کنند.
معمولاً کاربران عادت دارند که در اعلانهای صادر شده برای کسب مجوز دسترسی، روی گزینه “Allow” کلیک کنند. به این ترتیب مهاجمان میتوانند کاربران را متقاعد به ارایه مجوزهای دسترسی سطح بالا برای برنامههای مخرب نمایند.
نحوه سوءاستفاده از پروتکل OAuth توسط مهاجمان
اگرچه خود استاندارد OAuth شامل راهکارها و معیارهای امنیتی خاصی است ولی مهاجمان میتوانند برای دستیابی به اهداف مخرب خود از آن سوءاستفاده کنند. در ادامه، نمونههایی از سوءاستفاده از این پروتکل بررسی میشود:
- استفاده از OAuth برای بازیابی اطلاعات حسابهای کاربری توسط برنامههای کاربردی مخرب: مهاجمانی که مهارت بیشتری دارند می توانند برنامههای کاربردی سالم را جعل کرده تا به دادههای کاربران دسترسی یابند. مثلاً مهاجم میتواند یک برنامه مخرب تولید کند که شبیه برنامه معتبر اصلی به نظر میرسد. سپس برای دسترسی به دادههای حساب کاربری، توکنهای OAuth را درخواست کرده و از این توکن برای نشت دادههای حساب کاربر سوءاستفاده کند. چنین سناریوهایی اهمیت تجدیدنظر درباره نصب برنامههای کاربردی متفرقه در محیطهای SoS مثل “Google Workspace” یا “Microsoft 365” را نشان میدهند.
- سوءاستفاده از نقاط ضعف در پیاده سازی OAuth: بعضی از برنامههای کاربردی که از پروتکل OAuth استفاده میکنند، در برابر نشت توکن دسترسی و سوءاستفاده از آن آسیبپذیر هستند. مهاجمان میتوانند به روشهای مختلف از توکنهای OAuth سوءاستفاده کنند. مهاجم میتواند با دسترسی به یک توکن OAuth، به اطلاعات شخصی کاربر هم دسترسی پیدا کند. همچنین وی میتواند از توکن OAuth برای انجام سایر فعالیتهای مخرب همچون انتشار بدافزار از جانب کاربر هک شده و اجرای حملات باجافزاری استفاده نماید.
حفاظت از دادهها در بستر ابر
OAuth راهکاری مدرن برای دسترسی برنامههای کاربردی به دادههای خصوصی موجود در سرویسها یا برنامههای کاربردی ابر است. با این حال، گسترش میزان استفاده از فناوری ابر و اشتیاق مهاجمان برای نفوذ به این محیطها باعث افزایش نیاز به ارتقای امنیت سیستمها و دادههای حیاتی شده است. با توجه به حرکت سریع بسیاری از سازمانها به سمت دورکاری، اهمیت این مسأله در شرایط فعلی بیشتر از همیشه شده است.
ما در دورانی زندگی میکنیم که در آن برنامههای کاربردی علاوه بر محیط سازمان به محیطهای جدیدی مثل فضای ابر و محیطهای ترکیبی هم گسترش یافتهاند. مهاجمان میتوانند با استفاده از راهکارهای مختلف، پلتفرمهای SaaS و محیط ابر را دچار مخاطره کنند. به ویژه اینکه آنها به دنبال روشهایی برای سوءاستفاده از مجوزهای OAuth هستند و معمولاً از مهندسی اجتماعی و برنامههای مخربی استفاده میکنند که به صورت برنامههای بی ضرر و با هدف سرقت دادههای حساس کاربران و حتی اجرای حملات باجافزاری طراحی شدهاند.
مدیران سازمانها باید از راهکارهای مبتنی بر هوش مصنوعی برای نظارت بر اینکه چه برنامههای کاربردی یا افزونههای مرورگری در محیط SaaS سازمان آنها قابل پیادهسازی هستند، استفاده کنند تا یک نگرش کامل بر محدوده مجوزهای صادر شده برای دسترسی به محیط Google Workspace یا Microsoft 365 با استفاده از پروتکل OAuth 2.0 داشته باشند.
این اقدام به آنها این امکان را میدهد تا رفتار هزاران برنامه کاربردی مورد استفاده کاربران شان را زیر نظر داشته و مشخص کنند کدام یک از آنها امنیت لازم را دارند. همچنین برای مقابله با سوءاستفاده از پروتکل OAuth توسط برنامههای مخرب، آنها باید یک رویکرد پیشگیرانه برای مدیریت دسترسی برنامههای کاربردی به دادههای کاربران و اینکه چه برنامههایی در محیط SaaS سازمان قابل ادغام هستند، داشته باشند.
منبع : زومیت