اخبار داخلی آرمان داده پویان

مقالات

حملات XML external entity (XXE) injection (قسمت دوم)

۱۶ آذر ۱۳۹۸

حملات XML external entity (XXE) injection

قسمت دوم

از آنجایی که یکی از حوزه‌های فعالیت آرمان داده پویان امنیت وب می‌باشد در قسمت مقالات آموزشی در ارتباط با حملات امنیتی وب، آسیب‌پذیری‌ها، تست نفوذ، ابزارها و بهترین راهکارهای افزایش امنیت وب صحبت می‌نماییم. همچنین در مقالاتی مانند بررسی پروتکل HTTP از دیدگاه امنیتی، نگاهی به پروتکل‌های رایج انداخته و به بررسی تخصصی آن‌ها می‌پردازیم. آرمان داده پویان علاوه بر ارائه تست نفوذ وب، پویشگرهای آسیب‌پذیری وب، دیواره‌های آتش وب بنیان و با بهره گیری از یک تیم متخصص امنیت و برنامه‌نویسی امیدوار است تا با ارائه محتوی تخصصی در حوزه امنیت وب گامی را در راستای ارتقا امنیت وب و برنامه‌های کاربردی وب بنیان بردارد. در ادامه مطالبی که در ارتباط با امنیت وب در قسمت مقالات آموزشی منتشر کردیم، امروز در قسمت دوم از حملات XML external entity (XXE) injection به بررسی روش‌های یافتن این آسیب‌پذیری و نحوه برطرف کردن آن‌ها می‌پردازیم.

تشخیص و پیشگیری از آسیب‌پذیری XXE

برای از بین بردن آسیب‌پذیری XXE بر روی برنامه کاربردی وب بنیان راه‌های مختلفی وجود دارد. می‌توانید XXE را در برنامه کاربردی وب بنیان غیرفعال نمایید. اگر هم امکان این کار را ندارید و این کار منجر به مختل کردن عملکرد برنامه کاربردی وب بنیان می‌گردد، بایستی به سراغ تک تک پارسرها رفته و این موضوع  را بررسی نموده و اگر غیرفعال کردن XXE در آن پارسر به عملکرد برنامه کاربردی وب بنیان آسیبی نمی‌رساند این کار را انجام دهید. ویژگی دیگری که می‌توانید غیرفعال کنید DTD می‌باشد، این کار را بهتر است در تمامی قسمت‌های برنامه کاربردی انجام دهید در غیر این صورت به سراغ تک تک پارسرها رفته و در صورتی که غیرفعال کردن این ویژگی آسیبی به عملکرد برنامه نزند آن را غیرفعال کنید.

ارزیابی ورودی‌های XML نیز یکی دیگر از راهکارهای موثر است. در این صورت قبل از بارگذاری هر payload المان‌های آن بررسی شده و از عدم مخرب بودن آن اطمینان حاصل می‌گردد. به طور مثال برخی برنامه‌های کاربردی وب بنیان به کاربران اجازه می‌دهند تا فایل بارگذاری نمایند. برخی از فرمت‌های رایج بر مبنا XML هستند مثلا تصایر با فرمت‌های SVG و اسناد آفیس با فرمت XML. پس این فایل‌ها می‌توانند ابزار مناسبی برای راه اندازی حملات XXE باشند و بایستی در سمت سرور ارزیابی درستی بر روی آن‌ها انجام پذیرد و در غیر این صورت این برنامه کاربردی وب بنیان آسیب‌پذیر خواهد بود.

تحلیل کد منبع نیز در اکثر موارد منجر به یافتن این آسیب‌پذیری و برطرف کردن آن می‌گردد. راهکار بعدی استفاده از DAST (ِDynamic Application Security Testing) می‌باشد، در این روش با ارسال XXEهای مختلف آسیب‌پذیری و یا عدم آسیب پذیری برنامه مورد نظر را بررسی نمایید. بسیاری از برنامه‌های کاربردی از یک محتوی پیش فرض که توسط فرم‌های HTML تولید می‌شود مانند application/x-www-form-urlencoded استفاده می‌کنند. اما برخی وب سایت‌ها درخواست‌هایی که نوع محتوی دیگری دارند مثل XML را می‌پذیرند. یکی از بررسی‌های پویای امنیتی که بر روی یک برنامه کاربردی وب بنیان می‌تواند صورت پذیرد نیز همین است که بررسی کنیم آیا محتوی XML را می‌پذیرد و یا خیر! به تکه کد زیر دقت نمایید. این یک نمونه درخواست طبیعی می‌باشد:

POST /action HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 7

foo=bar

مهاجم قادر خواهد بود درخواست زیر را ارسال نمایید:

POST /action HTTP/1.0
Content-Type: text/xml
Content-Length: 52

bar

اگر هم امکان بررسی و رفع آسیب‌پذیری در کد را ندارید با راه انداز و پیکربندی مناسب یک WAF می‌توانید تا حدودی از حملات XXE جلوگیری نمایید.

نتیجه‌گیری

در قسمت اول از رتبه چهارم فهرست OWASP Top 10 یعنی آسیب‌پذیری XXE صحبت کردیم و انواع آن را بررسی کردیم. دراین قسمت روش‌های تشخیص و پیشگیری از این آسیب‌پذیری را معرفی کردیم.  یک متخصص تست نفوذ وب با پویشگرهای آسیب‌پذیری مانند acunetix و Burp Suite می‌تواند این آسیب‌پذیری را در برنامه وب بنیان مقصد تشخیص دهد، همچنین می‌تواند تست‌های دستی بر روی آن انجام داده و در صورت دقیق و درست بودن سنجش‌ها آسیب‌پذیری را بیابید. امنیت و برنامه‌های کاربردی وب بنیان بخش مهمی از امنیت یک سازمان را تشکیل می‌دهند.

یکی از حوزه‌های فعالیت آرمان داده پویان امنیت وب می‌باشد. آرمان داده پویان با تامین تجهیزات امنیتی مانند WAF، پویشگرهای آسیب‌پذیری وب و ارائه تست نفوذ وب با بهره‌گیری از یک تیم متخصص امنیت و برنامه‌نویسی و مطابق با آخرین متدولوژی‌های روز خدمات ارزشمندی را به شما ارائه خواهد داد.

برای مشاوره و کسب اطلاعات بیشتر با ما تماس بگیرید

تعداد بازدید: 652


تازه ترین ها