با افزایش بیسابقه میکروسرویسها و تعجیل در ساخت سریعتر برنامههای کاربردی، از API بیش از هر زمان دیگری برای متصلسازی سرویسها و انتقال داده استفاده میشود. اما با تعداد فزایندهای از برنامههای کاربردی کوچکتر که سعی در برقراری ارتباط با یکدیگر دارند، ایمنسازی APIها هم APIهای خود کاربر و هم APIهای اشخاص ثالث بیش از پیش با چالشهای اساسی روبهرو است. علاوه بر آن، اگر فشاری را که توسعهدهندگان برای تولید متحمل میشوند که فشار بسیار زیادی است به این چالشها اضافه کنیم، شرایط حاصل دستکمی از فاجعه امنیتی نخواهد داشت. مهمترین خطرات امنیتی API عبارتند از: خطر امنیتی در سطح Object خراب، مجوزدهی در سطح کاربر و عملکرد، افشای بیش از حد دادهها، کمبود منبع، پیکربندی نادرست امنیتی و لاگینگ و مانیتورینگ ناکافی. پیامدهای این خطرات و سایر خطرات بسیار زیاد است.
در واقع، برخی از بزرگترین نقضهای امنیتی اخیر بهدنبال نقاط آسیبپذیر API رخ داده است. حادثه مشهور نقض امنیتی کمبریج آنالیتیکا که طی آن نقصی در API فیسبوک باعث شد اطلاعات شخصی بیش از 50 میلیون نفر افشا شود، نمونهای از این حوادث است، و این تنها یکی از دهها نمونه از اطلاعات حساس شخصی و رقابتی است که بهعلت پیکربندی نامناسب یا ایمنسازی ناکافی APIها افشا شده است. با افزایش حجم و سرعت برنامههای کاربردی مبتنی بر میکروسرویس، نیاز است سازمانها با ایجاد یک Pipeline که امنیت را بهصورت End to end لحاظ و اعمال میکند، امنیت API را بیش از هر زمان دیگری جدی بگیرند. ماهیت کسبوکار و صنعتی که در آن قرار دارد، تعیینکننده ملاحظات امنیتی زیادی در خصوص API است.
در ادامه 10 تا از بهترین روشهایی معرفی شده است تا با بهکارگیری آنها خطرات امنیتی API ها کاهش یافته و همچنین اطمینان حاصل می شود ایمنسازی بر اساس نحوه استفاده از آنها صورت گرفته است. این راهکارها به کاربران کمک میکند تا مطمئن شوند همهچیز در سر جای خود قرار دارد تا امنیت API تأمین گردد:
1. شناسایی نقاط آسیبپذیر
تنها راه برای ایمنسازی مؤثر APIها این است که بدانیم کدام بخش از چرخه عمر API ناامن است. البته، گفتن این کار آسان تر از انجام آن است، به خصوص که استفاده سازمان از APIها در مقیاسی گسترده صورت میگیرد. مهم است که کل چرخه عمر API را در نظر بگیریم، زیرا APIها باید به خودی خود بهعنوان مصنوعاتی نرمافزاری در نظر گرفته شوند و به این ترتیب، باید یک چرخه عمر کامل، از جمله تعمیر، نگهداری و بازنشستگی را دنبال کنند.
بیشتر بخوانید: احراز هویت API چیست و دو نوع اصلی از پروتکلهای احراز هویت
2. استفاده از OAuth
برای جلوگیری از خطرات امنیتی API یکی از مهمترین جنبههای امنیت API کنترل دسترسی برای احراز هویت و مجوزدهی می باشد. یکی از ابزارهای قدرتمند برای کنترل دسترسی ایپیآی، OAuth است؛ OAuth یک چارچوب مجوزدهی مبتنی بر توکن است که امکان دسترسی سرویسهای Third-party به اطلاعات را بدون افشای اطلاعات اعتباری کاربر فراهم میکند.
3. استفاده از توکن
استفاده از توکن، بهطور کلی، یکی از مناسبترین روشهای تأمین امنیت API است. توسعهدهندگان میتوانند از توکنهای مختص هویتها بهعنوان روشی نسبتاً ساده اما مؤثر برای ایجاد هویتهای قابلاعتماد و کنترل دسترسی به خدمات استفاده کنند.
4. رمزگذاری دادهها
بسیار مهم است که همه دادهها، به ویژه دادههای قابل شناسایی شخصی، باید با استفاده از روشی مانند Transport Layer Security یا TLSرمزگذاری شود. توسعهدهندگان همچنین باید برای اطمینان از این که فقط کاربران مجاز دادهها را رمزگشایی و اصلاح میکنند، درخواست امضا را لحاظ کنند.
5. استفاده از محدودسازی و کاهش نرخ
با افزایش محبوبیت API، احتمال حمله به آنها نیز افزایش مییابد. مثلاً APIها هدفی اصلی برای حملات DDoS هستند. کاربران برای جلوگیری از حملات DDoS و همچنین افزایش ناگهانی تعداد درخواستها به API و سایر مسائلی که بر عملکرد و امنیت تأثیر میگذارند، بهتر است محدودیتهایی را در خصوص نحوه و تعداد دفعات فراخوانی API خود اعمال کنند. محدودسازی نرخ همچنین میتواند اتصالات را کم کند و تعادلی بین دسترسی و دسترسپذیری ایجاد کند.
برای مشاوره رایگان جهت (باز)طراحی امنیت شبکه و یا انجام تست نفوذ مطابق با الزامات افتا با کارشناسان شرکت APK تماس بگیرید. |
6. استفاده از API Gateway
دروازههای API بهعنوان نقطه اصلی اجرای قوانین و مدیریت ترافیک API عمل میکنند. دروازه مناسب به سازمانها اجازه میدهد تا ترافیک را احراز هویت و همچنین نحوه استفاده از APIها را کنترل و تجزیه و تحلیل کنند.
7. استفاده از Service Mesh
تکنولوژی Service Mesh مانند API Gateways لایه دیگری از مدیریت و کنترل را هنگام هدایت درخواستها از یک سرویس به سرویس دیگر اعمال میکند. این تکنولوژی نحوه کار همه این قطعات متحرک را با هم بهینه میکند؛ مثلاً، اطمینان حاصل میکند احراز هویت مناسب، کنترل دسترسی و سایر اقدامات امنیتی بهدرستی انجام شده باشد.
Service Mesh بهویژه با افزایش میزان استفاده از میکروسرویسها اهمیت بیشتری مییابد. در واقع، با افزایش چشمگیر و ناگهانی استفاده و پیادهسازی میکروسرویسها، مدیریت API کمکم به لایه ارتباط سرویس انتقال مییابد و راهکارهایی در سطح Service Mesh در دسترس قرار خواهد گرفت. خودکارسازی برای پشتیبانی از افزایش تعداد APIها حیاتی خواهد شد.
بیشتر بخوانید: چهار آسیبپذیری API و روش های پیشگیری از وقوع آنها
8. Zero-trust
در مدل امنیت محیطی، آنچه در داخل است مطمئن است و آنچه بیرون است قابلاعتماد نیست. شبکه دیگر به سادگی قبل نیست، به همین دلیل است که مدل Zero-trust یا ZTM، بهویژه در خصوص کاربران Remote منطقی به نظر میرسد. با ZTM، تمرکز امنیتی از مکان به کاربران، داراییها و منابع خاص تغییر میکند.
9. اعتبارسنجی پارامترها
اعتبارسنجی پارامترها کمک میکند تا اطمینان حاصل شود که دادههای دریافتی آسیبزا نیستند. در این چارچوب، تمام دادههای دریافتی در برابر طراحی دقیقی قرار میگیرند تا اطمینان حاصل شود که فقط ورودیهای مجاز و معتبر به سیستم وارد میشوند.
10. ایجاد مدل تهدید
مدلسازی تهدید رویکردی ساختاریافته برای شناسایی و ارزیابی ریسکهاست. بهترین استفاده از مدلهای تهدید بهعنوان اقدامی پیشگیرانه است، اما همچنین باید بهعنوان چرخهای پیوسته برای ارزیابی، کاهش و جلوگیری از آسیبپذیریهای برنامه کاربردی به شیوهای خودکار و در عین حال کنترلشده در نظر گرفته شوند.