بررسی RIA Cross Domain Policy
در این بخش از دوره آموزشی OWASP-WSTG به دومین بخش از استاندارد WSTG با شناسه WSTG-CONFIG-008 می پردازیم که مربوط به بررسی RIA Cross Domain Policy می باشد.
خلاصه
Rich Internet Applicationها (RIA) از فایلهای ساختاری crossdomain.xml به منظور کنترل دسترسی دامینهای دیگر استفاده میکنند. این موارد برای تکنولوژیهایی مانند Adobe Flash، Oracle Java و Silverlight کاربرد دارد. بنابراین، یک دامنه میتواند دسترسی از راه دور به خدمات خود را از یک دامنه متفاوت اعطا نماید.
اغلب فایلهایی که سیاست مربوط به دسترسی دامنهها و محدودیتهای دسترسی آنها را توصیف میکنند، ساختار ضعیفی دارند. پیکربندی ضعیف این فایلها، میتواند منجر به موفقیت در حملات CSRF شده و ممکن است به اشخاص ثالث اجازه دسترسی به دادههای حساس مورد نظرشان را بدهد.
فایل های سیاست مربوط به Cross-Domain چه هستند؟
یک فایل سیاست Cross-Domain، مجوزهایی را مشخص میکند که یک کلاینت وب مانند جاوا، Adobe Flash، Adobe Reader و غیره برای دسترسی به دادهها در سراسر دامنههای مختلف از آن استفاده میکنند.
برایSilverlight، مایکروسافت زیر مجموعهای از crossdomain.xml مربوط به Adobe را اتخاذ نموده و علاوه بر آن فایل سیاست Cross-Domain خود را با نامclientaccesspolicy.xml ایجاد کرد.
هر زمان که یک کلاینت وب تشخیص دهد که یک منبع باید از دامنه دیگری درخواست شود، ابتدا به دنبال یک فایل سیاست(Policy) در دامنه هدف خواهد بود تا مشخص شود که آیا انجام درخواستهای Cross-Domain، از جمله Header ها و اتصالات مبتنی بر سوکت مجاز است یا خیر.
فایلهای سیاست اصلی در ریشه دامنه قرار دارند. ممکن است به یک کلاینت دستور داده شود که یک فایل سیاست متفاوت را Load کند اما همیشه در ابتدا، فایل سیاست اصلی را بررسی خواهد کرد تا اطمینان حاصل شود که فایل سیاست اصلی، فایل سیاست درخواستی، را مجاز میداند.
تفاوت Crossdomain.xml و Clientaccesspolicy.xml
بیشتر برنامههای RIA از crossdomain.xml پشتیبانی میکنند. با این حال در مورد Silverlight، تنها در صورتی کار خواهد کرد که crossdomain.xml مشخص کند که دسترسی از هر دامنهای مجاز است. برای کنترل دقیق تر با Silverlight، باید از clientaccesspolicy.xml استفاده شود.
فایلهای Policy انواع مختلفی از مجوزها را اعطا میکنندکه شامل:
• فایلهای Policy پذیرفتهشده (فایلهای Policy اصلی میتوانند فایلهای Policy خاص را غیرفعال یا محدود کنند)
• مجوزهای سوکت
• مجوزهای مربوط به هدر
• مجوزهای دسترسی HTTP/HTTPS
• اجازه دسترسی مبتنی بر Credential های رمزنگاری
مثالی از یک فایل Policy با مجوزهای بیش از حد به شکل زیر میباشد:
چگونه می توان از فایلهای Cross Domain Policy سوء استفاده کرد؟
• سیاستهای Cross-Domain با مجوزهای بیش از حد.
• ایجاد پاسخهای سرور که ممکن است به عنوان فایلهای سیاست Cross-Domain در نظر گرفته شوند.
• استفاده از قابلیتهای آپلود فایل برای آپلود فایلهایی که ممکن است به عنوان فایلهایی با Cross-Domain Policy در نظر گرفته شوند.
تاثیر سوء استفاده دسترسی Cross-Domain
• شکسته شدن محافظتهای مربوط به CSRF
• دسترسی و خواندن دادههای محدود شده یا محافظت شده توسط سیاستهای Cross-Origin
آزمایش اهداف
فایلهای Policy را بررسی و اعتبارسنجی نمایید.
چگونه تست را انجام دهیم
بررسی فایلهای Policy ضعیف RIA
برای تست ضعف در فایل Policy مربوط بهRIA، تست نفوذگر باید تلاش کند تا فایلهای Policy را از ریشه برنامه و از هر پوشه دیگر استخراج نماید.
برای مثال، آدرس www.owasp.org را در نظر بگیرید. تست نفوذگر باید بررسی کند که آیا فایلهای مربوط به Cross-Domain Policy در دایرکتوری اصلی سایت قرار دارد یا خیر:
• www.owasp.org/clientaccesspolicy.xml
• www.owasp.org/crossdomain.xml
پس از استخراج تمام فایلهای Policy، دسترسیهای مجاز باید تحت اصل حداقل سطح دسترسی یا least privilege بررسی شوند. درخواستها تنها باید از دامینها، پورتها یا پروتکلهایی که ضروری هستند، آمده باشند و همچنین میبایست از سیاستهای بیش از حد مجاز، اجتناب شود. همچنین لازم به ذکر است سیاستهایی که با علامت ستاره مشخص شدهاند باید به دقت مورد بررسی قرار گیرند.
به عنوان نمونه
در این مثال ابتدا یک فایل مربوط به Policy شناسایی شده است که همانند فایل بالا بوده و در آن تنظیمات مربوط به دسترسی به صورت ستاره مشخص شده است که پیکربندی مناسبی نبوده و باید مورد بررسی قرار گیرد.