(CKS) Trivy, container imaj güvenlik açığı taramak
Trivy
: Kapsamlı ve çok yönlü bir güvenlik açığı tarayıcısıdır. Certified Kubernetes Security (CKS) sınavında v0.19
versionu kullanılıp sadece imaj güvenlik taraması
gerçekleştirmemiz yeterli.
Daha fazla yetenekleri için AquaSecurity Trivy resmi sitesini inceleyebilirsiniz.
Kurulum #
Öncelikle birden fazla kurulum çeşidi vardır. Sınavda işletim sistemi üzerine paket kurulu olarak geliyor. Biz de o seneryoyu gerçekleştireceğiz.
Ben Rocky Linux üzerinde kurulumlar yapacağım.
sudo rpm -ivh https://github.com/aquasecurity/trivy/releases/download/v0.19.2/trivy_0.19.2_Linux-64bit.rpm
Kurduğumuz versiyonu kontrol edelim.
trivy --version
#Output
Version: 0.19.2
Kullanım #
Öncelikle örnek deployment ‘ımızı çalıştıralım.
cat << EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
name: trivy-ornek-deployment
labels:
app: trivy
spec:
replicas: 1
selector:
matchLabels:
app: trivy
template:
metadata:
labels:
app: trivy
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
- name: ruby
image: ruby:2.4.0
- name: alpine
image: alpine:latest
EOF
Deployment ımızda kullanılan imajlara bir göz atalım.
kubectl describe deployments.apps trivy-ornek-deployment | grep -i image:
#Çıktı
Image: nginx:1.14.2
Image: ruby:2.4.0
Image: alpine:latest
Kullanılan imajların bütün güvenlik açıklarını taratmak için;
trivy image nginx:1.14.2
trivy image ruby:2.4.0
trivy image alpine:latest
Kullanılan imajların derecesine göre güvenlik açıklarını taratmak için;
# nginx:1.14.2 sürümünde HIGH seviyesindeki güvenlik açıklarını listeler
trivy image --severity HIGH nginx:1.14.2
# ruby:2.4.0 sürümünün HIGH ve CRITICAL güvenlik açıklarını listeler
trivy image --severity HIGH,CRITICAL ruby:2.4.0
# alpine:latest sürümünde sadece OS (işletim sistemine) ait açıkları listeler
trivy image --vuln-type os alpine:latest