راهکار Wazuh با استفاده از ماژول Vulnerability Detector میتواند آسیب پذیری های برنامه های نصب شده بر روی Clientها را تشخیص داده و آنها را گزارش دهد. این قابلیت از نسخه 3.2.0 به بعد این نرم افزار در اختیار عموم قرار گرفته است. Wazuh برای تشخیص این آسیب پذیری ها از پایگاه داده های مختلفی استفاده میکند و خوراک خود را از آنها میگیرد.
Wazuh از پایگاه داده های زیر در ماژول Vulnerability Detection خود استفاده میکند:
توضیحات | وبسایت دریافت CVE |
دریافت CVE سیستم عاملهای مبتنی بر Ubuntu | https://www.canonical.com |
دریافت CVE سیستم عاملهای مبتنی بر RedHat و CentOS | https://www.redhat.com |
دریافت CVE سیستم عاملهای مبتنی بر Debian | https://www.debian.org |
دریافت CVEهای مرتبط با محصولات Microsoft | https://feed.wazuh.com |
یک پایگاه داده عمومی جهت دریافت CVEهای مختلف | https://nvd.nist.gov |
برای شناسایی این آسیب پذیری ها، ابتدا Agent نصب شده Wazuh شروع به اسکن برنامه های نصب شده بر روی سیستم عامل کرده و لیست آنها را به صورت دوره ای به سمت سرور Wazuh ارسال میکند و این اطلاعات در یک پایگاه داده که از نوع Sqlite میباشد ذخیره میگردد. همچنین سرور Wazuh از طریق پایگاه داده هایی که بالاتر معرفی شد لیستی از CVEها را جمع آوری و درون خود ذخیره میکند و به کمک آن، آسیب پذیری های موجود را شناسایی مینماید. همچنین میتوان این پایگاه داده را به گونه ای پیکربندی نمود تا به صورت دوره ای و خودکار، به روز رسانی شده و جدید ترین CVE ها را دریافت کند.
در شکل زیر سیستم عامل هایی که توسط ماژول Vulnerability Detection پشتیبانی شده و پایگاه داده ای که Wazuh برای دریافت CVEها از آن استفاده میکند آورده شده است.

