Aktualizacje bezpieczeństwa Supermicro IPMI lipiec 2014

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Płyty główne Supermicro z funkcjonalnością IPMI wykorzystywane ze starszymi wersjami firmware'u IPMI są dotknięte wieloma lukami bezpieczeństwa.

Thomas Krenn zaleca, jak zwykle to bywa w przypadku kont administracyjnych, na korzystanie z IPMI jedynie pod ochroną firewalla / za pośrednictwem połączeń VPN z proponowanymi tutaj wersjami firmware'u IPMI.

Ogólne informacje dotyczące bezpieczeństwa

Niezależnie od opisanych tu luk bezpieczeństwa zalecamy przeprowadzanie wszystkich aktywności administracyjnych, takich jak zdalny dostęp do modułu zarządzania IPMI oraz usługi SSH jedynie pod ochroną firewalla i za pośrednictwem połączeń VPN.[1]

Płyty główne Supermicro X7/X8/H8/X9/X10 z nowszym firmwarem IPMI opartym o ATEN oferują zintegrowany firewall dla funkcji zdalnej obsługi (vide Korzystanie ze zintegrowanego firewallu IPMI na płytach głównych Supermicro).

Sprzęt, którego dotyczą luki i zalecane wersje firmware'u

Tabela zawiera płyty główne, których dotyczą luki bezpieczeństwa i zalecane przez nas wersje firmware'u:

Firmware IPMI Płyty główne z portfolio Thomas Krenn Zalecana wersja firmware'u Clear text passwords in save_config.bin NTP Amplification Unsafe String Functions[2] Odczyt danych dostępowych w formie tekstu przez UDP port 49152[3] IPMI Authentication Bypass via Cipher 0[4]
Płyty główne X10
(ASPEED-ATEN)
1.42 lub wyższa
(SMT_X10_142.bin)
przed 1.42[t 1] przed 1.30[5] przed 1.24 brak luki[t 2] brak luki[t 2]
Płyty główne X9
(Nuvoton-ATEN)
3.28 lub wyższa
(SMT_X9_328.bin)
przed 3.28 przed 3.20[6][7] przed 3.17/3.15 przed 3.15[t 3] przed 1.58
Płyty główne X7/X8/H8
(Nuvoton-ATEN)
3.15 lub wyższa
(SMT_315.bin)
przed 3.15[t 4] przed 3.13[8] przed 3.12 przed 3.10[t 5] przed 2.50
Płyty główne X9
(Renesas)
2.16 lub wyższa
(SMM_X9_2.16.0.ima)
brak luki brak luki brak luki brak luki przed 2.16
Płyty główne X8
(Nuvoton-AMI)
2.20 lub wyższa
(X8..._220.ima - image jest zależny od płyty głównej)
brak luki[t 6] brak luki[t 7] brak luki brak luki[t 7] przed 2.20
Płyty główne X7/H8
(AOC-SIM1U+/AOC-SIMSO+)
  • Single CPU: X7SBI, X7SBE, H8SMI-2
  • Dual CPU: X7DBE, X7DBR-3, X7DVL-E, H8DME-2
1.66 lub wyższa brak luki brak luki brak luki brak luki przed 1.66

Testy:

  1. W naszych testach wersja firmware'u 1.26 posiada lukę, wersja 1.42 już nie.
  2. 2,0 2,1 Testy z wersjami firmware'u 1.26 i 1.42.
  3. W naszych testach z wersja firmware'u 3.15 luka nie mogła już zostać wykorzystana.
  4. W naszych testach wersje firmware'u 2.66 (testy z X7SPE-HF), 3.10 i 3.14 (testy z H8SCM-F) posiadają lukę, wersja 3.15 już nie zawiera luki.
  5. W naszych testach wersja firmware'u 2.66 (testy z X7SPE-HF) zawiera lukę, firmware 3.10 już nie zawiera luki (testy z H8SCM-F).
  6. Ten firmware nie posiada funkcji Save-Config.
  7. 7,0 7,1 Testy z wersją firmware'u 2.08 (X8DT3_208.ima).

Aktualizacja firmware'u IPMI

Image firmware'u poszczególnych serwerów znajduje się w Downloads.

Instrukcja aktualizacji firmware'u IPMI znajduje się w następujących artykułach:

Uwaga: Aby luka została zamknięta i podczas aktualizacji firmware'u IPMI została zachowana konfiguracja (wybór opcji Preserve Configuration - (Unckecking this option will restore the factory default setting of BMC)) to konfiguracja NTP w interfejsie webowym musi zostać ponownie zapisana. Jeżeli konfiguracja nie zostanie zachowana to przywrócone zostają ustawienia domyślne. Adres IP jak i inne ustawienia muszą zostać ponownie skonfigurowane, np. za pośrednictwem ipmicfg, BIOS lub innych narzędzi - vide Konfiguracja IPMI w systemach Supermicro (wyjątek: podczas aktualizacji firmware'u na płycie głównej X10SLH-F do wersji 1.42 konfiguracja IP pozostaje zachowana).

