ipmi, das problem mit der sicherheit - Max-Planck

Werbung
ipmi, das problem mit der sicherheit
IT-Sicherheitstagung Berlin 9.-10.11.2016
Carsten John
Max-Planck-Institut für marine Mikrobiologie
whoami
zur person
∙ Carsten John
∙ Max-Planck-Institut für marine Mikrobiologie in Bremen
∙ IT-Sicherheitsbeauftragter
∙ Schwerpunkte: Netzwerk, Linux/Solaris, Sicherheit
2
hintergrund
was ist ipmi?
∙ IPMI: Intelligent Platform Management Interface
∙ Ursprünglich von Intel entwickelt
∙ Derzeit ca 200 Hersteller beteiligt [8]
∙ Betriebssystemunabhängige Schnittstelle zum Mainboard
∙ Eigener Prozessor (Baseboard Management Controller)
4
was ist ipmi?
∙ Grundfunktionen sind
∙
∙
∙
∙
Überwachung der Hardware
Fernsteuerung (Reset, Power On/Off)
Logging (Hardwaresensoren)
Hardwareinventarisierung
∙ Alle Funktionen sind unabängig vom Betriebssystem
∙ Allle Funktionen sind auch im ausgeschalteten Zustand
verfügbar (Stromanschluss vorausgesetzt)
5
ipmi übersicht
Quelle: [1]
6
ipmi versionen
∙ Fuktionalität immer wieder erweitert (auch durch verbesserte
Leistung der BMCs)
∙ Version 1.0: 1998 (Basisfunktionen)
∙ Version 1.5: 2001 (IPMI over LAN, IPMI over Serial/Modem, LAN
Alerting) [6]
∙ Version 2.0: 2004 (Serial over LAN, Group Managed Systems,
Enhanced Authentication,VLAN Support)
∙ Version 2.0 Revision 1.1: 2014 (IPv6) [7]
∙ Version 2.0 Revision 1.1 Errata 7: 2015
∙ Diverse herstellerspez. Erweiterungen (Remote KVM, Serielle
Console via SSH etc.)
∙ Aktuelle Implementierungen sind eher als IPMI++ zu bezeichnen
[4]
∙ Nachfolger: Redfish [9]
7
ipmi versionen
∙ Diverse herstellerspezifische Namen
∙
∙
∙
∙
∙
∙
∙
∙
∙
IPMI (Supermicro)
iDRAC (Dell)
ILOM (Oracle)
iLO (Hewlett Pachard)
iKVM (Asus)
IRMC (Fujitsu)
IMM (IBM)
iMana (Huawei)
...
∙ innerhalb der Hersteller zahlreiche Versionen im Feld
anzutreffen
8
probleme
wo sind die probleme?
∙ Viele Probleme sind seit 2013 bekannt! [2]
∙ Standardisierte Benutzer / Passworte
∙ Protokollschwächen
∙ Unsichere Grundeinstellungen
∙ Funktionserweiterungen (z.B. BIOS Update)
∙ Entsorgung von Altgeräten
∙ Seiteneffekte der Nutzung
10
benutzer/passworte
∙ die meisten Hersteller verwenden Standardbenutzer/Passworte
∙
∙
∙
∙
∙
∙
∙
Supermicro: ADMIN/ADMIN
Dell: root/calvin
Oracle: root/changeme
Asus: admin/admin
Fujitsu: admin/admin
IBM: USERID/PASSW0RD (man beachte die 0)
Huawei: root/Huawei12#$
∙ offenbar werden diese nicht immer geändert
∙ Hewlett Packard verwendet ein zufälliges, 8 Zeichen langes
Passwort
11
protokollschwächen
∙ Diverse massive Schwächen sind im Protokoll spezifiziert
∙ Netzwerkprotokoll ist Klartext UDP (IPMI 1.5)
∙ Anonyme Abfrage von:
∙ Chanel Authentication Capabilities
∙ System GUID (IPMI 2.0, 1.5 optional)
∙ Passworte als Klartext im Filesystem (IPMI 2.0)
∙ Schwache Hash Algorithmen (MD2...)
∙ Cypher Zero (IPMI 2.0) [5]
∙ wenn cyper 0 aktiv ist kann auf alle Funktionen ohne
Authentifizierung zugegriffen werden
12
unsichere grundeinstellungen
∙ Default Benutzer/Passworte
∙ Network Failover
∙ anonymous account
∙ cypher zero
13
funktionserweiterungen
∙ BIOS Update (remote)
∙ BIOS Konfiguration (remote)
∙ ...
14
altgeräte
∙ Wie stellen wir sicher, das keine Passworte aus dem BMC
auslesbar sind?
∙ US-CERT empfiehlt die Zerstörung der Mainboards [2]
15
seiteneffekte der nutzung
∙ Remote KVM Funktion
∙ in der Regel wird die lokale Ausgabe gespiegelt
∙ in Rechnerräumen mit multiplen Nutzern: Monitore aus!
16
angriffsszenarien
übersicht
∙ Denial Of Service (Power Down...)
∙ Abfangen von Daten über den BMC (Keylogger, PCI Bus)
∙ Infektion des Host Betriebssystems
∙ root auf dem BMC -> root auf dem Host
∙ Infektion des BMC
∙
∙
∙
∙
root auf dem Host -> root auf dem BMC
BMC Rootkits?
IPMI Botnets?
Der Sourcecode der IPMI FW von Supermicro ist auf github
verfügbar [3]
∙ Abfluss von Passworten bei der Dekomissionierung von Servern
∙ Ausnutzung von BMCs für DDOS Angriffe (amplification attack)
∙ UDP, kleine Anfrage kann große Antwort erzeugen
18
was macht das ganze so kritisch?
∙ Angriffe auf das Host Betriebssystem sind einfach
∙ media-redirection (ISO Image) -> boot -> root host
∙ air gap?
∙ Unterschied zur einfachen Infektion des Host Betriebssystems
∙ Kompromittierung des BMC ist vom Host u.U. nicht erkennbar
∙ Reinstallation des Hosts ist nutzlos
19
feldversuche
sind bmcs im internet?
∙ Scannen des gesamten Internet habe ich lieber anderen
überlassen :)
∙ http://www.censys.io
∙
∙
∙
∙
∙
∙
ähnlich Shodan
Suchmaschine für Scanergebnisse [10]
Projekt der University of Michigan
täglicher Scan des gesamten IPv4 Bereiches
es werden nicht alle Ports gescannt
Identifizierung von BMC relativ einfach möglich
21
identifizierung von bmcs
∙ vorinstallierte SSL Zertifikate
∙
∙
∙
∙
CN=
OU=
O=
emal Address=
∙ Herstellerspezifisch finden sich entsprechende Suchkriterien
22
supermicro
23
dell
24
oracle
25
hp
26
fujitsu
27
huawei
28
identifizierung von bmcs
∙ mehrere Millionen BMCs sind im Internet auffindbar
∙ viele davon mit Standard Benutzername / Passwort
∙ viele mit alter Firmware
29
abhilfe
grundsätzliches
∙ separates Out-Of-Band Netz (oder zumindest VLAN)
∙ BMC Firmware updaten
∙ Benutzernamen / Passworte ändern
31
konfiguration
∙ Statische IP
∙ VLAN disable
∙ Eigenen User anlegen
∙ NULL User aka User1 abschalten
∙ Cipher 0prüfen
∙ KG key setzen
∙ alle Cipher ausser 3,8 und 13 abschalten
32
konfiguration
bmc−c o n f i g −D lan −u $USER −h ipmi−$HOST −−checkout −P
liefert die gesamte Konfiguration des BMC
bmc−c o n f i g −D lan −u $USER −h ipmi−$HOST −−commit −P < $ F I L E
lädt ein Config File in den BMC
diverse herstellerspezifische Tools leisten Ähnliches
33
konfiguration
S e c t i o n User1
Enable_User
Lan_Enable_IPMI_Msgs
Lan_Enable_Link_Auth
Lan_Enable_Restricted_to_Callback
Lan_Privilege_Limit
SOL_Payload_Access
EndSection
S e c t i o n User2
Username
Enable_User
Lan_Enable_IPMI_Msgs
Lan_Enable_Link_Auth
Lan_Enable_Restricted_to_Callback
Lan_Privilege_Limit
SOL_Payload_Access
EndSection
S e c t i o n User3
Username
Enable_User
Lan_Enable_IPMI_Msgs
Lan_Enable_Link_Auth
Lan_Enable_Restricted_to_Callback
Lan_Privilege_Limit
SOL_Payload_Access
EndSection
Yes
No
No
No
Yes
ADMIN
Yes
Yes
No
Yes
Administrator
Yes
nagios
Yes
Yes
No
No
Administrator
Yes
34
konfiguration
S e c t i o n User4
Username
Enable_User
Lan_Enable_IPMI_Msgs
Lan_Enable_Link_Auth
Lan_Enable_Restricted_to_Callback
Lan_Privilege_Limit
SOL_Payload_Access
EndSection
S e c t i o n User5
Username
Enable_User
Lan_Enable_IPMI_Msgs
Lan_Enable_Link_Auth
Lan_Enable_Restricted_to_Callback
Lan_Privilege_Limit
SOL_Payload_Access
EndSection
S e c t i o n User6
Username
Enable_User
Lan_Enable_IPMI_Msgs
Lan_Enable_Link_Auth
Lan_Enable_Restricted_to_Callback
Lan_Privilege_Limit
SOL_Payload_Access
EndSection
No
No
No
No
Yes
No
No
No
No
No
No
No
No
No
No
35
konfiguration
S e c t i o n User7
Username
Enable_User
Lan_Enable_IPMI_Msgs
Lan_Enable_Link_Auth
Lan_Enable_Restricted_to_Callback
Lan_Privilege_Limit
SOL_Payload_Access
EndSection
S e c t i o n User8
Username
Enable_User
Lan_Enable_IPMI_Msgs
Lan_Enable_Link_Auth
Lan_Enable_Restricted_to_Callback
Lan_Privilege_Limit
SOL_Payload_Access
EndSection
S e c t i o n User9
Username
Enable_User
Lan_Enable_IPMI_Msgs
Lan_Enable_Link_Auth
Lan_Enable_Restricted_to_Callback
Lan_Privilege_Limit
SOL_Payload_Access
EndSection
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
36
konfiguration
S e c t i o n User10
Username
Enable_User
Lan_Enable_IPMI_Msgs
Lan_Enable_Link_Auth
Lan_Enable_Restricted_to_Callback
Lan_Privilege_Limit
SOL_Payload_Access
EndSection
S e c t i o n Lan_Channel
Volatile_Access_Mode
Volatile_Enable_User_Level_Auth
Volatile_Enable_Per_Message_Auth
Volatile_Enable_Pef_Alerting
Volatile_Channel_Privilege_Limit
Non_Volatile_Access_Mode
Non_Volatile_Enable_User_Level_Auth
Non_Volatile_Enable_Per_Message_Auth
Non_Volatile_Enable_Pef_Alerting
Non_Volatile_Channel_Privilege_Limit
EndSection
S e c t i o n Lan_Conf
IP_Address_Source
IP_Address
MAC_Address
Subnet_Mask
Default_Gateway_IP_Address
Default_Gateway_MAC_Address
Backup_Gateway_IP_Address
Backup_Gateway_MAC_Address
EndSection
No
No
No
No
No
Always_Available
Yes
Yes
Yes
Administrator
Always_Available
Yes
Yes
Yes
Administrator
Static
172.17.2.20
0 0 : 2 5 : 9 0 : FE : AC : F5
255.255.248.0
172.17.2.20
00:00:00:00:00:00
0.0.0.0
00:00:00:00:00:00
37
konfiguration
S e c t i o n Lan_Conf_Auth
Callback_Enable_Auth_Type_None
Callback_Enable_Auth_Type_MD2
Callback_Enable_Auth_Type_MD5
Callback_Enable_Auth_Type_Straight_Password
User_Enable_Auth_Type_None
User_Enable_Auth_Type_MD2
User_Enable_Auth_Type_MD5
User_Enable_Auth_Type_Straight_Password
Operator_Enable_Auth_Type_None
Operator_Enable_Auth_Type_MD2
Operator_Enable_Auth_Type_MD5
Operator_Enable_Auth_Type_Straight_Password
Admin_Enable_Auth_Type_None
Admin_Enable_Auth_Type_MD2
Admin_Enable_Auth_Type_MD5
Admin_Enable_Auth_Type_Straight_Password
OEM_Enable_Auth_Type_None
OEM_Enable_Auth_Type_MD2
OEM_Enable_Auth_Type_MD5
OEM_Enable_Auth_Type_Straight_Password
EndSection
Section Lan_Conf_Security_Keys
K_R
K_G
EndSection
No
No
No
Yes
No
No
Yes
Yes
No
No
Yes
Yes
No
No
Yes
Yes
No
No
No
Yes
0xChange_me
38
konfiguration
Section Lan_Conf_User_Security
EndSection
S e c t i o n Lan_Conf_Misc
Enable_Gratuitous_ARPs
Enable_ARP_Response
EndSection
Section Rmcpplus_Conf_Privilege
Maximum_Privilege_Cipher_Suite_Id_1
Maximum_Privilege_Cipher_Suite_Id_2
Maximum_Privilege_Cipher_Suite_Id_3
Maximum_Privilege_Cipher_Suite_Id_6
Maximum_Privilege_Cipher_Suite_Id_7
Maximum_Privilege_Cipher_Suite_Id_8
Maximum_Privilege_Cipher_Suite_Id_11
Maximum_Privilege_Cipher_Suite_Id_12
EndSection
S e c t i o n SOL_Conf
Enable_SOL
SOL_Privilege_Level
Force_SOL_Payload_Authentication
Force_SOL_Payload_Encryption
Character_Accumulate_Interval
Character_Send_Threshold
SOL_Retry_Count
SOL_Retry_Interval
Non_Volatile_Bit_Rate
Volatile_Bit_Rate
EndSection
No
Yes
Unused
Unused
Administrator
Unused
Unused
Administrator
Unused
Administrator
Yes
Operator
Yes
Yes
12
96
7
50
11 5 2 0 0
11 5 2 0 0
39
fragen
quellen
[1]
url: https://www.thomas-krenn.com/en/wiki/File:
Ipmi-schematische-darstellung.png (besucht am
16. 10. 2016).
[2]
url:
https://www.us-cert.gov/ncas/alerts/TA13-207A
(besucht am 07. 11. 2016).
[3]
url: https://github.com/devicenull/supermicro_
ipmi_firmware (besucht am 07. 11. 2016).
[4]
Dan Farmer. IPMI++ Security Best Practices. 2013. url:
http://fish2.com/ipmi/bp.pdf (besucht am 16. 10. 2016).
[5]
Dan Farmer. The infamous cipher 0. url:
http://fish2.com/ipmi/cipherzero.html (besucht am
16. 10. 2016).
42
[6]
Intel. intel:ipmi-1.5r1.1. 2002. url:
http://www.intel.com/content/dam/www/public/
us/en/documents/product-briefs/spec-licenseagreement.pdf (besucht am 16. 10. 2016).
[7]
Intel. intel:ipmi-2.0r1.1. 2013. url:
http://www.intel.com/content/dam/www/public/
us/en/documents/product-briefs/ipmi-secondgen-interface-spec-v2-rev1-1.pdf (besucht am
16. 10. 2016).
[8]
Intel. IPMI Adopters List. 2014. url:
http://www.intel.com/content/www/us/en/
servers/ipmi/ipmi-adopters-list.html (besucht am
16. 10. 2016).
[9]
Distributed Management Taskforce. Redfish API. 2014. url:
https://www.dmtf.org/standards/redfish (besucht
am 16. 10. 2016).
43
[10] Ariana Mirian Michael Bailey J.
Alex Halderman† Zakir Durumeric David Adrian. A Search
Engine Backed by Internet-Wide Scanning. 2015. url:
https://www.censys.io/static/censys.pdf (besucht
am 16. 10. 2016).
44
Herunterladen