7 روش افزایش امنیت زیرساختهای ابری- بخش دوم
در این راهنما قصد داریم در مورد بعضی روش های امنیتی پایه برای پیکربندی بهتر سرور ابری یا دیتا سنتر ابری، قبل یا بعد از راه اندازی برنامه ها صحبت کنیم
راههای افزایش سطح امنیتی سرور ابری
در بخش نخست مقاله 7 روش افزایش امنیت زیرساختهای ابری نکاتی پیرامون راههای افزایش سطح امنیتی سرور ابری شما ارائه شد. در بخش دوم این مطلب، توضیحات بیشتری پیرامون این مبحث ارائه شده و سایر موارد دارای اهمیت که میتواند به شما برای بالا بردن ایمنی سرویس کمک کند، بیان شده است.
زیرساخت کلید عمومی و رمزگذاری SSL/TLS
زیرساخت کلید عمومی به سیستمی گفته میشود که با هدف ایجاد، مدیریت و اعتبارسنجی گواهی نامهها برای شناسایی افراد و ارتباطات رمزنگاری شده، طراحی شده است. گواهی SSL یا TLS میتواند برای احراز هویت موجودیتهای متفاوت نسبت به یکدیگر استفاده شود و پس از احراز هویت، جهت انتشار ارتباطات رمز شده بکار گرفته شود.
چگونه باعث افزایش امنیت میشود؟
وجود مرجع صدور گواهی نامه و مدیریت گواهیها در سرورها، به هر موجودیتی در زیرساخت شما اجازه اعتبارسنجی سایر اعضا و رمز کردن ترافیک آنها را میدهد. این فرآیند میتواند جلوی حملههای man-in-the-middle را بگیرد که در آن، حمله کننده، یک سرور از زیرساخت شما را کپی میکند تا جلوی ترافیک را بگیرد.
هر سرور ابری میتواند طوری پیکربندی شود که به یک مرجع صدور گواهی اعتماد کند. پس از آن هر گواهی که امضاء احراز هویت را دارد، قابل اعتماد است. اگر شما قصد استفاده از برنامهها و پروتکلهایی را که از رمزگذاری TLS/SSL پشتیبانی میکنند داشته باشید، از یک روش رمزگذاری سیستم بدون سربار تانل بهره بردهاید.
پیادهسازی آن چقدر سخت است؟
پیکربندی اختیار مجوزدهی و راهاندازی زیرساخت کلید عمومی ممکن است نیاز به مقداری تلاش اولیه داشته باشد. علاوه بر این، مدیریت گواهیها در زمانیکه یک گواهی نیاز به ایجاد شدن، امضاء شدن یا باطل شدن داشته باشد، میتواند بار اضافی برای مدیر سیستم ایجاد کند.
برای بیشتر کاربران، پیادهسازی یک زیرساخت کامل کلید عمومی، با افزایش نیازهای زیرساختی آنها معنای بیشتری پیدا میکند. امن سازی ارتباطات بین کامپوننتها با استفاده از شبکه خصوصی مجازی تا زمانی مناسب است که پیادهسازی زیرساخت کلید عمومی در مقابل هزینههای مدیریتی آن به صرفه باشد.
سرویس حسابرسی
بخش قابل توجهی از امنیت از طریق تحلیل سیستمهای ما تامین میشود. شناسایی سطوح آسیبپذیر و تلاش برای ایمنسازی این بخشها بسیار حائز اهمیت است.
حسابرسی سرویس راهی برای شناخت خدماتی است که بر روی سرور ابری مشخص در حال اجرا هستند؛ بررسی اینکه از کدام پورتها برای برقراری ارتباط استفاده میشود و چه پروتکلهایی پذیرفته است. این اطلاعات به شما کمک میکند که در پیکربندی شما کدام خدمات باید بصورت عمومی در دسترس باشند و تنظیمات دیواره آتش، مانیتورینگ و آلارمها چه باشد. در اغلب سیستم عاملها، برخی از این تنظیمات به صورت پیشفرض در هنگام بارگذاری پیکربندی شده است. نصب نرم افزار اضافی میتواند گاهی اوقات باعث ایجاد بعضی وابستگیها شود.
چطور باعث افزایش امنیت میشود؟
سرور ابری میتواند فرآیندهای زیادی را برای اهداف داخلی یا رسیدگی به کلاینتهای بیرونی شروع کند. هر یک از این سرویسهای در حال اجرا، خواه داخلی باشد یا عمومی، زمینه بیشتری را برای حمله توسط کاربران مخرب فراهم میکند. هر چقدر که شما سرویسهای در حال اجرای بیشتری داشته باشید، احتمال آسیپپذیری برنامه شما بیشتر خواهد بود.
زمانی که دید کاملی نسبت به سرویسهای شبکهای که روی سرور ابری شما در حال اجرا هستند داشته باشید، میتوانید تجزیه و تحلیل هرکدام از این سرویسها را انجام دهید. بعد از این حسابرسی، میتوانید در رابطه با هر کدام از این خدمات، سئوالات زیر را از خود بپرسید:
- آیا این سرویس باید اجرا شود؟
- آیا این سرویس بر روی رابطهای شبکهای اجرا میشود که نباید از آنها استفاده شود؟
- آیا قوانین فایروال برای عبور ترافیک مجاز بدرستی تعریف شده است؟
- آیا قوانین فایروال ترافیک غیر مجاز را مسدود کرده است؟
- آیا روشی برای دریافت اخطارهای امنیتی درباره آسیبپذیری هرکدام از این سرویسها وجود دارد؟
این نوع سرویس حسابرسی باید برای هر زمانیکه یک سرور ابری جدید را در زیرساخت خودتان پیکربندی میکنید، استاندارد باشد.
پیادهسازی آن چقدر سخت است؟
انجام یک سرویس پایه حسابرسی خیلی ساده است. شما با استفاده از دستور netstat میتوانید سرویسهایی را که روی هر کدام از رابطهای کاربری شبکه دارای پورت باز هستند، پیدا کنید. دستور زیر، یک مثال ساده است که نام برنامه، آی دی برنامه و آدرسی که برای دیدن ترافیک TCP و UDP مورد استفاده قرار میگیرد، را نشان میدهد:
$ Sudo ss -plunt
با اجرای دستور بالا، خروجی مشابه قالب زیر خواهد بود:
ستونهای اصلی که شما باید به آنها توجه کنید، Proto، Local Address و PID/Program name هستند. اگر آدرس محلی 0.0.0.0 باشد، یعنی سرویس، ارتباطات را از روی همه رابطهای شبکه IPV4 میپذیرد. اما اگر آدرس [::] باشد، سرویس ارتباطات را از روی رابطهای شبکه IPV6 قبول میکند.
حسابرسی فایل و سیستمهای تشخیص نفوذ
حسابرسی فایل فرآیندی است که سیستم فعلی را با وضعیت ثبت شدهای از فایلها و مشخصات فایلهای روی سرور ابری شما که به عنوان یک حالت مناسب در نظر گرفته میشود، مقایسه میکند. این روش برای تشخیص تغییرات اعمال شده روی یک سیستم استفاده میشود:
یک سیستم تشخیص نفوذ، یا IDS بخشی از یک نرمافزار است که برای مانیتور کردن فعالیتهای غیرمجاز روی یک سیستم یا شبکه کاربرد دارد. اکثر سیستمهای تشخیص نفوذ از حسابرسی فایل بعنوان روشی جهت چک کردن تغییرات اعمال شده بر روی یک سیستم استفاده میکنند.
چگونه باعث افزایش امنیت میشود؟
اگر شما نگران امنیت سرور ابری خود هستید، بکارگیری حسابرسی در سطح فایلها برای سرور ابری شما بسیار مفید خواهد بود. این اقدام میتواند بطور دورهای توسط مدیر سیستم یا بخشی از یک فرآیند خودکار در سیستم تشخیص نفوذ انجام شود. این استراتژیها بخشی از معدود روشهایی هستند که شما را مطمئن میسازد که سیستم پروندههای شما بوسیله یک شخص یا فرآیند تغییر داده نشده است. به دلایل متعددی، متجاوزان اغلب تمایل دارند تا مخفی باقی بمانند. لذا میتوانند برای یک بازه زمانی طولانیتر از سرور شما بهرهبرداری نمایند. آنها ممکن است فایلهای باینری را با نسخههای اصلی آن جابجا کنند. انجام حسابرسی برای سیستم فایل به شما هشدارهای لازم را در زمان تغییر هر فایلی میدهد و باعث میشود که شما از امن بودن محیط سرور ابری خود آسوده خاطر باشید.
پیادهسازی آن چقدر سخت است؟
پیادهسازی IDS یا حسابرسی فایل میتواند یک فرآیند کاملا دشوار باشد. پیکربندی اولیه شامل آگاه ساختن سیستم حسابرسی در رابطه با تغییرات غیر استاندارد ایجاد شده در سرور ابری و تعریف مسیرهایی که امکان دسترسی پایه را فراهم میآورند، میشود.
توضیحات بیشتر در را می توانید در مقاله سیستم تشخیص نفوذ (IDS) چیست؟ مطالعه کنید.
همچنین این فرآیند باعث میشود عملیات روزانه افزایش یابد؛ زیرا زمانیکه شما میخواهید برنامهها را بهروز کنید، بایستی سیستم را قبل از اجرای آپدیتها، پیکربندی کنید.
اگرچه این روش ممکن است بار نظارتی را افزایش دهد، اما تنها روشی است که مانع از تغییر فایلها بدون اطلاع شما میشود. Tripwire و Aide نمونهای از سیستمهای رایج تشخیص نفوذ یا حسابرسی فایل هستند.
محیطهای اجرایی ایزوله شده
ایزوله کردن محیطهای اجرایی به روشی گفته میشود که هریک از اجزاء به صورت انفرادی در فضای اختصاصی خودشان اجرا میشوند.
این فرآیند میتواند به جدا کردن اجزاء مجزای برنامه شما منجر شود و یا به پیکربندی سرویسهای شما در محیطهای chroot یا کانتینری اشاره داشته باشد. سطح ایزوله بودن به شدت به نیازمندیهای برنامه و زیرساخت شما بستگی دارد.
چگونه باعث افزایش امنیت میشود؟
ایزوله کردن فرآیندهای شما در درون محیطهای انفرادی باعث میشود توانایی شما در محدود کردن مشکل امنیتی بوجود آمده، افزایش یابد. این امر مانع سرایت مشکل به سایر بخشهای زیرساخت شما میشود.
پیادهسازی آن چقدر سخت است؟
بسته به استراتژی که برای مهار انتخاب میکنید، جداسازی برنامههای شما سطوح مختلفی از پیچیدگی دارد. با بستهبندی کردن کامپوننتهای مجزا در کانتینرها، شما میتوانید خیلی سریع به سطوحی از جداسازی برسید، اما در نظر داشته باشید که کانتینر کردن از دید داکر یک ویژگی امنیتی محسوب نمیشود.
ایجاد یک محیط chroot برای هر بخش میتواند سطوحی از ایزوله کردن را به خوبی فراهم کند، اما این روش نیز شیوه مطمئنی برای جداسازی نیست؛ چراکه معمولا راههایی برای شکستن محیط chroot وجود دارد. بهترین و راحتترین روش برای ایزوله کردن، قرار دادن کامپوننتها در سرورهای مجزا است؛ امکانی که به راحتی میتوانید در سرویس دیتاسنتر ابری زس آن را پیادهسازی نمایید.
نتیجه
استراتژیهای ذکر شده در بالا تنها برخی از مراحلی است که میتوانید برای بهبود امنیت سیستمهای خود بکار بگیرید. مهم است بدانید، هر چقدر استفاده از این روشها را به تاخیر بیندازید، اثر بخشی آنها کمتر خواهد شد. بنابراین نباید بکارگیری روشهای امنیتی را به بعد از نصب و راهاندازی سرویسها به تاخیر بیاندازید، بلکه فرآیند ایمنسازی باید از ابتدا درکنار سرویسها و برنامههای شما انجام شود.