معرفی ماژول Vulnerability Detection در Wazuh

راهکار Wazuh با استفاده از ماژول Vulnerability Detector می‌تواند آسیب پذیری های برنامه های نصب شده بر روی Clientها را تشخیص داده و آنها را گزارش دهد.

راهکار Wazuh با استفاده از ماژول Vulnerability Detector می‌تواند آسیب پذیری های برنامه های نصب شده بر روی Clientها را تشخیص داده و آنها را گزارش دهد. این قابلیت از نسخه 3.2.0 به بعد این نرم افزار در اختیار عموم قرار گرفته است. Wazuh برای تشخیص این آسیب پذیری ها از پایگاه داده های مختلفی استفاده می‌کند و خوراک خود را از آنها می‌گیرد.

Wazuh از پایگاه داده های زیر در ماژول Vulnerability Detection خود استفاده می‌کند:

توضیحاتوبسایت دریافت CVE
دریافت CVE سیستم عامل­های مبتنی بر Ubuntuhttps://www.canonical.com
دریافت CVE سیستم عامل­های مبتنی بر RedHat و CentOShttps://www.redhat.com
دریافت CVE سیستم عامل­های مبتنی بر Debianhttps://www.debian.org
دریافت CVEهای مرتبط با محصولات Microsofthttps://feed.wazuh.com
یک پایگاه داده عمومی جهت دریافت CVEهای مختلفhttps://nvd.nist.gov
پایگاه داده های مورد استفاده Wazuh در Vulnerability Detection

برای شناسایی این آسیب پذیری ها، ابتدا Agent نصب شده Wazuh شروع به اسکن برنامه های نصب شده بر روی سیستم عامل کرده و لیست آنها را به صورت دوره ای به سمت سرور Wazuh ارسال می‌کند و این اطلاعات در یک پایگاه داده که از نوع Sqlite می‌باشد ذخیره می‌گردد. همچنین سرور Wazuh از طریق پایگاه داده هایی که بالاتر معرفی شد لیستی از CVEها را جمع آوری و درون خود ذخیره می‌کند و به کمک آن، آسیب پذیری های موجود را شناسایی می­نماید. همچنین می­توان این پایگاه داده را به ­گونه ای پیکربندی نمود تا به صورت دوره ای و خودکار، به روز رسانی شده و جدید ترین CVE ها را دریافت کند.

در شکل زیر سیستم عامل هایی که توسط ماژول Vulnerability Detection پشتیبانی شده و پایگاه داده ای که Wazuh برای دریافت CVEها از آن استفاده می‌کند آورده شده است.

سیستم عامل های قابل پشتیبانی در ماژول Vulnerability Detection

اگرچه نام برخی سیستم عامل ها  در تصویر بالا وجود ندارد، اما این بدین معنا نیست که 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 های مختلفی طراحی کرد که تصویر آن در ادامه آورده شده است.

خروجی گرافیکی از ماژول Vulnerability Detection پس از کشف آسیب پذیری

برخی قابلیت های دیگر این ماژول:

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

نویسنده: احمدرضا نوروزی

منبع: شرکت فناوری راه نو سورین