Informacje o lukach bezpieczeństwa

Poniżej znajdują się szczegółowe informacje o lukach bezpieczeństwa.

Clear text passwords in save_config.bin

Z kopii konfiguracji IPMI (save_config.bin) można wyodrębnić dane dostępowe, które są zapisane w postaci zwykłego tekstu. Konfiguracja IPMI jest wprawdzie zaszyfrowana lecz klucz może zostać odczytany z pliku firmware'u IPMI.[9]

W następujący sposób możliwy jest odczyt danych dostepowych:

~/tmp/ipmi$ binwalk SMT_X9_315.bin
~/tmp/ipmi$ dd if=SMT_X9_315.bin bs=1 skip=1572864 count=8372224 of=cramfs1
~/tmp/ipmi$ dd if=SMT_X9_315.bin bs=1 skip=12058624 count=1945600 of=cramfs2
~/tmp/ipmi$ sudo mount -o loop -t cramfs cramfs1 mnt1
~/tmp/ipmi$ strings mnt1/bin/ipmi_conf_backup_tool | grep -A 1 -B 1 -m 1 openssl
CKSAM1SUCKSAM1SUASMUCIKSASMUCIKS
~/tmp/ipmi$ openssl aes-256-cbc -d -in save_config.bin -out backup.bin.dec -k CKSAM1SUCKSAM1SUASMUCIKSASMUCIKS
~/tmp/ipmi$ dd skip=6 bs=1 status=none if=backup.bin.dec of=backup.tar.gz
~/tmp/ipmi$ tar xzf backup.tar.gz
~/tmp/ipmi$ ack-grep -i passwd preserve_config
    preserve_config/ps.xml
    5:      <User num="0" enable="01" PasswdSize="00" Name="" Passwd="admin"
    ChannelAccess="00000000000000000000000000000000" PrivilegeChange="00">
    9:      <User num="1" enable="01" PasswdSize="00" Name="ADMIN" Passwd="**********"
    ChannelAccess="00540054000000000000000000000000" PrivilegeChange="00">

Skutki

Intruz z dostępem do kopii konfiguracji może odczytać dane dostępowe. W ten sposób wprawdzie szyfrowany plik konfiguracji nie gwarantuje skutecznej ochrony.

Środki zaradcze

Możliwe środki zaradcze:

  1. Update firmware'u do zalecanej wersji.
  2. Bezpieczne przechowywanie kopii konfiguracji. Kopie zapasowe konfiguracji mogą być tworzone tylko przez użytkowników z uprawnieniami administratora IPMI.

NTP Amplification

Serwer NTP ze wsparciem monlist może zostać wykorzystany do wysłania większej ilości odpowiedzi (responses) na jedno zapytanie (request).[10] Funkcja monlist serwera NTP dostarcza przy tym do 600 wpisów z adresami IP, z którymi serwer NTP współdziałał. Ta ilość danych może zostać skierowana przez IP Spoofing[11] do wybranego serwera.[12] W ten sposób tak zwane NTP Amplification Attacks mogą zostać wykorzystane do ataku Denial of Server (Dos).

Komendą ntpdc z komputera z systemem Linux może zostać sprawdzone , czy wybrany serwer (w tym przykładzie 192.0.2.1) wspiera funkcję monlist:

$ ntpdc -n -c monlist 192.0.2.1
remote address          port local address      count m ver rstr avgint  lstint
===============================================================================
192.0.2.2              40506 192.0.2.5          1 7 2      0      0      0

Przy wyłączonej monlist wyświetlany jest następujący tekst:

$ ntpdc -n -c monlist 192.0.2.1
***Server reports data not found

Przy wyłączonym NTP wyświetlany jest następujący tekst:

$ ntpdc -n -c monlist 192.0.2.1
ntpdc: read: Connection refused

Skutki

Napastnik może wykonać przez fałszywe zapytania wysłane do serwera NTP, z włączoną funkcją monlist, atak DoS na innym hoście.

Środki zaradcze

Możliwe środki zaradcze:

  1. Update firmware'u do zalecanej wersji. Jeżeli podczas aktualizacji konfiguracja IPMI zostanie zachowana to należy ponownie zapisać konfigurację NTP (w interfejsie webowym pod Configuration -> Date & Time) (w ten sposób monlist zostanie wyłączona).
  2. Wyłączenie NTP (w interfejsie webowym pod Configuration -> Date & Time wybrać opcje NTP Disable i następnie zapisać ustawienia).

