Как да

Сканирайте изображенията на контейнера на Docker за уязвимости с Trivy

Сканирайте изображенията на контейнера на Docker за уязвимости с Trivy

Сигурността еволюира толкова често, че изглежда много страшно да се замисляме. Преди да пуснете приложения в производствена среда, трябва да има много сериозни съображения за сигурност и протоколи, които да ви помогнат да защитите активите си. Това е така, защото интернет е домакин на куп лоши момчета, които чакат да се впият в плътта на това, в което сте прекарали безсънни нощи и току-що сте разположени. В опит да допринесем за безопасността и сигурността на вашите контейнерирани приложения, днес ще се насочим към този път на сигурност. Всичко това е с надеждата да вдъхнете известна надежда и да предоставите инструменти, които могат да ви бъдат спътник в това пътуване. Днес представяме и разширяваме Trivy.

Trivy е прост и изчерпателен скенер за уязвимост за контейнери и други артефакти. Той помага да се открият уязвимости на пакетите с операционна система (Alpine, RHEL, CentOS и др.) и зависимости на приложенията (Bundler, Composer, npm, yarn и др.). Преди да преминете към регистър на контейнер или да разгърнете приложението си, можете лесно да сканирате изображението на местния контейнер и други артефакти, което ви дава увереност, че всичко е наред с приложението ви, без по-стресиращи конфигурации, които да използвате като другите скенери.

Характеристики на Trivy

Trivy в своята слава и спокойствие притежава следните характеристики, на които ще се насладите:

Как да Trivy Container Image Scanner

Trivy може да се инсталира в редица дистрибуции на Linux, както и на MacOS. Ще разгледаме инсталирането на Trivy на CentOS, Ubuntu, Debian, Arch и MacOS. И нека шоуто да започне.

Инсталиране на Trivy на CentOS

Тук имате две възможности, ако искате да инсталирате Trivy на вашата кутия CentOS. Можете да използвате хранилището на Trivy или да го инсталирате директно от неговия RPM източник. За да инсталирате от хранилище, добавете следното хранилище, след което продължете да инсталирате Trivy.

echo -e "\ n [trivy] \ nname = хранилище на Trivy \ nbaseurl = https: // aquasecurity.github.io / trivy-repo / rpm / releases / \ $ releasever / \ $ basearch / \ ngpgcheck = 0 \ nenabled = 1 "| sudo tee -a / etc / yum.репо сделки.г / кубернети.репо

След добавяне на хранилището Trivy, актуализирайте сървъра си и инсталирайте пакета trivy, както следва:

sudo yum -y актуализация sudo yum -y инсталиране trivy

За да инсталирате trivy от неговия RPM източник, ще трябва да получите най-новата версия на Trivy, след което изпълнете командите по-долу:

$ rpm -ivh https: // github.com / aquasecurity / trivy / releases / download / v0.12.0 / триви_0.12.0_Linux-64bit.об / мин

Инсталиране на Trivy на Debian | Ubuntu

Подобно на инсталирането на Trivy на CentOS, тук също имате две опции, които можете да използвате, за да го инсталирате на вашия Debian | Ubuntu
кутия. Можете да използвате хранилището на Trivy или да го инсталирате директно от неговия DEB източник. За да инсталирате от хранилището, добавете следното репо, след което продължете да инсталирате Trivy.

sudo apt-get инсталирайте wget apt-transport-https gnupg lsb-release wget -qO - https: // aquasecurity.github.io / trivy-repo / deb / public.ключ | sudo apt-key add - echo deb https: // aquasecurity.github.io / trivy-repo / deb $ (lsb_release -sc) main | sudo tee / etc / apt / sources.списък.г / триви.списък

След добавяне на хранилището Trivy, актуализирайте сървъра си и инсталирайте пакета trivy, както следва:

sudo apt-get update sudo apt-get install trivy

Като алтернатива, ако сте фен на deb source, можете да инсталирате Trivy, като използвате неговия DEB източник. За да инсталирате trivy по този начин, ще трябва да получите най-новата версия на Trivy, след което изпълнете командите по-долу: както следва:

sudo apt-get install rpm wget  sudo apt install ./.деб

Инсталиране на Trivy на Arch Linux | Manjaro

Е, за всички верни фенове на Arch, можете лесно да инсталирате Trivy на вашия компютър, като използвате помощници pikaur или yay AUR, както е показано по-долу.

pikaur -Sy trivy-bin

Или можете да използвате помощника на yay AUR също така:

yay -Sy trivy-bin

Инсталиране на Trivy на macOS

За потребителите на Mac не сте изоставени, можете да инсталирате този страхотен инструмент на вашия MacOS чрез Homebrew, като изпълните командата по-долу

варете инсталирайте aquasecurity / trivy / trivy

В действие - как да използвам

След като Trivy бъде инсталиран, ние сме готови да се потопим веднага в бизнеса. Има безброй случаи на употреба, които Trivy обхваща и ние ще разгледаме някои от тях в това ръководство.

Сканиране на файлова система

