{"id":6542,"date":"2024-03-22T14:56:00","date_gmt":"2024-03-22T14:56:00","guid":{"rendered":"https:\/\/beta.bluetab.net\/?p=6542"},"modified":"2024-04-03T21:42:27","modified_gmt":"2024-04-03T21:42:27","slug":"container-vulnerability-scanning-with-trivy","status":"publish","type":"post","link":"https:\/\/bluetab.co.uk\/en\/container-vulnerability-scanning-with-trivy\/","title":{"rendered":"Container vulnerability scanning with Trivy"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"6542\" class=\"elementor elementor-6542\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b2ad9fe elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b2ad9fe\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7eac278\" data-id=\"7eac278\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-45481b1 elementor-widget elementor-widget-heading\" data-id=\"45481b1\" 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\">Container vulnerability scanning<br>with Trivy<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-7843b8f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7843b8f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-1a4ee60\" data-id=\"1a4ee60\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ceb86e7 elementor-position-left elementor-vertical-align-middle elementor-widget elementor-widget-image-box\" data-id=\"ceb86e7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><a href=\"https:\/\/www.linkedin.com\/in\/%C3%A1ngel-maroco-85a0807b\/\" target=\"_blank\" tabindex=\"-1\"><img decoding=\"async\" width=\"150\" height=\"150\" data-src=\"https:\/\/bluetab.org\/wp-content\/uploads\/2020\/11\/Angel-Maroco-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-image-6561 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/Angel-Maroco-150x150.jpg 150w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/Angel-Maroco-300x300.jpg 300w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/Angel-Maroco-768x768.jpg 768w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/Angel-Maroco-75x75.jpg 75w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/Angel-Maroco.jpg 800w\" data-sizes=\"(max-width: 150px) 100vw, 150px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 150px; --smush-placeholder-aspect-ratio: 150\/150;\" \/><\/a><\/figure><div class=\"elementor-image-box-content\"><h4 class=\"elementor-image-box-title\"><a href=\"https:\/\/www.linkedin.com\/in\/%C3%A1ngel-maroco-85a0807b\/\" target=\"_blank\">\u00c1ngel Maroco<\/a><\/h4><p class=\"elementor-image-box-description\">AWS Cloud Architect<\/p><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-ed6cc51\" data-id=\"ed6cc51\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-173edbe elementor-share-buttons--view-icon elementor-share-buttons--skin-minimal elementor-share-buttons--shape-circle elementor-grid-0 elementor-share-buttons--color-official elementor-widget elementor-widget-share-buttons\" data-id=\"173edbe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"share-buttons.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-grid\" role=\"list\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-grid-item\" role=\"listitem\">\n\t\t\t\t\t\t<div class=\"elementor-share-btn elementor-share-btn_twitter\" role=\"button\" tabindex=\"0\" aria-label=\"Share on twitter\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-share-btn__icon\">\n\t\t\t\t\t\t\t\t<i class=\"fab fa-twitter\" aria-hidden=\"true\"><\/i>\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-grid-item\" role=\"listitem\">\n\t\t\t\t\t\t<div class=\"elementor-share-btn elementor-share-btn_linkedin\" role=\"button\" tabindex=\"0\" aria-label=\"Share on linkedin\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-share-btn__icon\">\n\t\t\t\t\t\t\t\t<i class=\"fab fa-linkedin\" aria-hidden=\"true\"><\/i>\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\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<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-37382f0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"37382f0\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-narrow\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4a10ec3\" data-id=\"4a10ec3\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-cab8096 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"cab8096\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"theme-post-featured-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=\"1024\" height=\"512\" src=\"https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/enlaces-linkedin-1-1024x512.png\" class=\"attachment-large size-large wp-image-17850\" alt=\"\" srcset=\"https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/enlaces-linkedin-1-1024x512.png 1024w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/enlaces-linkedin-1-300x150.png 300w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/enlaces-linkedin-1-768x384.png 768w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/enlaces-linkedin-1.png 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\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 class=\"elementor-element elementor-element-e35b9ec elementor-widget elementor-widget-text-editor\" data-id=\"e35b9ec\" 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 style=\"color: #4a4a4a;\">Within the framework of security in container<\/span>, the build phase is of vital importance as\u00a0we\u00a0need to select the base image on which applications will run. Not having automatic mechanisms for vulnerability scanning can lead to production environments with insecure applications with the risks that involves.<\/p><p>In this article we will cover vulnerability scanning using Aqua Security\u2019s\u00a0<strong>Trivy<\/strong>\u00a0solution, but before we begin, we need to explain what the basis is for these types of solutions for identifying vulnerabilities in Docker images.<\/p><p><strong>Introduction to CVE (Common Vulnerabilities and Exposures)<\/strong><\/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-ddcfa7e elementor-widget elementor-widget-image\" data-id=\"ddcfa7e\" 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 decoding=\"async\" width=\"911\" height=\"517\" data-src=\"https:\/\/bluetab.org\/wp-content\/uploads\/2020\/11\/CVEs-By-Year.png\" class=\"attachment-large size-large wp-image-6545 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetab.org\/wp-content\/uploads\/2020\/11\/CVEs-By-Year.png 911w, https:\/\/bluetab.org\/wp-content\/uploads\/2020\/11\/CVEs-By-Year-300x170.png 300w, https:\/\/bluetab.org\/wp-content\/uploads\/2020\/11\/CVEs-By-Year-768x436.png 768w\" data-sizes=\"(max-width: 911px) 100vw, 911px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 911px; --smush-placeholder-aspect-ratio: 911\/517;\" \/>\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 class=\"elementor-element elementor-element-6483e80 elementor-widget elementor-widget-text-editor\" data-id=\"6483e80\" 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><a href=\"\/\/cve.mitre.org\/index.html\">CVE<\/a>\u00a0is a list of information maintained by\u00a0<a href=\"\/\/www.mitre.org\/\">MITRE Corporation<\/a>\u00a0which is aimed at centralising the records of known security vulnerabilities, where each reference has a CVE-ID number, description of the vulnerability, which versions of the software are affected, possible fix for the flaw (if any) or how to configure to mitigate the vulnerability and references to publications or posts in forums or blogs where the vulnerability has been made public or its exploitation is demonstrated.<\/p><p>The CVE-ID provides a standard naming convention for uniquely identifying a vulnerability. They are classified into 5 typologies, which we will look at in the\u00a0<a href=\"\/\/s3-eu-west-1.amazonaws.com\/static.bluetab.net\/An%C3%A1lisis%20de%20vulnerabilidades%20en%20contenedores%20con%20Trivy.md.html#Interpretaci%C3%B3n%20del%20an%C3%A1lisis\">Interpreting the analysis<\/a>\u00a0section.\u00a0<span style=\"color: #4a4a4a;\">These types are assigned based on\u00a0<\/span><span style=\"color: #4a4a4a;\">different<\/span><span style=\"color: #4a4a4a;\">\u00a0metrics<\/span>\u00a0(if you are curious, see\u00a0<a href=\"\/\/nvd.nist.gov\/vuln-metrics\/cvss\/v3-calculator\">CVSS Calculator v3<\/a>).<\/p><p>CVE has become the standard for vulnerability recording, so it is used by the great majority of technology companies and individuals.<\/p><p>There are various channels for keeping informed of all the news related to vulnerabilities:\u00a0<a href=\"\/\/cve.mitre.org\/blog\/\">official blog<\/a>,\u00a0<a href=\"\/\/twitter.com\/CVEnew\/\">Twitter<\/a>,\u00a0<a href=\"\/\/github.com\/CVEProject\/cvelist\">cvelist<\/a>\u00a0on GitHub and\u00a0<a href=\"\/\/www.linkedin.com\/showcase\/cve-cwe-capec\/\">LinkedIn<\/a>.<\/p><p><span style=\"color: #4a4a4a;\">If you want more detailed information\u00a0<\/span><span style=\"color: #4a4a4a;\">about<\/span><span style=\"color: #4a4a4a;\">\u00a0a vulnerability<\/span>, you can also consult the NIST website, specifically the\u00a0<a href=\"\/\/nvd.nist.gov\/\">NVD<\/a>\u00a0(National Vulnerability Database).<\/p><p>We invite you to search for one of the following critical vulnerabilities. It is quite possible that they have affected you directly or indirectly. We should forewarn you that they have been among the most discussed\u00a0<img decoding=\"async\" role=\"img\" draggable=\"false\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"data-src=\" data-pagespeed-url-hash=\"31059146\" \/><\/p><ul><li>CVE-2017-5753<\/li><li>CVE-2017-5754<\/li><\/ul><p>If you detect a vulnerability, we encourage you to register it using the\u00a0<a href=\"\/\/cveform.mitre.org\/\">form below<\/a>.<\/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-748711b elementor-widget elementor-widget-spacer\" data-id=\"748711b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-92b4327 elementor-widget elementor-widget-heading\" data-id=\"92b4327\" 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\">Aqua Security \u2013 Trivy<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8fe7d10 elementor-widget elementor-widget-text-editor\" data-id=\"8fe7d10\" 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><strong><a href=\"\/\/github.com\/aquasecurity\/trivy\">Trivy<\/a><\/strong>\u00a0is an\u00a0<em>open source<\/em>\u00a0tool focused on detecting vulnerabilities in OS-level packages and dependency files for various languages:<\/p><ul><li><strong>OS packages<\/strong>: (Alpine, Red Hat Universal Base Image, Red Hat Enterprise Linux, CentOS, Oracle Linux, Debian, Ubuntu, Amazon Linux, openSUSE Leap, SUSE Enterprise Linux, Photon OS and Distroless)<br \/><br \/><\/li><li><strong>Application dependencies<\/strong>: (Bundler, Composer, Pipenv, Poetry, npm, yarn and Cargo)<br \/><br \/><\/li><\/ul><p><a href=\"\/\/www.aquasec.com\/\">Aqua Security<\/a>, a company specialising in development of security solutions, acquired Trivy in 2019. Together with a substantial number of collaborators, they are responsible for developing and maintaining it.<\/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-0197f39 elementor-widget elementor-widget-heading\" data-id=\"0197f39\" 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<h3 class=\"elementor-heading-title elementor-size-default\">Installation<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3b5b353 elementor-widget elementor-widget-text-editor\" data-id=\"3b5b353\" 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 has\u00a0<a href=\"\/\/github.com\/aquasecurity\/trivy#installation\">installers<\/a>\u00a0for most Linux and MacOS systems. For our tests, we will use the generic installer:<\/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-dac8710 elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"dac8710\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>curl -sfL https:\/\/raw.githubusercontent.com\/aquasecurity\/trivy\/master\/contrib\/install.sh | sudo sh -s -- -b \/usr\/local\/bin <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6fcce61 elementor-widget elementor-widget-text-editor\" data-id=\"6fcce61\" 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 style=\"color: #4a4a4a;\">If we do not want\u00a0<\/span><span style=\"color: #4a4a4a;\">to persist<\/span><b style=\"color: #4a4a4a;\">\u00a0<\/b><span style=\"color: #4a4a4a;\">the binary\u00a0<\/span><span style=\"color: #4a4a4a;\">on our system<\/span>, we have a Docker image:<\/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-66461bb elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"66461bb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>docker run --rm -v \/var\/run\/docker.sock:\/var\/run\/docker.sock -v \/tmp\/trivycache:\/root\/.cache\/ aquasec\/trivy python:3.4-alpine <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a635538 elementor-widget elementor-widget-spacer\" data-id=\"a635538\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a358ef9 elementor-widget elementor-widget-heading\" data-id=\"a358ef9\" 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<h3 class=\"elementor-heading-title elementor-size-default\">Basic operations<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e30e95d elementor-widget elementor-widget-text-editor\" data-id=\"e30e95d\" 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<ul><li><strong>Local images<\/strong><\/li><\/ul>\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-ce0399a elementor-widget elementor-widget-text-editor\" data-id=\"ce0399a\" 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 has\u00a0<a href=\"\/\/github.com\/aquasecurity\/trivy#installation\">installers<\/a>\u00a0for most Linux and MacOS systems. For our tests, we will use the generic installer:<\/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-890f188 elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"890f188\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>#!\/bin\/bash\r\ndocker build -t cloud-practice\/alpine:latest -&lt;&lt;EOF\r\nFROM alpine:latest\r\nRUN echo &quot;hello world&quot;\r\nEOF\r\n\r\ntrivy image cloud-practice\/alpine:latest <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-53e196d elementor-widget elementor-widget-text-editor\" data-id=\"53e196d\" 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<ul><li><strong><strong>Remote images<\/strong><\/strong><\/li><\/ul>\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-cd163b5 elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"cd163b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>#!\/bin\/bash\r\ntrivy image python:3.4-alpine <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8708b85 elementor-widget elementor-widget-text-editor\" data-id=\"8708b85\" 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<ul><li><strong>Local projects:<\/strong><br \/>Enable you to analyse dependency files (outputs):<ul><li><em>Pipfile.lock:<\/em>\u00a0Python<\/li><li><em>package-lock_react.json:<\/em>\u00a0React<\/li><li><em>Gemfile_rails.lock:<\/em>\u00a0Rails<\/li><li><em>Gemfile.lock:<\/em>\u00a0Ruby<\/li><li><em>Dockerfile:<\/em>\u00a0Docker<\/li><li><em>composer_laravel.lock:<\/em>\u00a0PHP Lavarel<\/li><li><em>Cargo.lock:<\/em>\u00a0Rust<\/li><\/ul><\/li><\/ul>\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-441a934 elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"441a934\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>#!\/bin\/bash\r\ngit clone https:\/\/github.com\/knqyf263\/trivy-ci-test\r\ntrivy fs trivy-ci-test <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bebd973 elementor-widget elementor-widget-text-editor\" data-id=\"bebd973\" 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<ul><li><strong><strong><strong>Public repositories:<\/strong><\/strong><\/strong><\/li><\/ul>\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-383803a elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"383803a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>#!\/bin\/bash\r\ntrivy repo https:\/\/github.com\/knqyf263\/trivy-ci-test <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bab3e7f elementor-widget elementor-widget-text-editor\" data-id=\"bab3e7f\" 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<ul><li><strong>Private image repositories:<\/strong><ul><li><a href=\"\/\/github.com\/aquasecurity\/trivy#amazon-ecr-elastic-container-registry\">Amazon ECR (Elastic Container Registry)<\/a><\/li><li><a href=\"\/\/github.com\/aquasecurity\/trivy#docker-hub\">Docker Hub<\/a><\/li><li><a href=\"\/\/github.com\/aquasecurity\/trivy#gcr-google-container-registry\">GCR (Google Container Registry)<\/a><\/li><li><a href=\"\/\/github.com\/aquasecurity\/trivy#self-hosted-registry-basicauth\">Private repositories with BasicAuth<\/a><\/li><\/ul><\/li><\/ul>\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-67785d8 elementor-widget elementor-widget-text-editor\" data-id=\"67785d8\" 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<ul><li><strong>Cache database<\/strong><br \/>The vulnerability database is hosted on\u00a0<a href=\"\/\/github.com\/aquasecurity\/trivy-db\">GitHub<\/a>. To avoid downloading this database in each analysis operation, you can use the\u00a0<code>--cache-dir &lt;dir&gt;<\/code>\u00a0parameter:<\/li><\/ul>\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-1f1b8d7 elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"1f1b8d7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>#!\/bin\/bash trivy &ndash;cache-dir .cache\/trivy image python:3.4-alpine3.9 <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2510c47 elementor-widget elementor-widget-text-editor\" data-id=\"2510c47\" 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<ul><li><strong>Filter by severity<\/strong><\/li><\/ul>\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-b42970c elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"b42970c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>#!\/bin\/bash\r\ntrivy image --severity HIGH,CRITICAL ruby:2.4.0 <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a3ae728 elementor-widget elementor-widget-text-editor\" data-id=\"a3ae728\" 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<ul><li><strong>Filter unfixed vulnerabilities<\/strong><\/li><\/ul>\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-ce4feda elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"ce4feda\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>#!\/bin\/bash\r\ntrivy image --ignore-unfixed ruby:2.4.0 <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8e21568 elementor-widget elementor-widget-text-editor\" data-id=\"8e21568\" 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<ul><li><strong><strong>Specify output code<\/strong><\/strong><br \/>This option is very useful in the continuous integration process, as we can specify that your pipeline ends in error when vulnerabilities of the critical type are found, but medium and high types finish properly.<\/li><\/ul>\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-da8125b elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"da8125b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>#!\/bin\/bash\r\ntrivy image --exit-code 0 --severity MEDIUM,HIGH ruby:2.4.0\r\ntrivy image --exit-code 1 --severity CRITICAL ruby:2.4.0 <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c73806d elementor-widget elementor-widget-text-editor\" data-id=\"c73806d\" 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<ul><li><strong><strong><strong>Ignore specific vulnerabilities<\/strong><\/strong><\/strong><br \/>You can specify those CVEs you want to ignore by using the\u00a0<em>.trivyignore<\/em>\u00a0file. This can be useful if the image contains a vulnerability that does not affect your development.<\/li><\/ul>\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-3ba6cad elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"3ba6cad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>#!\/bin\/bash\r\ncat .trivyignore\r\n# Accept the risk\r\nCVE-2018-14618\r\n\r\n# No impact in our settings\r\nCVE-2019-1543 <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b2b25f2 elementor-widget elementor-widget-text-editor\" data-id=\"b2b25f2\" 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<ul><li><strong><strong><strong><strong>Export output in JSON format:<\/strong><\/strong><\/strong><\/strong><br \/>This option is useful if you want to automate a process before an output, display the results in a custom front end, or persist the output in a structured format.<\/li><\/ul>\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-2201d97 elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"2201d97\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>#!\/bin\/bash\r\ntrivy image -f json -o results.json golang:1.12-alpine\r\ncat results.json | jq <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-93e0c15 elementor-widget elementor-widget-text-editor\" data-id=\"93e0c15\" 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<ul><li><strong><strong><strong><strong><strong>Export output in SARIF format:<\/strong><\/strong><\/strong><\/strong><\/strong><br \/>There is a standard called SARIF (Static Analysis Results Interchange Format) that defines the format for outputs that any vulnerability analysis tool should have.<\/li><\/ul>\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-c45a528 elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"c45a528\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>#!\/bin\/bash\r\nwget https:\/\/raw.githubusercontent.com\/aquasecurity\/trivy\/master\/contrib\/sarif.tpl\r\ntrivy image --format template --template &quot;@sarif.tpl&quot; -o report-golang.sarif  golang:1.12-alpine\r\ncat report-golang.sarif   <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-445df6b elementor-widget elementor-widget-text-editor\" data-id=\"445df6b\" 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>VS Code has the\u00a0<a href=\"\/\/marketplace.visualstudio.com\/items?itemName=MS-SarifVSCode.sarif-viewer\">sarif-viewer<\/a>\u00a0extension for viewing vulnerabilities.<\/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-cc57a1a elementor-widget elementor-widget-spacer\" data-id=\"cc57a1a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-77148c7 elementor-widget elementor-widget-heading\" data-id=\"77148c7\" 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<h3 class=\"elementor-heading-title elementor-size-default\">Continuous integration processes<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-517327c elementor-widget elementor-widget-text-editor\" data-id=\"517327c\" 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 has templates for the leading CI\/CD solutions:<\/p><ul><li><a href=\"\/\/github.com\/aquasecurity\/trivy#github-actions\">GitHub Actions<\/a><\/li><li><a href=\"\/\/github.com\/aquasecurity\/trivy#travis-ci\">Travis CI<\/a><\/li><li><a href=\"\/\/github.com\/aquasecurity\/trivy#circleci\">CircleCI<\/a><\/li><li><a href=\"\/\/github.com\/aquasecurity\/trivy#gitlab-ci\">GitLab CI<\/a><\/li><li><a href=\"\/\/github.com\/aquasecurity\/trivy#aws-codepipeline\">AWS CodePipeline<\/a><\/li><\/ul>\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-d929c18 elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"d929c18\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>#!\/bin\/bash\r\n$ cat .gitlab-ci.yml\r\nstages:\r\n  - test\r\n\r\ntrivy:\r\n  stage: test\r\n  image: docker:stable-git\r\n  before_script:\r\n    - docker build -t trivy-ci-test:${CI_COMMIT_REF_NAME} .\r\n    - export VERSION=$(curl --silent &quot;https:\/\/api.github.com\/repos\/aquasecurity\/trivy\/releases\/latest&quot; | grep &#039;&quot;tag_name&quot;:&#039; | sed -E &#039;s\/.*&quot;v([^&quot;]+)&quot;.*\/\\1\/&#039;)\r\n    - wget https:\/\/github.com\/aquasecurity\/trivy\/releases\/download\/v${VERSION}\/trivy_${VERSION}_Linux-64bit.tar.gz\r\n    - tar zxvf trivy_${VERSION}_Linux-64bit.tar.gz\r\n  variables:\r\n    DOCKER_DRIVER: overlay2\r\n  allow_failure: true\r\n  services:\r\n    - docker:stable-dind\r\n  script:\r\n    - .\/trivy --exit-code 0 --severity HIGH --no-progress --auto-refresh trivy-ci-test:${CI_COMMIT_REF_NAME}\r\n    - .\/trivy --exit-code 1 --severity CRITICAL --no-progress --auto-refresh trivy-ci-test:${CI_COMMIT_REF_NAME} <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-15f56e6 elementor-widget elementor-widget-spacer\" data-id=\"15f56e6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5beeca5 elementor-widget elementor-widget-heading\" data-id=\"5beeca5\" 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<h3 class=\"elementor-heading-title elementor-size-default\">Interpreting the analysis<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b7b9b53 elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"b7b9b53\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>#!\/bin\/bash\r\ntrivy image httpd:2.2-alpine\r\n2020-10-24T09:46:43.186+0200    INFO    Need to update DB\r\n2020-10-24T09:46:43.186+0200    INFO    Downloading DB...\r\n18.63 MiB \/ 18.63 MiB [---------------------------------------------------------] 100.00% 8.78 MiB p\/s 3s\r\n2020-10-24T09:47:08.571+0200    INFO    Detecting Alpine vulnerabilities...\r\n2020-10-24T09:47:08.573+0200    WARN    This OS version is no longer supported by the distribution: alpine 3.4.6\r\n2020-10-24T09:47:08.573+0200    WARN    The vulnerability detection may be insufficient because security updates are not provided\r\n\r\nhttpd:2.2-alpine (alpine 3.4.6)\r\n===============================\r\nTotal: 32 (UNKNOWN: 0, LOW: 0, MEDIUM: 15, HIGH: 14, CRITICAL: 3)\r\n\r\n+-----------------------+------------------+----------+-------------------+------------------+--------------------------------+\r\n|        LIBRARY        | VULNERABILITY ID | SEVERITY | INSTALLED VERSION |  FIXED VERSION   |             TITLE              |\r\n+-----------------------+------------------+----------+-------------------+------------------+--------------------------------+\r\n| libcrypto1.0          | CVE-2018-0732    | HIGH     | 1.0.2n-r0         | 1.0.2o-r1        | openssl: Malicious server can  |\r\n|                       |                  |          |                   |                  | send large prime to client     |\r\n|                       |                  |          |                   |                  | during DH(E) TLS...            |\r\n+-----------------------+------------------+----------+-------------------+------------------+--------------------------------+\r\n| postgresql-dev        | CVE-2018-1115    | CRITICAL | 9.5.10-r0         | 9.5.13-r0        | postgresql: Too-permissive     |\r\n|                       |                  |          |                   |                  | access control list on         |\r\n|                       |                  |          |                   |                  | function pg_logfile_rotate()   |\r\n+-----------------------+------------------+----------+-------------------+------------------+--------------------------------+\r\n| libssh2-1             | CVE-2019-17498   | LOW      | 1.8.0-2.1         |                  | libssh2: integer overflow in   |\r\n|                       |                  |          |                   |                  | SSH_MSG_DISCONNECT logic in    |\r\n|                       |                  |          |                   |                  | packet.c                       |\r\n+-----------------------+------------------+----------+-------------------+------------------+--------------------------------+ <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-83c21a4 elementor-widget elementor-widget-text-editor\" data-id=\"83c21a4\" 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<ul><li><strong>Library<\/strong>: the library\/package identifying the vulnerability.<br \/><br \/><\/li><li><strong>Vulnerability ID<\/strong>: vulnerability identifier (according to CVE standard).<br \/><br \/><\/li><li><strong>Severity<\/strong>: there is a classification with 5 typologies\u00a0<a href=\"\/\/access.redhat.com\/es\/security\/updates\/classification\">[source]<\/a>\u00a0which are assigned a CVSS (Common Vulnerability Scoring System) score:<br \/><br \/><ul><li><strong>Critical (CVSS Score 9.0-10.0)<\/strong>: flaws that could be easily exploited by a remote unauthenticated attacker and lead to system compromise (arbitrary code execution) without requiring user interaction.<br \/><br \/><\/li><li><strong>High (CVSS score 7.0-8.9)<\/strong>: flaws that can easily compromise the confidentiality, integrity or availability of resources.<br \/><br \/><\/li><li><strong>Medium (CVSS score 4.0-6.9)<\/strong>: flaws that may be more difficult to exploit but could still lead to some compromise of the confidentiality, integrity or availability of resources under certain circumstances.<br \/><br \/><\/li><li><strong>Low (CVSS score 0.1-3.9)<\/strong>: all other issues that may have a security impact. These are the types of vulnerabilities that are believed to require unlikely circumstances to be able to be exploited, or which would give minimal consequences.<br \/><br \/><\/li><li><strong>Unknown (CVSS score 0.0)<\/strong>: allocated to vulnerabilities with no assigned score.<br \/><br \/><\/li><\/ul><\/li><li><strong>Installed version<\/strong>: the version installed in the system analysed.<br \/><br \/><\/li><li><strong>Fixed version<\/strong>: the version in which the issue is fixed. If the version is not reported, this means the fix is pending.<br \/><br \/><\/li><li><strong>Title<\/strong>: A short description of the vulnerability. For further information, see the\u00a0<a href=\"\/\/nvd.nist.gov\/\">NVD<\/a>.<br \/><br \/><\/li><\/ul><p>Now you know how to interpret at the analysis information at a high level. So, what actions should you take? We give you some pointers in the\u00a0<a href=\"\/\/s3-eu-west-1.amazonaws.com\/static.bluetab.net\/An%C3%A1lisis%20de%20vulnerabilidades%20en%20contenedores%20con%20Trivy.md.html#Recomendaciones\">Recommendations<\/a>\u00a0section.<\/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-fe95733 elementor-widget elementor-widget-spacer\" data-id=\"fe95733\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-40c527e elementor-widget elementor-widget-heading\" data-id=\"40c527e\" 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<h3 class=\"elementor-heading-title elementor-size-default\">Recommendations<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bcc7002 elementor-widget elementor-widget-text-editor\" data-id=\"bcc7002\" 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<ul><li><p>This section describes some of\u00a0<span style=\"color: #4a4a4a;\">the most important aspects\u00a0<\/span><span style=\"color: #4a4a4a;\">within the scope of<\/span><span style=\"color: #4a4a4a;\">\u00a0vulnerabilities in containers<\/span>:<\/p><ul><li><strong>Avoid (wherever possible) using images in which\u00a0<em>critical<\/em>\u00a0and\u00a0<em>high\u00a0severity vulnerabilities have been identified. <\/em><\/strong><\/li><li><strong>Include image analysis in CI processes<\/strong><br \/>Security in development is not optional; automate your testing and do not rely on manual processes.<\/li><li><strong>Use lightweight images, fewer exposures<\/strong>:<br \/>Images of the\u00a0<a href=\"\/\/hub.docker.com\/_\/alpine\">Alpine<\/a>\u00a0\/\u00a0<a href=\"\/\/hub.docker.com\/_\/busybox\">BusyBox<\/a>\u00a0type are built with as few packages as possible (the base image is 5\u00a0MB), resulting in reduced attack vectors. They support multiple architectures and are updated quite frequently.<\/li><\/ul><\/li><\/ul>\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-73ff2dc elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"73ff2dc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>REPOSITORY  TAG     IMAGE ID      CREATED      SIZE\r\nalpine      latest  961769676411  4 weeks ago  5.58MB\r\nubuntu      latest  2ca708c1c9cc  2 days ago   64.2MB\r\ndebian      latest  c2c03a296d23  9 days ago   114MB\r\ncentos      latest  67fa590cfc1c  4 weeks ago  202MB <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a0355c3 elementor-widget elementor-widget-text-editor\" data-id=\"a0355c3\" 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>If for a dependencies reason, you cannot customise an Alpine base image, look for slim-type images from trusted software vendors. Apart from the security component, people who share a network with you will appreciate not having to download 1&nbsp;GB images.<\/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-186472f elementor-widget elementor-widget-text-editor\" data-id=\"186472f\" 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<ul><li><strong>Get images from official repositories<\/strong>: Using\u00a0<a href=\"\/\/hub.docker.com\/\">DockerHub<\/a>\u00a0is recommended, and preferably images from official publishers.\u00a0<a href=\"\/\/blog.banyansecurity.io\/blog\/over-30-of-official-images-in-docker-hub-contain-high-priority-security-vulnerabilities\">DockerHub and CVEs<\/a><br \/><br \/><\/li><li><strong>Keep images up to date<\/strong>: the following example shows an analysis of two different Apache versions:<br \/><br \/><p><strong>Image published in 11\/2018<\/strong><\/p><\/li><\/ul>\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-6571a9a elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"6571a9a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>httpd:2.2-alpine (alpine 3.4.6)\r\n Total: 32 (UNKNOWN: 0, LOW: 0, MEDIUM: 15, **HIGH: 14, CRITICAL: 3**) <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-24107f8 elementor-widget elementor-widget-text-editor\" data-id=\"24107f8\" 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><strong>Image published in 01\/2020<\/strong><\/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-a70f7d3 elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"a70f7d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>httpd:alpine (alpine 3.12.1)\r\n Total: 0 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, **HIGH: 0, CRITICAL: 0**) <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e12faa5 elementor-widget elementor-widget-text-editor\" data-id=\"e12faa5\" 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>As you can see, if a development was completed in 2018 and no maintenance was performed, you could be exposing a relatively vulnerable Apache. This is not an issue resulting from the use of containers. However, because of the versatility Docker provides for testing new product versions, we now have no excuse.<\/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-d194e9c elementor-widget elementor-widget-text-editor\" data-id=\"d194e9c\" 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<ul><li><strong>Pay special attention to vulnerabilities affecting the application layer:<\/strong><br \/>According to the\u00a0<a href=\"\/\/www.edgescan.com\/wp-content\/uploads\/2019\/02\/edgescan-Vulnerability-Stats-Report-2019.pdf\">study<\/a>\u00a0conducted by the company edgescan, 19% of vulnerabilities detected in 2018 were associated with Layer 7 (OSI Model), with XSS (<em>Cross-site Scripting<\/em>) type attacks standing out above all.<br \/><br \/><\/li><li><strong>Select latest images with special care:<\/strong><br \/>Although this advice is closely related to the use of lightweight images, we consider it worth inserting a note on\u00a0<em>latest<\/em>\u00a0images:<\/li><\/ul>\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-0e722ea elementor-widget elementor-widget-text-editor\" data-id=\"0e722ea\" 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><strong>Latest Apache image (Alpine base 3.12)<\/strong><\/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-5f8e11f elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"5f8e11f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>httpd:alpine (alpine 3.12.1)\r\n Total: 0 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 0, CRITICAL: 0) <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0411453 elementor-widget elementor-widget-text-editor\" data-id=\"0411453\" 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><strong>Latest Apache image (Debian base 10.6)<\/strong><\/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-30ff0ca elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"30ff0ca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>httpd:latest (debian 10.6)\r\n Total: 119 (UNKNOWN: 0, LOW: 87, MEDIUM: 10, HIGH: 22, CRITICAL: 0) <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-53d6177 elementor-widget elementor-widget-text-editor\" data-id=\"53d6177\" 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>We are using the same version of Apache (2.4.46) in both cases, the difference is in the number of critical vulnerabilities.<br \/>Does this mean that the Debian base 10 image makes the application running on that system vulnerable? It may or may not be. You need to assess whether the vulnerabilities could compromise your application. The recommendation is to use the Alpine image.<\/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-aab4ac6 elementor-widget elementor-widget-text-editor\" data-id=\"aab4ac6\" 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<ul><li><strong>Evaluate the use of Docker\u00a0<em>distroless<\/em>\u00a0images<\/strong><br \/>The\u00a0<a href=\"\/\/github.com\/GoogleContainerTools\/distroless\">distroless<\/a>\u00a0concept is from Google and consists of Docker images based on Debian9\/Debian10, without package managers, shells or utilities. The images are focused on programming languages (Java, Python, Golang, Node.js, dotnet and Rust), containing only what is required to run the applications. As they do not have package managers, you cannot install your own dependencies, which can be a big advantage or in other cases a big obstacle. Do testing and if it fits your project requirements, go ahead; it is always useful to have alternatives. Maintenance is Google\u2019s responsibility, so the security aspect will be well-defined.<\/li><\/ul>\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-af6a7f0 elementor-widget elementor-widget-spacer\" data-id=\"af6a7f0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e1d2267 elementor-widget elementor-widget-heading\" data-id=\"e1d2267\" 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<h3 class=\"elementor-heading-title elementor-size-default\">Container vulnerability scanner ecosystem<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef3aaba elementor-widget elementor-widget-text-editor\" data-id=\"ef3aaba\" 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\tIn our case we have used Trivy as it is a reliable, stable,\u00a0<em>open source<\/em>\u00a0tool that is being developed continually, but there are numerous tools for container analysis:\n<ul>\n \t<li><a href=\"\/\/coreos.com\/clair\/docs\/latest\/\">Clair<\/a><\/li>\n \t<li><a href=\"#\">Snyk<\/a><\/li>\n \t<li><a href=\"\/\/anchore.io\/\">Anchore Cloud<\/a><\/li>\n \t<li><a href=\"\/\/github.com\/docker\/docker-bench-security\">Docker Bench<\/a><\/li>\n \t<li><a href=\"\/\/docs.docker.com\/engine\/scan\/\">Docker Scan<\/a><\/li>\n<\/ul>\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-d6464c8 elementor-widget elementor-widget-spacer\" data-id=\"d6464c8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-0cf8eaf elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0cf8eaf\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-4107d50\" data-id=\"4107d50\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4d15e20 elementor-widget elementor-widget-heading\" data-id=\"4d15e20\" 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<h5 class=\"elementor-heading-title elementor-size-default\">Do you want to know more about what we offer and to see other success stories?<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f28b2bf elementor-align-center elementor-widget elementor-widget-button\" data-id=\"f28b2bf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"\/es\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">DISCOVER BLUETAB<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\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<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-aa2fc0b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"aa2fc0b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-8b166e3\" data-id=\"8b166e3\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-3d42ec3\" data-id=\"3d42ec3\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a576822 elementor-share-buttons--view-icon elementor-share-buttons--skin-minimal elementor-share-buttons--shape-circle elementor-grid-0 elementor-share-buttons--color-official elementor-widget elementor-widget-share-buttons\" data-id=\"a576822\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"share-buttons.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-grid\" role=\"list\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-grid-item\" role=\"listitem\">\n\t\t\t\t\t\t<div class=\"elementor-share-btn elementor-share-btn_twitter\" role=\"button\" tabindex=\"0\" aria-label=\"Share on twitter\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-share-btn__icon\">\n\t\t\t\t\t\t\t\t<i class=\"fab fa-twitter\" aria-hidden=\"true\"><\/i>\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-grid-item\" role=\"listitem\">\n\t\t\t\t\t\t<div class=\"elementor-share-btn elementor-share-btn_linkedin\" role=\"button\" tabindex=\"0\" aria-label=\"Share on linkedin\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-share-btn__icon\">\n\t\t\t\t\t\t\t\t<i class=\"fab fa-linkedin\" aria-hidden=\"true\"><\/i>\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\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<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-92da4e0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"92da4e0\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-873c04e\" data-id=\"873c04e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0f990c2 elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"0f990c2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><a href=\"https:\/\/www.linkedin.com\/in\/elipajares\/\" target=\"_blank\" tabindex=\"-1\"><img decoding=\"async\" width=\"150\" height=\"150\" data-src=\"https:\/\/bluetab.org\/wp-content\/uploads\/2020\/11\/Angel-Maroco-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-image-6561 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/Angel-Maroco-150x150.jpg 150w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/Angel-Maroco-300x300.jpg 300w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/Angel-Maroco-768x768.jpg 768w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/Angel-Maroco-75x75.jpg 75w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/Angel-Maroco.jpg 800w\" data-sizes=\"(max-width: 150px) 100vw, 150px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 150px; --smush-placeholder-aspect-ratio: 150\/150;\" \/><\/a><\/figure><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-a73061d\" data-id=\"a73061d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1305fc6 elementor-widget elementor-widget-heading\" data-id=\"1305fc6\" 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<div class=\"elementor-heading-title elementor-size-default\">\u00c1ngel Maroco\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-253ec8b elementor-widget elementor-widget-heading\" data-id=\"253ec8b\" 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<div class=\"elementor-heading-title elementor-size-default\">AWS Cloud Architect<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0af43c4 elementor-widget elementor-widget-text-editor\" data-id=\"0af43c4\" 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>My name is\u00a0<strong><a href=\"\/\/www.linkedin.com\/in\/%C3%A1ngel-maroco-85a0807b\/\">\u00c1ngel Maroco<\/a><\/strong>\u00a0and I have been working in the IT sector for over a decade. I started my career in web development and then moved on for a significant period to IT platforms in banking environments and have been working on designing solutions in AWS environments for the last 5 years.<\/p><p>I now combine my role as an architect with being head of \/bluetab\u00a0<a href=\"\/\/www.linkedin.com\/feed\/hashtag\/?keywords=cloudpractice\">Cloud Practice<\/a>, with the mission of fostering Cloud culture within the company.<\/p>\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<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-89e91ac elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"89e91ac\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-35e3e34\" data-id=\"35e3e34\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-06b68f7 elementor-widget elementor-widget-text-editor\" data-id=\"06b68f7\" 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><b>SOLUTIONS<\/b>, WE ARE EXPERTS<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-b22a490 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b22a490\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-b7f0c40\" data-id=\"b7f0c40\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-75e242e elementor-cta--skin-cover elementor-cta--valign-middle elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"75e242e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<a class=\"elementor-cta\" href=\"\/es\/soluciones\/data-strategy\/\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg lazyload\" style=\"background-image:inherit;\" role=\"img\" aria-label=\"strategy-opt\" data-bg-image=\"url(https:\/\/bluetab.org\/wp-content\/uploads\/2020\/10\/strategy-opt.jpg)\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-cta__content\">\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<h5 class=\"elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow\">\n\t\t\t\t\t\tDATA STRATEGY\t\t\t\t\t<\/h5>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-dab7c63\" data-id=\"dab7c63\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b68d143 elementor-cta--skin-cover elementor-cta--valign-middle elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"b68d143\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<a class=\"elementor-cta\" href=\"\/es\/soluciones\/data-fabric\/\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg lazyload\" style=\"background-image:inherit;\" role=\"img\" aria-label=\"fabric-opt\" data-bg-image=\"url(https:\/\/bluetab.org\/wp-content\/uploads\/2020\/10\/fabric-opt.jpg)\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-cta__content\">\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<h5 class=\"elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow\">\n\t\t\t\t\t\tDATA FABRIC\t\t\t\t\t<\/h5>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-2dd5ac8\" data-id=\"2dd5ac8\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d3578a9 elementor-cta--skin-cover elementor-cta--valign-middle elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"d3578a9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<a class=\"elementor-cta\" href=\"\/es\/soluciones\/augmented-analytics\/\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg lazyload\" style=\"background-image:inherit;\" role=\"img\" aria-label=\"AUGMENTED-ANALYTICS-opt\" data-bg-image=\"url(https:\/\/bluetab.org\/wp-content\/uploads\/2020\/10\/AUGMENTED-ANALYTICS-opt.jpg)\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-cta__content\">\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<h5 class=\"elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow\">\n\t\t\t\t\t\tAUGMENTED ANALYTICS\t\t\t\t\t<\/h5>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-b8fdc68\" data-id=\"b8fdc68\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3a00d8a elementor-widget elementor-widget-text-editor\" data-id=\"3a00d8a\" 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>You may be interested in<\/p>\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<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b98d665 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b98d665\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6f88005\" data-id=\"6f88005\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e572126 elementor-widget elementor-widget-spacer\" data-id=\"e572126\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/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<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Container vulnerability scanningwith Trivy \u00c1ngel Maroco AWS Cloud Architect Share on twitter Share on linkedin Within the framework of security in container, the build phase is of vital importance as\u00a0we\u00a0need to select the base image on which applications will run. Not having automatic mechanisms for vulnerability scanning can lead to production environments with insecure applications [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":17850,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"content-sidebar","footnotes":""},"categories":[19,668,633],"tags":[],"class_list":{"0":"post-6542","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-blog","8":"category-practices-en","9":"category-tech-en","10":"entry"},"uagb_featured_image_src":{"full":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/enlaces-linkedin-1.png",1200,600,false],"thumbnail":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/enlaces-linkedin-1-150x150.png",150,150,true],"medium":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/enlaces-linkedin-1-300x150.png",300,150,true],"medium_large":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/enlaces-linkedin-1-768x384.png",768,384,true],"large":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/enlaces-linkedin-1-1024x512.png",1024,512,true],"1536x1536":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/enlaces-linkedin-1.png",1200,600,false],"2048x2048":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/enlaces-linkedin-1.png",1200,600,false],"sidebar-featured":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/enlaces-linkedin-1-75x75.png",75,75,true],"genesis-singular-images":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/11\/enlaces-linkedin-1-702x526.png",702,526,true]},"uagb_author_info":{"display_name":"Bluetab","author_link":"https:\/\/bluetab.co.uk\/en\/author\/user\/"},"uagb_comment_info":0,"uagb_excerpt":"Container vulnerability scanningwith Trivy \u00c1ngel Maroco AWS Cloud Architect Share on twitter Share on linkedin Within the framework of security in container, the build phase is of vital importance as\u00a0we\u00a0need to select the base image on which applications will run. Not having automatic mechanisms for vulnerability scanning can lead to production environments with insecure applications&hellip;","_links":{"self":[{"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/posts\/6542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/comments?post=6542"}],"version-history":[{"count":38,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/posts\/6542\/revisions"}],"predecessor-version":[{"id":12361,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/posts\/6542\/revisions\/12361"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/media\/17850"}],"wp:attachment":[{"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/media?parent=6542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/categories?post=6542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/tags?post=6542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}