نفوذ به بانکها و صرافیهای رمز ارز از طریق APIها (Hacking Banks and Cryptocurrency Exchanges)
یک تحقیق برای بررسی کارآمدی محصولات امنیتی در شناسایی و جلوگیری از حملات به APIها انجام شد. در این تحقیق، ۵۵ اپلیکیشن مالی و فینتک تحلیل شد تا آسیبپذیریهای موجود در APIهای آنها شناسایی شود. از میان این اپلیکیشنها، ۵۴ مورد شامل کلیدها و توکنهای API سختکد شده و حتی نام کاربری و رمز عبور بودند. این موضوع نشان میدهد که حتی در سال ۲۰۲۱، هنوز دادههای حساس در اپلیکیشنها سختکد میشوند، که یک مشکل جدی و رایج در چندین حوزه است.
روش انجام تحقیق
تمام ۵۵ اپلیکیشن روی دستگاه اندرویدی دانلود و با استفاده از APK Extractor از گوگل پلی استخراج شد. سپس فایلها روی محیط کاری بارگذاری و با استفاده از چارچوب امنیت موبایل (MobSF) مهندسی معکوس شدند. این فرآیند منجر به شناسایی آسیبپذیریها در ۳۰۰ بانک دیگر نیز شد. آسیبپذیریهایی که شناسایی شدند شامل Broken Object Level Authorization (BOLA) و Broken Authentication بود و علت آن استفاده مجدد از کد توسط شرکتهایی بود که توسعه اپلیکیشنها به آنها برونسپاری شده بود. بسیاری از APIها با WAF محافظت میشدند، اما قادر به شناسایی حملات مبتنی بر منطق مانند BOLA و Broken Authentication نبودند. نتیجه مهم این تحقیق این است که APIها باید با راهکارهای مدیریت تهدید API محافظت شوند، زیرا WAFهای سنتی قادر به شناسایی سوءاستفادههای مبتنی بر منطق نیستند.
هدفها
۵۵ اپلیکیشن مالی و فینتک شامل ۱۹ بانک، ۱۱ صرافی رمز ارز و ۲۱ نئو بانک بودند. از ۱۹ بانک، ۴ بانک بیش از ۱۰۱ هزار کارمند، ۵ بانک بین ۵۱ تا ۱۰۰ هزار، ۸ بانک بین ۱۰ تا ۵۰ هزار و ۲ بانک بین ۱ تا ۱۰ هزار کارمند داشتند. از میان صرافیهای رمز ارز، ۲ مورد بین ۱۰ تا ۵۰ میلیارد دلار سرمایه مدیریت میکردند و ۴ صرافی بیش از ۵۰۰ کارمند داشتند. این دادهها نشان میدهند که این آسیبپذیریها محدود به شرکتهای کوچک نیستند.
نتایج
APIهای آسیبپذیر BOLA امکان تغییر کد PIN هر کارت بانکی را فراهم میکردند. تنها با داشتن شماره کارت، امکان تغییر PIN وجود داشت و نیاز به مجوز واقعی از سوی بانک وجود نداشت. همین نقص باعث شد که انتقال وجوه بین حسابها نیز بدون احراز هویت امکانپذیر باشد. نبود توکنهای OAuth 2 باعث شد که این حملات حتی بدون احراز هویت نیز قابل انجام باشند و بانک تا پایان تستها متوجه نشد.
راهکارها
اولین گام، انجام موجودی کامل APIها است تا همه دادهها و متادیتاهای مرتبط شناخته شوند. نیاز به شناسایی APIهای موجود در سطح حمله (attack surface) و استفاده از راهکارهای مدیریت تهدید برای ایجاد موجودی زمان واقعی وجود دارد. توجه باید به APIهایی باشد که دادههای حساس مانند PII، PHI یا PCI را پردازش میکنند. همچنین شناسایی شکافهای امنیتی باید بخشی از چرخه توسعه نرمافزار (SDLC) باشد و توسعهدهندگان باید آموزشهای توسعه کد امن را دریافت کنند. نقاط کنترل و آزمایش نفوذ باید پیش از ورود کد به محیط تولید انجام شوند. تیمهای توسعه و امنیت باید به عنوان یک تیم واحد برای دفاع در برابر تهدیدات عمل کنند.
استفاده از تست نفوذ خارجی توصیه میشود تا APIها و اپلیکیشنها از دید نفوذگران ناشناس بررسی شوند. این بررسیها باید به شکل black-box انجام شود تا نقاط ضعف و حلقههای امنیتی شناسایی شوند.
پرسش و پاسخ
س: انتظار از شروع این تحقیق چه بود؟
تحقیق با عدم اطمینان از سطح آسیبپذیری آغاز شد و فرض بر این بود که بانکها و صرافیهای رمز ارز احتمالاً آسیبپذیریهای ساده نخواهند داشت. اما در عمل، همان آسیبپذیریهای پایه API، احراز هویت و سطح دسترسی مشاهده شد که در بخشهای دیگر مانند بهداشت و حمل و نقل نیز وجود داشت.
س: تفاوتی بین امنیت بانکها، صرافیها و سایر بخشها مشاهده شد؟
خیر، آسیبپذیریها در تمامی بخشها مشابه بودند. گزارش نهایی به تفکیک بخش و نوع سازمان ارائه خواهد شد.
س: آیا شرکتی عملکرد بهتری داشت؟
تنها یک اپلیکیشن بانکی از میان ۵۵ اپلیکیشن مورد بررسی بدون آسیبپذیری بود. سایر موارد شامل نقصهای قابل بهرهبرداری بودند و صرافیهای رمز ارز وضعیت مشابهی داشتند، احتمالاً به دلیل استفاده از همان توسعهدهنده.
س: مشکل اصلی چیست؟
مشکل این است که احراز هویت انجام میشود، اما مجوزدهی رعایت نمیشود. توسعهدهندگان باید مطمئن شوند که حتی در صورت احراز هویت، فقط دسترسیهای مجاز اعمال میشود و برای دادهها یا حسابهای دیگر مجوز اعمال نمیشود.
س: کمترین سطح دسترسی باید چگونه اجرا شود؟
پیادهسازی میکروسرویسها باید همراه با تقسیمبندی پایگاه دادهها باشد تا دادههای مختلف در یک مخزن یکپارچه ذخیره نشوند. همچنین استفاده از رویکرد امنیت صفر اعتماد (Zero Trust) توصیه میشود و هیچ داده یا اپلیکیشنی بدون اعتبارسنجی قابل اعتماد نیست.
س: شبکه honeypot چه نقشی دارد؟
استفاده از honeypot برای شناسایی تاکتیکها و تکنیکهای مهاجمان و تحلیل نحوه هدفگیری APIها مفید است.
س: آیا اقتصاد دیجیتال مبتنی بر APIها پایدار است؟
با وجود آسیبپذیریها، حملات به APIها ادامه خواهند داشت و تعداد آنها افزایش مییابد. تحقیقات نشان میدهند که حملات API احتمالاً رایجترین روش حمله در آینده خواهد بود. دادهها در APIها ذخیره میشوند و مهاجمان بیشتر روی آنها تمرکز خواهند کرد.
