«Zero-Trust» در ظاهر مفهومی ساده است: اینکه «تمام شبکهها را در حالت نفوذشده در نظر بگیریم». اما وقتی از لایه شبکه فراتر رفته و وارد لایه برنامه میشویم، این سادگی از بین میرود. مجموعههای متنوع ابزارها، صدها کتابخانه، و روشهای متعدد پیادهسازی باعث میشود اجرای این ایدهها دشوار شود. Zero-Trust بهعنوان پاسخی محبوب به چالشهای امنیتی دنیای «اول کلاد» مطرح است، اما بسیاری از سازمانها هنگام گذار از شبکه به برنامهها در پیادهسازی آن با مشکل روبهرو میشوند.
با توجه به ماهیت بههمپیوسته APIها، Zero-Trust با آنها کاملاً سازگار است، حتی بسیاری از APIها بهطور طبیعی بخشی از اصول Zero-Trust را دارند! در این راهنما به جنبههای عملی Zero-Trust در APIها و چگونگی پیادهسازی آن در زیرساختهای فعلی API و کلاد میپردازیم.
در اصل، Zero-Trust درباره «پیشفرضها»ست: صرف اینکه کسی به شبکه سازمان متصل است بهمعنی مجاز بودن او نیست. هیچ دسترسیای بهصورت خودکار داده نمیشود — نه به داده، نه سرویس، نه برنامه و نه هیچ دارایی دیگر.
چهار اصل کلیدی در Zero-Trust وجود دارد:
- همه کاربران باید هویت خود را تأیید کنند
- هیچ دسترسیای خودکار داده نمیشود
- سیاستها باید اجرا شوند
- تیمهای امنیتی باید دید و نظارت داشته باشند
همه APIها را نفوذشده فرض کنید
برای استفاده از یک API در مدل Zero-Trust، ابتدا باید هویت ما تأیید شود. یک روش رایج — بهویژه در APIهای شخص ثالث یا شرکای تجاری — استفاده از کلید API است. زمانیکه توسعهدهندگان میخواهند یک برنامه جدید مبتنی بر APIهای عمومی بسازند، ارائهدهنده API به روشی نیاز دارد تا درخواستها را به حساب توسعهدهندگان مرتبط کند و از سوءاستفاده یا مصرف بیشازحد جلوگیری شود.
توسعهدهنده یک کلید API منحصربهفرد دریافت میکند و در هر درخواست API آن را ارسال میکند. این موضوع با اصول Zero-Trust سازگار است: بدون کلید، بدون دسترسی. اما کلیدهای API اغلب بهطور ناخواسته در مخازن عمومی کد منتشر میشوند و معمولاً دسترسی کامل به API را میدهند؛ حتی اگر برنامه فقط به یک یا دو نقطهٔ انتهایی نیاز داشته باشد.
پس نتیجه چیست؟ باید همیشه فرض کنیم کلید API افشا شده است. چرخش منظم کلیدها، تاریخ انقضا و بازتولید یکی از راهکارهای رایج است. در سالهای اخیر APIها به سمت استفاده از کلیدهای با محدودهٔ دسترسی مشخص و احراز هویت چندعاملی رفتهاند. احراز هویت چندعاملی باعث میشود مهاجم علاوه بر کلید، به مشخصات کاربری و مراحل تأییدی بیشتری نیاز داشته باشد. همچنین در مدل کلیدهای محدودهدار، توسعهدهنده تعیین میکند کلید به کدام بخشها یا عملکردها دسترسی داشته باشد.
کنترل دسترسی اساس استراتژی Zero-Trust است — اما تا زمانیکه ندانیم دقیقاً از چه چیزی محافظت میکنیم، نمیتوانیم آن را درست پیادهسازی کنیم.
APIهای سایه و زامبی نخستین اهداف کشف API هستند: APIهایی که ناشناخته ماندهاند یا سالها پیش باید حذف میشدند ولی هنوز فعالاند. البته تنها کشف اینها کافی نیست — تمام APIهای خارجی، داخلی و شرکای تجاری نیز باید شناسایی شوند. هنگامی که مرز API بهدرستی دیده شود، کنترل دسترسی میتواند بر پایه «عدم دسترسی بهصورت پیشفرض» تعریف گردد: اینکه چه APIهایی به چه سطح دسترسی نیاز دارند و آیا نیازمند دسترسی به سیستمها و APIهای داخلی هستند یا خیر.
نیروهای انسانی، سیاستها و چالشهای ماندگار
پس از شناسایی APIها و روشهای احراز هویت، نوبت به تبدیل کنترل دسترسی به «سیاستهای امنیتی» میرسد. اینجا دقیقاً جایی است که بسیاری از تیمها با چالش روبهرو میشوند — نه بهخاطر مسائل فنی، بلکه بهدلیل لزوم تغییر سازمانی.
پیادهسازی Zero-Trust نیازمند تغییر فرهنگ است: امنیت باید در همه سطوح، از مدیریت تا توسعهدهندگان، اولویت داشته باشد. آموزش مداوم و همکاری نزدیک تیم امنیت با تیم توسعه ضروری است. هدف این است که امنیت بخشی طبیعی و غیرمزاحم از فرآیند کار شود.
قرار دادن امنیت در کنار DevOps اهمیت زیادی دارد. امنیت غیرمزاحم یعنی امنیت در بطن خط CI/CD گنجانده شود تا توسعهدهندگان بدون توقف فرآیند توسعه، از امنیت مطمئن باشند. ابزارها و اتوماسیون، شناسایی زودهنگام آسیبپذیریها را امکانپذیر میسازد و با اصول Zero-Trust همسو است، بدون اینکه سرعت DevOps را کاهش دهد.
سیاستها تنها در خط تولید نرمافزار مطرح نیستند — باید در کل چرخهٔ عمر نرمافزار تعریف، اجرا و نظارت شوند. در APIها سیاستهای کنترل دسترسی معمولاً مشخص میکنند چه کسی به چه چیزی و با چه سطحی از مجوز دسترسی داشته باشد. اصل «حداقل دسترسی لازم» باید مبنای این سیاستها باشد.
پس از تدوین سیاستها، باید بهصورت مستمر آنها را بازبینی و اصلاح کرد. تهدیدها دائماً در حال تغییر هستند و کنترلهای امنیتی باید بهروز شوند تا مؤثر باقی بمانند.
چالشی که ارزش حلکردن دارد
اجرای Zero-Trust برای APIها یک چالش چندبُعدی است. رشد سریع APIها — که به «انباشت API» معروف است — مدیریت موجودی، نظارت بر استفاده و شناسایی آسیبپذیریها را دشوار میکند. بنابراین اعمال سیاستهای دقیق امنیتی سختتر میشود.
همچنین، تغییر ذهنیت سازمانی ضروری است. همهٔ افراد باید اهمیت امنیت مبتنی بر Zero-Trust و نقش خود در محافظت از APIها را درک کنند. اینکار در سازمانهای بزرگ با تیمهای متنوع، نیازمند تلاش بسیار است.
از سوی دیگر، تهدیدها و خود APIها دائماً در حال تغییر هستند — پس نظارت، تحلیل و بهروزرسانی مداوم باید ادامه یابد. این موضوع نیازمند سرمایهگذاری هم در ابزارها و هم در نیروهای متخصص است.
جمعبندی
اجرای Zero-Trust در APIها کاری پیچیده است که جنبههای فنی، فرهنگی و عملیاتی را در بر میگیرد. سازمانها باید:
- دید کامل نسبت به APIها داشته باشند
- فرهنگ امنیتمحور را ایجاد و تقویت کنند
- بهصورت مداوم تهدیدات و سیاستها را پایش و بهروزرسانی کنند
فقط در این صورت است که محرمانگی، یکپارچگی و دسترسپذیری اکوسیستم API حفظ خواهد شد.
