ارزیابی ترکیبی موبایل + API

ارزیابی جامع شامل اپلیکیشن موبایل و API بک‌اند

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

ارزیابی ترکیبی موبایل و API ما یک اپلیکیشن موبایل و بک‌اند APIی را که با آن گفت‌وگو می‌کند به‌عنوان یک سامانه‌ی واحد و به‌صورت end-to-end می‌آزماید. اپلیکیشن با OWASP MASVS و MASTG تست می‌شود و بک‌اند با OWASP API Security Top 10. بیشترین آسیب واقعی در درزِ میان این دو رخ می‌دهد: توکنی که اپلیکیشن بیش از حد به آن اعتماد می‌کند، شناسه‌ی شیئی که سرور مالکیتش را بررسی نمی‌کند، یا کارکردی که اپلیکیشن پنهانش می‌کند اما API همچنان آن را در معرض می‌گذارد. هر سو را جداگانه می‌آزماییم و سپس جریان‌هایی را که از مرز عبور می‌کنند: اپلیکیشن چگونه احراز هویت می‌کند، چه می‌فرستد، و آیا API همان قواعدی را که اپلیکیشن به‌ظاهر اعمال می‌کند واقعاً اجرا می‌کند. هر یافته را تا یک اثبات عملی دنبال می‌کنیم، در کنار اثر واقعی‌اش با CVSS رتبه می‌دهیم و همراه با یک رفع مشخص می‌نویسیم.

چه چیزی شامل می‌شود

تست اپلیکیشن موبایل بر پایه‌ی OWASP MASVS و MASTG: ذخیره‌سازی، رمزنگاری، پلتفرم، شبکه و تاب‌آوری

تست بک‌اند API بر پایه‌ی OWASP API Security Top 10

مجوزدهی سطح شیء شکسته (BOLA): آیا یک کاربر با تغییر یک شناسه به اشیای کاربر دیگر می‌رسد؟

احراز هویت شکسته و توکن‌های ضعیف یا قابل جعل

مجوزدهی شکسته در سطح کارکرد و سطح ویژگیِ شیء؛ کنش‌ها یا فیلدهایی که اپلیکیشن پنهان می‌کند اما API همچنان اجازه می‌دهد

مصرف نامحدود منابع و نبود محدودسازی نرخ

جریان احراز هویت و توکن میان اپلیکیشن و API، از جمله تازه‌سازی و خروج

اعتبارسنجی و pinning گواهی، و ترافیکی که می‌توان رهگیری یا بازپخش کرد

secretها و کلیدهای API جاسازی‌شده در اپلیکیشن

پیکربندی نادرست امنیتی و فهرست‌برداری نادرست از نقاط پایانی و نسخه‌های API

چگونه کار می‌کند

