امروزه با پیشرفت فناوری و روی کار آمدن تکنولوژی های جدید مانند وب سایت ها، بخش مهم و عظیمی از دنیای اینترنت را به خود اختصاص داده اند. اما با وجود ویژگی های متعدد و کارآمد آنها، ما نیاز داریم که در صورت استفاده از این تکنولوژی ها خطر امنیتی ما را تهدید نکند. مبحثی که برای اکثر برنامه نویسان جهان مهم میباشد، این است که میخواهند وب سایتی را که ایجاد میکنند از آسیب پذیری های مختلف و احتمالی که در آنها وجود داشته باشد جلوگیری کنند.
آسیب پذیری های تحت وب و مبحث تست نفوذ به وب سایت ها مبحث بسیار بزرگ و طولانی میباشد.
افرادی که در قالب هکر شروع به آنالیز و بررسی یک وب سایت میکنند تا آسیب پذیری های احتمالی آن را کشف کنند گاه به شکل افراد مخرب این فعالیت را انجام میدهند و موجب آسیب زدن به منابع مختلفی میشوند که اصولا به این دسته از هکر ها Black Hat Hacker و یا هکر کلاه سیاه میگویند.
اما گاها این مسئله برعکس میباشد و افرادی که این فرایند را انجام میدهند به عنوان هکر های قانونمند شناخته میشوند و درصورت کشف آسیب پذیری احتمالی شروع به دادن گزارش به سمت سازمان و یا فردی که پشت آن وب سایت است میکنند که اصولا به این دسته از افراد Pentester و یا White Hat Hacker یا هکر های کلاه سفید میگویند این افراد در قبال اینکار هزینه ایی از سمت سازمان و یا فردی که مدیر وب سایت میباشند دریافت میکنند.
این سوالی است که برنامه نویسان متعددی از من پرسیدند که من به علت پرسش های متدد این مقاله را برای این افراد و افرادی که میخواهند با این فرایند آشنا شوند نوشته ام.
قبل از شروع به پاسخ دادن به این سوال میبایست شما با آسیب پذیری های تحت وبی که به صورت متعدد در وب سایت ها رخ میدهند آشنایی داشته باشید.
بهتر است بدانید که 10 مورد از خطرناک ترین این آسیب پذیری ها تحت عنوان پروژ] OWASP شناخته می شود.
به دلیل نبود بوجه کافی برای استخدام کارشناس تست نفوذ وب سایت و نداشتن وقت کافی میبایست از روش های مختلفی یا بهتر بگویم از نرم افزار ها و ابزار های مختلفی استفاده کنیم که میتوانند این کار را برای ما انجام دهند.
بررسی امنیتی یک وب سایت با استفاده از نرم افزار ها و ابزار های متعدد به دو روش مختلف تقسیم بندی میشود که عبارتند از: SAST و DAST
این روش که مخفف کلمات Static Application Security Testing میباشد وظیفه آنالیز سازی و بررسی امنیتی کد های که به آن داده میشوند را دارد.
برای مثال شما یک آپلودر به زبان PHP نوشته ایید و میخواهید بررسی کنید آیا این اپلودر شما دارای آسیب پذیری های مثله LFI و یا RFI است یا خیر.
ابزار های متعددی برای اینکار وجود دارد که Source Code را دریافت و آسیب پذیری های احتمالی از کد نویسی های Non-Secure(غیرایمن) را کشف و گزارش میکند.
برای مثال یکی از این ابزار های قدرتمند RIPS میباشد که توسط Web Exploiter ها و یا افرادی که در زمینه نوشتن کد های مخرب و کشف آسیب پذیری های تحت وب هستند استفاده بسیار زیادی دارد.
این ابزار مختص زبان PHP میباشد و شما میتوانید با دادن Source Code مورد نظر خود به آن آسیب پذیری های احتمالی را از آن کشف کنید.
این ابزار به طور کامل درحد نمایش قسمت Source Code آسیب پذیری و نحوه Exploit سازی آن کار را برای ما انجام میدهد.
شما میتوانید RIPS را از GitHub این ابزار دریافت کرده و بر روی Local Host خود اجرا کنید تا به محیط وب آن دسترسی پیدا کنید.
برای استفاده از آن همانطور که در تصویر زیر میببینید میبایست آدرس فایل مورد نظر را در قسمت Path File وارد کنید.
RIPS Github: https://github.com/robocoder/rips-scanner
چند ابزار قدرتمند دیگر در این زمینه به همراه زبان های که پشتیبانی میکنند:
این ابزار ها زمانی مورد استفاده قرار میگیرند که وب سایت مورد نظر بهطور کامل بالا آمده باشد و شما با استفاده از دادن Url وب سایت به این ابزارها، آسیب پذیری های احتمالی موجود در سایت شما را کشف و گزارش می کنند.
بر خلاف ابزارهای تست امنیتی مبتنی SAST، ابزارهای DAST به Source-Code دسترسی ندارند و بنابراین با انجام حملات مختلف و Payload ریزی در وب سایت آسیب پذیری را تشخیص می دهند.
ابزار OWASP-ZAP اینکار را به خوبی میتواند برای ما به انجام دهد. این ابزار را که اجرا می کنید (در سیستم های امنیتی همچون کالی لینوکس بهصورت پیشفرض نصب است) رابط آن به شکل زیر می باشد.
در قسمت بنفش رنگ میبایست آدرس Url سایت مورد نظرتان را وارد کنید تا فرایند اسکن را برای شما انجام دهد. تمامی آسیب پذیری های کشف شده در قسمت Alert همانند تصویر زیر نمایش داده می شود.
ابزار wpscan یکی دیگر از ابزار های در این زمینه می باشد با این تفاوت که این ابزار مختص وب سایت های میباشد که بر روی CMS محبوب WordPress اجرا شده اند.
چند ابزار قدرتمند دیگر در زمینه اسکن آسیب پذیری سایت: