DevSecOps Danışmanlığı
DevSecOps, güvenlik kontrollerinin yazılım teslimat hattının ve operasyonun olağan bir parçası olarak, mümkün olduğunca otomatik yürütülmesidir. Kod, bağımlılık ve konteyner taramalarını, sır (parola, API anahtarı, sertifika gibi gizli erişim bilgileri) yönetimini ve bulut yapılandırma denetimlerini teslimat sürecinize yerleştiriyor; bulguların geliştirme sırasında görülmesini ve takip edilmesini sağlıyoruz.
- Odak
- Pipeline güvenliği, yazılım tedarik zinciri, konteyner ve IaC, sır yönetimi, bulut yapılandırması
- Ortamlar
- Genel bulut, yerel bulut sağlayıcıları, veri merkezi, hibrit
- Gözetilen çerçeveler
- OWASP SAMM, NIST SSDF, SLSA, CIS
- İlk adım
- Ücretsiz ön görüşme ya da güvenlik odaklı ücretsiz değerlendirme
DevSecOps hangi durumlarda gündeme gelir?
Güvenlik bulgusu ne kadar erken görülürse düzeltilmesi o kadar kolaydır. Bu yüzden kontrolleri geliştirme sürecinin başına ve içine yaklaştırırız.
- Güvenlik testleri yayın öncesinde toplu yapılıyor. Bulguların daha erken ve parça parça görülmesi, yayın takvimini korumayı kolaylaştırır.
- Parolalar ve anahtarlar farklı yerlerde tutuluyor. Parola ve erişim anahtarlarının merkezi bir kasada yönetilmesi, erişimlerin izlenmesi ve düzenli yenilenmesi gerekiyor.
- Yeni bir açık duyurulduğunda etki analizi zaman alıyor. Hangi uygulamada hangi bileşen sürümünün çalıştığını gösteren güncel bir envanter (SBOM) bu süreyi kısaltır.
- Bulut hesapları zamanla büyüdü. Yetkilerin, ağ kurallarının ve kayıt tutma ayarlarının bir standarda göre gözden geçirilmesi gerekiyor.
- Denetim ve müşteri soruları için kanıt hazırlamak zaman alıyor. Kontrollerin otomatik çalışması ve sonuçlarının saklanması, kanıtın günlük işin yan ürünü olmasını sağlar.
- Kurumsal müşteriler yazılımınızın içeriğini soruyor. Kullanılan açık kaynak bileşenlerin listesini ve güvenlik durumunu belgeleyebilmek giderek daha sık bekleniyor.
DevSecOps kapsamında neler yapıyoruz?
Geliştirmeden operasyona, güvenlik kontrollerini otomatik ve ölçülebilir hale getiren başlıklar.
Teslimat hattı (pipeline) güvenliği
Statik kod analizi (SAST) ve bağımlılık taraması (SCA) her değişiklikte, dinamik testler (DAST) zamanlanmış; bulgular geliştiricinin araçlarında.
Konteyner ve IaC güvenliği
İmajların taranması, imzalanması ve dağıtımda imzanın doğrulanması; Terraform ve Kubernetes ayarlarındaki hataların yayından önce tespiti.
Sır ve erişim yönetimi
Parola ve anahtarların merkezi kasaya taşınması, düzenli ve otomatik yenilenmesi, en az yetki ilkesine göre erişim tasarımı.
Bulut güvenlik yapılandırması
Hesap ve ağ mimarisinin gözden geçirilmesi, CIS kıyaslamalarına göre sıkılaştırma ve sürekli yapılandırma denetimi.
Yazılım tedarik zinciri güvenliği
Her sürüm için bileşen envanteri (SBOM), imzalı sürümler ve derlemenin nerede, nasıl yapıldığını gösteren kayıtlar (provenance); SLSA çerçevesi esas alınır.
İzleme ve olay müdahalesi
Güvenlik loglarının toplanması, anlamlı alarmlar ve çalışma zamanı izleme; olay müdahale adımlarının işletim kılavuzu (runbook) olarak yazılması.
Önce yüksek riskler, sonra otomasyon.
Önce en yüksek riskli noktaları ele alır, ardından kontrolleri otomatikleştirip ekibinizin günlük işine yerleştiririz. Hangi bulgunun yayını durduracağını sizinle birlikte belirleriz.
Neyi gözetiyoruz?
Kontrolleri tanınmış çerçevelere eşleyerek tasarlarız:
- OWASP SAMM olgunluk modeli
- NIST SSDF (SP 800-218) güvenli geliştirme çerçevesi
- SLSA yazılım tedarik zinciri seviyeleri
- OWASP Top 10 ve ASVS
- CIS Benchmark sıkılaştırma kılavuzları
Risk ve mevcut durum analizi
Teslimat hattını, bulut hesaplarını, erişimleri ve mevcut güvenlik araçlarını inceleriz.
Çıktı: Önceliklendirilmiş risk listesi ve mevcut bulguların başlangıç kaydıÖncelikli düzeltmeler
Açıkta kalan sırlar, gereğinden geniş yetkiler ve internete açık kaynaklar gibi yüksek öncelikli bulguları ele alırız.
Çıktı: Öncelikli bulguların düzeltme ve doğrulama durumuKontrollerin hatta yerleştirilmesi
Taramaları, politikaları ve kalite kapılarını pipeline'lara ekler, gereksiz alarmları ayıklarız.
Çıktı: Otomatik güvenlik kontrolleriİzleme ve müdahale
Güvenlik loglarını, alarmları ve olay müdahale adımlarını devreye alırız.
Çıktı: Alarm kuralları, runbook'larSürekli iyileştirme
Bulguları düzenli raporlar, eğilimleri izler, ekibinize güvenli geliştirme eğitimi veririz.
Çıktı: Raporlar ve eğitimlerDevSecOps çalışmasının sonunda elinizde olanlar.
Kontroller sizin teslimat hattınızda çalışır; kanıtlar ve süreçler belgelenmiş olarak elinizde olur.
Risk ve bulgu raporu
Önceliklendirilmiş bulgular, olası etkileri, sorumluları ve önerilen çözüm adımları.
Güvenli pipeline şablonları
Tarama, kalite kapısı, SBOM ve imzalama adımlarını içeren yeniden kullanılabilir şablonlar.
Sır yönetimi yapısı
Kasa yapılandırması, erişim politikaları ve anahtar yenileme prosedürleri.
Politika setleri
Kubernetes ve IaC için kod olarak tanımlı güvenlik politikaları.
Olay müdahale runbook'ları
Adım adım müdahale, iletişim ve geri dönüş prosedürleri.
Güvenli geliştirme eğitimi
Geliştirici ve operasyon ekiplerine uygulamalı oturumlar.
Araçtan önce süreç.
Mevcut araçlarınızı değerlendirir, eksik kalan yerleri açık kaynak ya da kurumsal seçeneklerle tamamlarız.
Uygulama güvenliği testi
- SonarQube
- Semgrep
- CodeQL
- ZAP
- Snyk
- GitLab Security
Bağımlılık ve SBOM
- OWASP Dependency-Check
- Dependency-Track
- Syft
- Grype
Konteyner, IaC ve imzalama
- Trivy
- Cosign
- Checkov
- Kyverno
- OPA Gatekeeper
Sır yönetimi ve sızıntı taraması
- HashiCorp Vault
- AWS Secrets Manager
- Azure Key Vault
- External Secrets
- Gitleaks
- TruffleHog
İzleme ve tespit
- Falco
- Wazuh
- Elastic Security
- Microsoft Sentinel
- OpenSearch
Ölçeğinize göre güvenli teslimata başlangıç.
KOBİ'ler ve küçük yazılım ekipleri
Sır yönetimi, bağımlılık taraması ve temel bulut sıkılaştırmasıyla başlanır; az araçla yüksek etki hedeflenir.
Kurumsal müşteriye satan ekipler
SBOM, imzalı sürümler ve kanıt üreten pipeline'larla müşteri güvenlik sorularına ve denetimlere hazırlık.
Kurumsal BT ve güvenlik ekipleri
Mevcut güvenlik araçlarının teslimat hattına bağlanması, politika olarak kod ve ekipler arası ortak standartlar.
İlk görüşmeyi verimli kılmak için.
Hiçbiri ön koşul değil; elinizde ne varsa ilk görüşmeyi o kadar somut kılar.
Varsa hazırlayabilecekleriniz
- Kod depoları ve pipeline'ların listesi
- Bulut hesapları ve ortamların listesi
- Kullanılan güvenlik araçları ve varsa son tarama çıktıları
- En kritik uygulamalar ve işledikleri veri türleri
- Denetim ya da müşteri kaynaklı güvenlik gereksinimleri
DevSecOps hakkında
Kaynaklar ve standartlar
- OWASP SAMM (yeni sekmede açılır)Yazılım güvenliği olgunluk modeli
- NIST SP 800-218 (SSDF) (yeni sekmede açılır)Güvenli yazılım geliştirme çerçevesi
- SLSA (yeni sekmede açılır)Yazılım tedarik zinciri güvenliği çerçevesi
- CycloneDX (yeni sekmede açılır)SBOM standardı
- CIS Benchmarks (yeni sekmede açılır)Yapılandırma sıkılaştırma kıyaslamaları
Teslimat güvenliğinizi birlikte ele alalım.
Ücretsiz ön görüşmede mevcut durumunuzu ve hedeflerinizi ele alıyor; ilk izlenimimizi ve olası sonraki adımları aynı görüşmede paylaşıyoruz.
- Konunuza uygun uzmanlarla teknik bir görüşme
- Durumunuza ilişkin ilk izlenim ve olası yaklaşımlar
- Uygunsa sonraki adım: değerlendirme, proje önerisi ya da danışmanlık
- Gerektiğinde görüşme öncesinde gizlilik sözleşmesi
- Taleplere mesai saatlerinde 4 saat içinde dönüş
DevSecOps uygulamadan örnekler
Güvenlik kontrollerinin teslimat hattında nasıl çalıştığını temsili senaryolarla gösteriyoruz.
Güvenli teslimat hattı
Sır, kod, bağımlılık ve çalışan uygulama taramaları hattın olağan adımlarıdır. Bulgular geliştiriciye, birleştirme isteğinin içinde gösterilir.
Sır taraması
Kod depoya girmeden önce parola, anahtar ve token sızıntıları taranır.
- $ gitleaks git --staged -v
- ✓ no leaks found
Statik kod analizi (SAST)
Kod, SQL enjeksiyonu ve güvensiz yapılandırma gibi hata kalıplarına karşı incelenir.
- $ semgrep scan --config p/owasp-top-ten
- Ran 512 rules on 284 files: 1 finding.
- ! tainted-sql-string · siparis/views.py:88
Bağımlılık analizi (SCA)
Açık kaynak bileşenler bilinen zafiyet veritabanlarıyla karşılaştırılır.
- $ grype dir:. --fail-on high
- jackson-databind 2.13.2 → 2.13.4.1 High CVE-2022-42003
Kalite kapısı
Yüksek önemdeki bulgular giderilmeden birleştirme yapılmaz; düzeltme aynı istekte doğrulanır.
- ! Quality Gate: FAILED
- → düzeltme commit'i gönderildi
- ✓ Quality Gate: PASSED
Dinamik test (DAST)
Test ortamına çıkan uygulama, çalışır haldeyken dışarıdan taranır.
- $ zap-baseline.py -t https://staging.ornek.local
- FAIL-NEW: 0 WARN-NEW: 2 PASS: 61
- Gitleaks
- Semgrep
- Grype
- SonarQube
- ZAP
SBOM ile açık etki analizi
SBOM bir bileşen envanteridir; sürümün güvenli olduğunu tek başına söylemez. Değeri, yeni bir açık duyurulduğunda etkilenen uygulamaların hemen bulunabilmesidir.
Bileşen envanteri
Her sürümde imajın içindeki paketlerin ve sürümlerinin listesi (SBOM) otomatik üretilir.
- $ syft registry.ornek.local/siparis:3.2.0 -o cyclonedx-json > sbom.json
- ✓ Cataloged contents: 412 packages
Merkezi kayıt
SBOM'lar tek platformda toplanır; hangi uygulamanın hangi bileşen sürümünü kullandığı sorgulanabilir.
- PUT /api/v1/bom · siparis 3.2.0
- ✓ 412 bileşen işlendi
Yeni açık duyurusu
Bir bileşende kritik açık yayımlandığında etkilenen projeler envanterden listelenir.
- ! CVE-2021-44228 · log4j-core · CVSS 10.0
- etkilenen: siparis 3.2.0 (log4j-core 2.14.1)
- etkilenmeyen: odeme-api, stok-servisi
Düzeltme
Bileşen güvenli sürüme yükseltilir, hat yeniden çalışır ve yeni SBOM üretilir.
- log4j-core 2.14.1 → 2.17.1
- ✓ siparis 3.2.1 derlendi, tarama temiz
Kapanış
Yeni sürümün SBOM'u envantere yüklenir; açık kaydı kapatılır ve süreç raporlanır.
- siparis 3.2.1 · log4j-core 2.17.1
- ✓ CVE-2021-44228 kapatıldı
- Syft
- CycloneDX
- Dependency-Track
İmaj imzalama ve dağıtımda doğrulama
İmza, imajın güvenli olduğunu değil; beklenen hattan geldiğini ve sonradan değiştirilmediğini gösterir. Küme, imzayı doğrulamadan imajı çalıştırmaz.
Derleme kaydı
İmaj hat içinde derlenir; hangi koddan ve hangi ortamda derlendiği kaydedilir (provenance).
- $ docker buildx build --provenance=true --push -t registry.ornek.local/odeme-api:1.9.0 .
İmza
İmaj, hattın kimliğine bağlı anahtarsız imza ile imzalanır; imza kayıt defterinde imajın yanında durur.
- $ cosign sign --yes registry.ornek.local/odeme-api@sha256:9f2c…
- tlog entry created with index: 1048…
- ✓ Pushing signature to: registry.ornek.local/odeme-api
SBOM tasdiki
SBOM, imaja imzalı bir tasdik (attestation) olarak eklenir.
- $ cosign attest --yes --type cyclonedx --predicate sbom.json registry.ornek.local/odeme-api@sha256:9f2c…
Dağıtımda doğrulama
Kümeye yalnız beklenen kimlikle imzalanmış imajlar alınır; kural küme girişinde uygulanır.
- verifyImages: registry.ornek.local/*
- ✓ odeme-api@sha256:9f2c… imza doğrulandı
İmzasız imaj
İmzasız ya da farklı kimlikle imzalanmış bir imaj kümeye alınmaz; neden kaydı tutulur.
- $ kubectl apply -f deneme-pod.yaml
- ! admission webhook "mutate.kyverno.svc-fail" denied the request: failed to verify image
- Docker Buildx
- Cosign (Sigstore)
- Kyverno
- SLSA
Sır yönetimi
Sırlar; parola, API anahtarı ve sertifika gibi gizli erişim bilgileridir. Kodda ya da yapılandırma dosyalarında değil, erişimi kayıtlı bir kasada durur.
Tespit
Depolarda ve yapılandırma dosyalarında açıkta kalmış sırlar bulunur ve listelenir.
- $ gitleaks git --report-path rapor.json
- ! leaks found: 3
Kasaya taşıma
Sırlar merkezi kasaya alınır; erişim uygulama kimliğine ve en az yetki ilkesine göre tanımlanır.
- $ vault kv put secret/odeme-api/prod db_host=…
- ✓ Success! Data written to: secret/odeme-api/prod
Kısa ömürlü kimlik bilgisi
Uygulama, veritabanı için kendine özel ve kısa ömürlü bir kullanıcı alır; süre dolunca kullanıcı silinir.
- $ vault read database/creds/odeme-api
- lease_duration 1h
- username v-k8s-odeme-api-7Hq2…
Yenileme
Sabit kalması gereken anahtarlar takvime bağlı olarak otomatik yenilenir.
- rotation_period: 720h
- ✓ son yenileme: 3 gün önce
Denetim kaydı
Hangi kimliğin hangi sırrı ne zaman okuduğu denetim kaydında tutulur.
- $ vault audit list
- file/ file n/a
- Gitleaks
- HashiCorp Vault
- Kubernetes