ارزیابی امنیت REST API

ارزیابی جامع امنیت برای REST API

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

ارزیابی امنیت REST API، رابط‌های برنامه‌نویسی مبتنی بر REST را در برابر فهرست OWASP API Security Top 10 می‌سنجد؛ همان جایی که بخش بزرگی از رخنه‌های امروزی رخ می‌دهد، چون منطق و داده‌ی برنامه تا حد زیادی از راه API در دسترس است. تمرکز ما بر خطاهایی است که ابزارهای خودکار به‌تنهایی پیدا نمی‌کنند: دسترسی به داده‌ی کاربران دیگر با تغییر یک شناسه (BOLA)، دور زدن احراز هویت و مجوزدهی سطح عملیات، افشای بیش از حد داده، مصرف نامحدود منابع و پیکربندی نادرست. کار را با رفتار واقعی API می‌سنجیم، نه فقط با مستندات آن؛ هر یافته را تا اثبات عملی بهره‌برداری دنبال می‌کنیم و شدت آن را با CVSS در کنار اثر واقعی بر کسب‌وکار تعیین می‌کنیم.

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

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

احراز هویت شکسته: توکن، نشست، جریان ورود و بازیابی رمز

مجوزدهی سطح ویژگی (BOPLA): افشای بیش از حد داده و mass assignment

مصرف نامحدود منابع: نبود rate limiting و کنترل هزینه

مجوزدهی سطح عملیات (BFLA): دسترسی به عملیات مدیریتی از نقش عادی

دسترسی نامحدود به جریان‌های حساس کسب‌وکار

جعل درخواست سمت سرور (SSRF)

پیکربندی نادرست امنیتی: هدرها، CORS، مدیریت خطا و روش‌های HTTP

مدیریت نادرست موجودی: نسخه‌ها و endpointهای قدیمی یا افشاشده

مصرف ناایمن APIهای بالادست و شخص ثالث

تزریق و اعتبارسنجی ورودی در بدنه، پارامتر و هدر

بازبینی اسکیمای API (OpenAPI) در برابر رفتار واقعی

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

1
دامنه‌گذاری و کشف
محدوده و معیار موفقیت را توافق می‌کنیم، سپس API را از روی مستندات، اسکیمای OpenAPI و ترافیک واقعی نقشه‌برداری می‌کنیم: endpointها، نقش‌ها، مکانیزم‌های احراز هویت و داده‌ای که هر عملیات لمس می‌کند. برای هر نقش یک حساب آزمایشی می‌خواهیم، چون بیشتر ضعف‌های دسترسی تنها وقتی آشکار می‌شوند که یک نقش به داده‌ی نقش دیگر برسد.
2
تست احراز هویت و مجوزدهی
قلب تست API: تلاش می‌کنیم به‌جای یک کاربر به اشیای کاربر دیگر برسیم (BOLA)، عملیات ویژه را از نقش پایین‌تر فراخوانی کنیم (BFLA) و جریان توکن، نشست و بازیابی رمز را بشکنیم. این‌ها همان خطاهایی‌اند که بیشتر به رخنه‌ی واقعی داده می‌انجامند و اسکنرها به‌ندرت پیدایشان می‌کنند.
3
تست داده، ورودی و پیکربندی
افشای بیش از حد داده و mass assignment، تزریق در بدنه و پارامتر و هدر، SSRF، محدودیت نرخ و مصرف منابع، و پیکربندی نادرست در هدرها، CORS، مدیریت خطا و روش‌های HTTP را بررسی می‌کنیم؛ همه در برابر OWASP API Security Top 10.
4
اعتبارسنجی و تحلیل اثر
هر یافته با یک اثبات مفهوم تکرارپذیر تأیید می‌شود؛ خروجی تأییدنشده‌ی اسکنر گزارش نمی‌شود. شدت را با CVSS و اثر واقعی بر کسب‌وکار تعیین می‌کنیم تا بتوانید یک مسئله‌ی نظری را از موردی که داده‌ی مشتری را افشا می‌کند تشخیص دهید.
5
گزارش‌دهی و تست مجدد
گزارشی دریافت می‌کنید که هم مدیر و هم مهندس می‌توانند بر اساس آن اقدام کنند، همراه با مسیر رفع اولویت‌دار. پس از رفع، یافته‌ها را دوباره تست می‌کنیم تا مطمئن شویم رفع‌ها پابرجا هستند و چیز تازه‌ای باز نکرده‌اند.
خروجی‌ها
  • خلاصه‌ی اجرایی با نمای کلی ریسک برای تصمیم‌گیرندگان
  • گزارش فنی تفصیلی، هر یافته با اثبات مفهوم تکرارپذیر
  • نگاشت یافته‌ها به OWASP API Security Top 10
  • شدت CVSS و اثر کسب‌وکار برای هر یافته
  • نقشه‌ی راه رفع با اولویت و گام‌های مشخص
  • راهنمای سخت‌سازی امنیت API
  • تست مجدد پس از رفع

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

