امنیت API چیست؟

امنیت رابط برنامه‌نویسی اپلیکیشن (API)، به تکنیک های پیشگیری و یا کاهش حملات به API ها اشاره دارد. APIها به عنوان چارچوب پشتیبان برای برنامه های موبایل و وب کار می کنند. بنابراین، محافظت از داده های حساسی که آنها منتقل می کنند بسیار مهم است.

API رابطی است که نحوه تعامل نرم افزارهای مختلف را مشخص می کند. انواع درخواست‌هایی که بین برنامه‌ها رخ می‌دهند، نحوه ایجاد این درخواست‌ها و انواع فرمت های داده‌ای که استفاده می‌شوند را کنترل می‌کند. API ها در برنامه های اینترنت اشیا (IoT) و در وب سایت ها استفاده می شوند. آنها اغلب داده‌ها را جمع‌آوری و پردازش می‌کنند یا به کاربر اجازه می‌دهند اطلاعاتی را که در محیطی که API پردازش می‌شود وارد کند.

به عنوان مثال، یک API وجود دارد که نقشه های گوگل را اجرا می کند. یک طراح وب می تواند نقشه های گوگل را در صفحه ای که در حال ساخت آن است قرار دهد. هنگامی که کاربر از Google Maps استفاده می کند، از کدهای جداگانه طراح استفاده نمیکند، بلکه آنها به سادگی از یک API از پیش نوشته شده توسط Google استفاده می کنند. امنیت API شامل امنیت تمام APIهایی است که شما در اختیار دارید و همچنین آنهایی که به طور غیرمستقیم استفاده می کنید.

چرا امنیت Web API مهم است؟

امنیت API ، به خصوص با ظهور اینترنت اشیا، اهمیت فزاینده ای پیدا کرده است. داده‌های مهم و حساس بین کاربران، APIها و برنامه‌ها و سیستم‌هایی که با آنها تعامل دارند، منتقل می‌شود. یک API ناامن می تواند هدف آسانی برای هکرها باشد تا به یک کامپیوتر یا شبکه ایمن دسترسی پیدا کنند. مهاجمان ممکن است به دنبال انجام حملات Man-in-the-Middle (MITM)، انکار سرویس توزیع شده (DDoS)، حملات تزریق یا کنترل دسترسی باشند.

API چیست؟

API مکانیزمی برای تعامل دو سیستم نرم افزاری می باشد . به عنوان مثال، برنامه Google Maps در یک تلفن همراه همه نام‌های خیابان‌ها، رستوران‌ها، سالن‌های سینما و سایر مکان‌های دیدنی را ذخیره نمی‌کند. در عوض، به برنامه دیگری در سرور Google متصل می شود که همه آن اطلاعات را در خود دارد. این اتصال با استفاده از یک API امکان پذیر است.

امنیت API REST

یک REST API راهی برای ارتباط دو سیستم کامپیوتری مثل یک مرورگر وب و سرورها از طریق HTTP است.  امنیت REST API می‌تواند از حملاتی که شامل داده‌های مخربی که مهاجم در تلاش است با استفاده از یک API معرفی کند، جلوگیری کند.

REST، استاندارد دیگری از API برای دسترسی به اطلاعات پایگاه داده و تغییر آن اطلاعات است. داده های قابل ذخیره سازی که ارتباط کاربر و سرور را ساده می کند. برای ارتباط میان دو وب سرویس یا اپلیکیشن استفاده می شود و مشخص می کند دستگاه های مختلف چگونه به هم دیگر متصل شوند.



نحوه ایمن سازی REST API :

REST API از پروتکل‌های لایه سوکت‌های امن (SSL)، امنیت لایه انتقال (TLS) و پروتکل امن انتقال ابرمتن (HTTPS) پشتیبانی می‌کند که با رمزگذاری داده‌ها در طول فرآیند انتقال، امنیت را فراهم می‌کنند. همچنین می‌توانید APIهای REST را با توکن‌هایی که برای اطمینان از معتبر بودن ارتباطات قبل از اجازه دادن به آنها استفاده می‌شود، ایمن کنید.

در سطح API، امنیت با بررسی داده های در حال حرکت به محیط API کار می کند. در سطح برنامه وب ، امنیت API تلاشها برای عدم کارکرد درست اپلیکیشن و یا ورود کاربران غیرمجاز و سرقت اطلاعات حساس را مسدود می نماید.

مقایسه REST API با SOAP API :

پروتکل دسترسی آسان به اشیاء (SOAP) در انتقال اطلاعات بین رایانه ها استفاده می شود. از امضاهای XML و نشانه‌گذاری تاییدیه امنیتی (SAML) برای احراز هویت و مجوز دادن به پیام‌هایی که منتقل می‌شوند استفاده می‌کند. به این ترتیب، کلیدهای API را فراهم می کند که از دسترسی مهاجمان جلوگیری می کند.

Simple Object Access Protocol یا SOAP یکی از پروتکل ها مبتنی بر XML است و آن را به منظور ارتباط با سرویس های مبتنی بر وب (وب سرویس) استفاده می نمایند.
امضاها و نشانه‌ها باید با فرمت‌های تایید شده مطابقت داشته باشند تا پیام مجاز به ارسال باشد. REST با امنیت SOAP API متفاوت است، به ویژه در این که به مسیریابی و تجزیه داده ها نیاز ندارد. در عوض، REST از درخواست‌های HTTP استفاده می‌کند و نیازی به بسته‌بندی مجدد آن داده‌ها در طول فرآیند انتقال ندارد.

