هشدار – آسیب‌پذیری‌های بحرانی در محصولات CML و VIRL-PE سیسکو

اخیراً دو آسیب‌پذیری در محصول SaltStack کشف شده بودند که امکان اجرای کد از راه دور را روی سرور فراهم می‌کردند. این دو آسیب‌پذیری محصولات CML و VIRL-PE سیسکو را که از SaltStack استفاده می‌کنند، تحت تأثیر قرار می‌دهند.

هشدار – آسیب‌پذیری‌های بحرانی در محصولات CML و VIRL-PE سیسکو

اخیراً دو آسیب‌پذیری در محصول SaltStack کشف شده بودند که امکان اجرای کد از راه دور را روی سرور فراهم می‌کردند. این دو آسیب‌پذیری محصولات CML و VIRL-PE سیسکو را که از SaltStack استفاده می‌کنند، تحت تأثیر قرار می‌دهند.

این دو آسیب‌پذیری عبارت‌اند از CVE-2020-11651 و CVE-2020-11652. سیسکو درجه اهمیت «بحرانی» با امتیاز 10 را به این آسیب‌پذیری‌ها اختصاص داده است. نرم‌افزار CML نسخه Enterprise و VIRL نسخه Personal (VIRL-PE) شامل نسخه‌ای از SaltStack هستند که سرویس salt-master را اجرا می‌کند و تحت تأثیر این آسیب‌پذیری‌ها قرار دارد. سیسکو برای این محصولات به‌روزرسانی‌هایی منتشر کرده است که این آسیب‌پذیری‌ها را رفع می‌کنند.

محصول VIRL-PE به سرورهای Salt تحت مدیریت شرکت سیسکو وصل می‌شود که سرویس salt-master را اجرا می‌کنند. طبق اعلام سیسکو، سرورهایی که به VIRL-PE نسخه 1.2 و 1.3 سرویس می‌دهند مورد نفوذ واقع شده‌اند، اما سیسکو در تاریخ 7 مه مشکل آن‌ها را برطرف کرده است. سرورهای مورد نفوذ عبارت‌اند از:

  • us-1.virl.info
  • us-2.virl.info
  • us-3.virl.info
  • us-4.virl.info
  • vsm-us-1.virl.info
  • vsm-us-2.virl.info

برای اینکه ببینید سرور شما به کدام یک از سرورهای Salt متصل می‌شود می‌توانید به بخش VIRL Server > Salt Configuration and Status مراجعه کنید. محصول CML به سرورهای تحت مدیریت سیسکو متصل نمی‌شود.

جزئیات آسیب‌پذیری

در نرم‌افزارهای CML و VIRL-PE، اگر salt-master فعال باشد و این سرویس از طریق پورت‌های TCP 4505 و 4506 قابل دسترسی باشد، امکان بهره‌برداری از آسیب‌پذیری وجود دارد. سیسکو توصیه می‌کند که در صورت فعال بودن سرویس salt-master، بررسی کنید که آیا سیستم مورد نفوذ واقع شده است یا خیر. در ضمن، آخرین نسخه نرم‌افزار CML یا VIRL-PE را نصب کنید. برای تشخیص فعال بودن salt-master، به تجهیز لاگین کرده و دستور زیر را اجرا کنید:

sudo systemctl status salt-master

در مثال زیر salt-master فعال است:

virl@virl:~$ sudo systemctl status salt-master
? salt-master.service – The Salt Master Server
Loaded: loaded (/lib/systemd/system/salt-master.service; disabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/salt-master.service.d
+-override.conf
Active: active (running) since Thu 2020-05-28 17:55:10 GMT; 1s ago
Docs: man:salt-master(1)
file:///usr/share/doc/salt/html/contents.htmlhttps://docs.saltstack.com/en/latest/contents.htmlMain

PID: 20662 (/usr/bin/python)
Tasks: 16
Memory: 217.9M
CPU: 7.870s
CGroup: /system.slice/salt-master.service
+-20662 /usr/bin/python /usr/bin/salt-master ProcessManage
+-20789 /usr/bin/python /usr/bin/salt-master MultiprocessingLoggingQueu
+-20793 /usr/bin/python /usr/bin/salt-master ZeroMQPubServerChanne
+-20794 /usr/bin/python /usr/bin/salt-master EventPublishe
+-20797 /usr/bin/python /usr/bin/salt-master Maintenanc
+-20798 /usr/bin/python /usr/bin/salt-master ReqServer_ProcessManage
+-20799 /usr/bin/python /usr/bin/salt-master MWorkerQueu
+-20804 /usr/bin/python /usr/bin/salt-master MWorker-
+-20805 /usr/bin/python /usr/bin/salt-master MWorker-
+-20806 /usr/bin/python /usr/bin/salt-master MWorker-

May 28 17:55:08 virl systemd[1]: Starting The Salt Master Server…
May 28 17:55:10 virl systemd[1]: Started The Salt Master Server.
virl@virl:~$

در مثال زیر salt-master غیر فعال است:

virl@virl:~$ sudo systemctl status salt-master
? salt-master.service – The Salt Master Server
Loaded: loaded (/lib/systemd/system/salt-master.service; disabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/salt-master.service.d
+-override.conf
Active: inactive (dead)
Docs: man:salt-master(1)
file:///usr/share/doc/salt/html/contents.htmlhttps://docs.saltstack.com/en/latest/contents.html

اگر وضعیت salt-master به صورت “Active: active (running)” نشان داده شود، این سرویس فعال است. نسخه 2.0 و نسخه‌های بالاتر این نرم‌افزارها سرویس salt-master را اجرا نمی‌کنند و در نتیجه آسیب‌پذیر نیستند.

راهکارهای جانبی

اگر CML/VIRL-PE در حالت standalone نصب شده باشد، می‌توانید مانند مثال زیر سرویس salt-master را غیرفعال کنید.

virl@virl:~$ sudo systemctl status salt-master
? salt-master.service – The Salt Master Server
Loaded: loaded (/lib/systemd/system/salt-master.service; disabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/salt-master.service.d
+-override.conf
Active: active (running) since Thu 2020-05-28 17:55:10 GMT; 1s ago
Docs: man:salt-master(1)
file:///usr/share/doc/salt/html/contents.htmlhttps://docs.saltstack.com/en/latest/contents.html

— Output Omitted —

virl@virl:~$ sudo systemctl stop salt-master
virl@virl:~$ sudo systemctl disable salt-master
Synchronizing state of salt-master.service with SysV init with /lib/systemd/systemd-sysv-install…
Executing /lib/systemd/systemd-sysv-install disable salt-master
insserv: warning: current start runlevel(s) (empty) of script `salt-master’ overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `salt-master’ overrides LSB defaults (0 1 6).
virl@virl:~$

 

در صورتی که CML/VIRL-PE در حالت کلاستر نصب شده است، سرویس salt-master را روی همه گره‌های محاسباتی (compute node) غیر فعال کنید. در گره کنترلر، طبق مثال زیر اطمینان حاصل کنید که salt-master تنها به رابط شبکه خصوصی (private) به منظور ارتباط بین کلاستری گوش می‌دهد. مثال:

virl@virl:~$ netstat -tulpn | grep 450
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 172.16.10.250:4505 0.0.0.0:* LISTEN –
tcp 0 0 172.16.10.250:4506 0.0.0.0:* LISTEN –
virl@virl:~$

 

اگر salt-master در حال گوش دادن به همه رابط‌های شبکه باشد (مانند مثال زیر)، مشتریان باید نرم‌افزار خود را به نسخه وصله شده به‌روزرسانی کنند:

virl@virl:~$ netstat -tulpn | grep 450
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:4505 0.0.0.0:* LISTEN –
tcp 0 0 0.0.0.0:4506 0.0.0.0:* LISTEN –
virl@virl:~$

منبع: https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-salt-2vx545AG

ب
کلمات کلیدی