ارزیابی آسیب پذیری یا Vulnerability Assessment چیست و چه کاربردهایی دارد؟

0 94

فهرست

در این مقاله قصد داریم در مورد ارزیابی آسیب پذیری یا Vulnerability Assessment صحبت کنیم. قبلا در مقاله ی تست نفوذ کمی در مورد تفاوت های تست نفوذ، ارزیابی آسیب پذیری و هک قانومند صحبت کردیم. در این مقاله قصد داریم به طور کامل در مورد ارزیابی آسیب پذیری، چگونه انجام آن و کاربردهای آن صحبت کنیم.

ارزیابی آسیب پذیری یا Vulnerability Assessment چیست؟

ارزیابی آسیب پذیری یک عمل سیستماتیک برای ارزیابی سیستم ها از بعد امنیتی است. در این عمل سعی می شود نقاط ضعف و آسیب پذیری های امنیتی یک سیستم گزارش شود. همانطور که قبلا بیان کردیم ارزیابی آسیب پذیری با تست نفوذ متفاوت است و ارزیابی آسیب پذیری می تواند یکی از فازهای تست نفوذ باشد. بنابراین اجرای یک ارزیابی آسیب پذیری به معنای انجام تست نفوذ سیستم نیست گرچه بعضی شرکت ها یا سازمان های کوچک به دلیل موارد گوناگون از جمله محدودیت در بودجه و زمان ارزیابی آسیب پذیری را ترجیح می دهند. گزارشی که از ارزیابی آسیب پذیری بدست می‌ آید در اختیار تیم تست نفوذ(عموما برای سازمان هایی که قصد تست نفوذ نیز دارند) یا در اختیار تیم امنیتی و هاردنینگ(عموما برای سازمان های کوچکی که قصد تست نفوذ ندارند) قرار می گیرد. تیم تست نفوذ از این گزارش به عنوان یک مکمل برای انجام تست های عمیق استفاده کرده و تیم امنیتی و هاردنینگ از این گزارش برای برطرف کردن نقاط ضعف و آسیب پذیری های سیستم استفاده می کند.

چه آسیب پذیری هایی در یک ارزیابی آسیب پذیری قابل کشف هستند؟

در یک ارزیابی آسیب پذیری، آسیب پذیری های شناخته شده یا آسیب پذیری هایی که ناشی از وجود یک آسیب پذیری شناخته شده باشند قابل کشف هستند. در این بخش تعدادی از این آسیب پذیری ها را معرفی می کنیم.

ضعف در پیکربندی تجهیزات یا نرم افزارها

ضعف در پیکربندی تجهیزات یا نرم افزارهای مواردی هستند که در بسیاری از کسب و کارها منجر به آسیب پذیری و نفوذ می شوند. برای مثال فرض کنید از یک محصول استفاده می کنید که دارای رمز عبور پیش فرض می باشد. در بسیاری از موارد دیده می شود که این رمز عبور پیش فرض توسط سازمان تغییر نمی کند و از همین رمز در طول استفاده از نرم افزار استفاده می شود. مورد دیگر می توان به پیکربندی SSL در بعضی محصولات معروف مانند Apache HttpClient در نسخه‌ های *.۳ یا PayPal و Amazon Flexible Payment Service (FPS) اشاره کرد. در این محصولات پیکربندی پیش فرض بررسی گواهینامه های دیجیتال منجر به آسیب پذیری می شود به طوریکه یک پلت فرم ناشناس می تواند عملیات چک کردن گواهینامه را دور بزند یا با یک گواهینامه غیر معتبر خود را معرفی کند. مورد دیگر پیکربندی پیش فرض سویچ ها و روترها مخصوصا سویچ های سیسکو هستند که می توانند معماری امنیتی سازمان را با چالش مواجه کنند. مساله ی باز بودن پورت های بلااستفاده نیز در همین دسته قرار می گیرند که با ارزیابی آسیب پذیری می توان آن ها را بررسی و گزارش کرد. باید توجه کرد یک ارزیابی آسیب پذیری در موارد زیادی نمی تواند بسیاری از نقاط ضعف در پیکربندی ها را گزارش کند. برای مثال بعضی پیکربندی ها نیاز به تحلیل ایستا یا Static Analysis نرم افزار دارند که ارزیابی آسیب پذیری در گزارش آن ها ناتوان است.

حملات ناشی از حملات تزریقی

