Hook'lar

infra hook'u: IaC yapılandırma hatalarını tespit edin

Terraform, Dockerfile ve GitHub Actions dosyalarını yapılandırma hatalarına karşı tarayın ya da tek bir kod parçasını doğrudan komut satırından puanlayın.

infra hook'u, dosyanın kendisinden anlaşılabilen kod olarak altyapı (IaC) yapılandırma hatalarını işaretler: tüm dünyaya açık bir ağ, wildcard içeren bir izin, bir manifestteki gizli bilgi, root olarak çalışan bir konteyner, bir CI kabuğundaki güvenilmeyen bir değer. Yalnızca IaC dosyalarını okur (.tf/.tf.json/.hcl, Dockerfile*, .github/workflows/**). infra uzmanlığının arkasındaki deterministik motordur ve scan veya check modunda çalışır.

Çalıştırma​

npx lagune read infra # scans every IaC file
npx lagune read infra --dir infra # scans a directory
npx lagune read infra --file Dockerfile # scans a single file

Tarama en fazla iki bölüm yazdırır. Infrastructure risks found sıfırdan farklı bir kodla çıkar ve kesin olarak belirlenebilen kusurları içerir (hassas bir porta 0.0.0.0/0 gelen trafiği, wildcard içeren bir IAM ifadesi, bir manifestteki gizli bilgi, encrypted = false, sabitlenmemiş bir git modülü, açıkça root olarak çalışan bir imaj, bir curl | sh, bir CI betiği enjeksiyonu, permissions: write-all). Infrastructure hardening advisories çıkış kodunu değiştirmez (değişebilir bir temel etiket, etikete sabitlenmiş bir action). Temiz bir çalıştırma no infrastructure risks found çıktısını verir.

Kararı nasıl okumalı​

check modu, eşleştiği en yüksek önem derecesine sahip etiketi (örneğin public-ingress, iam-wildcard, root-user, curl-pipe, script-injection, write-all), bir öneri etiketini (mutable-tag, unpinned-action) ya da safe yazdırır. Yalnızca bulgu düzeyindeki bir etiket sıfırdan farklı bir kodla çıkar.

CLI seçenekleri​

SeçenekDeğerAçıklama
--patternbir kod parçasıTek bir kod parçasını kontrol eder. --kind gerektirir. Birkaçı için tekrarlayın.
--kindterraform | dockerfile | github-actionsKod parçasının hangi tür olarak değerlendirileceği.
--dirbir dizinTaramayı bir dizinle sınırlar. Tekrarlanabilir ve --file ile birleştirilebilir.
--filebir dosyaTaramayı tek bir dosyayla sınırlar. Tekrarlanabilir ve --dir ile birleştirilebilir.

Seçenek verilmezse projedeki her IaC dosyası taranır. --pattern, --dir ya da --file ile birleştirilemez.

ipucu

Hook bariz ve kesin olarak belirlenebilen durumları yakalar: şifrelemenin eksikliği, pull_request_target kaynaklı açıklık ve doğru IAM kapsamı, değerlendirme gerektiren konulardır ve onları infra uzmanlığı kapsamaya devam eder.

Sıkça sorulan sorular

Terraform ve HCL (.tf, .tf.json, .hcl), Dockerfile'lar ve .github/ altındaki GitHub Actions iş akışı ile action YAML dosyaları. Kaynak kod tarayıcıları bu dosyaları atlasa da hook onlara ulaşır.