1
دامنه‌گذاری و دسترسی
هر دو سو را نگاشت می‌کنیم؛ اپلیکیشن و نقاط پایانی APIی که به کار می‌گیرد؛ و عمق را تعیین می‌کنیم: جعبه‌سیاه از بیرون، جعبه‌خاکستری با حساب‌های آزمایشی و مستندات API، یا جعبه‌سفید با دسترسی به کد. یک نسخه از اپلیکیشن، دست‌کم دو حساب برای هر نقش تا بتوانیم یک کاربر را در برابر کاربر دیگر بیازماییم، و یک محیط staging را درخواست می‌کنیم تا داده‌ی عملیاتی دست‌نخورده بماند.
2
تست اپلیکیشن موبایل
اپلیکیشن را با OWASP MASVS و MASTG می‌آزماییم: چه چیزی روی دستگاه ذخیره می‌کند، داده را چگونه رمزنگاری و کلید را چگونه نگه می‌دارد، اجزای در معرض بیرون و استفاده‌اش از پلتفرم، و شیوه‌ی مدیریت توکن‌ها. همین‌جاست که هر secret یا کلید APIِ حمل‌شده درون اپلیکیشن را نیز بازیابی می‌کنیم.
3
تست بک‌اند API
API را با OWASP API Security Top 10 می‌آزماییم و مستقیماً آن را به کار می‌گیریم، نه فقط از راه اپلیکیشن. تمرکز بر مجوزدهی است: دسترسی سطح شیء با یک حساب دوم، دسترسی سطح کارکرد به کنش‌هایی که اپلیکیشن پنهان می‌کند، دسترسی سطح ویژگی به فیلدهایی که هرگز نشان نمی‌دهد، به‌علاوه‌ی احراز هویت، محدودسازی نرخ و پیکربندی نادرست.
4
end-to-end و یکپارچگی
مرز میان اپلیکیشن و API را می‌آزماییم: جریان احراز هویت و توکن، این‌که آیا API به مقادیرِ فرستاده‌ی سمت‌کاربر که باید بازبینی کند اعتماد می‌کند، این‌که آیا انتقال محافظت شده و در برابر رهگیری و بازپخش مقاوم است، و این‌که آیا قاعده‌ای که اپلیکیشن در واسط خود اعمال می‌کند واقعاً روی سرور اجرا می‌شود.
5
اعتبارسنجی، گزارش‌دهی و تست مجدد
هر یافته با یک اثبات مفهوم تکرارپذیر تأیید می‌شود، به‌عنوان سمت‌اپلیکیشن، سمت‌API یا یکپارچگی نشانه‌گذاری می‌شود، با CVSS و اثر واقعی کسب‌وکار رتبه می‌گیرد و همراه با یک رفع اولویت‌دار نوشته می‌شود. پس از رفع، دوباره تست می‌کنیم تا مطمئن شویم رفع‌ها پابرجا هستند.
خروجی‌ها
  • خلاصه‌ی اجرایی با نمای کلی ریسک ترکیبی برای تصمیم‌گیرندگان
  • گزارش فنی تفصیلی، هر یافته با اثبات مفهوم تکرارپذیر
  • یافته‌های سمت‌اپلیکیشن با نگاشت به OWASP MASVS
  • یافته‌های سمت‌API با نگاشت به OWASP API Security Top 10
  • یافته‌های یکپارچگی در مرز؛ جریان توکن، انتقال و اعمال سمت‌سرور
  • شدت CVSS و اثر کسب‌وکار برای هر یافته
  • نقشه‌ی راه رفع با اولویت، در سراسر اپلیکیشن و API
  • تست مجدد پس از رفع

چرا وادی ایمن حافظ

یک سامانه، نه دو تست جدا
تست اپلیکیشن و API با هم، مسائلِ درز را می‌یابد که هیچ‌کدام به‌تنهایی نمی‌یابند؛ قاعده‌ای که اپلیکیشن اعمال می‌کند اما سرور نه، یا توکنی که API بیش از آنچه باید به آن اعتماد می‌کند.
تمرکز بر مجوزدهی
مجوزدهی شکسته در سطح شیء و کارکرد از خطرهای اصلی API است. آن‌ها را مستقیماً با حساب‌های جداگانه می‌آزماییم، چون واسط اپلیکیشن آن‌ها را پنهان می‌کند اما API نه.
پوشش استانداردمحور
اپلیکیشن از OWASP MASVS و MASTG و API از OWASP API Security Top 10 پیروی می‌کند، پس پوشش در هر دو سو به‌جای سلیقه‌ای بودن، روشن و قابل بررسی است.
یافته‌های قابل اجرا و اولویت‌دار
راهنمایی روشن و اولویت‌بندی‌شده بر پایه‌ی ریسک، هر یافته با نشانِ سمت‌اپلیکیشن، سمت‌API یا یکپارچگی، همراه با اثبات مفهوم تکرارپذیر و یک رفع مشخص.

سوالات متداول

ارزیابی ترکیبی موبایل و API چیست؟

یک اپلیکیشن موبایل و بک‌اند API آن را به‌عنوان یک سامانه‌ی واحد می‌آزماید. اپلیکیشن با OWASP MASVS و MASTG، و API با OWASP API Security Top 10 تست می‌شود، و سپس جریان‌هایی که از مرز میان آن‌ها می‌گذرند؛ احراز هویت، توکن‌ها و اعمال سمت‌سرور؛ و هر یافته اثبات و رتبه‌بندی می‌شود.

چرا اپلیکیشن و API را با هم بیازماییم نه جداگانه؟