تکنیک های تزریق کد مانند تزریق SQL یا SQL Injection که منجر به حمله به داده های یک فریم ورک یا نرم افزار می شوند می توانند منجر به آسیب پذیری های خطرناک تری شوند. برای مثال بسته به شدت یک آسیب پذیری که عمل تزریق SQL روی آن قابل انجام است، می توان این حمله را به حمله ی اجرای کد از راه دور یا Remote Code Execution (RCE) توسعه داد. همچنین در یک حمله ی XSS یا Cross-site Scripting با توجه به شدت آسیب پذیری می توان آن را به RCE توسعه داد (این مقاله را ببینید).
یک عملیات ارزیابی آسیب پذیری می توان برخی از آسیب پذیری ها که نتیجه ی آسیب پذیری های شناخته شده هستند را گزارش کند. باز باید توجه داشت یک ارزیابی آسیب پذیری قادر به شناسایی تمامی آسیب پذیری های ناشی از آسیب پذیری های شناخته شده نیست چرا که بسیاری از این موارد نیاز به تکنیک های بالا و جدیدی دارند که یک ارزیابی آسیب پذیری از انجام آن ها ناتوان است و این عملیات در تست نفود و هک قانونمند رایج است.

سیستم عامل ها و نرم افزارهای وصله نشده

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

استفاده از کلمات عبور ساده و قابل حدس

در مورد خطر استفاده از کلمات عبور ساده و قابل حدس و بررسی خطر آن ها در مقاله ی سرقت هویت صحبت کردیم. یک عمل ارزیابی آسیب پذیری قادر به شناسایی کلمات عبور ساده و قابل حدس می باشد. توجه شود صرفا طولانی بودن یک کلمه ی عبور پیچیدگی آن را نتیجه نمی دهد زیرا ممکن است یک کلمه ی عبور طولانی به راحیت قابل حدس باشد (برای مثال استفاده از الحاق نام، نام خانوادگی، سال تولد که کلمه عبور طولانی اما قابل حدسی را ایجاد می کند).

مراحل ارزیابی آسیب پذیری

یک ارزیابی آسیب پذیری به طور معمول در ۴ مرحله صورت می گیرد. در این بخش این ۴ مرحله را معرفی می کنیم و توضیحات لازم را ارائه می کنیم.

مشخص کردن محدوده ارزیابی

مشخص کردن محدوده ی ارزیابی چه در ارزیابی آسیب پذیری، چه در تست نفوذ و چه در هک قانونمند توسط سیاست های سازمان مشخص می شود. در این بخش شبکه، سیستم ها و نرم افزارهایی که نیاز به ارزیابی دارند مشخص می شوند. یک ارزیاب متعهد می شود که جز محدوده ی مشخص شده ارزیابی ای انجام ندهد. عموما محدوده های مشخص شده یا نمونه ای از مولفه های تولیدی یا Production هستند یا در مدت ارزیابی از حالت تولید به حالت منفعل در می آیند یا یک سری ارزیابی ها روی آن ها محدود می شود. برای مثال در تست نفوذ ممکن است یک سازمان مشخص کند یک تست حملات DoS و DDoS نباید روی سرورها انجام شود.

بررسی عملکرد سیستم های داخل محدوده

برخی از ارائه دهندگان سرویس ارزیابی آسیب پذیری این مرحله را نادیده می گیرند اما در یک ارزیابی آسیب پذیری دقیق این مرحله مورد توجه قرار می گیرد. در این مرحله یک تست کاربری روی سیستم ها انجام می شود که ارزیاب با عملکرد سیستم ها آشنا شود. این کار بدان منظور است که اگر یک آسیب پذیری کشف شد بتوان تاثیر آن روی عملکرد سیستم را گزارش کرد. این مرحله همچنین برای بررسی آسیب پذیری هایی که نتیجه ی آسیب پذیری های شناخته شده هستند نیست کاربرد دارد. برای مثال اگر ارزیاب متوجه شد که در SQL Server یک عمل کار با XML هم صورت می گیرد ممکن است بتواند در مورد بروز یک حمله ی با استفاده از XXE نیز تصمیم گیری کند.

اجرای اسکن آسیب پذیری

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

ارائه گزارش ارزیابی آسیب پذیری

پس از اجرای مراحل قبلی در نهایت یک گزارش در اختیار مدیریت یا تیم امنیتی سازمان قرار می گیرد. این گزارش حاوی خروجی اسکن آسیب پذیری به همراه موارد زیر می باشد:

  • نام آسیب پذیری و زمان تشخیص آن
  • خطر آسیب پذیری بر اساس پایگاه داده CVE یا Vulnerability Scoring System
  • عواقب و تاثیرات آسیب پذیری
  • اثبات آسیب پذیری یا  Proof of Concept (PoC) – توجه شود اثبات در یک ارزیابی آسیب پذیری می تواند یک اثبات ساده مثل خروجی اسکنر معتبر تا یک اثبات دستی ساده باشد.
  • پیشنهاداتی برای برطرف کردن آسیب پذیری 

انواع ارزیابی آسیب پذیری

یک ارزیابی امنیتی می تواند هدف های مختلفی داشته باشد. برخی از آن ها به دسته های خاصی از مولفه ها محدود هستند و برخی دیگر کل مولفه های سازمان را پوشش می دهند. در این بخش به معرفی ۴ نوع ارزیابی آسیب پذیری می پردازیم.

ارزیابی آسیب پذیری نرم افزار