تخصص امنیت API
درک عمیق و به‌روز از امنیت REST API و OWASP API Security Top 10، از جمله ضعف‌های کنترل دسترسی (BOLA و BFLA) که بیشتر رخنه‌های واقعی API از آن‌ها می‌آید.
عمق دستی، نه فقط اسکن
تست دستی و سیستماتیک هر endpoint، نقش و جریان داده؛ دقیقاً روی ضعف‌های دسترسی و منطق کسب‌وکار تمرکز می‌کنیم که اسکنر آن‌ها را نمی‌بیند.
پوشش OWASP API Top 10
تست همسو با OWASP API Security Top 10 تا پوشش دسته‌های بحرانی ریسک API روشن و قابل بررسی باشد، نه فرض‌شده.
یافته‌های قابل اجرا و اولویت‌دار
راهنمایی روشن و اولویت‌بندی‌شده بر پایه‌ی ریسک، با اثبات مفهوم تکرارپذیر و گام‌های عملی رفع برای هر یافته.

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

ارزیابی امنیت REST API چیست؟

ارزیابی امنیت REST API، رابط‌های RESTful را برای آسیب‌پذیری‌های امنیتی می‌سنجد: مجوزدهی شکسته‌ی سطح شیء و عملیات، احراز هویت شکسته، افشای بیش از حد داده، مصرف نامحدود منابع، SSRF، تزریق و پیکربندی نادرست؛ همه در برابر OWASP API Security Top 10، و هر یافته اثبات و رتبه‌بندی می‌شود.

BOLA چیست و چرا مهم‌ترین ریسک API است؟

BOLA یا «مجوزدهی شکسته‌ی سطح شیء» یعنی API فقط بر اساس شناسه‌ی درون درخواست یک شیء را برمی‌گرداند یا تغییر می‌دهد، بی‌آنکه بررسی کند فراخواننده مالک آن است؛ پس با تغییر یک شناسه می‌توان به داده‌ی کاربر دیگر رسید. این مورد صدر فهرست OWASP است چون رایج، ساده برای بهره‌برداری و مستقیماً افشاکننده‌ی داده است؛ اسکنرها به‌ندرت آن را می‌گیرند، چون درک این‌که چه کسی باید به چه چیزی دسترسی داشته باشد لازم است، و به همین دلیل آن را با حساب‌هایی از نقش‌های مختلف تست می‌کنیم.

برای شروع چه چیزی از ما لازم داریم؟

نشانی پایه و محیط API، مستندات یا اسکیمای OpenAPI در صورت وجود، و حساب‌های آزمایشی برای هر نقش (دست‌کم دو کاربر در هر نقش تا دسترسی میان‌کاربری را بسنجیم). یک محیط staging که آینه‌ی تولید باشد بهترین حالت است. پیش از شروع، دامنه و هر endpointی را که باید کنار گذاشته شود توافق می‌کنیم.

تفاوت تست جعبه‌سیاه، جعبه‌خاکستری و جعبه‌سفید چیست؟

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

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

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

تست روی تولید انجام می‌شود و آیا API در حین تست ایمن می‌ماند؟

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

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

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

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

تست وب، اپلیکیشن رو به مرورگر را می‌آزماید؛ تست API مستقیماً و بدون رابط کاربری خودِ رابط را هدف می‌گیرد. API شناسه‌ی اشیا، نقش‌ها و عملیات را مستقیم‌تر در معرض می‌گذارد، پس ضعف‌های مجوزدهی و منطق کسب‌وکار غالب‌اند و استاندارد مرجع، OWASP API Security Top 10 است نه WSTGِ متمرکز بر وب.

ارزیابی امنیت REST API چقدر طول می‌کشد؟

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

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