Trivy може да сканира файлова система (като хост машина, изображение на виртуална машина или разопакована файлова система на изображение на контейнер). По време на сканирането той ще търси уязвимости въз основа на заключващи файлове като Gemfile.ключалка и пакет-заключване.json. Синтаксисът изглежда така:

$ trivy fs / home / vagrant 2020-11-09T10: 35: 41.656Z WARN OS не се открива и уязвимости в пакетите на OS не се откриват. 2020-11-09T10: 35: 41.656Z INFO Откриване на рубинни уязвимости ... 2020-11-09T10: 35: 41.656Z INFO Откриване на уязвимости на nodejs ... octant / site / Gemfile.заключване ======================== Общо: 0 (НЕИЗВЕСТНО: 0, НИСКО: 0, СРЕДНО: 0, ВИСОКО: 0, КРИТИЧНО: 0) октант / web / package-lock.json ============================ Общо: 0 (НЕИЗВЕСТНО: 0, НИСКО: 0, СРЕДНО: 0, ВИСОКО: 0, КРИТИЧНО : 0)

Сканиране на вашето Git хранилище

За щастие можете да сканирате вашето отдалечено хранилище на git с този прост, но мощен инструмент. И трябва да се отбележи, че тук се поддържат само публични хранилища. Сканирайте вашето хранилище на Git, като използвате репо превключвателя, както следва:

$ trivy repo https: // github.com / aquasecurity / trivy 2020-11-09T07: 13: 25.265Z ИНФОРМАЦИЯ Трябва да актуализирате DB 2020-11-09T07: 13: 25.265Z INFO Изтегляне на DB ... 19.13 MiB / 19.13 MiB [----------------------------------------------- ------------] 100.00% 512.75 KiB p / s 38s Изброяване на обекти: 2338, готово. Преброяване на обекти: 100% (2338/2338), готово. Компресиране на обекти: 100% (1260/1260), готово. Общо 2338 (делта 1229), използвана повторно 1943 (делта 933), повторно използвана 0 2020-11-09T07: 40: 29.758Z WARN OS не се открива и уязвимости в пакетите на OS не се откриват.

Сканиране на изображение

След като разработите и консолидирате приложението си в изображение (Docker или нещо подобно), имате възможност да откриете всеки проблем със сигурността, който може да сте пропуснали. Просто посочете име на изображение и етикет заедно с командата на триви, както следва.

Избройте вашите изображения

$ docker images ИЗОБРАЖЕНИЕ НА ИЗОБРАЖЕНИЕ НА ИЗОБРАЖЕНИЕ НА СЪЗДАДЕН РАЗМЕР nginx последен c39a868aad02 преди 3 дни 133MB
$ trivy изображение nginx

Трябва да видите дълъг и подробен отчет за изхода на терминала. По-долу се споделя фрагмент.

Вградете Trivy в Dockerfile

Друга страхотна функция за този инструмент е, че можете да го включите във вашия Dockerfile и той ще сканира всичко, докато изгражда изображението. Ще използваме изображението на Nginx за демонстрация тук, както следва:

$ vim Dockerfile ОТ alpine: 3.7 RUN apk добави curl \ && curl -sfL https: // raw.githubuserсъдържание.com / aquasecurity / trivy / master / contrib / install.ш | sh -s - -b / usr / local / bin \ && trivy файлова система - изход-код 1 --no-progress /

След това изградете вашето изображение с изход, подобен на показания по-долу, докато се отпускате.

