چگونه آسیب پذیری های یک وب سایت را خودمان پیدا کنیم؟
چگونه آسیب پذیری های یک وب سایت را خودمان پیدا کنیم؟
امروزه با پیشرفت فناوری و روی کار آمدن تکنولوژی های جدید مانند وب سایت ها، بخش مهم و عظیمی از دنیای اینترنت را به خود اختصاص داده اند. اما با وجود ویژگی های متعدد و کارآمد آنها، ما نیاز داریم که در صورت استفاده از این تکنولوژی ها خطر امنیتی ما را تهدید نکند. مبحثی که برای اکثر برنامه نویسان جهان مهم میباشد، این است که میخواهند وب سایتی را که ایجاد میکنند از آسیب پذیری های مختلف و احتمالی که در آنها وجود داشته باشد جلوگیری کنند.
آشنایی با آسیب پذیری های تحت وب
آسیب پذیری های تحت وب و مبحث تست نفوذ به وب سایت ها مبحث بسیار بزرگ و طولانی میباشد.
افرادی که در قالب هکر شروع به آنالیز و بررسی یک وب سایت میکنند تا آسیب پذیری های احتمالی آن را کشف کنند گاه به شکل افراد مخرب این فعالیت را انجام میدهند و موجب آسیب زدن به منابع مختلفی میشوند که اصولا به این دسته از هکر ها Black Hat Hacker و یا هکر کلاه سیاه میگویند.
اما گاها این مسئله برعکس میباشد و افرادی که این فرایند را انجام میدهند به عنوان هکر های قانونمند شناخته میشوند و درصورت کشف آسیب پذیری احتمالی شروع به دادن گزارش به سمت سازمان و یا فردی که پشت آن وب سایت است میکنند که اصولا به این دسته از افراد Pentester و یا White Hat Hacker یا هکر های کلاه سفید میگویند این افراد در قبال اینکار هزینه ایی از سمت سازمان و یا فردی که مدیر وب سایت میباشند دریافت میکنند.
چگونه آسیب پذیری های احتمالی سایت مان را خودمان کشف کنیم؟
این سوالی است که برنامه نویسان متعددی از من پرسیدند که من به علت پرسش های متدد این مقاله را برای این افراد و افرادی که میخواهند با این فرایند آشنا شوند نوشته ام.
قبل از شروع به پاسخ دادن به این سوال میبایست شما با آسیب پذیری های تحت وبی که به صورت متعدد در وب سایت ها رخ میدهند آشنایی داشته باشید.
بهتر است بدانید که 10 مورد از خطرناک ترین این آسیب پذیری ها تحت عنوان پروژه OWASP شناخته می شود.
آشنایی با انواع آسیب پذیری های تحت وب
- آسیب پذیری RCE – به موجب این آسیب پذیری فرد مهاجم توانایی اجرا سازی دستورات خود را بر روی سرور وب سایت به دست می آورد.
- آسیب پذیری SQL Injection – از طریق این آسیب پذیری فرد مهاجم توانایی تزریق سازی کد های مخرب SQL را به Database وب سایت را به دست میآورد و موجب دسترسی فرد مهاجم به اطلاعات درون Database میشود.
- آسیب پذیری XXE – به موجب این آسیب پذیری فرد مهاجم توانایی اجرا سازی کد های XML را به روش های مختلف را پیدا میکند و درصورت وجود این آسیب پذیری فرد مهاجم توانایی انجام تکنیک هایی برای تبدیل آن به آسیب پذیری های خطرناک تری مثله RCE را دارد.
- آسیب پذیری IDOR – آسیب پذیری که موجب دسترسی پیدا کردن فرد مهاجم به حساب های دیگر درون وب سایت ختم میشود. برای مثال فرد مهاجم در صورت وجود این آسیب پذیری توانایی دسترسی به حساب Admin در یک وب سایت را دارد.
- آسیب پذیری XSS – از متعدد ترین و رایج ترین آسیب پذیری ها و حملاتی که ممکن است در وب سایت ها رخ دهد آسیب پذیری خطرناک XSS میباشد زیرا توانایی اجرا کد های JavaScript را به مرورگر کاربران درون یک وب سایت را فراهم میسازد و توانایی دزدیدن Session کاربر را نیز دارد.
- آسیب پذیری CSRF – به سبب این آسیب پذیری فرد مهاجم توانایی ایجاد درخواست های جعلی را از سمت کاربران دیگر در شبکه را دارد. از این رو برای مثال در یک وب سایت بانکی قرار است تراکنشی از سمت حساب Y به سمت حساب X شود که مقدار 100هزارتومن است فردمهاجم توانایی این را دارد که مقدار 100 هزارتومن را از حساب Y به سمت حساب خودش هدایت کند.
- آسیب پذیری LFI – به سبب این آسیب پذیری فرد مهاجم توانایی اجرا سازی فایل های مخرب را بر روی سرور وب سایت را دارد.
- آسیب پذیری RFI – این آسیب پذیری نیز به شکل آسیب LFI میباشد اما فایل ها مستقیما بر روی سرور وب سایت قرار نمیگیرند و از مکان دیگری در سرور وب سایت اجرا میشوند. برای مثال از طریق یک وب سایت دیگر و دادن لینک آن به وب سایت آسیب پذیر به منظور اجرا شدن فایل مخرب.
- آسیب پذیری OpenRedirect – این یکی از آسیب پذیری های سطح پایین میباشد و در سطح آسیب پذیری های Low Level قرار دارد. به موجب این آسیب پذیری فرد مهاجم توانایی انتقال کاربران از یک وب سایت به وب سایت دیگر یا وب سایت مخرب خود را دارد، درسته که آسیب Open Redirect در نگاه اول آسیب پذیری بسیار سطح پایینی است اما میتوان از آن برای حملات فیشینگ و حملات XSS نیز استفاده کرد !
نحوه کشف آسیب پذیری های تحت وب
به دلیل نبود بوجه کافی برای استخدام کارشناس تست نفوذ وب سایت و نداشتن وقت کافی میبایست از روش های مختلفی یا بهتر بگویم از نرم افزار ها و ابزار های مختلفی استفاده کنیم که میتوانند این کار را برای ما انجام دهند.
بررسی امنیتی یک وب سایت با استفاده از نرم افزار ها و ابزار های متعدد به دو روش مختلف تقسیم بندی میشود که عبارتند از: SAST و DAST
بررسی امنیتی وب سایت از طریق SAST
این روش که مخفف کلمات Static Application Security Testing میباشد وظیفه آنالیز سازی و بررسی امنیتی کد های که به آن داده میشوند را دارد.
برای مثال شما یک آپلودر به زبان PHP نوشته ایید و میخواهید بررسی کنید آیا این اپلودر شما دارای آسیب پذیری های مثله LFI و یا RFI است یا خیر.
ابزار های متعددی برای اینکار وجود دارد که Source Code را دریافت و آسیب پذیری های احتمالی از کد نویسی های Non-Secure(غیرایمن) را کشف و گزارش میکند.
برای مثال یکی از این ابزار های قدرتمند RIPS میباشد که توسط Web Exploiter ها و یا افرادی که در زمینه نوشتن کد های مخرب و کشف آسیب پذیری های تحت وب هستند استفاده بسیار زیادی دارد.
این ابزار مختص زبان PHP میباشد و شما میتوانید با دادن Source Code مورد نظر خود به آن آسیب پذیری های احتمالی را از آن کشف کنید.
این ابزار به طور کامل درحد نمایش قسمت Source Code آسیب پذیری و نحوه Exploit سازی آن کار را برای ما انجام میدهد.
نحوه نصب و استفاده از RIPS
شما میتوانید RIPS را از GitHub این ابزار دریافت کرده و بر روی Local Host خود اجرا کنید تا به محیط وب آن دسترسی پیدا کنید.
برای استفاده از آن همانطور که در تصویر زیر میببینید میبایست آدرس فایل مورد نظر را در قسمت Path File وارد کنید.
چند ابزار قدرتمند دیگر در این زمینه به همراه زبان های که پشتیبانی میکنند:
- PMD: Java
- Graudit: multiple languages
- Pyre: Python3
- PreFast: C++/C
بررسی امنیتی وب سایت از طریق DAST
این ابزار ها زمانی مورد استفاده قرار میگیرند که وب سایت مورد نظر بهطور کامل بالا آمده باشد و شما با استفاده از دادن Url وب سایت به این ابزارها، آسیب پذیری های احتمالی موجود در سایت شما را کشف و گزارش می کنند.
بر خلاف ابزارهای تست امنیتی مبتنی SAST، ابزارهای DAST به Source-Code دسترسی ندارند و بنابراین با انجام حملات مختلف و Payload ریزی در وب سایت آسیب پذیری را تشخیص می دهند.
ابزار OWASP-ZAP اینکار را به خوبی میتواند برای ما به انجام دهد. این ابزار را که اجرا می کنید (در سیستم های امنیتی همچون کالی لینوکس بهصورت پیشفرض نصب است) رابط آن به شکل زیر می باشد.
در قسمت بنفش رنگ میبایست آدرس Url سایت مورد نظرتان را وارد کنید تا فرایند اسکن را برای شما انجام دهد. تمامی آسیب پذیری های کشف شده در قسمت Alert همانند تصویر زیر نمایش داده می شود.
بزار wpscan یکی دیگر از ابزار های در این زمینه می باشد با این تفاوت که این ابزار مختص وب سایت های میباشد که بر روی CMS محبوب WordPress اجرا شده اند.
چند ابزار قدرتمند دیگر در زمینه اسکن آسیب پذیری سایت:
- OpenVAS
- Nessus
- Vega
- Acunetix
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.