Browse Ask a Question
 
Tools Add
Rss Categories

Addressing Security Vulnerabilities by HTTP Security Headers

Author: Partian Co Reference Number: AA-00317 Views: 2949 Created: 2017-08-06 09:50 Last Updated: 2017-11-25 16:05 0 Rating/ Voters
کاهش آسیب پذیری های امنیتی وب سرور توسط HTTP Security Headers

 HTTP Response Security Headers، مجموعه ای از استاندارد ها هستند که برای جلوگیری یا کاهش آسیب پذیری های امنیتی از جمله XSS, Click Jacking و MIME Sniffing پیشنهاد می شوند. این Response Security Header یک سری Policy را برای مرورگر تعریف کرده و در نتیجه مرورگر هنگام بررسی Request ها از موارد مخرب اجتناب می کند.

زمانی که ویژگی HTTP Security Headers فعال می شود، یک Security Header با مقدار مشخص، به Response ای که از سمت وب سرور فرستاده می شود اضافه می شود. این یک روش سریع و ساده  جهت کاهش آسیب پذیری های وب سایت بدون رمزنگاری و تغییر تنظیمات می باشد. 
در زیر سه Security Header متفاوت که دستگاه FortiWeb می تواند به Response اضافه کند را مورد بررسی قرار خواهیم داد:

  • X-Frame-Options:
این Header از مرورگر در برابر حملات Click Jacking محافظت می کند. این عمل توسط فراهم کردن محدودیت های مناسب در رابطه با نمایش Frame ها انجام می پذیرد. X-Frame-Options می تواند با یکی از گزینه های زیر اجرا شود:
  1. DENY: با انتخاب این گزینه، مرورگر به هیچ کدام از Frame ها اجازه نمایش نمی دهد.
  2. SAME ORIGIN: با انتخاب این گزینه، مرورگر به Frame اجازه نمایش نمی دهد، مگر اینکه صفحه ی Frame از سمت همان سایت باشد.
  3. ALLOW-FROM: با انتخاب این گزینه، مرورگر به Frame اجازه نمایش نمی دهد، مگر اینکه صفحه ی Frame از سمت یک دامین خاص باشد.
  • X-Content-Type- Options

این Header از مرورگر در برابر حملات MIME Content-Sniffing محافظت می کند. این عمل توسط غیر فعال کردن تابع MIME Sniffing در مرورگر انجام می پذیرد. X-Content-Type-Options می تواند با گزینه ی زیر اجرا شود:


Nosniff: با انتخاب این گزینه، مرورگر در زمان دانلود Extension ها، محتوی ای که به طور صریح و روشن مشخص نشده باشد را حدس و تخمین نمی زند.

  • X-XSS-Protection:

این Header ویژگی XSS Protection را در یک مرورگر فعال می کند. X-XSS-Protection می تواند توسط یکی از گزینه های زیر اجرایی شود:

  1. Sanitizing Mode: با انتخاب این گزینه، زمانی که یک حمله ی XSS شناسایی شود، مرورگر اسکریپت های مخرب را اسکن و پاک سازی خواهد کرد.
  2. Block Mode: با انتخاب این گزینه، زمانی که یک حمله ی XSS شناسایی شود، مرورگر صفحه را بلاک خواهد کرد.

تنظیمات مربوط به ایجاد HTTP Header Security Policy

  • از منوی سمت چپ به مسیر  Web Protection > Advanced Protection > HTTP Header Security رفته و از نوار بالای صفحه گزینه ی Create New را انتخاب کنید.


نکته:

برای فیلد Name یک نام منحصر بفرد انتخاب کرده تا در دیگر بخش های تنظیمات بتوانید به راحتی از آن استفاده کنید. در انتخاب نام مورد نظر از Space یا کاراکتر های خاص استفاده نکنید. همچنین حداکثر طول این نام باید 35 کاراکتر باشد.

  •  پس از انتخاب یک نام مناسب بر روی گزینه ی OK کلیک کرده و از قسمت Secure Header Table گزینه ی Create New را جهت ایجاد یک Secure Header Rule انتخاب کنید.