ارزیابی آسیب پذیری نرم افزار یا Application Assessment آسیب پذیری های مربوط به یک نرم افزار مانند تزریق SQL یا SQL Injection، XSS، سرریز بافر یا Buffer Overflow، ذخیره سازی ناامن و… بررسی می‌شوند. توجه شود در ارزیابی امنیتی آسیب پذیری های روز صفر یا Zero Day مورد بررسی قرار نمی گیرند چرا که کشف این آسیب پذیری ها نیاز به بررسی دقیق و دستی نرم افزار دارد و این آسیب پذیری ها آسیب پذیری هایی هستند که شناخته شده نیستند.

ارزیابی آسیب پذیری پایگاه داده

ارزیابی آسیب پذیری پایگاه داده یا Database Assessment به منظور کشف نقاط ضعف در پیکربندی، محیط ناامن، تزریق SQL یا SQL Injection، تزریق NoSQL یا NoSQL Injection ، ذخیره سازی فایل های مربوط به پایگاه داده و… بررسی می شوند. در مورد امن سازی پایگاه داده یا Database Hardening قبلا مقاله ای ارائه داده ایم.

ارزیابی آسیب پذیری میزبان یا Host

ارزیابی آسیب پذیری میزبان یا Host Assessment به ارزیابی میزبان ها و سرورها می پردازد. در این ارزیابی آسیب پذیری هایی همچون پیکربندی پیش فرض و ضعف در پیکربندی، آسیب پذیری ها و حملات تزریقی از جمله تزریق LDAP یا LDAP Injection، حساب ها با پیکربندی ناامن (برای مثال نام کاربری یا رمز عبور پیش فرض سرور)، ارتقاء دسترسی یا Privilege Escalation و… مورد بررسی قرار می گیرند. مجددا ذکر می کنیم آسیب پذیری های ناشناخته کشف نمی شوند.

ارزیابی شبکه

ارزیابی شبکه یا Network Assessment به ارزیابی آسیب پذیری مولفه های شبکه از جمله سوییچ ها، روترها یا مسیریاب ها، بعضا فایروال ها یا Firewall ها، سیستم های تشخیص نفوذ و… می پردازد. تکرار می کنیم ارزیابی آسیب پذیری شبکه با تست نفوذ شبکه یا Network Penetration Testing متفاوت است. بررسی پیکربندی سوییچ ها و روترها، مخصوصا تجهیزات شبکه مربوط به شرکت سیسکو یکی از نقاط تمرکز ارزیابی آسیب پذیری شبکه است.

ابزارهای ارزیابی آسیب پذیری

در این بخش به معرفی چند ابزار و فریم ورک معروف و قوی ارزیابی آسیب پذیری می پردازیم. عمده ی این ابزارها در آکادمی آموزش داده شده اند یا در دستور کار آموزش هستند.

انمپ یا Nmap

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

برپ سوئیت یا Burp Suit

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

نسوس یا Nessus

نسوس یا Nessus یک نرم افزار متن باز است که عملیات اسکن آسیب پذیری را بطور عمیق انجام می دهد. نسوس قدرت زیادی در تشخیص ضعف در پیکربندی ها، پیکربندی های پیش فرض و کلمات عبور ناامن دارد. گفتنی است از نسوس چه در اسکن آسیب پذیری وب، چه رد اسکن آسیب پذیری سرور و چه در اسکن آسیب پذیری شبکه استفاده می شود. آموزش اسکن آسیب پذیری وب با استفاده از نسوس در آکادمی موجود است.

OpenVas

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

ابزارهای مفید دیگر

ابزارها و فریم ورک های زیادی از جمله ابزار Lynis، ابزار BED، متاسپلویت یا Metasploit و.. برای ارزیابی آسیب پذیری وجود دارند. ما سعی کردیم در این بخش برخی از معروف ترین ابزارها و فریم ورک ها را معرفی کنیم.

سخن پایانی

در این مقاله سعی شد در مورد ارزیابی آسیب پذیری یا Vulnerability Assessment، مراحل آن، انواع آن و برخی ابزارهای آن صحبت شود. توجه می کنیم که برای ایجاد امنیت در یک کسب و کار مهم اکتفا به ارزیابی آسیب پذیری کافی نیست و همانطور که گفتیم ارزیابی آسیب پذیری آنطور که باید عمیق نیست و نیازهای امنیتی یک کسب و کار مهم و در معرض تهدید را ارضاء نمی کند. بعدا در مورد تفاوت های سرویس های امنیتی به تفصیل صحبت خواهیم کرد.

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

درباره ما

ترجنس | thregence.ir
آکادمی ترجنس | edu.thregence.ir
دوره‌های آکادمی ترجنس | courses.thregence.ir
اینستاگرام | instagram.com/thregence
تلگرام | t.me/thregence
یوتوب | https://bit.ly/30mGowo
آپارات | aparat.com/thregence

ارسال یک پاسخ