آسیب‌زننده‌ترین مسائل در مرز جای دارند. واسط اپلیکیشن کنش‌ها و فیلدها را پنهان می‌کند، پس تستی که فقط اپلیکیشن را به کار می‌گیرد آن‌ها را از دست می‌دهد، اما API همچنان آن‌ها را در معرض می‌گذارد. تست هر دو با هم به ما امکان می‌دهد درخواست‌های خودِ اپلیکیشن را مستقیماً بفرستیم و بررسی کنیم که آیا سرور همان قواعدی را که اپلیکیشن به‌ظاهر اعمال می‌کند اجرا می‌کند.

BOLA چیست و چرا مهم است؟

مجوزدهی سطح شیء شکسته زمانی است که API بر پایه‌ی یک شناسه در درخواست، شیئی را برمی‌گرداند یا تغییر می‌دهد بدون این‌که بررسی کند فراخواننده مالک آن است. شناسه را عوض می‌کنید و به داده‌ی کسی دیگر می‌رسید. این بالاترین خطر API است، پس آن را مستقیماً با یک حساب دوم در برابر حساب اول می‌آزماییم.

چه دسترسی‌ای لازم دارید و آیا تست جعبه‌سفید ارائه می‌دهید؟

می‌توانیم جعبه‌سیاه از بیرون، جعبه‌خاکستری با حساب‌های آزمایشی و مستندات API، یا جعبه‌سفید با دسترسی به کد کار کنیم. انتخاب معمول جعبه‌خاکستری است؛ جعبه‌سفید عمیق‌ترین پوشش را می‌دهد. در هر حال دست‌کم دو حساب برای هر نقش درخواست می‌کنیم تا بتوانیم یک کاربر را در برابر کاربر دیگر بیازماییم.

تست روی محیط عملیاتی انجام می‌شود یا staging؟

یک محیط staging با داده‌ی نماینده را ترجیح می‌دهیم، چون تست API درخواست‌های بسیاری می‌فرستد و مرزهای مجوزدهی را وارسی می‌کند. جایی که تست ناگزیر باید محیط عملیاتی را لمس کند، حدود آن را از پیش توافق می‌کنیم و از هر اقدام مخرب یا پرحجم پرهیز می‌کنیم.

آیا GraphQL را هم پوشش می‌دهید یا فقط APIهای REST؟

همان APIی را که اپلیکیشن واقعاً به کار می‌برد می‌آزماییم، چه REST باشد، چه GraphQL و چه سبکی دیگر. خطرهای مجوزدهی و احراز هویت در API Security Top 10 در همه‌ی سبک‌ها صدق می‌کنند؛ شیوه‌ی به‌کارگیری آن‌ها با واسط سازگار می‌شود.

شدت یافته‌ها چگونه تعیین می‌شود؟

هر یافته یک امتیاز CVSS برای یک مبنای مشترک می‌گیرد که با اثر واقعی در سامانه‌ی شما تعدیل می‌شود: مهاجم به چه می‌رسد، چقدر آسان، و چه داده یا حسابی در خطر است. به همین دلیل دو مسئله با CVSS یکسان ممکن است اولویت متفاوت بگیرند.

آیا تست مجدد پس از رفع انجام می‌شود؟

بله؛ پس از رفع، یافته‌های گزارش‌شده را روی هم اپلیکیشن و هم API دوباره تست می‌کنیم تا مطمئن شویم هر رفع پابرجاست. مدت زمان به اندازه‌ی اپلیکیشن و شمار نقاط پایانی API بستگی دارد و پس از دامنه‌گذاری برآورد دقیق می‌دهیم.

اگر اپلیکیشن من با چند سرویس بک‌اند گفت‌وگو کند چه؟

نقاط پایانی و سرویس‌های درون ارزیابی را از ابتدا تعیین می‌کنیم. تست سرویس‌های بیشتر تلاش بیشتری می‌طلبد، پس مرز را پیش از شروع توافق می‌کنیم و در برآورد بازتاب می‌دهیم؛ هیچ چیز بیرون از دامنه‌ی توافق‌شده تست نمی‌شود.

آماده شروع هستید؟
با تیم ما تماس بگیرید تا در مورد نیازهای ارزیابی امنیتی شما صحبت کنیم