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