$ docker build -t сканирано изображение . Изпращане на контекст на компилация до демон на Docker 8.704 kB Стъпка 1/2: ОТ алпийски: 3.7 Опитвате се да изтеглите докера на хранилището.io / библиотека / алпийски ... 3.7: Издърпване от докер.io / library / alpine 5d20c808ce19: Издърпайте завършено Дайджест: sha256: 8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10 Състояние: Изтеглено по-ново изображение за докер.йо / алпийски: 3.7 ---> 6d1ef012b567 Стъпка 2/2: RUN apk добави curl && curl -sfL https: // raw.githubuserсъдържание.com / aquasecurity / trivy / master / contrib / install.ш | sh -s - -b / usr / local / bin && trivy файлова система --exit-код 1 --no-progress / ---> Изпълнява се в 445558539f6f извличане http: // dl-cdn.алпинелинукс.org / alpine / v3.7 / main / x86_64 / APKINDEX.катран.gz извличане http: // dl-cdn.алпинелинукс.org / alpine / v3.7 / community / x86_64 / APKINDEX.катран.gz (1/4) Инсталиране на ca-сертификати (20190108-r0) (2/4) Инсталиране на libssh2 (1.9.0-r1) (3/4) Инсталиране на libcurl (7.61.1-r3) (4/4) Инсталиране на къдрене (7.61.1-r3) Изпълнение на busybox-1.27.2-r11.задействане Изпълнение на ca-сертификати-20190108-r0.задейства ОК: 6 MiB в 17 пакета aquasecurity / trivy информация проверка на GitHub за най-новата версия на aquasecurity / trivy info намерена версия: 0.12.0 за v0.12.0 / Linux / 64bit aquasecurity / trivy info Installed / usr / local / bin / trivy 2020-11-09T10: 13: 02.597Z INFO Необходимо е да актуализирате DB 2020-11-09T10: 13: 02.597Z INFO Изтегляне на DB ... 2020-11-09T10: 13: 27.545Z INFO Откриване на алпийски уязвимости ... 2020-11-09T10: 13: 27.547Z ПРЕДУПРЕЖДЕНИЕ Тази версия на операционната система вече не се поддържа от дистрибуцията: alpine 3.7.3 2020-11-09T10: 13: 27.547Z ПРЕДУПРЕЖДЕНИЕ Разкриването на уязвимост може да е недостатъчно, тъй като не се предоставят актуализации на защитата 445558539f6f (alpine 3.7.3) =========================== Общо: 2 (НЕИЗВЕСТНО: 0, НИСКО: 0, СРЕДНО: 0, ВИСОКО: 0, КРИТИЧНО : 2) + ------------ + ------------------ + ---------- + --- ---------------- + --------------- + ----------------- --------------- + | БИБЛИОТЕКА | ИДЕНТИФИКАЦИЯ НА УЯЗВИМОСТ | СЕВЕРИТЕТ | ИНСТАЛИРАНА ВЕРСИЯ | ФИКСИРАНА ВЕРСИЯ | ЗАГЛАВИЕ | + ------------ + ------------------ + ---------- + ------ ------------- + --------------- + -------------------- ------------ + | musl | CVE-2019-14697 | КРИТИЧЕН | 1.1.18-r3 | 1.1.18-r4 | musl libc до 1.1.23 | | | | | | | има x87 с плаваща запетая | | | | | | | дисбаланс за настройка на стека, | | | | | | | свързани ... | + ------------ + + + + + + | musl-utils | | | | | | | | | | | | | | | | | | | | | | | | | | | +------------+------------------+----------+-------------------+---------------+--------------------------------+

Филтрирайте уязвимостите по сериозност

В случай, че имате специални нужди и искате генерираният отчет да бъде филтриран, така че да можете да видите ВИСОКО, КРИТИЧНО и подобни полета, тогава Trivy ще го направи вместо вас от полето. Просто изпълнете команда, подобна на следната:

$ trivy image --severity HIGH, CRITICAL nginx: последен

Сканирайте проекта си със заключващ файл

Ако имате проект на Python, има голяма вероятност в него да има заключващ файл. Следователно можете да сканирате такъв проект с trivy, както следва:

$ trivy fs ~ / src / github.com / aquasecurity / trivy-ci-test

Сканиране на контейнер от него

За да добавите още повече захар към сладкия вкус, на който се наслаждаваме, струва си да споменем, че Trivy може да сканира вашия работещ контейнер от вътрешността. Никога не изпада в изненади. Ето как това може да се постигне и имайте предвид, че не се нуждаете от Trivy, инсталиран на хост машината.

$ docker run --rm -it nginx \ && curl -sfL https: // raw.githubuserсъдържание.com / aquasecurity / trivy / master / contrib / install.ш | sh -s - -b / usr / local / bin \ && trivy fs /

Обелили сме само някои листа от лука на Trivy и остава много повече, за да можете да надраскате и проучите. За повече информация относно този страхотен спътник в сигурността, проверете официалната му страница в GitHub и ще си тръгнете с усмивка.

Заключителни мисли

Чудим се само когато обмисляме какво иновациите и технологиите продължават да правят в нашите сфери на живота. Въпреки че може да има повече възможности и място за хакери да потапят краката си, има воини, които правят всичко по силите си, за да овластят уязвимите. Trivy е един такъв героичен инструмент и се надяваме, че максималната подкрепа ще бъде предоставена на разработчиците. В противен случай се радваме, че посетихте и се надяваме ръководството да е било толкова полезно, колкото се надявахме. Благодарим ви за подкрепата и имайте най-доброто, тъй като тази предизвикателна година приключва. Можете да разгледате други ръководства и статии, споделени по-долу:

Инсталирайте актуализации на защитата / кръпки само на CentOS 8

Сигурност на данните и поверителност онлайн: Защо геймърите са перфектните цели

Удостоверете потребителите на таблото за управление на Kubernetes с Active Directory

Няколко компании притежават множество VPN услуги
Не прекарвайте твърде дълго в опити да решите с коя VPN услуга да се свържете. Толкова много от тях са собственост на друга по-голяма услуга като част...
Предстоящите промени в Google Chrome могат да убият блокиращите реклами
Това не е такъв разговор, от който Google наистина се нуждае. Вече е добре спечелен таг за тях, че те се грижат повече за продажбата, отколкото за доб...
Android Q може да направи заключването на мрежата по-ограничително
Напоследък следите ли Android Q? Това е предварителното име на десетата версия на Android, която все още се разработва, преди да бъде пусната правилно...