کاربران ممکن است ترجیح دهند از SOAP به جای REST استفاده کنند زیرا طراحی سرویس های SOAP آسان تر است و کار کردن SOAP در میان پراکسی ها و فایروال ها بدون تغییر ابتدا آسان تر است.

استانداردهای امنیتی API

حفاظت از داده ها، به ویژه با توجه به ظهور پروژه های وابسته به داده، بسیار مهم است. بهترین راه برای ایمن سازی API ها، پیروی از بهترین شیوه های امنیتی API در زیر است.

آسیب پذیری ها (Vulnerabilities) :

امنیت API با درک خطرات درون سیستم شما آغاز می شود. برای شناسایی نقاط ضعف در چرخه عمر API، می توانید به دنبال آسیب پذیری های خاص باشید. به عنوان مثال، می‌توانید حملات مبتنی بر امضا را بررسی کنید، مانند حملات تزریق‌ SQL ، از قوانین سخت‌تر برای مسیرها و طرح‌واره‌های JSON استفاده کنید، یا از Rate Limiting برای محافظت از پشتیبان‌های API استفاده نمایید.

JSON مخفف عبارت JavaScript Object Notation به معنای زبان نماد گذاری اشیاء در جاوا اسکریپت است و برای انتقال داده مورد استفاده قرار می‌گیرد. یک فایل JSON با پسوند json. ذخیره می‌شود.
Rate Limiting، کاربران و بات‌هایی که بیش از حد از ویژگی‌ها و منابع سایت استفاده می‌کنند را block می‌کند. و می‌تواند تعداد زیادی از حملات بات‌ها را شناسایی و متوقف کند. در واقع Rate limiting، یک استراتژی برای محدود کردن ترافیک شبکه است.

توکن ها (Tokens) :

 توکن‌های امنیتی با نیاز به احراز هویت یک توکن در دو طرف ارتباط قبل از اجازه ادامه ارتباط کار می‌کنند. توکن ها را می توان برای کنترل دسترسی به منابع شبکه استفاده کرد زیرا هر برنامه یا کاربری که سعی کند با منبع شبکه بدون توکن مناسب تعامل داشته باشد رد می شود.

رمزگذاری (Encryption) :

رمزگذاری با پنهان کردن داده ها در یک انتهای ارتباط کار می کند و تنها در صورت استفاده از کلید رمزگشایی مناسب، امکان رمزگشایی در انتهای دیگر را فراهم می کند. در غیر این صورت، داده های رمزگذاری شده ترکیبی بی معنی از کاراکترها، اعداد و حروف است. رمزگذاری با غیرقابل خواندن داده‌ها برای کاربران غیرمجاز که دستگاه‌هایشان قادر به رمزگشایی داده‌ها نیستند، از امنیت API پشتیبانی می‌کند.



اتصال OAuth و OpenID :

مجوز باز (OAuth) نحوه دریافت توکن های دسترسی را به اپلیکیشن سمت سرویس گیرنده را دیکته می کند. OpenID Connect (OIDC) یک لایه احراز هویت است که روی OAuth قرار دارد و به مشتریان امکان می دهد هویت کاربر نهایی را بررسی کنند. هر دوی اینها با محدود کردن انتقال اطلاعات به مواردی که دارای توکن مناسب و قابل تأیید یا دارای اعتبار شناسایی مناسب هستند، احراز هویت و مجوز را تقویت می کنند.

دروازه API :

یک دروازه API بین کلاینت و مجموعه ای از خدمات خاص در بک اند قرار می گیرد. این هدف یک پروکسی معکوس را انجام می دهد و با عبور ترافیک از آن، طبق استانداردهای از پیش تعیین شده احراز هویت می شود.

رویکرد اعتماد صفر :

مدل امنیتی زیروتراست فرض می کند که تمام ترافیک، صرف نظر از اینکه از داخل یک شبکه منشا می گیرد یا از خارج، قابل اعتماد نیست. از این رو، قبل از اینکه بتوان به ترافیک اجازه ورود به شبکه یا از طریق آن را داد، حقوق کاربر باید احراز هویت شود. رویکرد اعتماد صفر می‌تواند با جلوگیری از دسترسی کاربران غیرمجاز به یک سیستم، امنیت داده‌ها و برنامه‌ها را فراهم کند  و این شامل کاربران مکرر می‌شود که ممکن است یک فریبکار با استفاده از دستگاهی که قبلاً احراز هویت شده جعل هویت کند. در یک مدل با اعتماد صفر، هم کاربر و هم دستگاه غیرقابل اعتماد هستند.

نقاط پایانی API چیست و چرا مهم هستند؟

نقطه پایانی API نقطه ای است که در آن یک API با سیستم دیگری ارتباط برقرار می کند .به عبارت دیگر، URL ها یا مکان های دیجیتالی که API برای ارسال داده استفاده می کند. نقاط پایانی API مهم هستند زیرا مکان دقیق داده ها یا منابعی را که API به آنها دسترسی دارد را ارائه می دهند و اطمینان حاصل می کنند که سیستم در حال ارتباط با API به خوبی کار می کند.