اگرچه نام برخی سیستم عامل ها در تصویر بالا وجود ندارد، اما این بدین معنا نیست که Wazuh توانایی شناسایی آسیب پذیری بر روی این دسته از سیستم عامل ها را ندارد. بسیاری از سیستم عامل ها، برگرفته از سیستم عامل های دیگر میباشند. به عنوان مثال Linux Mint بر پایه Debian است. این مساله در هنگام تعریف قوانین اسکن، قابل تنظیم است و میتوان مشخص کرد کدام فیدهای آسیبپذیری بر روی کدام سیستم عامل ها بررسی شود.
گاهی در یک سازمان دسترسی مستقیم یک سرورWazuh به اینترنت وجود ندارد و به روز رسانی CVEها در این صورت امکان پذیر نیست، برای حل این مشکل Wazuh از قابلیت Offline Update استفاده کرده و توانایی به روز رسانی CVEها را به کاربران میدهد. در این حالت میتوان فایل های CVE که در قالب XML یا JSON هستند را به صورت یک فایل ZIP (gz, bzip2) دانلود کرده و آنرا بر روی یک آدرس در شبکه داخلی قرار داد و با انجام پیکربندی در سرور Wazuh، تمامی فایل ها را از مسیر های مشخص شده دانلود و در انجام فرآیند Vulnerability Detection از آنها استفاده کرد.
پس از اعمال پیکربندی های مرتبط با نیاز هر سازمان و اسکن سیستم عامل های موجود، در محیط گرافیکی Wazuh میتوان خروجی و گزارش نهایی از فرآیند کاری Wazuh را مشاهده کرد. در خروجی این قابلیت، پارامتر هایی وجود دارد که به توضیح برخی از آنها پرداخته میشود.
- CVE: شناسه یک آسیب پذیری
- Title: شرح مختصری از تاثیرات آسیب پذیری
- Rationale: توضیحی در رابطه با گسترده آسیب پذیری
- Severity: مشخص کردن تاثیرات آسیب پذیری از دید امنیتی
- Package: اطلاعات مربوط به Package آسیب پذیر و …
- Published: تاریخ ورود آسیب پذیری به پایگاه داده های عمومی
- CWE: اطلاعاتی در رابطه با ضعف های موجود
- CVSS: ارزیابی آسیب پذیری بر اساس یک سیستم امتیاز دهی که هرچه عدد بالاتر باشد به منزله خطرناک تر بودن آن آسیب پذیری میباشد ( نسخه 2 و 3)
- Advisories Ids: شامل توصیه های امنیتی برای سیستم عامل های RedHat
- References: لینک هایی جهت نمایش توضیحات بیشتر در رابطه با یک آسیب پذیری
- Bugzilla reference: لینک به سایت Bugzilla به عنوان یک منبع و دریافت اطلاعات در رابطه با یک آسیب پذیری
نمونه خروجی Wazuh برای یک آسیب پذیری کشف شده بر روی یک سیستم داخل شبکه به صورت زیر میباشد:
** Alert 1591945867.49829472: – vulnerability-detector,gdpr_IV_35.7.d,pci_dss_11.2.1,pci_dss_11.2.3,tsc_CC7.1,tsc_CC7.2,
2020 Jun 12 07:11:07 (Debian) any->vulnerability-detector
Rule: 23505 (level 10) -> ‘CVE-2019-12735 affects vim’
vulnerability.package.name: vim
vulnerability.package.version: 2:8.0.0197-4+deb9u1
vulnerability.package.architecture: amd64
vulnerability.package.condition: Package less than 2:8.0.0197-4+deb9u2
vulnerability.cvss.cvss2.vector.attack_vector: network
vulnerability.cvss.cvss2.vector.access_complexity: medium
vulnerability.cvss.cvss2.vector.authentication: none
vulnerability.cvss.cvss2.vector.confidentiality_impact: complete
vulnerability.cvss.cvss2.vector.integrity_impact: complete
vulnerability.cvss.cvss2.vector.availability: complete
vulnerability.cvss.cvss2.base_score: 9.300000
vulnerability.cvss.cvss3.vector.attack_vector: local
vulnerability.cvss.cvss3.vector.access_complexity: low
vulnerability.cvss.cvss3.vector.privileges_required: none
vulnerability.cvss.cvss3.vector.user_interaction: required
vulnerability.cvss.cvss3.vector.scope: changed
vulnerability.cvss.cvss3.vector.confidentiality_impact: high
vulnerability.cvss.cvss3.vector.integrity_impact: high
vulnerability.cvss.cvss3.vector.availability: high
vulnerability.cvss.cvss3.base_score: 8.600000
vulnerability.cve: CVE-2019-12735
vulnerability.title: CVE-2019-12735
vulnerability.rationale: getchar.c in Vim before 8.1.1365 and Neovim before 0.3.6 allows remote attackers to execute arbitrary OS commands via the :source! command in a modeline, as demonstrated by execute in Vim, and assert_fails or nvim_input in Neovim.
vulnerability.severity: High
vulnerability.published: 2019-06-05
vulnerability.updated: 2019-06-13
vulnerability.cwe_reference: CWE-78
vulnerability.references: [“http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00031.html”, “http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00036.html”, “http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00037.html”, “http://lists.opensuse.org/opensuse-security-announce/2019-07/msg00034.html”, “http://lists.opensuse.org/opensuse-security-announce/2019-07/msg00050.html”, “http://lists.opensuse.org/opensuse-security-announce/2019-08/msg00075.html”, “http://www.securityfocus.com/bid/108724”, “https://access.redhat.com/errata/RHSA-2019:1619”, “https://access.redhat.com/errata/RHSA-2019:1774”, “https://access.redhat.com/errata/RHSA-2019:1793”, “https://access.redhat.com/errata/RHSA-2019:1947”, “https://bugs.debian.org/930020”, “https://bugs.debian.org/930024”, “https://github.com/neovim/neovim/pull/10082”, “https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md”, “https://github.com/vim/vim/commit/53575521406739cf20bbe4e384d88e7dca11f040”, “https://lists.debian.org/debian-lts-announce/2019/08/msg00003.html”, “https://lists.fedoraproject.org/archives/list/[email protected]/message/2BMDSHTF754TITC6AQJPCS5IRIDMMIM7/”, “https://lists.fedoraproject.org/archives/list/[email protected]/message/TRIRBC2YRGKPAWVRMZS4SZTGGCVRVZPR/”, “https://seclists.org/bugtraq/2019/Jul/39”, “https://seclists.org/bugtraq/2019/Jun/33”, “https://security.gentoo.org/glsa/202003-04”, “https://support.f5.com/csp/article/K93144355”, “https://support.f5.com/csp/article/K93144355?utm_source=f5support&utm_medium=RSS”, “https://usn.ubuntu.com/4016-1/”, “https://usn.ubuntu.com/4016-2/”, “https://www.debian.org/security/2019/dsa-4467”, “https://www.debian.org/security/2019/dsa-4487”, “https://nvd.nist.gov/vuln/detail/CVE-2019-12735”, “https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12735”]
vulnerability.assigner: [email protected]
vulnerability.cve_version: 4.0
همچنین علاوه بر خروجی بالا میتوان جهت آنالیز سریع تر و کلی تر آسیب پذیری های کشف شده، dashbord های مختلفی طراحی کرد که تصویر آن در ادامه آورده شده است.

برخی قابلیت های دیگر این ماژول:
- امکان مشخص کردن تاریخ دریافت cveها (به طور مثال فقط CVEهای بعد از سال 2016 دریافت شود)
- امکان تعیین INTERVAL و مشخص کردن زمان های اسکن سیستم های درون شبکه
- امکان تعیین INTERVAL و مشخص کردن زمان های به روز رسانی پایگاه داده داخلی CVE
- دارای اسکریپت آماده برای دانلود فید از پایگاه داده های NVD در حالت Offline
- و ….
نویسنده: احمدرضا نوروزی
منبع: شرکت فناوری راه نو سورین

Ahmadreza Norouzi
من به تیمهای محصولات دیجیتال فناوری فین کمک میکنم تا با ایجاد UI/UX سطح بالا، تجربیات شگفتانگیزی ایجاد کنند.