{"id":78929,"date":"2024-08-02T16:46:15","date_gmt":"2024-08-02T14:46:15","guid":{"rendered":"https:\/\/www.skaylink.com\/?p=78929"},"modified":"2025-04-04T13:20:37","modified_gmt":"2025-04-04T11:20:37","slug":"trivy","status":"publish","type":"post","link":"https:\/\/www.skaylink.com\/de\/insights\/blog\/trivy\/","title":{"rendered":"Schwachstellenscanner Trivy"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"78929\" class=\"elementor elementor-78929 elementor-77548\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-53c29fb9 header-keyvisual-container e-flex e-con-boxed e-con e-parent\" data-id=\"53c29fb9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2aa29184 elementor-align-left elementor-widget elementor-widget-breadcrumbs\" data-id=\"2aa29184\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"breadcrumbs.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p id=\"breadcrumbs\"><span><span><a href=\"https:\/\/www.skaylink.com\/de\/\">Home<\/a><\/span><\/span><\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4258a606 e-con-full e-flex e-con e-child\" data-id=\"4258a606\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-56fbacdd header-keyvisual-content e-con-full e-flex e-con e-child\" data-id=\"56fbacdd\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-52c63287 elementor-widget elementor-widget-image\" data-id=\"52c63287\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"2560\" height=\"1704\" src=\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2024\/07\/CD-CI-Pipeline-scaled.jpeg\" class=\"attachment-full size-full wp-image-77550\" alt=\"\" srcset=\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2024\/07\/CD-CI-Pipeline-scaled.jpeg 2560w, https:\/\/www.skaylink.com\/wp-content\/uploads\/2024\/07\/CD-CI-Pipeline-300x200.jpeg 300w, https:\/\/www.skaylink.com\/wp-content\/uploads\/2024\/07\/CD-CI-Pipeline-1024x681.jpeg 1024w, https:\/\/www.skaylink.com\/wp-content\/uploads\/2024\/07\/CD-CI-Pipeline-768x511.jpeg 768w, https:\/\/www.skaylink.com\/wp-content\/uploads\/2024\/07\/CD-CI-Pipeline-1536x1022.jpeg 1536w, https:\/\/www.skaylink.com\/wp-content\/uploads\/2024\/07\/CD-CI-Pipeline-2048x1363.jpeg 2048w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-927bec0 e-con-full e-flex e-con e-child\" data-id=\"927bec0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6450d57a elementor-widget elementor-widget-text-editor\" data-id=\"6450d57a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Blog<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5239d94e elementor-widget elementor-widget-heading\" data-id=\"5239d94e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Schwachstellenscanner Trivy: Sicherheitspr\u00fcfung f\u00fcr Docker-Container in CI\/CD-Pipelines<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-180392ec elementor-widget elementor-widget-text-editor\" data-id=\"180392ec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tTrivy scannt in CI\/CD-Pipelines Docker-Container auf Schwachstellen.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-15f4f46c e-flex e-con-boxed e-con e-parent\" data-id=\"15f4f46c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-45c4083e e-flex e-con-boxed e-con e-child\" data-id=\"45c4083e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-2aa5eaa9 e-flex e-con-boxed e-con e-child\" data-id=\"2aa5eaa9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5ccae8d8 elementor-widget elementor-widget-text-editor\" data-id=\"5ccae8d8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t2. August 2024\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1cb622cd e-flex e-con-boxed e-con e-child\" data-id=\"1cb622cd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-372d7178 e-flex e-con-boxed e-con e-child\" data-id=\"372d7178\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7bae5785 elementor-author-box--image-valign-middle elementor-widget elementor-widget-author-box\" data-id=\"7bae5785\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"author-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-author-box\">\n\t\t\t\t\t\t\t<div  class=\"elementor-author-box__avatar\">\n\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.skaylink.com\/wp-content\/uploads\/2024\/02\/cropped-skaylink_favicon_512x512px-300x300-1.webp\" alt=\"Bild von Skaylink\" loading=\"lazy\">\n\t\t\t\t<\/div>\n\t\t\t\n\t\t\t<div class=\"elementor-author-box__text\">\n\t\t\t\t\t\t\t\t\t<div >\n\t\t\t\t\t\t<span class=\"elementor-author-box__name\">\n\t\t\t\t\t\t\tSkaylink\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-69e75f22 e-flex e-con-boxed e-con e-child\" data-id=\"69e75f22\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4771e333 elementor-widget elementor-widget-author-box\" data-id=\"4771e333\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"author-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-author-box\">\n\t\t\t\n\t\t\t<div class=\"elementor-author-box__text\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1c857c7a e-flex e-con-boxed e-con e-parent\" data-id=\"1c857c7a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-57f2f254 e-con-full e-flex e-con e-child\" data-id=\"57f2f254\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3970a91f elementor-widget elementor-widget-text-editor\" data-id=\"3970a91f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In der Software-Entwicklung hat Sicherheit heute h\u00f6chste Priorit\u00e4t. Da inzwischen immer mehr containerisiert wird, muss auch auf die Sicherheit der Docker-Images geachtet werden \u2013 sonst holt man sich Schwachstellen ins Haus. CI\/CD-Pipelines sind eine robuste Plattform f\u00fcr die automatische Software-Bereitstellung, und genau dort sollten beim Erstellen der Container spezielle Scanning-Tools zum Einsatz kommen. In diesem Blogartikel sehen wir uns an, wie sich mit Trivy die Sicherheit von Docker-Containern in CI\/CD-Pipelines optimieren l\u00e4sst.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-174621e elementor-widget elementor-widget-heading\" data-id=\"174621e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Warum Docker-Container abgesichert werden m\u00fcssen<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cb78800 elementor-widget elementor-widget-text-editor\" data-id=\"cb78800\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Docker-Container haben zahlreiche Vorteile. Sie sind portabel, skalierbar und funktionieren zuverl\u00e4ssig in jeder Umgebung. Doch sie bringen auch Sicherheitsprobleme mit sich: Enthalten Container-Images bereits Schwachstellen, kann es sp\u00e4ter zu Datenlecks, Systemkompromittierung oder Dienstausf\u00e4llen kommen. Deshalb ist es so wichtig, Sicherheitsaspekte w\u00e4hrend des gesamten Container-Lebenszyklus zu beachten, von der Entwicklung bis zur Bereitstellung.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d108425 elementor-widget elementor-widget-heading\" data-id=\"d108425\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Die L\u00f6sung: Trivy<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ac4a378 elementor-widget elementor-widget-text-editor\" data-id=\"ac4a378\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Trivy ist ein Open-Source-Schwachstellenscanner f\u00fcr Container und andere Artefakte, der sehr schnell Sicherheitsprobleme in Images erkennt. Damit k\u00f6nnen Sie in Ihren CI\/CD-Pipelines die Schwachstellenpr\u00fcfung automatisieren und daf\u00fcr sorgen, dass nur sichere Container-Images in der Produktionsumgebung bereitgestellt werden.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-599268d elementor-widget elementor-widget-heading\" data-id=\"599268d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Trivy in CI\/CD-Pipelines integrieren<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6e104ae elementor-widget elementor-widget-text-editor\" data-id=\"6e104ae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>CI\/CD-Pipelines sind eine flexible, individuell anpassbare Methode f\u00fcr die Software-Bereitstellung. Mit Trivy integrieren Sie den Schwachstellenscan dort direkt in den Prozess der Container-Erstellung. Das funktioniert im Wesentlichen wie folgt:<\/p>\n<ol>\n<li><strong>Trivy installieren:<\/strong> Zuerst installieren Sie Trivy in Ihrer CI\/CD-Umgebung. Sie k\u00f6nnen es entweder als Standalone-Tool verwenden oder zur einfacheren Integration in einen Docker-Container einbauen.<\/li>\n<li><strong>Pipeline konfigurieren:<\/strong> Anschlie\u00dfend richten Sie eine CI\/CD-Pipeline f\u00fcr die Erstellung von Docker-Images ein \u2013 mit Phasen f\u00fcr die Image-Erstellung, den Trivy-Scan und das Deployment.<\/li>\n<li><strong>Trivy-Scan integrieren:<\/strong> Sie f\u00fcgen in Ihre Pipeline einen Schritt ein, in dem Trivy ausgef\u00fchrt wird und das Docker-Image auf Schwachstellen pr\u00fcft. Trivy wird \u00fcber die Kommandozeile aufgerufen, wodurch es sich ganz einfach in Pipeline-Skripte integrieren l\u00e4sst.<\/li>\n<li><strong>Ergebnisse analysieren:<\/strong> Nach dem Trivy-Scan sehen Sie sich die Ergebnisse mit den gefundenen Schwachstellen an. Trivy liefert einen detaillierten Bericht mit Informationen \u00fcber den Schweregrad der Sicherheitsl\u00fccken und Empfehlungen zur Behebung.<\/li>\n<li>Build-Fail bei Schwachstellen: Damit Sicherheitsstandards nicht umgangen werden k\u00f6nnen, sollten Sie Ihre Pipeline so konfigurieren, dass der Build fehlschl\u00e4gt, wenn der Trivy-Scan schwerwiegende Schwachstellen findet. So gelangen nur die Images in die Produktion, die den Trivy-Scan bestanden haben.<\/li>\n<\/ol>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ea6eb7e elementor-widget elementor-widget-heading\" data-id=\"ea6eb7e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Azure DevOps-Pipeline einrichten<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-85e9169 elementor-widget elementor-widget-text-editor\" data-id=\"85e9169\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Legen Sie in Azure DevOps eine YAML-Pipeline an, die ein Docker-Image erstellt, mit Trivy scannt und in einer Container-Registry ver\u00f6ffentlicht, sofern keine Schwachstellen erkannt wurden.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60bcf9f elementor-widget elementor-widget-heading\" data-id=\"60bcf9f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Schritt 1: Neue Pipeline anlegen<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e99df60 elementor-widget elementor-widget-text-editor\" data-id=\"e99df60\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ol>\n<li>Loggen Sie sich in Ihr Azure DevOps-Konto ein, und navigieren Sie zu Ihrem Projekt.<\/li>\n<li>W\u00e4hlen Sie \u201ePipelines\u201c &gt; \u201eNew Pipeline\u201c und dann \u201eAzure Repos Git\u201c als Quelle.<\/li>\n<\/ol>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-072003d elementor-widget elementor-widget-heading\" data-id=\"072003d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Schritt 2: YAML-Pipeline definieren <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a52384 elementor-widget elementor-widget-text-editor\" data-id=\"7a52384\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ersetzen Sie &lt;YourContainerRegistry&gt; und &lt;YourDockerfile&gt; durch Ihre Container-Registry bzw. den Namen Ihres Dockerfiles.<\/p>\n<p>((Codeblock begin))<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c172439 elementor-widget elementor-widget-text-editor\" data-id=\"c172439\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>trigger: <br \/>&#8211; main<\/p>\n<p><span data-contrast=\"auto\">pool:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:[916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656],&quot;469777927&quot;:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],&quot;469777928&quot;:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u00a0 vmImage: &#8218;ubuntu-latest&#8216;<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:[916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656],&quot;469777927&quot;:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],&quot;469777928&quot;:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:[916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656],&quot;469777927&quot;:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],&quot;469777928&quot;:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">steps:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:[916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656],&quot;469777927&quot;:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],&quot;469777928&quot;:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u00a0 &#8211; task: Docker@2<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:[916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656],&quot;469777927&quot;:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],&quot;469777928&quot;:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u00a0\u00a0\u00a0 displayName: &#8218;Build Docker image&#8216;<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:[916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656],&quot;469777927&quot;:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],&quot;469777928&quot;:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u00a0\u00a0\u00a0 inputs:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:[916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656],&quot;469777927&quot;:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],&quot;469777928&quot;:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0 command: &#8218;build&#8216;<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:[916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656],&quot;469777927&quot;:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],&quot;469777928&quot;:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0 dockerfile: &#8218;&lt;YourDockerfile&gt;&#8216;<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:[916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656],&quot;469777927&quot;:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],&quot;469777928&quot;:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0 tags: &#8218;latest&#8216;<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:[916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656],&quot;469777927&quot;:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],&quot;469777928&quot;:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0 repository: &#8218;&lt;YourContainerRegistry&gt;\/&lt;YourImageName&gt;&#8216;<\/span><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-38ba158 elementor-widget elementor-widget-text-editor\" data-id=\"38ba158\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>((Codeblock end))<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a5e87f elementor-widget elementor-widget-heading\" data-id=\"8a5e87f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Schritt 3: Trivy-Scan hinzuf\u00fcgen<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-230486a elementor-widget elementor-widget-text-editor\" data-id=\"230486a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>F\u00fcgen Sie in die Pipeline einen Schritt ein, in dem Trivy ausgef\u00fchrt wird und das Docker-Image auf Schwachstellen pr\u00fcft.<\/p>\n<ul>\n<li>Trivy-Scan nach Erstellen des Docker-Image einf\u00fcgen:<\/li>\n<\/ul>\n<p>((Codeblock begin))<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8329114 elementor-widget elementor-widget-text-editor\" data-id=\"8329114\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span data-contrast=\"auto\">\u202f <\/span><span data-contrast=\"auto\">&#8211; task: Bash@3<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f displayName: &#8218;Run Trivy vulnerability scan&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f inputs:<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f targetType: &#8218;inline&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f script: |<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f # Install Trivy<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f Wget https:\/\/github.com\/aquasecurity\/trivy\/releases\/download\/v0.49.1\/trivy_0.49.1_Linux-64bit.tar.gz<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f tar zxvf trivy_0.49.1_Linux-64bit.tar.gz<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f sudo mv trivy \/usr\/local\/bin\/trivy<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f rm trivy_0.49.1_Linux-64bit.tar.gz<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f # Run Trivy scan<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f trivy image &#8211;severity HIGH,CRITICAL &#8211;exit-code 1 &lt;YourContainerRegistry&gt;\/&lt;YourImageName&gt;:latest<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-54d61ce elementor-widget elementor-widget-text-editor\" data-id=\"54d61ce\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>((Codeblock end))<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-533b1a2 elementor-widget elementor-widget-text-editor\" data-id=\"533b1a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Im Scanning-Schritt konfigurieren Sie Trivy so, dass der Scan mit Exit-Code\u00a01 endet, wenn im Container eine HIGH- oder CRITICAL-Schwachstelle gefunden wird. Dadurch schl\u00e4gt der Schritt in der Azure-Pipeline fehl, und die Pipeline-Ausf\u00fchrung stoppt. Trivy zeigt ein Protokoll der Ergebnisse an und empfiehlt jeweils eine Version, bei der die Schwachstelle behoben ist.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c6e4823 elementor-widget elementor-widget-heading\" data-id=\"c6e4823\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Schritt 4: Docker-Push hinzuf\u00fcgen<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b88dbf0 elementor-widget elementor-widget-text-editor\" data-id=\"b88dbf0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>F\u00fcgen Sie in die Pipeline einen Schritt ein, in dem das Docker-Image in die Container-Registry gepusht wird. Dieser Schritt wird nur ausgef\u00fchrt, wenn Trivy keine Schwachstellen gefunden hat.<\/p>\n<ul>\n<li>Docker-Push nach Trivy-Scan einf\u00fcgen:<\/li>\n<\/ul>\n<p>((Codeblock begin))<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-55cae54 elementor-widget elementor-widget-text-editor\" data-id=\"55cae54\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span data-contrast=\"auto\">&#8211; task: Docker@2<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559685&quot;:360,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f displayName: &#8218;Push Docker image to Container Registry&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559685&quot;:360,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f inputs:<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559685&quot;:360,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f command: &#8218;push&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559685&quot;:360,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f tags: &#8218;latest&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559685&quot;:360,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f repository: &#8218;&lt;YourContainerRegistry&gt;\/&lt;YourImageName&gt;&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559685&quot;:360,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-53e30f1 elementor-widget elementor-widget-text-editor\" data-id=\"53e30f1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>((Codeblock end))<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3032648b elementor-widget elementor-widget-heading\" data-id=\"3032648b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vollst\u00e4ndige YAML-Pipeline<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-af1660d elementor-widget elementor-widget-text-editor\" data-id=\"af1660d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>So sieht die komplette YAML-Pipeline mit Trivy-Scan aus:<\/p>\n<p>((Codeblock begin))<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a3f1513 elementor-widget elementor-widget-text-editor\" data-id=\"a3f1513\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span data-contrast=\"auto\">trigger:<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f &#8211; main<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">pool:<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f vmImage: &#8218;ubuntu-latest&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">steps:<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f &#8211; task: Docker@2<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f displayName: &#8218;Build Docker image&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f inputs:<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f command: &#8218;build&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f dockerfile: &#8218;&lt;YourDockerfile&gt;&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f tags: &#8218;latest&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f repository: &#8218;&lt;YourContainerRegistry&gt;\/&lt;YourImageName&gt;&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f\u202f<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f &#8211; task: Bash@3<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f displayName: &#8218;Run Trivy vulnerability scan&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f inputs:<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f targetType: &#8218;inline&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f script: |<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f # Install Trivy<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f wget https:\/\/github.com\/aquasecurity\/trivy\/releases\/download\/v0.49.1\/trivy_0.49.1_Linux-64bit.tar.gz<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f <\/span> <span data-contrast=\"auto\">tar zxvf trivy_0.49.1_Linux-64bit.tar.gz<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f sudo mv trivy \/usr\/local\/bin\/trivy<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f rm trivy_0.49.1_Linux-64bit.tar.gz<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f # Run Trivy scan<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f\u202f\u202f\u202f trivy image &#8211;severity HIGH,CRITICAL &#8211;exit-code 1 &lt;YourContainerRegistry&gt;\/&lt;YourImageName&gt;:latest<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f &#8211; task: Docker@2<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f displayName: &#8218;Push Docker image to Container Registry&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202f\u202f\u202f\u202f inputs:<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202fcommand: &#8218;push&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559685&quot;:705,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202ftags: &#8218;latest&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559685&quot;:705,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">\u202frepository: &#8218;&lt;YourContainerRegistry&gt;\/&lt;YourImageName&gt;&#8216;<\/span><span data-contrast=\"auto\">\u202f<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559685&quot;:705,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;335559746&quot;:100}\">\u00a0<\/span><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-76173fed elementor-widget elementor-widget-text-editor\" data-id=\"76173fed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>((Codeblock end))<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-307543a5 elementor-widget elementor-widget-heading\" data-id=\"307543a5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vorteile der sicheren Container-Erstellung<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-611e5b3 elementor-widget elementor-widget-text-editor\" data-id=\"611e5b3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Trivy in Ihre CI\/CD-Pipelines zu integrieren, hat mehrere Vorteile:<\/p>\n<ul>\n<li><strong>Fr\u00fchzeitige Erkennung:<\/strong> Schwachstellen in Docker-Images werden im Entwicklungsprozess bereits fr\u00fch erkannt. Das Risiko von Sicherheitsl\u00fccken im Code sinkt damit erheblich.<\/li>\n<li><strong>Automatische Sicherheitspr\u00fcfung:<\/strong> In Ihrer CI\/CD-Pipeline werden automatisch Sicherheitsscans durchgef\u00fchrt. Das senkt den manuellen Aufwand und sorgt f\u00fcr konsistente Sicherheitsverfahren.<\/li>\n<li><strong>Umfassendes Reporting:<\/strong> Trivy stellt detaillierte Berichte \u00fcber die gefundenen Schwachstellen bereit. Sie liefern Ihren Teams die Informationsgrundlage f\u00fcr fundierte Entscheidungen zur Risikoeind\u00e4mmung.<\/li>\n<li><strong>Bessere Compliance:<\/strong> Sicherheitsma\u00dfnahmen w\u00e4hrend des gesamten Container-Lebenszyklus von der Entwicklung bis zur Bereitstellung umzusetzen, leistet einen wichtigen Beitrag zur Compliance.<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-39fbfe2 elementor-widget elementor-widget-heading\" data-id=\"39fbfe2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Fazit<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-256f125 elementor-widget elementor-widget-text-editor\" data-id=\"256f125\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Docker-Container m\u00fcssen abgesichert werden, um Anwendungen und Infrastruktur vor potenziellen Bedrohungen zu sch\u00fctzen. Mit Trivy in Ihrer CI\/CD-Pipeline k\u00f6nnen Sie Schwachstellenscans automatisieren und daf\u00fcr sorgen, dass nur sichere Container-Images in der Produktion bereitgestellt werden. Diese proaktiven Sicherheitsma\u00dfnahmen st\u00e4rken die Resilienz Ihrer Software-Systeme und sichern Ihnen das Vertrauen Ihrer Kunden und Stakeholder.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Trivy scannt in CI\/CD-Pipelines Docker-Container auf Schwachstellen.<\/p>\n","protected":false},"author":23,"featured_media":77550,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[26],"tags":[121],"class_list":["post-78929","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-development"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/posts\/78929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/comments?post=78929"}],"version-history":[{"count":5,"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/posts\/78929\/revisions"}],"predecessor-version":[{"id":79969,"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/posts\/78929\/revisions\/79969"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/media\/77550"}],"wp:attachment":[{"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/media?parent=78929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/categories?post=78929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skaylink.com\/de\/wp-json\/wp\/v2\/tags?post=78929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}