با پیچیدهتر شدن حملات سایبری به شبکههای سازمانی، سازمانها با سرمایهگذاری بر روی آخرین نسخههای دیوارهی آتش، محافظت از دادهها و نقاط انتهایی و همچنین فناوریهای پیشگیری از نفوذ، امنیت محیط خود را افزایش دادهاند. نفوذگران نیز در پاسخ، در مسیرهایی با کمترین مقاومت در حال حرکت بوده و بهدنبال راههای جدیدی برای بهرهبرداری هستند. بسیاری از کارشناسان امنیتی معتقدند که موج بعدی نفوذهای سازمانی، بهرهبرداری از واسطهای برنامهنویسی نرمافزار (APIs) خواهد بود.
در حقیقت، مهاجمان سایبری در حال برنامهریزی حملات خود برای هدف قرار دادن APIها هستند. افشای دادهها در Panera Bread یک مثال خوب برای این موضوع است. این زنجیرهی نانوایی-کافه با قرار دادن یک نقطهی انتهایی API غیرقابلشناسایی بر روی وبسایت خود، به هرکسی اجازه داد تا اطلاعات مشتریان مانند نام کاربری، آدرس ایمیل، شمارهی تلفن همراه، چهار رقم آخر کارت اعتباری، تاریخ تولد و غیره را مشاهده کند. درنهایت، دادههای متعلق به بیش از ۳۷ میلیون مشتری در طول یک دورهی ۸ ماهه افشاء شد. اکنون این پرسش مطرح است که چگونه میتوان خطرات مربوط به APIها را کاهش داد، بدون آنکه از مزایای ارائهشده توسط آنها (توسعهی سریع و قابلیت گسترش یافتن) کاسته شود.
استفاده از API در توسعهی نرمافزارها به استاندارد جدیدی تبدیل شده است که به موجب آن توسعهدهندگان میتوانند بهجای ایجاد تمام قابلیتهایی که از ابتدا نیاز دارند، از قابلیتهای یکپارچهسازی ارائهشده توسط سرویسهای شخص ثالث بهره گیرند. این امر، توسعهی سریعتر محصولات و سرویسهای جدید را ممکن میسازد. طبق یک نظرسنجی، کسبوکارها بهطور متوسط ۳۶۳ API مختلف را مدیریت میکنند که دو سوم (۶۹ درصد) از این سازمانها APIهای خود را در دسترس عموم و شرکای خود قرار میدهند. توسعهدهندگان میتوانند کدهای خود را با جستجو در کتابخانههای API مانند API Hound یا ProgrammableWeb تکمیل نمایند. API Hound از اسکنرهای دستگاه برای یافتن بیش از ۵۰ هزار API موجود استفاده کرده و ProgrammableWeb بزرگترین دایرکتوری از APIهای جهان را حفظ میکند.
APIها از تجربیات دیجیتال تعاملی پشتیبانی میکنند و کاربران از آنها برای تحول دیجیتالی کسبوکار استفاده میکنند، با این حال، مکانهای مختلفی برای دسترسی نفوذگران به دادههای سازمان فراهم کرده و حتی میتوانند باعث ایجاد اختلالات بزرگ تجاری شوند. روشهای رایج حمله برای بهرهبرداری از APIها عبارتند از:
• دستکاری پارامتر API – نفوذگران اغلب از این تکنیک برای مهندسی معکوس یک API و یا دسترسی بیشتر به دادههای حساس استفاده میکنند.
• دستکاری کوکی نشست – در این حملات سعی میشود تا بهمنظور دور زدن سازوکارهای امنیتی یا ارسال دادههای نادرست به سرورهای برنامه، از کوکیها بهرهبرداری شود.
• حملات مرد میانی – نفوذگران میتوانند با استراق سمع اتصال بدون رمزنگاری میان یک سرویس گیرندهی API و سرور، به دادههای حساس دسترسی پیدا کنند.
• دستکاری محتوا – با تزریق محتوای مخرب (بهعنوان مثال، مسموم کردن نشانههای وب JSON)، بهرهبرداری میتواند در پسزمینه توزیع و اجرا شود.
• حملات DDoS – کدهای ضعیف نوشتهشده میتوانند با ارسال پارامترهای ورودی نامعتبر، برای مصرف منابع کامپیوتر استفاده شده و پس از آن نیز، منجر به اختلال در برنامهی وب پشتیبانیکنندهی API میشوند.
بهمنظور جلوگیری از تهدیدات مبتنی بر API، سازمانها باید اقدامات زیر را انجام دهند:
۱٫ در نظر گرفتن امنیت
متاسفانه، امنیت DevOps یا DevSecOps، اغلب در فرآیند توسعهی نرمافزارها از جمله تأمین امنیت عمومی APIها کمتر مورد توجه قرار میگیرد. توسعهدهندگان باید پیامدهای امنیتی ناشی از استفاده از API، ازجمله روشهایی که APIها میتوانند برای اهداف نابجا استفاده شوند را در فرآیند توسعهی کلی در نظر بگیرند.
یکی از مولفههای اساسی در امنیت APIها، پیادهسازی اصول احراز هویت جامع است. توسعه دهندگان برای APIها معمولا از توکنهای در دسترس استفاده میکنند که این توکنها از طریق یک فرایند خارجی (بهعنوان مثال، هنگام ثبتنام برای API) یا از طریق یک سازوکار جداگانه (بهعنوان مثال، OAuth) بهدست میآیند. این توکنها با هر درخواست به یک API ارسال شده و قبل از پردازش درخواست توسط API تایید میشوند.
۲٫ اعمال بهترین روشها و استانداردهای امنیتی
افزودن بهترین شیوههای کدنویسی و حفظ زبانهها بر روی رایجترین آسیبپذیریهای API (بهعنوان مثال، تزریق SQL/ اسکریپت و آسیبپذیریهای احراز هویت) باید از برنامههای اصلی توسعهدهندگان و کارکنان DevSecOps باشد. پروژهی امنیت OWASP منبع خوبی برای این نوع از اطلاعات است.
۳٫ نظارت از طریق دروازهی API
هنگامیکه APIهای متفاوتی در پایگاه کد برنامه ذخیره میشوند، یک دروازهی API میتواند بهمنظور به حداقل رساندن حملات DDoS و اجرای سیاستهای امنیتی پیشفرض (مانند قوانین احراز هویت)، برای نظارت، تجزیه و تحلیل و مسدود کردن ترافیک مورد استفاده قرار گیرد. طبق یک نظرسنجی، ۸۰ درصد از سازمانها از یک سرویس ابر عمومی برای محافظت از دادهها در پشت APIهای خود استفاده کرده و بیشتر کسبوکارها از ترکیب دروازههای API (63٫۲ درصد) و دیوارههای آتش برنامههای وب (۶۳٫۲ درصد) برای این منظور استفاده میکنند.
پذیرش این توصیههای DevSecOps میتواند خطرات امنیتی مرتبط با APIها را به حداقل رسانده و از برنامهها در برابر حملات سایبری محافظت کند.