11.2. انواع ارزیابی ها
اکنون که از آماده بودن محیط کالی خود مطمئن شده اید، مرحله بعدی این است که دقیقاً چه نوع ارزیابی را انجام می دهید. در بالاترین سطح، ما ممکن است چهار نوع ارزیابی را توصیف کنیم: الف ارزیابی آسیب پذیری، یک تست انطباق، یک تست نفوذ سنتی، و ارزیابی کاربرد. یک تعامل ممکن است شامل عناصر مختلفی از هر نوع ارزیابی باشد، اما ارزش آن را دارد که آنها را با جزئیات شرح دهیم و ارتباط آنها با ساخت و محیط لینوکس کالی را توضیح دهیم.
قبل از پرداختن به انواع مختلف ارزیابی ها، مهم است که ابتدا به تفاوت بین یک آسیب پذیری و یک سوء استفاده اشاره کنیم.
A آسیب پذیری به عنوان نقصی تعریف می شود که در صورت بهره برداری از آن، محرمانه بودن، یکپارچگی یا در دسترس بودن یک سیستم اطلاعاتی به خطر می افتد. انواع مختلفی از آسیب پذیری ها وجود دارد که می توان با آنها روبرو شد، از جمله:
• گنجاندن فایل: آسیب پذیری های گنجاندن فایل1 در برنامه های وب به شما این امکان را می دهد شامل محتویات یک فایل محلی یا راه دور در محاسبات یک برنامه. به عنوان مثال، یک برنامه وب ممکن است یک تابع "پیام روز" داشته باشد که محتوای یک فایل را می خواند و آن را در صفحه وب قرار می دهد تا آن را به کاربر نمایش دهد. هنگامی که این نوع ویژگی به اشتباه برنامه ریزی شده باشد، می تواند به مهاجم اجازه دهد تا درخواست وب خود را تغییر دهد تا سایت را مجبور کند محتویات فایل مورد نظر خود را درج کند.
• SQL Injection: یک تزریق SQL2 حمله ای است که در آن روال های اعتبارسنجی ورودی برای برنامه دور زده می شود و به مهاجم اجازه می دهد تا دستورات SQL را برای اجرای برنامه مورد نظر ارائه دهد. این یک شکل از اجرای دستور است که می تواند منجر به مشکلات امنیتی بالقوه شود.
• سرریز بافر: سرریز بافر3 یک آسیبپذیری است که روالهای اعتبارسنجی ورودی را دور میزند تا دادهها را در حافظه مجاور بافر بنویسد. در برخی موارد، آن مکان حافظه مجاور ممکن است برای عملکرد برنامه هدف حیاتی باشد و کنترل اجرای کد را می توان از طریق دستکاری دقیق داده های حافظه بازنویسی شده به دست آورد.
• شرایط مسابقه: شرایط مسابقه4 آسیبپذیری است که از وابستگیهای زمانبندی در یک برنامه استفاده میکند. در برخی موارد، گردش کار یک برنامه به دنباله خاصی از رویدادها بستگی دارد. اگر بتوانید این توالی رویدادها را تغییر دهید، ممکن است منجر به آسیبپذیری شود.
An بهره برداریاز سوی دیگر، نرم افزاری است که هنگام استفاده از یک آسیب پذیری خاص بهره می برد، اگرچه همه آسیب پذیری ها قابل بهره برداری نیستند. از آنجایی که یک اکسپلویت باید یک فرآیند در حال اجرا را تغییر دهد و آن را مجبور به انجام یک اقدام ناخواسته کند، ایجاد اکسپلویت میتواند پیچیده باشد. علاوه بر این، تعدادی از فناوریهای ضد بهرهبرداری در پلتفرمهای محاسباتی مدرن وجود دارد
1https://en.wikipedia.org/wiki/File_inclusion_vulnerability 2https://en.wikipedia.org/wiki/SQL_injection 3https://en.wikipedia.org/wiki/Buffer_overflow 4https://en.wikipedia.org/wiki/Race_condition
طراحی شده است تا بهره برداری از آسیب پذیری ها مانند پیشگیری از اجرای داده ها را سخت تر کند5 (DEP) و تصادفی سازی طرح بندی فضای آدرس6 (ASLR). با این حال، فقط به این دلیل که هیچ سوء استفاده عمومی برای یک آسیب پذیری خاص وجود ندارد، به این معنی نیست که وجود ندارد (یا نمی توان آن را ایجاد کرد). برای مثال، بسیاری از سازمانها اکسپلویتهای تجاریسازی شده را میفروشند که هرگز عمومی نمیشوند، بنابراین همه آسیبپذیریها باید بهعنوان بالقوه قابل بهرهبرداری در نظر گرفته شوند.