سازمان OWASP اخیرا یه پیش نویس از OWASP API Top 10 که از سال 2019 بروزرسانی نشده بود، داده و از جامعه امنیت خواسته در موردش اظهار نظر کنن. در این پست به بررسی مقاله akamai در خصوص این پیش نویس پرداختیم.
برای مشاهده و ارائه بازخورد در این خصوص میتونید از صفحه گیتهاب OWASP اقدام کنید.
OWASP Top 10 چیه
OWASP یه سازمان غیردولتی هستش که مستندات اطلاع رسانی امنیتی رو براساس بازخورد جامعه و ارزیابی کارشناسان ایجاد میکنه که رایجترین انواع آسیب پذیری های موجود در سازمانهای امروزی رو توصیف میکنه.
OWASP Top 10 اولین بار در سال 2003 منتشر شده و بطور منظم بروزرسانی میشه. مخاطبین Top 10 افراد مختلفی اعم از توسعه دهندگان ، تحلیلگران امنیتی و CISOها تشکیل میدن. برخی از افراد روی مباحث فنی مستندات متمرکز هستن و برخی برای اطمینان از اینکه محصولی که خریداری کردن ایمنی مربوطه رو داره، از اون استفاده میکنن.
OWASP API Top 10 چیه
OWASP برای نشون دادن اهمیت امنیت در APIها مستنداتی به غیر از web application security Top 10 و بصورت اختصاصی با عنوان API Top 10 منتشر میکنه. این مستندات روی استراتژی ها و راه حل ها برای درک و کاهش آسیب پذیری ها و خطرات امنیتی مختص APIها متمرکز هستن.
API Top 10 از سال 2019 بروزرسانی نشده بود اما با توجه به افزایش استفاده از APIها ، یسری تغییرات در غالب یه پیش نویس از طرف OWASP ارائه شده و در اختیار افراد قرار گرفته تا بازخوردهای خودشون رو نسبت به اون اعلام کنن. این تغییرات بیشتر روی ماهیت تهدیدات API متمرکز هستش.
نکته ای که در خصوص APIها وجود داره اینه که محافظت از اونها چالشی و پیچیده هستش. برخی حملات روی مشتریها متمرکزه و برخی روی منطق کسب و کار، بنابراین یه محصول امنیتی به قدرت محاسباتی بالایی نیاز داره تا بتونه از APIها محافظت کنه.
شکل زیر تغییراتی که بین نسخه 2019 و 2023 هستش رو نشون میده :
اگه به شکل بالا دقت کنید، تقریبا 5 مورد اول مرتبط با Authorization هستش.این نشون دهنده پیچیدگی این فرایند Authorization و همچنین اینکه کشف آسیب پذیری باید روی منطق API باشه ،نه بعنوان مشکل نرم افزاری.
تفاوت بین API3:2023 BOPLA و API1:2023 BOLA :
Mass Assignment و Excessive Data Exposure با هم ترکیب شدن و در نسخه جدید در Broken Object Property Level Authorization (BOPLA) قرار گرفتن. تفاوت بین Broken Object Property Level Authorization (BOLA) و BOPLA در اینه که BOLA به یه شی کامل اشاره میکنه اما BOPLA به یه ویژگی در داخل شی اشاره میکنه. شکل زیر نشون دهنده BOPLA هستش:
تعریف جدید از مدافعین میخواد که عمیقتر روی اشیاء تمرکز کنن ، زیرا درک پیچیدگی و منطق کسب و کار رو،برای شناسایی حملات افزایش میده.
پوشش BOLA به معنی پوشش BOPLA نیست . همچنین ترکیب Mass Assignment و Excessive Data Exposure در یه دسته واحد، نشون دهنده توجه به ویژگی های یه شی هستش. این مسئله برای CISO که یه محصول امنیتی برای APIها رو انتخاب میکنن، مهمه، چون باید محصولی رو انتخاب کنن که هر دو حمله رو پوشش بده.
اضافه شدن API6:2023 ssrf و حذف API8:2019 Injection در نسخه جدید :
جامعه OWASP حملات injection رو در نسخه جدید کنار گذاشته و SSRF رو به این لیست اضافه کرده. دلایل این امر میتونه :
- در کلود، Kubernetes و داکر، URLها از طریق API انتقال داده میشن و بنابراین APIها بیشتر میتونن آسیب پذیری SSRF داشته باشن تا injection .
- استفاده از سرویس های رایج مانند SaaS, PaaS, CloudaaS نسبت به دستورات مانند SSO و OAuth 2.0، بیشتر URLها رو در معرض افشاء قرار میده و احتمال زیادی برای ریدایرکت شدنشون داره.
- injection در نسخه جدید بخشی از API7:2023 Security Misconfiguration شده . پیکربندی امنیتی مناسب که شامل WAF هم میشه ، بطور پیش فرض از injection جلوگیری میکنه.
اضافه شدن API8:2023 Lack of Protection from Automated Threats به API TOP 10 :
OWASP اعلام کرده مهاجمین میتونن با خودکار کردن حملات ، به سازمانها آسیب بزنن. در این خصوص جزییاتی خاصی نیست و اشاره به OWASP Automated Threats to Web Applications داره ، اما دیدش کلی هست.
چیزهایی که در این مورد باید بدونیم اینه که :
- تهدیدات بصورت خودکار روی تکنیکهای دفاعی تاثیر گذاشتن و پیچیده تر شدن.
- APIها نقاط کانونی هستن چون هدفشون ارائه خدمات در مقیاس بزرگ هستش.
- لایه های دفاعی خودکار باید کل منطق کسب و کار رو درنظر بگیرن و نه تنها خود API.
اضافه شدن API10:2023 Unsafe Consumption of APIs به API TOP 10 :
از اونجاییکه محصولات -aaS به سرعت در حال رشد هستن، APIها هم اغلب مجبورن با سرویسهای مختلف داخلی و خارجی (شخص ثالث) ادغام و ارتباط برقرار کنن و دادهها رو ارسال و دریافت کنن. پیروی از قوانین اساسی امنیت در این موارد هم مهمه و شناسایی/دفاع در این فضا برای محصولات امنیتی می تونه پیچیده باشه.
OWASP طیف وسیعی از پیشنهادات در این خصوص رو ، هم مختص APIها و هم بصورت کلی ارائه داده. از جمله :
بررسی دقیق ریدایرکتها. این بررسی رو براساس منطق کسب و کار ایجاد کنید. همچنین محصولات امنیتی داشته باشید که در حال چک کردن، مونیتورینگ و inspecting جریان ترافیک باشن.
به APIهای شخص ثالث اعتماد نکنید، حتی اگه اونا بصورت تجاری ارائه شده باشن. در برنامه های خودتون رویکرد دفاع و محدودیت رو برای این APIها در نظر بگیرید.