نکته:
  • URL Filter: توسط این فیلد می توانید ویژگی URL Filter را فعال یا غیر فعال کنید.
  1. Enable: در صورت فعال کردن ویژگی فوق، Response هایی که در جواب یک درخواست فرستاده می شود توسط Security Header پردازش می شوند. البته این امر تنها در صورتی انجام می شود که URL مربوط به درخواست فوق با مقدار مشخص شده در فیلد Request URL در تنظیمات فوق Match شود.
  2.  Disable: در صورت غیر فعال کردن ویژگی فوق، تمامی Response ها توسط Security Header پردازش می شوند.
  • Request URL Type: توسط این فیلد مشخص خواهید کرد که مقدار فیلد Request URL در تنظیمات فوق توسط یک URL کامل و یا توسط یک Regular Expression مقدار دهی شود. توسط این گزینه الگوی مورد نظر خود را برای فیلد Request URL  مشخص خواهید کرد. در صورت انتخاب Simple String باید URL را به صورت کامل یا قسمتی از آن را عینا وارد کنید و در صورت انتخاب Regular Expression باید یک الگو را در فیلد Request URL وارد کنید. در واقع Regular Expression ترکیبی از  علامت ها و کاراکتر ها می باشد که الگویی را جهت جستجوی URL فراهم می کند. در نتیجه اگر قسمتی از URL شامل این الگو شود عملیات Match شدن انجام و Rule فوق بر روی درخواست اعمال می شود. به عنوان مثال با انتخاب گزینه ی Simple String شما می توانید الگوی cart.php/ را به عنوان Request URL و یا با انتخاب گزینه ی Regular Expression شما می توانید الگوی ^/*.php را به عنوان Request URL در نظر بگیرید. توجه شود که که در صورت انتخاب گزینه ی Simple String الگویی که در نظر می گیرید باید با کاراکتر / شروع شود.
  • Secure Header Type: توسط این فیلد، نوع Security Header که به Response اضافه خواهد شد را مشخص می کنید. این فیلد شامل گزینه های زیر می باشد:
  1. X-Frame-Options
  2. X-Content-Type-Options
  3. X-XSS-Protection
  • Header Value: توسط این فیلد، Security Header ای که توسط فیلد Secure Header Type انتخاب کردید را مقدار دهی می کنید. بر اساس نوع  انتخاب شده برای Secure Header، فیلد Header Value دارای گزینه های زیر می باشد:

اگر گزینه ی X-Frame-Options را برای فیلد Secure Header Type انتخاب کرده اید:

  1. DENY
  2. SAMEORIGIN
  3. ALLOW-FROM

اگر گزینه ی XX-Content-Type-Options را برای فیلد Secure Header Type انتخاب کرده اید:

  1. Nosniff

اگر گزینه ی X-XSS-Protection را برای فیلد Secure Header Type انتخاب کرده اید:

  1. Sanitizing Mode
  2. Block Mode

در ابتدای این آموزش گزینه های فوق مورد بررسی قرار گرفت.

  • Allowed From URL: اگر برای فیلد Secure Header Type گزینه ی XFrame- Options را انتخاب کرده و متعاقبا برای فیلد Header Value گزینه ی ALLOW-FROM را انتخاب کرده اید، یک فیلد دیگر به نام Allowed From URL به منوی تنظیمات اضافه خواهد شد. این فیلد را با یک Domain Name مقدار دهی کنید.
 نقش این Domain Name چیست: همانطور که در ابتدای آموزش توضیح داده شد با انتخاب گزینه ی ALLOW-FROM ، مرورگر به Frame اجازه نمایش نمی دهد. مگر اینکه صفحه ی Frame از سمت یک دامین خاص باشد. این Domain Name را توسط فیلد Allowed From URL مشخص می کنید.


  •  جهت استفاده از این HTTP Header Security Policy در یک Protection Profile از منوی سمت چپ به مسیر Policy > Web Protection Profile رفته و یک Inline Protection Profile بوسیله HTTP Header Security Policy فوق ایجاد کنید. در آموزش های بعدی به بررسی تنظیمات مربوط به ایجاد یک Protection Profile خواهیم پرداخت.



Rss Comments
  • There are no comments for this article.
Info Add Comment
Nickname: Your Email: Subject: Comment:
Enter the code below:
Info Ask a Question