Scannen op Kubernetes-kwetsbaarheden met Kubescape

0
58
dennizn/Shutterstock.com

Kubescape is een nieuwe open-source tool van ARMO waarmee je Kubernetes-clusterscans kunt automatiseren om beveiligingsproblemen te identificeren. Kubescape controleert uw cluster op basis van de hardening-aanbevelingen die zijn gepubliceerd door de NSA en CISA.

Hier leest u hoe u Kubescape installeert en aan de slag gaat met het scannen van uw cluster. Regelmatige scans kunnen u helpen problemen op te lossen voordat ze door aanvallers worden gebruikt.

Kubescape downloaden

Kubescape wordt momenteel gedistribueerd als een vooraf gebouwd binair bestand voor Windows, macOS en Ubuntu. Je kunt het rechtstreeks downloaden van de GitHub-releasepagina van het project.

Er is ook een geautomatiseerd installatiescript dat je in je terminal kunt plakken. Hiermee wordt het juiste binaire bestand voor uw systeem opgehaald en aan uw pad toegevoegd.

curl -s https://raw.githubusercontent.com/armosec/kubescape/master/install.sh | /bin/bash

Probeer kubescape uit te voeren om te controleren of de installatie is voltooid. U ziet een samenvatting van de beschikbare opdrachten.

< h2 id="scanning-your-cluster">Uw cluster scannen

Kubernetes maakt verbinding met uw cluster met behulp van standaard Kubectl-configuratiebestanden. Stel de KUBECONFIG-omgevingsvariabele in uw shell in om te verwijzen naar het configuratiebestand voor het cluster dat u wilt scannen:

export KUBECONFIG=.kube/my-cluster.yaml Advertisement

Kubescape zal klagen dat het “niet gelukt is om Kubernetes config te laden” als deze variabele niet is ingesteld of als het opgegeven bestand ongeldig is. Werk de KUBECONFIG-variabele bij elke keer dat u Kubescape uitvoert als u meerdere clusters wilt scannen.

Scans worden gestart met de scanopdracht. U moet het verhardingskader aangeven waartegen u wilt scannen. Momenteel is nsa de enige ondersteunde optie.

kubescape scan framework nsa –exclude-namespaces kube-system,kube-public

Kubescape scant alle resources in uw cluster, behalve resources in naamruimten die zijn weggelaten door de vlag –exclude-namespaces. Het wordt aanbevolen om de ingebouwde Kubernetes-naamruimten hier te vermelden, aangezien u geen problemen kunt oplossen die worden gevonden.

Uw eerste Kubescape-scan kan enige tijd duren, omdat de tool zijn raamwerkdefinities moet downloaden. Deze definiëren de tests waarop uw cluster wordt gescoord. Zodra de scan is voltooid, ziet u gekleurde uitvoer in uw terminal met details over ontdekte problemen.

Scanresultaten

Elk mislukte test produceert zijn eigen uitvoergedeelte met een lijst van de verdachte bronnen, een beschrijving van het probleem en een herstelhint. Een tabel onder aan het rapport geeft een overzicht van alle uitgevoerde tests, het aantal resources dat is mislukt en het algehele succespercentage.

Advertentie

Kubescape controleert meer dan 20 mogelijke zwakke punten op basis van de door de NSA geïdentificeerde lijst. Het rapport van de NSA geeft een beschrijving van de behandelde problemen en de reden voor hun opname. Enkele van de belangrijkste problemen waarop Kubescape controleert, zijn onder meer:

  • Opties voor escalatie van bevoegdheden
  • Containers die in de bevoorrechte modus worden uitgevoerd
  • Containers die worden uitgevoerd met gevaarlijke mogelijkheden
  • Blootgesteld Kubernetes-dashboard
  • Containers die als root worden uitgevoerd
  • Inloggegevens in configuratiebestanden
  • Onjuist beveiligd besturingsvlak

Als u Kubescape uitvoert, kunt u de status van uw cluster controleren tegen de huidige richtlijnen voor best practices, waardoor u er zeker van bent dat u uw gegevens en werklasten niet in gevaar brengt.

Manifest-bestanden scannen

< p>Kubescape kan werken zonder een clusterverbinding. U kunt bronmanifesten scannen die zijn opgeslagen als lokale YAML-bestanden, zodat u hun beveiliging kunt controleren voordat u ze op uw cluster toepast. Voeg een extra argument toe na de naam van het framework om de bestanden op te geven die u wilt scannen:

kubescape scan framework nsa k8s/*.yaml

U kunt een URL gebruiken als het bestandspad om bestanden te scannen die op afstand zijn opgeslagen, zoals in een Git-repository.

Het is het beste om de standaard clusterscanmodus te gebruiken wanneer u een uitgebreide beveiligingsaudit uitvoert. Manifest-scans worden idealiter opgenomen in CI-pipelines. Op deze manier kunt u voorkomen dat u onbedoeld nieuwe kwetsbaarheden introduceert terwijl u uw bronnen bijwerkt en uitrolt naar uw cluster.

Offline scans

Kubescape is ontworpen voor online gebruik omdat het de raamwerkdefinities moet downloaden voordat het een scan kan voltooien. U kunt het framework echter handmatig opslaan om offline scans te vergemakkelijken. Probeer het bestand regelmatig bij te werken, zodat het niet verouderd raakt.

Download het NSA-frameworkbestand:

kubescape download framework nsa –output nsa.json

Scan nu je cluster met het gedownloade bestand:

kubescape scan framework nsa –use-from nsa.json Advertentie

De –use- from flag instrueert Kubescape om raamwerkdefinities uit het opgegeven bestand te laden. Er is ook –use-default dat zal proberen het lokaal in de cache opgeslagen bestand op de standaardlocatie te gebruiken wanneer het beschikbaar is. Kubescape valt terug op het downloaden van de nieuwste definities van de server wanneer er geen bestand wordt gevonden.

Uitvoerindelingen

Kubescape voert standaard uit naar uw terminal, maar kan ook rapporten produceren in JSON- of Junit-indeling. Voeg de vlag -f toe om de gewenste modus te specificeren:

kubescape scan framework nsa -f json kubescape scan framework nsa -f junit

De laatste optie zendt een XML-bestand uit dat kan worden gebruikt door testrapporttools die werken met het Junit-formaat. Hiermee kunt u Kubescape-scans in uw bestaande testrapportage-oplossingen invoeren voor visualisatie en aggregatie.

De uitvoer wordt verzonden naar de standaard uitvoerstroom van uw terminal, ongeacht het rapportformaat dat u opgeeft. Voeg de vlag -o toe om een ​​bestandspad op te geven om op te slaan naar:

kubescape scan framework nsa -f json -o report.json

Kubescape's gebruikelijke voortgangsberichten kunnen worden uitgeschakeld met de vlag -s. Dit is handig in CI-scenario's waarin u taaklogboeken niet wilt vervuilen met ASCII-tekens.

Conclusie

Kubescape laat u de veiligheid van uw Kubernetes clustert tegen de richtlijnen die zijn gepubliceerd door de NSA. De eenvoudige open-sourcetool biedt een enkele opdracht om uw omgeving te benchmarken met meer dan 20 sleutelcontroles.

Advertentie

Kubescape controleert niet op kwetsbaarheden in de containers die u in uw cluster uitvoert. Je hebt een ander hulpmiddel nodig, zoals docker-scan of Trivy om dat te doen. Als u naast Kubescape een containerscanengine gebruikt, krijgt u het meest complete beeld van de beveiligingsstatus van uw omgeving.