A Docker Images sebezhetőségeinek legegyszerűbb módja a Snyk használatával

A Snyk egy szerkesztő, amely az infrastruktúra-konfigurációs fájlok kódjában található biztonsági rések elemzésére szakosodott, beleértve a tárolókban és alkalmazáscsomagokban lévőket is.

Snyk először felhőplatformot kínál, de különféle termékeket kínál.

A Snyk OpenSource a szerkesztő CLI-jén keresztül integrálódik egy Git-folyamatba. Az indítást követően a szoftver észleli a sebezhetőségeket, érzékenységi fok szerint osztályozza azokat, és automatikusan kijavítja az ismert biztonsági hibákat. Ez a funkció beépíthető a lekérési ciklusba, hogy a lerakatoknak küldött kódokra vonatkozzon.

A Snyk Infrastructure as Code viszont elemzi a biztonsági réseket, és kijavítja azokat a JSON és a YAML Kubernetes konfigurációs fájljaiban. Itt egy szabálymotor lehetővé teszi a Git-lerakatokon belüli észlelések érzékenységének konfigurálását a rendszergazdák által meghatározott paraméterek szerint.

A Snyk Container lehetővé teszi a docker-képek és a kapcsolódó nyilvántartások tesztelését a létrehozásukkor és azt követően. A program integrálható CLI-kbe, SCM-ekbe, CI-eszközökbe, konténer-nyilvántartásokba és Kubernetes-be.

Ma meglátjuk, hogyan használhatjuk a Dockerbe beépített Snyk Containert a sebezhetőségek észlelésére.

Minta docker fájl

Az első dolog, amire szüksége van a Snyk használatával a sebezhetőségek észleléséhez, egy dokkolókép. Ebben a példában a következő docker-képet fogjuk használni:

FROM python:3.4-alpine
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
EXPOSE 8000 CMD
[“python”, “app.py”]

Az első dolog, amit meg kell tennünk, hogy helyileg generáljuk a képet a következő paranccsal:

docker build -t 0xyz0/python-app.

Most van egy kép, amit elemezhetünk.

  Hogyan lehet eltávolítani egy inaktív játékos tartózkodási helyét az „Animal Crossing: New Horizons” programban

Szkennelje be a képet a Docker kliensből

A Snyk szolgáltatás Dockerrel való integrációja ezt a folyamatot hihetetlenül egyszerűvé teszi. A vizsgálat elindításához csak a következőket kell végrehajtania:

docker scan 0***0/python-app

Ez az elemzéssel kezdődik, ahol többé-kevésbé kiterjedt kimenetet ad vissza, a talált sebezhetőségtől függően, és egy végső összefoglalóval:

A Docker szkennelés megmutatja a kép összes sebezhetőségét

Amint látja, nemcsak azt mutatja meg, hogy hány sebezhetőséget talált. Még ha felfelé görget is, láthatja, hogy mik ezek és milyen kritikusak, de ajánlásokat is tesz a használandó alapképre vonatkozóan.

A sérülékenység részleteit a Snyk sebezhetőségi adatbázis.

Az én esetemben több alternatívát kínál, ezért az első opcióval módosítom a Dockerfile-omat:

FROM python:3.7.11-slim

ADD . /code

WORKDIR /code

RUN pip install -r requirements.txt

EXPOSE 8000

CMD ["python", "app.py"]

Ha újraépítem a képet és beszkennelem:

docker build -t 0***0/python-app . && docker scan 0***0/python-app

Látni fogja, hogy a kimenet kevesebb sebezhetőséget mutat, és ebben az esetben azt jelzi, hogy jelenleg a biztonságosabb alapképet használja:

  Új funkciók a Firefox 41-ben asztali számítógépre és Androidra

A Docker-ellenőrzés biztosítja, hogy a legbiztonságosabb alapképet használja

Részletesebb jelentést is kaphat, ha hozzáadja a parancshoz a képet létrehozó docker-fájlt:

docker scan -f Dockerfile 0***0/python-app

És még az alapképet is kizárja az elemzésből, arra az esetre, ha arra szeretne összpontosítani, amit rosszul csinált:

docker scan -f Dockerfile --exclude-base 0***0/python-app

Ez a szolgáltatás a Docker Hub adattáraival is integrálható:

Ehhez azonban rendelkeznie kell valamelyik fizetős előfizetéssel. Mindazonáltal elindíthatja helyben, azzal az ingyenes csomaggal, amely csak a Docker Hubba való bejelentkezéshez szükséges (egyértelmű szkennelési korlátokkal rendelkezik), miközben fejleszti vagy szeretné ellenőrizni, mennyire biztonságos egy harmadik féltől származó kép, amelyet szeretne. használat.

A Snyk használata a Github-műveletekkel

Az első dolog, hogy hozzon létre egy tárolót, és hozzon létre egy mappát.

.github / worflows /

Ezután a Snyk Container használatához a Githubban új kép létrehozása, vagy a Docker Hubban létrehozott kép elkészítése. A Snyk használatához létre kell hoznia egy új titkot SNYK_TOKEN néven, a token megszerzéséhez pedig létre kell hoznia egy fiókot a Snyk-nál. Az Általános beállításokban, ahol az API Token felirat szerepel, gyorsan előállíthatja.

  Készítse el a tökéletes üzleti tervet ezzel a 9 eszközzel

A token segítségével létrehozhatja a titkot a Githubon, és felhasználhatja a műveletben. Most át kell adnia a Docker Hubban létrehozott tárhely nevét. Ezután át kell adnia az üzenetet, amelyet el kell küldenie. Hozzáférhet a lépések kimeneteihez, amelyeket változóként használhat az üzenetben.

with:
args: 'A new commit has been pushed. Please verify github action:
| worflow $ {{fromJson (steps.repo.outputs.result) .html_url}} / actions
| Exec: $ {{steps.prep.outputs.created}}
| Version: $ {{steps.prep.outputs.version}} '

Hogyan futtatható a teljes munkafolyamat? Egyszerű, csak a Mester megnyomásával. A Github Action észleli a .github / workflows / fájlban található fájlt.

Utolsó szavak 👈

A konténerek népszerűségének növekedésével egyre gyakoribbak a biztonsági incidensek, amelyek többsége a konténerek telepítésének hibás konfigurációjára vezethető vissza. A Snyk hatékony és egyszerű eszközt biztosít, amellyel elkerülhetjük a hibás konfigurációs hibákat, és észlelhetjük a docker képek leggyakoribb sérülékenységeit.