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.
Tartalomjegyzék
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.
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:
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.
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.