‫W porządku.
‫Następny, skanowanie repozytorium kodu.
‫To nie jest nawet specyficzne dla Dockera,
‫ale istnieją narzędzia i Sneak jest jednym z
‫nich. Sneak, skanuje
‫twoje zależności kodu wewnątrz repozytoriów.
‫Jeśli masz oprogramowanie typu open source, jeśli tworzysz oprogramowanie typu open
‫source, zrobią wiele z tych rzeczy za darmo.
‫Będą skanować twoje repozytorium GitHub, twoje repozytorium
‫Bitbucket i sprawdzą zależności.
‫Co tydzień otrzymuję od nich raporty na temat moich repozytoriów open
‫source i wszelkich wykrytych luk.
‫W dzisiejszych czasach GitHub robi to samo za
‫darmo. Sneak był
‫już dłużej i robił to dłużej, więc w pewnym
‫sensie mam jedno i drugie. Mam GitHub wysyłający mi e-maile
‫i mam Sneak. Możesz zapłacić Sneak za skanowanie rzeczy.
‫Mają też więcej funkcji, w których robią również zdjęcia i inne
‫rzeczy, nie tylko repozytorium kodu.
‫Ale to jedna linia to skanowanie repozytoriów na
‫wczesnym etapie procesu.
‫Nie czekaj, aż zbudujesz obrazy, a potem
‫będziesz mieć rzeczy w CI, wiesz, podczas testowania, gdzie
‫skanujesz. Skanuj jak najwcześniej.
‫Jest to rodzaj jednego z podstawowych założeń czegoś
‫o nazwie bezpieczeństwo ShiftLeft.
‫Jeśli wyobrażasz sobie tablicę Kanban, w której cała twoja praca
‫znajduje się po lewej, a wyniki
‫po prawej, ruch bezpieczeństwa ShiftLeft, jeśli po prostu szukasz
‫bezpieczeństwa ShiftLeft, polega na przesunięciu odpowiedzialności za bezpieczeństwo
‫wcześniej i wcześniej przepływ
‫pracy programistycznej.
‫Jednym ze sposobów jest zautomatyzowanie tych skanerów, aby skanowały
‫zależności kodu w repozytoriach git, zanim jeszcze
‫przejdziesz do etapu uruchamiania rzeczy na
‫serwerach. Zrobiłbym to.
‫Nie specjalnie sprawa Dockera, ale zrobiłbym to.
‫Następnym krokiem jest samo skanowanie obrazu, które jest
‫bardzo podobne do tego. Ale tutaj mamy więcej funkcji.
‫Nie tylko skanujemy twoje zależności kodu.
‫Możemy zeskanować sam pojemnik.
‫Obraz, prawda. Możemy skanować
‫wszystkie zależności, które nie są tak
‫jak twoje pakiety npm lub twoje,
‫wiesz, pakiety Python. Teraz skanujesz pakiety
‫YUM i APK, apt, lub tego rodzaju
‫menedżerów pakietów dla systemu operacyjnego.
‫To mam na myśli skaner obrazów, ponieważ może skanować
‫zarówno te, jak i twoje zależności kodu.
‫Jest tutaj wiele narzędzi.
‫Bardzo popularny zestaw jest już jakiś czas, ale pojawiło
‫się kilka nowych, o których chcę z
‫tobą porozmawiać.
‫Pierwszy z nich to Trivy, o którym dowiedziałem się w tym
‫miesiącu, a właściwie w październiku.
‫Trivy jest zbudowany przez Aqua Security, która jest tą samą firmą,
‫która tworzy MicroScanner.
‫MicroScanner był jednym z narzędzi,
‫a także wieloma innymi, a także innym popularnym.
‫Są to wszystkie narzędzia typu open source, które skanują twój obraz
‫w poszukiwaniu luk CVE.
‫CVE to baza danych wszystkich luk w zabezpieczeniach dawców oprogramowania
‫typu open source, o których wszyscy słyszymy w wiadomościach.
‫Pochodzi z Mitre, firmy zarządzającej tą bazą danych.
‫To jest sprawa społeczności, prawda.
‫Za każdym razem, gdy ktoś znajdzie lukę w zabezpieczeniach oprogramowania, umieszcza
‫ją i otrzymuje numer CVE.
‫To powszechna luka i exploity, coś w
‫tym rodzaju.
‫Nie pamiętam dokładnie, co oznacza CVE.
‫Jestem pewien, że jeden z was powie mi na czacie.
‫Ale CVE dostaje numer, prawda.
‫Widzimy numer przypisany do tego znanego
‫błędu w społeczności. Skaner CVE skanuje obrazy w poszukiwaniu
‫tej luki.
‫Po ich wdrożeniu pojawiają się
‫różnego rodzaju drobiazgi, na przykład czy skaner, który
‫musisz uruchomić na obrazie Dockera podczas kompilacji?
‫Czy skanuje już zbudowany obraz?
‫Czy ten skaner obsługuje
‫twoją podstawową dystrybucję? Czy obsługuje Red Hat?
‫Czy obsługuje Alpine?
‫Jakieś inne obrazy dystrybucyjne, które wybrałeś do użycia,
‫czy będzie to wspierać?
‫Czy obsługuje również menedżera pakietów dla aplikacji, np.
‫Npm lub
‫pip, czy też jednego z kilkudziesięciu innych
‫menedżerów pakietów, właśnie. Czy to również obsługuje te?
‫MicroScanner nie
‫zrobił tego wszystkiego. Zrobił część tego, ale
‫podobnie jak wiele innych narzędzi w ekosystemie, nie zrobili tego wszystkiego.
‫W tej chwili, ta od Aqua Security o nazwie
‫Trivy, dostań
‫się na szczyt tej rzeczy.
‫Trivy twierdzi, że jest
‫to najbardziej kompletny darmowy skaner open source.
‫Tutaj na dole zobaczysz, co oni obsługują.
‫Zauważysz, że obsługują wszystkie te obrazy oparte.
‫Następnie, jeśli faktycznie zejdziesz na dół, pojawi się porównanie
‫pokazujące je w porównaniu ze wszystkimi innymi narzędziami,
‫a przynajmniej popularnymi wersjami tych narzędzi typu
‫open source. Jest zdecydowanie więcej narzędzi niż to.
‫Musisz tutaj dokonać wielu wyborów.
‫Jednym wyborem jest to, gdzie chcę skanować?
‫Czy chcę, aby moje repozytorium obrazów samodzielnie je skanowało, podobnie
‫jak DTRer Enterprise DTR?
‫Tam, gdzie masz rejestr, w którym przechowywane są twoje
‫obrazy, i ten rejestr uruchamia skanowanie obrazów w samym rejestrze
‫- wszystko za jednym razem.
‫Quay też to robi. Quay to
‫repozytorium obrazów hostujące w chmurze, które również skanuje.
‫Każdy z tych skanerów nie zawsze skanuje wszystkie typy obrazów
‫i wszystkie zależności aplikacji.
‫Jest więc całkiem fajnie, że pokazują ... w zasadzie X
‫oznacza, że tego nie robią.
‫0 lub O, koło, oznacza, że to
‫robią. Potem
‫myślę, że podwójne OO oznacza
‫tutaj najlepsze, a trójkąt oznacza, że są
‫problemy, są obawy.
‫Więc twierdzą, że to Trivy, które kupili w tym
‫roku.
‫Trivy to wszystko. Robi pakiety OS, zależności aplikacji.
‫Twierdzą, że jest łatwy w użyciu.
‫Twierdzą, że jest dokładniejszy. Jeśli zaczniesz czytać
‫o tym, zdasz sobie sprawę, że jednym z głównych problemów,
‫o których mówię, jest to, że podstawowy obraz Alpine nie działa
‫z prawie wszystkimi tymi skanerami.
‫Po prostu nie ma poprawnie połączonej bazy danych
‫podatności, więc po uruchomieniu tych skanerów
‫wykrywa luki w Alpine.
‫Trivy twierdzi, że naprawili to za
‫pomocą nowej metody, którą wdrażają, a my zobaczymy, czy
‫inni też to zaimplementują.
‫Twierdzą, że są najbardziej kompletne.
‫Wielu moich przyjaciół Kapitanów Dokerów mówi, że używają go i
‫używają go świetnie.
‫Jedną z innych decyzji oprócz skanera jest to, gdzie
‫będziesz skanować?
‫Lubię skanować podczas kompilacji obrazu.
‫Wolę skanować podczas automatycznej kompilacji
‫obrazu CI niż skanować go później po zbudowaniu obrazu.
‫To tylko ja.
‫Możesz nawet mieć różne systemy, które skanują
‫w różnych momentach, po prostu dla
‫bezpieczeństwa, właśnie dla pewności. Mogą istnieć systemy skanujące na
‫serwerach działających w środowisku produkcyjnym, w zależności
‫od środowiska. To nie jest bardzo powszechne.
‫Ale jeśli jesteś w bardzo bezpiecznym środowisku, w którym
‫chcesz skanować rzeczy działające na żywo, z pewnością możesz to zrobić za pomocą
‫niektórych z tych narzędzi.
‫Demo, które często prezentuję, dotyczy
‫MicroScannera. Zasadniczo wszystko, co
‫musisz zrobić w MicroScanner, a także w tym
‫innym narzędziu, to MicroScanner, możesz go dodać do pliku Docker.
‫Wierzę, że aplikacja Tivey skanuje po
‫zbudowaniu obrazu.
‫Jeśli jesteś super paranoikiem, możesz po prostu
‫użyć MicroScannera wewnątrz obrazu Dockera.
‫Wiesz, możesz uruchomić coś takiego jak Tivey po
‫fakcie na obrazach, zanim zostaną one
‫wysłane do rejestru. Zawsze możesz je pobrać później, ale
‫lubię wiedzieć, że mój obraz nie zawiera luk w zabezpieczeniach,
‫zanim go wyślę.
‫To właśnie możesz zrobić. Teraz.
‫Chcę ci tylko powiedzieć ostrzeżenie.
‫Prawdopodobnie nie będziesz mieć ... prawdopodobnie nie
‫będziesz mieć żadnych obrazów, a może tylko
‫kilku obrazów, które nie mają żadnych
‫luk w zabezpieczeniach. Wynika to tylko
‫z natury otwartego oprogramowania. Zazwyczaj, jeśli skanujesz dowolny obraz,
‫zwykle, jeśli skanujesz dowolny obraz, będzie on
‫miał luki.
‫Twoim zadaniem jest współpracować z zespołem ds. Bezpieczeństwa
‫nad tym, co jest dopuszczalne, ale nie możemy nigdy mieć luk.
‫Ponieważ niektóre luki mogą nawet nie dotyczyć Ciebie.
‫To, że są na twoim obrazie, nie oznacza, że
‫automatycznie będą stanowić problem, prawda.
‫Będziesz musiał
‫popracować. Myślę, że sugeruję teraz ich
‫wdrożenie, ale wyłączę
‫rodzaj awarii i powiedz kontynuuj tutaj, co
‫oznacza, że wszystko, co zamierzam zrobić, to ostrzec cię,
‫że istnieją luki w zabezpieczeniach. Nie zamierzam zatrzymywać kompilacji tylko
‫dlatego, że istnieje luka.
‫Jest to kluczowe, ponieważ jeśli zaczniesz
‫wdrażać wszystkie te narzędzia automatycznie, proces się nie powiedzie.
‫Nie powiodą się twoje CI lub zawiodą twoje kompilacje,
‫jeśli tylko je włączysz. Chcesz się upewnić,
‫że masz je w trybie tylko do audytu, w którym nie udaje
‫im się znaleźć luki w zabezpieczeniach.
‫W ten sposób możesz przynajmniej dowiedzieć się, jakie
‫są luki w zabezpieczeniach, zanim zaczniesz, zanim zaczniesz
‫hardcore, prawda? Zanim przejdziesz hardcore.