امروزه هر سازمان، شرکت و یا کسب و کاری به وب سایتی عمومی برای معرفی، اطلاع رسانی و یا فروش محصول یا سرویس خود وابسته است. وب سایتهای عمومی اغلب هدف حمله قرار میگیرند. برخی از حملات وب سرورها عبارت است از:
– سوء استفاده از خطاهای نرم افزاری در وب سرور
– حملات انکار سرویس و انکار سرویس توزیع شده
– افشاء داده های پیش زمینه “backend data” با استفاده از حملات تزریق مانند تزریق SQL؛ تزریق LDAP و XSS
– بدشکل کردن وب سایت با هدف تخریب
– استفاده از امکانات وب سرورهای مورد سوء استفاده قرار گرفته برای حمله به دیگر نهادهها
– استفاده از وب سرورهای مورد سوء استفاده قرار گرفته برای توزیع بدافزارها
در ارتباط با امن کردن وب سرور چالشهایی وجود دارد زیرا نه تنها سیستم عامل باید امن شود بلکه برنامههای کاربردی و سرویسهای مرتبط که روی دستگاه اجرا میشوند نیز باید امن شوند. یکی از مشکلترین جنبهها، حفظ به روز و وصلهشده سیستمها در برابر آسیب پذیریهای جدید و حیاتی سیستم عامل و برنامههای کاربردی وب است.
هدف از این مستند، ارائه راهنماییها و مفاهیم پایهای امن نگهداشتن وب سایتهای عمومی جهت کاهش سطح حمله یا مقابله با اثرات سوء استفاده است. باید توجه داشت این راهکارها به تنهایی باعث امن شدن وب سرورها نمی شود بلکه باید از روش ها و استراتژی های پیشرفته دیگر نیز در کنار آن بهره برد. توصیه میشود سازمانها به طور معمول جهت شناسایی نقاط ضعف یا آسیب پذیریهای محیط خود، ارزیابی مخاطرات انجام دهند.
– امنیت وب سرور:
o برای امنیت وب سرور موارد زیر توصیه میشود:
§ از اینکه وب سرور فقط دارای برنامههای کاربردی و مولفههای ضروری برای اجرای فعالیتهای تعریف شده برای این وب سرور است، مطمئن شوید. تمام برنامههای کاربردی اضافی باید حذف یا غیرفعال شوند. به طور مثال، اگر وب سرور نیازمند امکان مرور وب نیست و وب سرور برای کارهای FTP استفاده نمیشود نباید چنین سرویسی در آن در حال اجرا باشد. حذف یا غیرفعال کردن هر مولفهای که استفاده نمیشود سطح حمله را کاهش میدهد.
§ وب سرور باید با امکان دسترسی بسیار محدود به هرگونه داده پیش زمینه، طراحی شده باشد.
§ سرویسهای SQL وبی:
· از اتصال برنامههای کاربردی به پایگاه دادهها با استفاده از ویژگی «دسترسی اختصاصی»، جلوگیری کنید.
· اندازه، بازه، قالب و نوع ورودی را اعتبار سنجی نمایید.
· ورودی را به لیستهایی از کاراکترهای قابل قبول و رد کردن دیگر کاراکترهایی که در لیست نیستند محدود کنید.
· استفاده از کد SQL پویا (dynamic SQL code) را محدود کنید. هر زمان که امکان پذیر است، از عبارات، پرس و جوهای با پارامتر یا رویههای ذخیره شده از پیش آماده استفاده کنید.
o برای امنیت سیستم عامل موارد زیر توصیه میشود:
§ حسابهای کاری که امکان دسترسی به سیستم عامل وب سرور را فراهم میکند باید از مفهوم حداقل دسترسی پیروی کند و باید برای هر فردی یکتا باشد. داشتن یک حساب ادمین، از انکارناپذیری فعالیت جلوگیری میکند و فعالیتهای جرم شناسی را در صورت مورد سوء استفاده قرار گرفتن سیستم عامل محدود میکند. همچنین، وب سرور باید به عنوان یک سرویس حیاتی درنظر گرفته شود و بنابراین نیازمند احرازهویت دو عاملی است.
§ برای مدیران شبکه، خط مشی ایجاد کلمه عبور قوی را اعمال نمایید؛ چنین خط مشی، به طور مثال، میتواند دارای ویژگیهای زیر باشد:
· حداقل 15 کاراکتر برای حسابهای کاربری ویژه
· استفاده از عدد، حروف بزرگ و کوچک و کاراکترهای خاص
· الزام به تغییر دورهای کلمات عبور مثلاً هر 90 الی 180 روز یکبار
· عدم استفاده از کلمات عبور قبلی
· جلوگیری از استفاده از اطلاعات شخصی -مانند شمارههای تلفن، تاریخ تولد، نام و نام خانوادگی- در نام کاربری و کلمات عبور
· الزام به استفاده از عبارات طولانی به جای کلمات عبور
§ تمام کلمات عبور و نامهای کاربری پیش فرض را تغییر دهید.
§ تمام حسابهای کاربری را که استفاده نمیشوند -مانند حسابهای کاربری Guest– غیرفعال یا حذف کنید.
§ در صورت امکان، نگه داری اعتبارنامه ها توسط سیستم را برای سیستمهای حیاتی غیرفعال نمایید.
o وب سرورها را به روز و وصله شده نگهداری کنید.
o پست الکترونیک و/یا وب سایتها را برای دریافت خبرهای امنیتی مانیتور کنید.
o وب سرورها باید روی سخت افزارهای جداشده (ایزوله) یا روی فناوری مجازی Multi-tenant ایمن به شرط غیرفعال بودن ارتباط مستقیم با دیگر میزبانهای مجازی ساخته شوند. این کار می تواند کمک کند تا در صورتی که یک سرویس مورد حمله قرار گیرد، خسارت ناشی از آن و سوء استفاده از سرویس های دیگر محدود شود و هم چنین می تواند سطح حمله به یک سرویس را کاهش دهد.
o استفاده از فناوریهای رمزنگاری و احراز هویت وب مانند SSL/TLS براساس طبقه بندی داده وب سرور (به طور مثال: حساس، خصوصی، محرمانه و …) باشد.
از فرآیندهای کنترل نسخه برای مستندسازی تمام تغییراتی که در سیستم، برنامه کاربردی یا محتوای وب صورت میگیرد، استفاده کنید.
– امن کردن وب سرویسها:
در ادامه به فهرستی از فعالیتهای مقابلهای که سازمانی برای امن کردن سرویسها و برنامههای کاربردی وب میتواند انجام دهد اشاره میشود. تمام مواردی که در زیر بدان اشاره شده است برای تمام سازمانها قابل اعمال نیست و توازنی میان هزینههایی که هر فعالیت دارد و سطح مخاطراتی که هر سازمان برای سرویسهای وب خود میپذیرد باید انجام شود.
o فعال کردن ثبت وقایع به صورت گسترده: آدرس IP سیستمی که به سرویس دسترسی پیدا کرده، نام کاربری، منابعی که دسترسی یافته، تغییرات امتیاز حساب کاربری، آیا تلاشش برای انجام کاری موفقیت آمیز بوده یا نبوده است و هر گونه فعالیت مشکوک دیگر را جمع آوری کنید. دسترسی مشکوک و غیرمعمول باید بلافاصله گزارش و بررسی شود.
o تکرار سرویس داده: حملات انکار سرویس و انکار سرویس توزیع شده جدید نیستند اما هنوز وجود دارند. بنابراین هر سازمانی باید در بازههای زمانی مختلف از برنامههای کاربردی و داده خود تکرار یا پشتیبان داشته باشد و ترجیحاً آنرا در یک مکان ذخیره سازی آفلاین نگهداری کند. روش ذخیره سازی آفلاینِ پشتیبانها، از تغییر داده و برنامههای کاربردی جلوگیری میکند و علاوه بر این، افزونگی را در زمانی که داده و برنامههای کاربردی باید به پلت فرم دیگری منتقل شوند فراهم میکند.
o سرویسهای ثبت وقایع: این سرویسها برای تامین انکارناپذیری و حسابرسی هر تراکنشی که در سرور انجام میشود لازم است. ثبت وقایع همچنین، برای شناسایی فعالیتهای مخرب بعد از سوء استفادهای که اتفاق افتاده است و یا در حال وقوع است امری ضروری است. میزان (حجم) ثبت وقایع و بازههای زمانی برای آرشیو کردن لاگها به میزان فضای ذخیره سازی در دسترس و میزان فعال بودن شبکه شما بستگی دارد. برای برخی از سازمانها، ممکن است برای پشتیبانی از سطح امنیت و حسابرسی و انکارناپذیری، سرویسها و نرم افزارهای بیشتری لازم باشد.
o طراحی و توسعه امن نرم افزار: توسعه امن نرم افزار یکی از مهمترین جنبهها در امنیت برنامههای کاربردی است چراکه هر چقدر آسیب پذیریهای درونی هر برنامه کاربردی کم باشد، احتمال اینکه مورد سوء استفاده قرار گیرد کمتر میشود. جنبه دیگر نرم افزار امن، حفظ امنیت نرم افزار است. این کار میتواند از طریق نصب دورهای وصلههای نرم افزارها و مانیتور پایگاه داده آسیب پذیریها برای اطلاع از آسیب پذیریهای جدید انجام شود.
o امن کردن زیرساختهای وب سرور: وب سرورها باید در ساختار DMZ امن قرار گیرند به طوریکه یک رابطه اعتماد یکطرفه میان DMZ و شبکه داخلی طوری پیکربندی شده باشد که در این رابطه DMZ به شبکه داخلی اعتماد میکند اما شبکه داخلی بهDMZ اعتماد ندارد. همچنین هر برقراری ارتباطی یا درخواستی از وب سرورها به منابع داخلی باید محدود باشد.
به طور خلاصه، سرویسها و سرورهای وب برای بسیاری از کسب و کارها و سازمانها مولفه ضروری هستند. فقدان این سرویسها میتواند نتایج اسفباری داشته باشد. به همین دلیل محافظت از این سرویسها امری ضروری است.