جمعه, ۱۰ فروردین, ۱۴۰۳ / 29 March, 2024
مجله ویستا

دفاع از سرورها در مقابل حملات مبتنی بر HTTP


دفاع از سرورها در مقابل حملات مبتنی بر HTTP
اخیرا به منظور تحت نظر و مراقبت قرار دادن بازار برنامه‌های فایرول، ۲ برنامه عرضه شده به این بازار به نام‌های Teros Secure Application Gateway ۱۰۰ SSL Version ۳/۱ وMagnifire Web Systems Teffic Shield Version ۲/۵ را مورد بررسی قرار دادیم. فروشندگان دیگری که از آنها برای شرکت در جلسه ارزیابی محصول دعوت به عمل آمده بود، شرکتهای Imperva، Net Continuum،Whale Communications‌ بودند که هر یک به دلیلی از حضور در آن امتناع ورزیدند. ما این دو نرم‌افزار را آزمایش کردیم. همانطور که ۲ شرکت Kavado‌ ‌و Sanctum در سال گذشته این کار را انجام دادند.
واضح است که پس از دومین مرحله آزمایش روی فایروال برنامه وب، توانایی این محصولات در نمایش قابلیت‌های سطح برنامه افزایش می‌یابد و وجود کمبودها و نقائص در این محصولات به معنای این است که مدیران و توسعه‌دهندگان وب باید جهت استفاده از آنها از یک خط‌مشی امنیتی مناسب استفاده کنند که این کار مستلزم تلاش و زمان کافی است. Teros ۱۰۰، از یکسری ویژگی‌های مدل فایروال منفی یا مثبت یا به عبارتی مفید یا مضر استفاده می‌کند که باید بتواند از تمام برنامه‌ها بجز آنهایی که خیلی حساس هستند، محافظت نماید. بهترین برنامه امنیتی کامل و یکپارچه‌ای که هم عملکرد خوبی داشته باشد و هم سلامت محتوا را نشان دهد در برنامه Teros ۱۰۰ مشاهده شده که آن را برنده Network World Clear Choice نموده است.
پیکربندی اولیه آن ساده است و شامل ایجاد مقادیر کوچکی در شبکه از طریق رابط خط فرمان می‌باشد. Teros ۱۰۰، در ابتدا دو پورت رابط را نشان می‌دهد که یکی WAN و درون شبکه‌ای قرار دارد که تحت مراقبت نمی‌باشد و دیگری LAN است که در farm‌های وب محافظت شده قرار دارد که پورت دیگری را نیز ضمیمه می‌نماید و بوسیله آن شما می‌توانید شبکه کنسول مدیریت تعریف شده را نصب و راه‌اندازی نمایید. همه این شبکه‌های تعریف شده از پورت‌های اینترنت ۱۰/۱۰۰ بیت در ثانیه عبور می‌کنند. گرچه می‌توان پیکربندی مشابهی را روی محصول شرکت MagniFire Web Systems انجام داد، ولی ما پی بردیم ابتدا بهتر است منو این محصول را ایمن سازیم. دسترسی کنسول وب نیز از طریق یک Session مرورگر کدگذاری شده به نام سوکت لایه ایمنی انجام می‌شود. ولی این ابزار نمی‌تواند کلمات عبور قوی را ایجاد نماید و کاربر را به ایجاد فقط ۸ کاراکتر محدود می‌نماید. همچنین در مواقعی که کاربر با مشکل مواجه می‌شود و تلاش او بی‌نتیجه می‌ماند زمان انتظار آن بسیار طولانی است ولی امنیت کنسول رو به افزایش است.
پیکربندی دیگری نیز می‌توان بوسیله رابط بسیار کامل مبتنی بر وب انجام داد ولی با این وجود چنین کاری نیز بی‌دغدغه و آسان نمی‌باشد. برای مثال، اندازه پنجره ثابت روی سیستم، یک رابط ظاهرا حرفه‌ای را نشان می‌دهد، در حالیکه اگر ورودی‌های مسیر تقاضا بسته شده باشند، وجود رابط ثبت نگاری رندرسازی شده بیهوده است. اطلاعات در دسترس است ولی از شما درخواست می‌شود که از مرحله لاگ (ثبت) خارج شوید. همچنین متوجه شدیم که با هر بار دسترسی به رابط با استفاده از سرویس‌های ترمینال و راه‌اندازی‌های KVM با مشکلات جدید و گزینه‌های متناوب دیگری روبرو می‌شویم ولی گذشته از این نگرانی‌ها، پی بردیم که رابط در اصل خوب عمل می‌کرد و صفحه نمایش‌های کمکی حساس به محتوا نیز همیشه در صورت لزوم در دسترس بودند.
شایان ذکر است که این محصول سطوح مدیریت و وظایف گوناگونی را داراست و تفکیک یک مدیر دستگاه از یک مدیر برنامه بخوبی بیانگر خلا ارتباطی بین توسعه‌دهندگان وب و مدیران شبکه برای شرکت Teros است. حتی مستندسازی برای نمایش جزئیات مربوط به هر یک از حضار درون کتابهای مختلف تقسیم‌بندی شده، چنین مدیریتی Teros را مناسب محیط‌های مختلف میزبان قرار گرفته یا شرکت نسبتا بزرگی قرار می‌دهد که دارای چند سایت و چند مالک می‌باشد. با استفاده از رابط وب پی بردیم که براحتی می‌توان محافظت از برنامه‌ها را تعریف نمود، ولی پیدا کردن سایت‌هایی که دارای چند اسم مستعار دامین بودند کمی مشکل بود. با تجربه‌ای که از نصب دامین‌های عموم سایت‌ها داشتیم ما احساس کردیم که باید روی این رابط تجدید نظر کنیم.
● ایجاد قوانین
پس از اینکه یک برنامه وب تعریف شد، Teros ۱۰۰ باید جهت نمایش فعالیت کاربر و رسیدن به یک مجموعه قوانین مناسب بصورت آموزشی درآید. وقتی روش یادگیری بر مبنای ترافیک به محصول امکان می‌دهد تا سرعت به ارتباطات از طرف کلاینت جاوااسکریپت و اطلاعاتی که براحتی بوسیله فرم‌ها ارسال شده‌اند پی ببرد. این نشان می‌دهد که اشکالات و نقایص موجود در قوانین یا به خطای کاربر برمی‌گردد یا به تلاش هکرها برای دستبرد به اطلاعات. سطوح تحمیلی که در این دستگاه برای فعالیت رویت شده تعریف شده است، به حفظ سیستم در مقابل تصور وجود قوانین بسیار غلط و نادرست کمک می‌کند ولی این هم کافی و کامل نیست. مدیران نمی‌توانند فرض کنند که همه قوانین مورد نظر مناسب و صحیح هستند یا اینکه ترافیک سایت رویت شده کل برنامه کاربردی را در بر می‌گیرد. بهترین کار این است که برای توسعه یک خط‌مشی امنیتی مناسب و با کیفیت، زمان کافی را در نظر گرفته و به مطالعه دقیق برنامه وب بپردازند.
پس از تکمیل عمل نصب و راه‌اندازی و زمان کافی برای ایجاد مجموعه قوانین مناسب، پی بردیم که دستگاه می‌تواند تمامی حملات رایج از جمله مرورگری اجباری، تزریق SQL، بهم‌ریختگی میله فرم و خرابی کوکی و نوشتن روی سایت متقابل را شناسایی کند و جلوی آنها را بگیرد. علاوه بر این مدل فایروال مثبت و مناسب، Teros ۱۰۰ لیست سیاهی از انواع امضاء و علائمی از حملاتی را که به سرور شده است،‌ نشان می‌دهد. مجموعه این دو روش، یک راه‌حل خوبی را در بر دارد ولی در مواردی مثل، حملات سرریز بافر از سوی header، اشکال کوچکی بوجود می‌آید. اندازه URLها نیز از حد پیش‌بینی شده بزرگتر بود (مثل،Error Message ۴۰۹۶ ). با این وجود، این مقادیر براحتی بدست یک مدیر نه چندان مورد اعتماد هم قابل تنظیم است. طی آزمایشات خود با مشکل بزرگی در پیکربندی مواجه شدیم و آن هم این بود که هنگام پشتیبانی از سایت مبتنی بر سرورMicrosoft Internet Information با استفاده از سوکت لایه ایمنی، متوجه شدیم که وارد کردن اطلاعات مهم مشکل بود چون از فرمت پیش‌فرض و رایج PEN در OpenSSL استفاده می‌کند. در این مرحله کمک به مدیران ویندوز به همراه یک برنامه کمکی یا چند مستندسازی مربوط به آن مفید به نظر می‌رسید. محصول MagniFire نیز همین مشکل را داشت و معمولا هر دستگاه امنیتی مبتنی بر لینوکس باید بتواند از محیط ویندوز پشتیبانی نماید.
مزیت ویژه محصول Teros این است که به نکات غیرقابل تصور نیز اشاره می‌کند مثل، ایجاد شکاف در برنامه یا سایت. همه ویژگی‌های موجود در آن برای کمک به رفع تهاجمات بالقوه یا خطاهای سایت است. جهت جلوگیری از خرابی‌های سایت دستگاه، می‌توان صفحات استاتیک را بصورت کنترلی جمع‌آوری نموده و در صورتی که اصلاح نشده باشند از ارسال آنها خودداری نماید. به نظر ما بهتر بود دستگاه‌ بجای قرار گرفتن در حالت عدم پاسخ‌دهی، یک صفحه Standby‌ را میزبان قرار می‌داد. ولی این ویژگی حتی با وجود اینکه کامل نمی‌باشد، ولی هنوز مورد استقبال است. دستگاه Teros همچنین به شما امکان می‌دهد تا صفحات را برای کلمات بخصوص فیلترگذاری نمایید. مثلا می‌توانید لغات ناخوشایند را با کلمه “Stop” و بیانات مجازی را که لازم است ضمیمه هر صفحه قانونی باشد با کلمه “go” تعریف نماید.
Teros حاوی چند فیلتر ضمیمه برای پشتیبانی از اطلاعات می‌باشد و این دستگاه می‌تواند فرمت‌های مختلف داده از جمله تعداد کارت‌های اعتباری یا تعداد Social Security را پیدا و شناسایی نماید. در حین آزمایشات خود با چند اشکال در این ویژگی روبرو شدیم. تحت تنظیمات سهل‌انگارانه‌ای که در اولین مرحله انجام داده بودیم، فایروال به سرعت مراحل عددی مثل، تعداد Social Securityهای موجود در عنوان‌ها را مرتب کرد. این کار بهTeros ۱۰۰ کمک می‌کرد تا جلوی همه درخواست‌های ناخوشایند روی سایت را بگیرد چون باعث از بین بردن کوکی قابل استفاده در کنترل انسجام و یکپارچگی می‌شد. مطمئنا علیرغم این موانع و در صورت نظارت درست، بستن Output (راه خروجی) ویژگی خوبی بود.
همچنین ویژگی‌های منحصر به Teros ۱۰۰ شامل رمزگذاری HTTP با استفاده از gzip، شتاب SSL و offloading (قطع ارتباط) می‌باشد. با وجود کنترلهای امنیتی برنامه که چند بار اضافی با زمان پاسخ‌دهی سایت اضافه می‌کند، تلاش در جهت جلوگیری از این مسئله مفید خواهد بود و ترکیب دو ویژگی کارآیی و ایمنی در یک دستگاه، روند عمومی کردن وظایف دستگاه‌های پیشرفته در farm‌های وبی را که بوسیله فروشندگانی مثل، Netscape و Redline Networks‌ پیشرفت کرده‌اند، بدنبال دارد.● MagniFier می‌تواند هکرهای بالقوه برنامه را از بین ببرد
MagniFire Traffic shield، یک دستگاه مبتنی بر لینوکسی است که خط‌مشی تولید و نگهداری آن با محصول Teros فرق دارد. در هر حال مدل مناسب MagniFire، می‌تواند ایمنی برنامه بهتر و محکمتری را در برداشته باشد ولی چندان مرتب نیست و پیاده‌سازی آن نیز به نسبت مشکل‌تر است. شروع کار با Traffic shield ساده است. شما برای تعریف پیکربندی شبکه اولیه از یک متن ساده پیروی می‌کنید. پیکربندی با جزئیات بیشتر و کامل بوسیله رابط وب صورت می‌گیرد که آن هم از Teros ۱۰۰ ساده‌تر و در دسترس‌تر است ولی اجرای آن بخوبی Teros ۱۰۰ نیست. در حین آزمایش، چندین خطای مداوم از طرف کاربر صورت گرفت که این بخاطر اشکالات ساده‌ای مثل، وجود کلیدهای دارای برچسب “update” کنار یکدیگر بود. بعضی از صفحات خوب سازماندهی نشده بودند و بقیه نیز بسیار بهم ریخته بودند و ما نتوانستیم به سیستم کمکی مراجعه کنیم چون آنها در قسمتی که ما آزمایش می‌کردیم فعال نبودند و کاربردی نداشتند. شرکت قول داده است اشکالات رابط را در نسخه بعدی خود که در اواخر ماه ژوئن عرضه خواهد شد، رفع نماید. یکی از جنبه‌های مدیریتی متفاوت آن با محصول Teros این است که MagniFire، فاقد دسترسی اجرایی مبتنی بر نقش خود به دستگاه یا سایت‌های مربوطه است. این ویژگی در محیط میزبان یا در محیط شرکتی بزرگ از بین رفته است. شرکت می‌گوید: این ویژگی ضمیمه نسخه جدید او خواهد بود.
همچون Teros ۱۰۰، ویژگی امنیت کنسول در آن نیز رو به افزایش است. دستگاه MagniFire در اندازه طول کلمه عبور، محدودیتی قائل نمی‌شود و برای کلمات عبور بیش از حد و اندازه مانعی ایجاد نمی‌کند. پس از آشنایی با این دستگاه، باید ابتدا بجای نمایش ترافیک کاربر، یک خط‌مشی امنیتی اولیه را با استفاده از Crawler ضمیمه و خودکار بنا نهاد. این برنامه با توجه به مشکلاتی که ممکن است در هنگام Crawling (جستجوی) یک سایت پیچیده با استفاده از جاوا اسکریپت، چهارچوب‌ها و غیره پیش آید، بسیار ماهرانه عمل می‌کند. همچنین پی بردیم که ممکن است برنامه Crawler با چند کاربر جاوا اسکریپت از جمله کد مشابهی که در سیستم جهت‌یابی مبتنی بر Dynamic-HTML استفاده می‌شود، مختل شود. خوشبختانه شما می‌توانید در صورت بروز چنین مسائلی چند نقطه ورودی را اضافه نموده و به تنظیمات برنامه Crawler بپردازید.
پس از ایجاد اولین خط‌مشی، باید قوانین عمومی را تایید نموده و به عمل بلوکه کردن بپردازید. ولی بهتر است بگذارید دستگاه ترافیک واقعی را نشان دهد و تمام قوانین ضروری اضافی را بیاموزد. افزودن قوانین بدون در نظر گرفتن برنامه Crawler یا کاربردهای عمومی، ساده بود. حتی بهتر و ساده‌تر این بود که ابتدا به نشانه‌هایی از MagniFire که با سیستم مبتنی بر عبارت Teros مقایسه شده بود پی می‌بردیم. Traffic shield نیز همچون Teros ۱۰۰ مرورگری اجباری، به هم ریختگی اطلاعات و دیگر سوءاستفاده‌های عمومی را شناسایی نمود. با وجود این، محصول MagniFire روی خط‌مشی امنیتی تاکید زیادی می‌ورزید. اندازه کوکی و اندازه مورد تقاضا نیز برای رسیدن به اندازه دقیق آن کنترل می‌شود. برخلاف Teros ۱۰۰ که محدودیت‌هایی در کاربرد سایت تعریف کرده است، Traffic shield اینگونه عمل نمی‌کند و به اطلاعات نامناسب اهمیت چندانی نمی‌دهد تنها اشکال آن این است که نگهداری خط‌مشی آن دشوار است.
طی آزمایشات دقیق خود، متوجه شدیم که در اولویت قرار دادن Teros ۱۰۰ در نمایش‌دهی بهتر است ولی MagniFire از نظر حرکت و کنترل نقطه ورودی مهارت بیشتری داشت. مخصوصا اینکه ما امکان تجسم این حرکات و جریانات درسایت را خیلی دوست داشتیم. MagniFire می‌تواند نحوه نمایش برنامه‌های پشتیبانی شده را بهینه و تقویت سازد. چون Traffic shield برنامه‌های کاربردی سایت درون سیستم Logging (شب نگاری) خود را ظاهر نمی‌کند، لذا مشاهده وقایع رخ داده مشکل بود. هچنین پیام‌هایی کاملا عمومی با ذکر جزئیات در این لاگها وجود داشتند و درخواست‌های انفرادی نیز چند خطا را نشان می‌داد که معلوم نبود کدامیک در ابتدا ظاهر شده بودند. حتی در آزمایش صفحه وب استاتیک ما، پیام‌های هشدار نامنظمی ظاهر شده بود که به نظر می‌رسید وجود ثبت‌های کاذب خط‌مشی‌ امنیتی قوی و محکمی در برداشته باشد.
با برخورداری از Teros ۱۰۰، لازم بود که به کنترل چند آیتم موجود در آن بپردازیم مثل متد اختصاصی مجاز یا غیرمجاز HTTP که در سایت‌های Web DAV گرای پیچیده درخواست شده بود. ویژگی‌های ساه‌ای که به جستجو نیاز نداشتند مثل، تغییر عنوان‌های پاسخ سرور در دسترس نبودند و نحوه دسترسی به آنها نیز بوسیله یک سوئیچ غیرمجاز امکان‌پذیر بود. صفحات حاوی اشتباه نیز باید تغییر می‌کردند. حتی از ما درخواست شده بود تا صفحه اشتباه روی دستگاه را upload‌ نموده و جهت دریافت نتیجه بهتر دستگاه را از نو راه‌اندازی نماییم. از نظر گرانولیته بودن نیز Traffic shield جز بهترین‌ها بود. سیستم کنترل کامل کاربرد هر کاراکتر را در URLها و ورودی‌هایی که با پنجره‌های باز شونده برای هر کاراکتر ASCII مجزا کامل می‌شد، به عهده داشت. وقتی حملات به مجموعه کاراکتر حتمی بود، این برنامه ظاهرا افراطی عمل می‌کرد و برای مدیرانی که می‌خواستند فیلترگذاری در ازای استفاده از حرف “D” در سایت را انجام دهند، ذخیره می‌شود.
Traffic shield، یک مدل امنیتی مثبت و قوی را ایجاد می‌کند که به دستان یک مدیر کاردان و با تجربه قابل تعریف و اجرا است. با این همه، این برنامه به همراه چند ویژگی از جمله رفع اختلافات، شتاب و امنیت بالای دستگاه رو به ‌پیشرفت و تقویت است.

نویسنده: Thomas Powell
مترجم: شراره حداد
منبع : علم الکترونیک و کامپیوتر


همچنین مشاهده کنید