{"id":569,"date":"2018-07-04T15:01:29","date_gmt":"2018-07-04T13:01:29","guid":{"rendered":"http:\/\/enginsight.com\/?p=569"},"modified":"2023-07-06T10:50:33","modified_gmt":"2023-07-06T08:50:33","slug":"bye-bye-blinde-passagiere-enginsight-scannt-jetzt-docker-container","status":"publish","type":"post","link":"https:\/\/enginsight.com\/de\/blog\/bye-bye-blinde-passagiere-enginsight-scannt-jetzt-docker-container\/","title":{"rendered":"Bye-Bye blinde Passagiere &#8211; Enginsight scannt jetzt Docker Container"},"content":{"rendered":"<p><em>Von der Schifffahrt abgeschaut, macht die Containertechnik Admins und Entwicklern das Leben sehr viel einfacher. Oft gleichen Docker Container allerdings einer Blackbox, in der sich alles M&#xF6;gliche befinden kann. Dass das kein theoretisches Problem ist, beweist der j&#xFC;ngste Fall von&#xA0;<a href=\"https:\/\/www.heise.de\/security\/meldung\/5-Millionen-Mal-heruntergeladen-Boesartige-Docker-Container-schuerfen-Monero-4079414.html\" target=\"_blank\" rel=\"noreferrer noopener\">b&#xF6;sartigen Krypto-Minern<\/a>&#xA0;im offiziellen Docker Repository. Hier kann Enginsight jetzt Abhilfe schaffen, so dass Sie keine Angst mehr vor blinden Passagieren haben m&#xFC;ssen.<\/em><\/p>\n\n\n\n<p><mark><a href=\"#workflow\">&#x21AA; Gleich zum CI\/CD Workflow-Beispiel (GitLab)<\/a><\/mark><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"containerunddocker\">IT-Security: Container und Docker<\/h2>\n\n\n\n<p>Mit Containern bezeichnet man eine Softwaretechnik, bei der Prozesse, Anwendungen und Dienste in abgeschottete Bereiche (sogenannte Container) &#x201E;eingesperrt&#x201C; werden. Genau wie sich die Fracht auf einem gro&#xDF;en Schiff in getrennten, verschlossenen Frachtcontainern befindet. Wo fr&#xFC;her noch F&#xE4;sser und Kisten einzeln an Bord gebracht werden mussten, je nach Gr&#xF6;&#xDF;e mit unterschiedlichen Methoden, sind die heutigen Schiffscontainer genormt. Sie haben also immer die gleichen Abmessungen und lassen sich z. B. mit den immer gleichen Krahn Anlagen verladen.<\/p>\n\n\n\n<p>In der IT lassen sich mit Hilfe von Containern (Server-)Anwendungen mit allen ben&#xF6;tigten Komponenten wie Hilfsprogrammen, Bibliotheken und Konfigurationsdateien zu Paketen zusammenschn&#xFC;ren. Diese Pakete lassen sich dann bequem &#xFC;bers Netz verteilen, z. B. &#xFC;ber die Container-Plattform Docker. Wegen der vielen Vorteile basieren mittlerweile fast alle modernen Softwarearchitekturen auf Docker-Containern. In den CI\/CD Prozessen, also der kontinuierlichen Integration und dem Deployment von Software werden Docker Container mittlerweile komplett automatisiert erstellt und deployed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"dassicherheitsproblem\">Das Sicherheitsproblem beim Container-Monitoring<\/h3>\n\n\n\n<p>Im Internet gibt es viele Guides, die einem helfen die <a href=\"https:\/\/enginsight.com\/de\/blog\/die-bedrohung-im-blick-der-neue-enginsight-threat-manager-%e2%9c%93\/\" target=\"blank\" rel=\"noopener\">Sicherheit<\/a> eines Docker Container zu optimieren. Oftmals finden sich darin Tipps wie&#xA0;<em>&#x201E;Benutze keine Images aus Repositories, die nicht vertrauensw&#xFC;rdig sind&#x201C;<\/em>&#xA0;oder&#xA0;<em>&#x201E;Starte den Container immer mit der -u Flag, so dass die Ausf&#xFC;hrung nicht als root, sondern als normaler User erfolgt&#x201C;<\/em>. Diese Tipps sind auch sinnvoll und haben ihre Berechtigung, aber wie es tats&#xE4;chlich um die Sicherheit&#xA0;<em>innerhalb<\/em>&#xA0;eines Docker Containers steht, ist sehr schwer herauszufinden. Der oben bereits erw&#xE4;hnte Fall von&#xA0;<a href=\"https:\/\/www.heise.de\/security\/meldung\/5-Millionen-Mal-heruntergeladen-Boesartige-Docker-Container-schuerfen-Monero-4079414.html\" target=\"_blank\" rel=\"noreferrer noopener\">b&#xF6;sartigen Krypto-Minern<\/a>&#xA0;im offiziellen Docker Repository illustriert dieses Problem anschaulich.<\/p>\n\n\n\n<p>Hinzu kommt, dass herk&#xF6;mmliche Tools, wenn &#xFC;berhaupt nur &#xF6;ffentliche Images scannen und keine Privaten. Enginsight bietet einen neuen innovativen Ansatz, wie sie sicherstellen k&#xF6;nnen, dass sie nur Container deployen, die keine nachweisbaren Sicherheitsl&#xFC;cken enthalten. Mit Hilfe unserer API k&#xF6;nnen Sie das Innere des Docker-Containers selbst auf Schwachstellen untersuchen.<a name=\"workflow\"><\/a><\/p>\n\n\n\n<p>Das Ganze l&#xE4;sst sich auch wunderbar in die CI\/CD integrieren. Man definiert, dass z. B. bei gefundenen <a href=\"https:\/\/enginsight.com\/de\/schwachstellenmanagement\/\">Schwachstellen<\/a> der Deployment Prozess abgebrochen werden soll. Der Entwickler ist dann gezwungen die Sicherheitsl&#xFC;cken mit Updates zu patchen, anschlie&#xDF;end kann ganz normal deployed werden. So integriert man bereits in den Entwicklungsprozess selbst einen Sicherheitsschritt, ganz ohne die Installation von zus&#xE4;tzlicher Software.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"beispielworkflowmitgitlab\">Beispiel-Workflow mit GitLab<\/h3>\n\n\n\n<p>Im Folgenden demonstrieren wir Ihnen einen einfach CI\/CD Workflow auf Basis von GitLab. Wir werden eine neue Sicherheits-Stage erstellen, so dass es z. B. neben &#x201E;Build&#x201C;, &#x201E;Test&#x201C; und &#x201E;Deploy&#x201C; auch noch &#x201E;Security&#x201C; gibt. In dieser Stage wird dann die Sicherheit des Docker Containers &#xFC;berpr&#xFC;ft. Um die Security Stage zu testen, nehmen wir einfach ein offizielles CentOS 7 Docker Image, dass nicht &#xFC;ber den Tag &#x201E;latest&#x201C; bereitgestellt wird.<\/p>\n\n\n\n<p>Alle beschriebenen Beispiele und Vorlagen finden Sie unter:&#xA0;<a href=\"https:\/\/github.com\/enginsight\/secure-docker-example\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/enginsight\/secure-docker-example<\/a><\/p>\n\n\n\n<p><mark>Bitte beachten Sie, dass in diesem Szenario tempor&#xE4;r ein neuer Host angelegt wird. Sie ben&#xF6;tigen also in Ihrem Enginsight Account noch mindestens ein freies Asset. Der Host wird nach dem Scan automatisch wieder gel&#xF6;scht.<\/mark><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Zun&#xE4;chst m&#xFC;ssen Sie sich auf der Enginsight Plattform in Ihrem Account einen neuen Access Key anlegen. Wie das genau funktioniert, k&#xF6;nnen Sie&#xA0;in unserer Dokumentation nachlesen.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/acesskey-1.png\" target=\"_blank\" rel=\"noopener\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1600\" height=\"789\" src=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/acesskey-1.png\" alt=\"\" class=\"wp-image-575\" srcset=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/acesskey-1.png 1600w, https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/acesskey-1-300x148.png 300w, https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/acesskey-1-1024x505.png 1024w, https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/acesskey-1-768x379.png 768w, https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/acesskey-1-1536x757.png 1536w\" sizes=\"(max-width: 1600px) 100vw, 1600px\"\/><\/a><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Zum Vergr&#xF6;&#xDF;ern, bitte klicken<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>W&auml;hlen Sie auf GitLab das entsprechende Projekt aus, f&uuml;r dass Sie die Stage Security hinzuf&uuml;gen wollen. Unter Settings -&gt; CI\/CD m&uuml;ssen Sie beim Punkt&nbsp;<em>&#x201E;Secret Variables&#x201C;<\/em>&#xA0;den Access Key, das Access Key Secret und die URL der Enginsight API hinterlegen.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/secrets-2-1.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" width=\"1024\" height=\"525\" src=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/secrets-2-1.png\" alt=\"\" class=\"wp-image-580\" srcset=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/secrets-2-1.png 1024w, https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/secrets-2-1-300x154.png 300w, https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/secrets-2-1-768x394.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\"\/><\/a><\/figure>\n\n\n\n<p class=\"has-text-align-center\">Zum Vergr&#xF6;&#xDF;ern, bitte klicken<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>Kopieren Sie das&#xA0;<em>vulnerabilities.sh<\/em>&#xA0;Skript in Ihr Projekt zu Ihrer .gitlab-ci.yml Datei. Das Skript finden Sie unter dem oben genannten GitHub-Link. Das Skript kann auch in einem beliebigen Unterordner platziert werden, dann muss aber der Pfad in .gitlab-ci.yml angepasst werden.<\/li>\n\n\n\n<li>Passen Sie nun Ihre .gitlab-ci.yml Datei an. F&#xFC;gen Sie die Stage Security zu ihren bisherigen Stages hinzu. Der &#x201E;Insecure Container&#x201C; enth&#xE4;lt das offizielle CentOS 7 Docker Image, dass nicht &#xFC;ber den Tag &#x201E;latest&#x201C; bereitgestellt wurde. Mit dem rot markierten Befehl wird der Docker Container gescannt. Nutzen Sie nicht die CI von GitLab, dann f&#xFC;gen Sie einfach diesen Befehl an der passenden Stelle in Ihrem CI Prozess ein:<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/git-ci.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" width=\"1004\" height=\"584\" src=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/git-ci.jpg\" alt=\"\" class=\"wp-image-586\" srcset=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/git-ci.jpg 1004w, https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/git-ci-300x175.jpg 300w, https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/git-ci-768x447.jpg 768w\" sizes=\"(max-width: 1004px) 100vw, 1004px\"\/><\/a><\/figure>\n\n\n\n<p>Im&#xA0;<em>vulnerabilities.sh<\/em>&#xA0;Skript ist spezifiziert, dass der Job fehlschlagen soll, sobald Sicherheitsl&#xFC;cken gefunden wurden. Das kann aber nat&#xFC;rlich auch ge&#xE4;ndert werden. So, dass der Job z. B. nur fehlschl&#xE4;gt, wenn Sicherheitsl&#xFC;cken mit einem Score von mindesten 7 o. &#xE4;. gefunden wurden.<\/p>\n\n\n\n<p>Anschlie&#xDF;end kann man im Logfile nachschauen, welche Sicherheitsl&#xFC;cken gefunden wurden. Wie man sehen kann, birgt auch ein offizielles CentOS 7 Image durchaus ein ernstzunehmendes Sicherheitsrisiko. Es wurden 14 Sicherheitsl&#xFC;cken gefunden, mit einem maximalen CVE Score von 7.5.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/cve-1.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"610\" src=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/cve-1.png\" alt=\"\" class=\"wp-image-589\" srcset=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/cve-1.png 1024w, https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/cve-1-300x179.png 300w, https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/cve-1-768x458.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\"\/><\/a><\/figure>\n\n\n\n<p>Updaten wir nun das CentOS 7 mit&#xA0;<em>yum<\/em>&#xA0;auf die neueste Version und f&#xFC;hren das Image nochmal neu mit dem Namen &#x201E;Secure Container&#x201C; aus. Wenn wir nun den Scan durchf&#xFC;hren, werden keine Sicherheitsl&#xFC;cken gefunden und der Job ist erfolgreich.<\/p>\n\n\n\n<p>Bitte beachten Sie, dass das Skript nur f&#xFC;r CentOS und Red Hat ausgelegt ist. Bei Debian oder Ubuntu Systemen, ersetzen Sie&#xA0;<em>&#x201E;yum&#x201C;<\/em>&#xA0;mit&#xA0;<em>&#x201E;apt-get&#x201C;<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/Unbenannt1-1.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"512\" src=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/Unbenannt1-1.png\" alt=\"\" class=\"wp-image-592\" srcset=\"https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/Unbenannt1-1.png 1024w, https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/Unbenannt1-1-300x150.png 300w, https:\/\/enginsight.com\/wp-content\/uploads\/2018\/07\/Unbenannt1-1-768x384.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\"\/><\/a><\/figure>\n\n\n\n<p class=\"has-text-align-left\">Testen Sie die Enginsight Plattform unverbindlich und kostenlos. Jetzt mit Cybersecurity durchstarten!<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\" style=\"font-style:normal;font-weight:600\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/app.enginsight.com\/#\/signup\" style=\"border-radius:5px;background-color:#e91e63\" target=\"_blank\" rel=\"noreferrer noopener\">Enginsight kostenfrei testen<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Von der Schifffahrt abgeschaut, macht die Containertechnik Admins und Entwicklern das Leben sehr viel einfacher. Oft gleichen Docker Container allerdings einer Blackbox, in der sich alles M&#xF6;gliche befinden kann. Dass das kein theoretisches Problem ist, beweist der j&#xFC;ngste Fall von&#xA0;b&#xF6;sartigen Krypto-Minern&#xA0;im offiziellen Docker Repository. Hier kann Enginsight jetzt Abhilfe schaffen, so dass Sie keine Angst [&#x2026;]<\/p>\n","protected":false},"author":8,"featured_media":446,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","_eb_attr":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-569","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-inside-enginsight"],"_links":{"self":[{"href":"https:\/\/enginsight.com\/de\/wp-json\/wp\/v2\/posts\/569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/enginsight.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/enginsight.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/enginsight.com\/de\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/enginsight.com\/de\/wp-json\/wp\/v2\/comments?post=569"}],"version-history":[{"count":0,"href":"https:\/\/enginsight.com\/de\/wp-json\/wp\/v2\/posts\/569\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/enginsight.com\/de\/wp-json\/wp\/v2\/media\/446"}],"wp:attachment":[{"href":"https:\/\/enginsight.com\/de\/wp-json\/wp\/v2\/media?parent=569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/enginsight.com\/de\/wp-json\/wp\/v2\/categories?post=569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/enginsight.com\/de\/wp-json\/wp\/v2\/tags?post=569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}