{"id":202669,"date":"2018-03-28T01:09:00","date_gmt":"2018-03-27T23:09:00","guid":{"rendered":"https:\/\/www.borncity.com\/blog\/?p=202669"},"modified":"2024-01-24T08:09:21","modified_gmt":"2024-01-24T07:09:21","slug":"tausende-etcd-server-leaken-passwrter-und-keys","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2018\/03\/28\/tausende-etcd-server-leaken-passwrter-und-keys\/","title":{"rendered":"Tausende etcd-Server leaken Passw&ouml;rter und Keys"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" style=\"float: left; margin: 0px 10px 0px 0px; display: inline\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2015\/01\/Schutz.jpg\" width=\"40\" align=\"left\" height=\"47\"\/>Unsch\u00f6ne Geschichte: Sicherheitsforschern ist \u00fcber die Suchmaschine Shodan aufgefallen, dass Tausende etcd-Server unsicher konfiguriert sind. Dritte k\u00f6nnen so Kennw\u00f6rter und Schl\u00fcssel abgreifen. Ein gefundenes Fressen f\u00fcr Cyber-Kriminelle. <\/p>\n<p><!--more--><\/p>\n<p>Ich denke, es wird nicht so viele Blog-Leser\/innen treffen \u2013 sondern h\u00f6chstens Leute im Administratorenumfeld von Firmen tangieren. Zur Sicherheit nehme ich aber die Info hier im Blog auf, bevor ihr m\u00f6glicherweise ins Osterwochenende entschwindet. Falls ihr etcd-Server betreibt, kontrolliert, ob die gegen\u00fcber dem Internet abgesichert sind. <\/p>\n<h2>Kubernetes und etcd-Server<\/h2>\n<p>Betroffene k\u00f6nnen mit dem Stichwort etcd-Server etwas anfangen. F\u00fcr die restlichen Blog-Leser eine kurze Erl\u00e4uterung. Ein hei\u00dfes Thema sind Container-Anwendungen (Stichwort: Docker). Zur Bereitstellung, Skalierung und Verwaltung kommt das urspr\u00fcnglich von Google entwickelte Open-Source-System Kubernetes zum Einsatz. Laut <a href=\"https:\/\/de.wikipedia.org\/wiki\/Kubernetes\" target=\"_blank\" rel=\"noopener\">Wikipedia<\/a> wird die <a href=\"https:\/\/de.wikipedia.org\/wiki\/Dienstekomposition#Orchestrierung\" target=\"_blank\" rel=\"noopener\">Orchestrierung<\/a> mittels Kubernetes von f\u00fchrenden Cloud-Plattformen wie Microsofts Azure, IBMs Bluemix, Red Hats OpenShift und Amazons AWS unterst\u00fctzt.<\/p>\n<p>Mit Kubernetes lassen sich auch Cluster verwalten. Der Master in Kubernetes steuert mit seinen Komponenten die Nodes (Minions), auf denen dann die Docker-Container ausgef\u00fchrt werden. Zur Speicherung der Konfiguration von Kubernetes Clustern kommt die von CoreOS entwickelte Key-Value-Datenbank etcd zum Einsatz. <\/p>\n<h2>Absicherung in etcd<\/h2>\n<p>Bereits am 16. M\u00e4rz 2018 hat der Software-Entwickler Giovanni Collazo aus Puerto Rico in seinem pers\u00f6nlichen Blog elweb den Artikel <a href=\"https:\/\/web.archive.org\/web\/20180930194503\/https:\/\/elweb.co\/the-security-footgun-in-etcd\/\" target=\"_blank\" rel=\"noopener\">The security footgun in etcd<\/a> ver\u00f6ffentlicht. Das von ihm gew\u00e4hlte Eingangsbild zeigt drastisch die Situation. <\/p>\n<p><img decoding=\"async\" title=\"security footgun in etcd \" alt=\"security footgun in etcd \" src=\"https:\/\/i.imgur.com\/lrMFO8f.jpg\"\/><br \/>(Screenshot der elweb-Seite zu etcd)<\/p>\n<p>Aus Sicht der Anwendungssicherheit sind Datenbanken die wertvollsten Bestandteile aller Systeme. Sie speichern die Daten, die f\u00fcr Anwendungen und Unternehmen wertvoll sind. Daher sollten diese Daten sicher vom Zugriff unbefugter Dritter gehalten werden. Grunds\u00e4tzlich sind sich Software-Entwickler und Datenbank-Administratoren dessen bewusst. F\u00fcr MySQL-, PostgreSQL- und MongoDB-Datenbanken werden erfahrene Administratoren darauf achten, dass diese gegen Fremdzugriff abgesichert sind. Und&nbsp;&nbsp;&nbsp;&nbsp; trotzdem werden immer wieder Pannen und Administrationsfehler bekannt. <\/p>\n<p>Aber was passiert mit Datenbanken, die sich nicht wie \"normale Datenbanken\" anf\u00fchlen? Stichw\u00f6rter sind Memcached, Redis und nat\u00fcrlich etc. Diese Art von Datenbanken werden oft f\u00fcr einen einzigen Anwendungsfall verwendet und ohne gro\u00dfe Sorgfalt behandelt. Und damit nimmt das Unheil seinen Lauf. <\/p>\n<p>Als Giovanni Collazo sich k\u00fcrzlich mit der CoreOS-Dokumentation befasste, stie\u00df er auf etcd. Die Datenbank etcd ist im Kontext von CoreOS integraler Bestandteil des oben erw\u00e4hnten Kubernetes Clustering-Systems. Kubernetes benutzt es f\u00fcr die Orchestrierung und vieles mehr.<\/p>\n<p>Collazo schreibt, dass er etcd wirklich cool findet. Es benutzt den RAFT-Konsens-Algorithmus, um alle Knoten synchron zu halten. Es habe ein sehr einfach zu bedienendes CLI-Tool und eine HTTP-API. Er geht davon aus, dass er etcd in naher Zukunft f\u00fcr einige bei seinem Arbeitgeber verwendete Orchestrierungsl\u00f6sungen einsetzen wird. <\/p>\n<p>Beim Lesen der etcd-Dokumentation erinnerte er sich aber an die Meldungen \u00fcber nicht abgesicherte MongoDB-Datenbanken. Deren Betreiber stellten diese ohne Authentifizierung (diese ist standardm\u00e4\u00dfig nicht aktiviert) online, so dass Dritte problemlos auf die Datenbanken zugreifen konnten. Bei etcd ist eine Authentifizierung erst ab Version 2.1 m\u00f6glich. Aus Kompatibilit\u00e4tsgr\u00fcnden zu fr\u00fcheren Versionen ist die Authentifizierung aber standardm\u00e4\u00dfig deaktiviert (<a href=\"https:\/\/web.archive.org\/web\/20190113035204\/https:\/\/coreos.com\/etcd\/docs\/latest\/v2\/authentication.html\" target=\"_blank\" rel=\"noopener\">siehe<\/a>). <\/p>\n<blockquote>\n<p>etcd before 2.1 was a completely open system; anyone with access to the API could change keys. In order to preserve backward compatibility and upgradability, this feature is off by default.<\/p>\n<\/blockquote>\n<p>Riecht nach Unheil, und ist es auch. Eine einfache Abfrage der Suchmaschine Shodan ergab, dass 2.284 offene und nicht abgesicherte etcd-Server \u00fcber das Internet erreichbar sind. <a href=\"https:\/\/www.shodan.io\/search?query=port%3A%222379%22+product%3A%22etcd%22\" target=\"_blank\" rel=\"noopener\">Diese Abfrage<\/a> ergibt aktuell aber eine Fehlermeldung, da nur angemeldete Benutzer Ergebnisse angezeigt bekommen. Hier ist eine Twitter-Meldung zum Thema.<\/p>\n<blockquote class=\"twitter-tweet\" data-lang=\"de\">\n<p lang=\"en\" dir=\"ltr\">2,000+ publicly accessible etcd installations yielded 8,781 passwords. <a href=\"https:\/\/twitter.com\/gcollazo?ref_src=twsrc%5Etfw\">@gcollazo<\/a> details what he found here: <a href=\"https:\/\/t.co\/tRxNlo8q5J\">https:\/\/t.co\/tRxNlo8q5J<\/a><\/p>\n<p>It really is as simple as http:\/\/&lt;IP address of etcd instance&gt;:2379\/v2\/keys\/?recursive=true<\/p>\n<p>Here's an example MySQL password found: <a href=\"https:\/\/t.co\/F3cyWj19P8\">pic.twitter.com\/F3cyWj19P8<\/a><\/p>\n<p>\u2014 Bad Packets Report (@bad_packets) <a href=\"https:\/\/twitter.com\/bad_packets\/status\/975206905659383808?ref_src=twsrc%5Etfw\">18. M\u00e4rz 2018<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>  <\/p>\n<p>Collazo hat sich dann den Shodan-Bericht herunter geladen und ein Script geschrieben, \u00fcber welches er die REST API der etcd-Server ansprechen konnte. Da die Schl\u00fcssel-Wertepaare im JSON-Format gespeichert sind, konnte er sehr schnell Daten extrahieren. Was er dann bekam, war folgendes:<\/p>\n<table cellspacing=\"0\" cellpadding=\"2\" width=\"400\" border=\"1\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"211\">password<\/td>\n<td valign=\"top\" width=\"187\">8781<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"211\">aws_secret_access_key<\/td>\n<td valign=\"top\" width=\"187\">650<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"211\">secret_key<\/td>\n<td valign=\"top\" width=\"187\">23<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"211\">private_key<\/td>\n<td valign=\"top\" width=\"187\">8<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Er keine der Referenzen getestet, geht aber davon aus, dass zumindest ein paar davon funktionieren sollten. Jeder, der nur wenige Minuten Zeit hat, kann eine Liste mit Hunderten von Datenbank-Anmeldeinformationen erhalten, mit denen Daten gestohlen oder L\u00f6segeld-Angriffe durchgef\u00fchrt werden k\u00f6nnen.&nbsp; <\/p>\n<p>Falls ihr also Kubernetes oder etcd-Server f\u00fcr sonstige Zwecke im Einsatz habt und f\u00fcr deren Administration verantwortlich seid: F\u00fchrt euch die etcd-Dokumentation zu Gem\u00fcte und pr\u00fcft, ob die Datenbank abgesichert ist. Abschlie\u00dfende Frage: Irgend jemand von euch, der etcd-Datenbanken oder Kubernetes administriert? (<a href=\"https:\/\/arstechnica.com\/information-technology\/2018\/03\/thousands-of-servers-found-leaking-750-mb-worth-of-passwords-and-keys\/\" target=\"_blank\" rel=\"noopener\">via<\/a>)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Unsch\u00f6ne Geschichte: Sicherheitsforschern ist \u00fcber die Suchmaschine Shodan aufgefallen, dass Tausende etcd-Server unsicher konfiguriert sind. Dritte k\u00f6nnen so Kennw\u00f6rter und Schl\u00fcssel abgreifen. Ein gefundenes Fressen f\u00fcr Cyber-Kriminelle.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[426],"tags":[6918,4328],"class_list":["post-202669","post","type-post","status-publish","format-standard","hentry","category-sicherheit","tag-kubernetes","tag-sicherheit"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/202669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=202669"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/202669\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=202669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=202669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=202669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}