Unsafe String Functions

Wiele skryptów CGI może zostać wykorzystane przez niebezpieczne funkcje string do ataku Buffer Overflow.

Skutki

Po pomyślnym wykorzystaniu mogą zostać wykonane komendy z uprawnieniami root.[13][14]

Środki zaradcze

Możliwe środki zaradcze:

  1. Update firmware'u do zalecanej wersji.

Odczyt danych dostępowych w formie tekstu przez UDP port 49152

Starsze wersje firmware'u IPMI pozwalają na odczyt danych dostępowych IPMI przez UDP port 49152.[15][16]

Skutki

Napastnik z dostępem do sieci może uzyskać przez adres IP modułu IPMI i port UDP 49152 w połączeniu z zapytaniem GET /PSBlock dane dostępowe do modułu IPMI.

Środki zaradcze

Możliwe środki zaradcze:

  1. Update firmware'u do zalecanej wersji.

IPMI Authentication Bypass via Cipher 0

Poważny błąd w specyfikacji IPMI 2.0 (Cipher Type 0) umożliwia uwierzytelnienie za pośrednictwem dowolnego hasła.[17]

Czy Cipher 0 jest obecne w interfejsie IPMI wskazuje następująca komenda:

$ ipmitool -H 192.0.2.1 -U ADMIN -P ***** lan print|grep 'Cipher Suites'
RMCP+ Cipher Suites     : 1,2,3,6,7,8,11,12,0

Jeżeli przy RMCP+ jest 0 to Cipher 0 może zostać wykorzystany. Uwierzytelnienie jest omijane - może zostać podane dowolne hasło:

$ ipmitool -I lanplus -C 0 -H 192.0.2.1 -U ADMIN -P FluffyWabbit user list
ID  Name	     Callin  Link Auth	IPMI Msg   Channel Priv Limit
2   ADMIN            false   false      true       ADMINISTRATOR
3   monitor          true    true       true       USER
[...]

Skutki

Napastnik może się uwierzytelnić jako administrator IPMI dowolnym hasłem.

Środki zaradcze

Możliwe środki zaradcze:

  1. Update firmware'u do zalecanej wersji.

Odnośniki

  1. Best Practices for managing servers with IPMI features enabled in Datacenters (www.supermicro.com)
  2. Firmware Fixes to Common Vulnerabilities and Exposures (www.supermicro.com)
  3. Supermicro motherboards with clear text passwords are found. What are the recommended F/W patches? (Supermicro FAQ 18897, 24.06.2014)
  4. I read an article where Supermicro BMC (IPMI) security can be breached through UPnP and through Cipher 0 mechanisms. How do I avoid such issues? (Supermicro FAQ 16536, 08.07.2013)
  5. We have received complaints of our SM IPMI cards being used for NTP DOS attacks. (Supermicro FAQ 17997, 03.02.2014)
  6. I have one of the Supermicro X9 motherboards. IPMI BMCs that have NTP enabled are being abused for NTP amplification DDoS attacks. Is there a fix for this? (Supermicro FAQ 17843, 14.01.2014)
  7. According to recent NTP Amplification Attacks, I found that firmware of motherboards X9SCA-F is vulnerable. (Supermicro FAQ 17908, 14.01.2014)
  8. I was alerted to the fact that the IP assigned to the IPMI of the X7SPE-HF-D525 was vulnerable. (Supermicro FAQ 18000, 03.02.2014)
  9. Securing SuperMicro’s IPMI with OpenVPN (michael.stapelberg.de)
  10. Technical Details Behind a 400Gbps NTP Amplification DDoS Attack (blog.cloudflare.com)
  11. IP spoofing (pl.wikipedia.org)
  12. NTP Amplification Attacks Using CVE-2013-5211 (us-cert.gov)
  13. Supermicro IPMI Firmware Vulnerabilities (community.rapid7.com)
  14. Exploiting the Supermicro Onboard IPMI Controller (community.rapid7.com)
  15. CARISIRT: Yet Another BMC Vulnerability (And some added extras) (blog.cari.net, 19.06.2014)
  16. Supermicro Motherboards IPMI Interface Discloses Passwords to Remote Users (securitytracker.com Alert ID 1030453, 20.06.2014)
  17. The Infamous Cipher 0 (fish2.com)

Autor: Georg Schönberger


Autor: Werner Fischer

Powiązane artykuły

Aktualizacje bezpieczeństwa IPMI
Logowanie do IPMI za pośrednictwem danych dostępowych z Active Directory
Pierwsze uruchomienie konsoli IPMI