شکستن افسانههای ایپیآی (API MythBusters Crushing Five Security Myths that are Crushing Your Safety)
هکرها و مهاجمان دو حقیقت کلیدی درباره امنیت میدانند:
ابزارهای امنیتی امروزی فاقد زمینهسنجی و درک بستر واقعی هستند. بنابراین مهاجمان از این موضوع بهرهبرداری میکنند و بهدنبال حملات مرتبط با منطق کاربردی و تجاری میروند. زمانی که سازمانها APIها را به تولید میبرند، تنها تا ۳۰٪ از حالتهای ممکن منطق برنامه آزمایش شدهاند.
افسانه ۱ – فایروال برنامه وب (WAF) امنیت API را تضمین کرده و جلوی همه حملات API را میگیرد
سازمانها ادعا میکنند WAF امنیت API را فراهم کرده و از حملات API جلوگیری میکند. اما WAF نمیتواند امنیت لازم را ارائه دهد و نه میتواند مانع همه حملات شود. جلوگیری از تمامی انواع حملات دشوار است. شما باید بهطور مداوم APIها را زیرنظر داشته باشید و بتوانید هر حادثهای را فوراً شناسایی و اصلاح کنید.
امروزه هر نقطه پایانی API دارای منطق تجاری و کاربردی ویژه خود است. بنابراین هر API دارای مسیر حمله مخصوص به خود است که مهاجم از آن بهرهبرداری میکند. اگر صرفاً بهدنبال امضاهای از پیش تعریفشده در WAF باشیم، احتمالاً بخش بزرگی از حملات و عناصر حیاتی آنها را از دست میدهیم.
از آنجا که هکرها منطق API را مطالعه کرده و حملاتی هماهنگشده طی ماهها طراحی میکنند، باید رفتار مصرفکننده API را در یک بازه زمانی بررسی کنیم تا تراکنشهای مشکوک دیده شوند.
افسانه ۲ – IAM و API Gateway از APIهای من محافظت میکنند
اگر هکر احراز هویت شود و وارد سیستم گردد، ممکن است کوکیها را دستکاری کرده و به دادههایی دسترسی پیدا کند که نباید داشته باشد. از آنجا که همه تراکنشها معتبر بهنظر میرسند و هم احراز و هم نقطه پایانی معتبر هستند، نه IAM و نه WAF این حمله را شناسایی نمیکنند.
اگر دادهها بهصورت تدریجی و در مدتزمان طولانی سرقت شوند، بدون پایش دقیق و طولانیمدت، کسی متوجه نخواهد شد.
افسانه ۳ – توسعهدهندگان امنیت API را خودشان در کد قرار میدهند
فشار زیادی روی توسعهدهندگان است و ممکن است وقت کافی برای افزودن ویژگیهای امنیتی نداشته باشند. بسیاری از توسعهدهندگان هیچ آموزش امنیتی رسمی نمیبینند. بدون حضور متخصصان امنیتی در نقشهای مشخص، فرض اینکه امنیت بهطور خودکار درون کد خواهد بود، شما را به امنیت واقعی نخواهد رساند.
فیسبوک یک نفوذ ۱۸ ماهه داشت. مهاجم با کشف تلاقی دو سرویس خرد توانست وارد حسابها شود. تنها دلیل شناسایی مهاجم این بود که او حجم حمله خود را آنقدر زیاد کرد که یک رفتار غیرعادی در سیستم کشف شد. یعنی اگر هکر محتاطتر بود، هرگز دیده نمیشد.
افسانه ۴ – ما یک خط لوله DevSecOps بسیار بالغ و کامل داریم
در بسیاری از سازمانها سه عنصر کلیدی در بررسی منطق برنامه وجود ندارد:
بسیاری از سازمانها API را در مرحله طراحی مستندسازی نمیکنند. ابزارهای زیادی وجود دارد (از جمله Salt) که میتوانند کمک کنند. تحلیلهای زیادی انجام میشود، اما هیچ ارزیابی رفتاری در خط لوله وجود ندارد تا مسیرهای احتمالی نفوذ را شناسایی کند.
Salt فناوری جدیدی مبتنی بر هوش مصنوعی معرفی کرده است. این فناوری محیطهای staging و تست عملکرد را بررسی میکند تا بفهمد منطق API چگونه کنار هم قرار گرفته است. همچنین Salt یک فناوری هوشمند مهاجمگونه دارد که نقش یک هکر را بازی کرده و APIها را برای یافتن آسیبپذیری بررسی میکند.
بخش بعدی حفاظت زمان اجراست؛ جایی که Salt از ابتدا بر آن تمرکز داشته. هیچ خط لولهای قادر به پوشش ۱۰۰٪ تمام حالتهای ممکن منطق برنامه نیست، اما این ابزار موارد ناشناخته را برای شما کشف میکند. این ابزار میتواند رفتار API را در طول زمان مدلسازی کند تا استفادههای خرابکارانهای که حتی فکر نمیکردید ممکن باشد رؤیت و متوقف شوند.
افسانه ۵ – ما گزارش دسترسیها را به Splunk ارسال میکنیم
سازمانها حجم عظیمی از دادهها را به Splunk میفرستند. اما تحلیل جزئی تمام این دادهها ممکن نیست. Splunk ممکن است خطاهای ۵۰۰ یا ۴۰۴ را نشان دهد، اما اطلاعات رفتاری و زمینهای کمی در اختیار میگذارد. با نگاه به لاگ دسترسی نمیتوان فهمید چه چیزی در payload درخواست یا پاسخ وجود داشته است.
Splunk برای این کار طراحی نشده است. ابزارهای جدیدی وجود دارند (از جمله ابزارهای Salt Security) که دقیقاً برای همین حوزه ساخته شدهاند. سازمانها باید علاوه بر هشدار، «زمینه» هر هشدار را نیز دریافت کنند.
جمعبندی
شما به فناوریهایی نیاز دارید مانند آنچه Salt Security ارائه میدهد تا:
- دید کامل نسبت به تمامی APIها داشته باشید
- بفهمید چگونه APIها ساختاربندی شده و استفاده میشوند
- نوع دادههای در حال تبادل را تحلیل کنید
- رفتار نقاط پایانی را بسنجید
این فناوری میفهمد APIها چگونه باید استفاده شوند و با کمک هوش مصنوعی پیشرفته، فعالیتهای مخرب را دقیق گزارش میکند. همچنین اطلاعات امنیتی را در کل چرخه توسعه نرمافزار از مرحله طراحی تا استقرار در تولید ارائه میدهد و دوباره آن را به چرخه SDLC بازمیگرداند.
