Bağımlılık güvenliği (SCA): pip-audit, npm audit, OSV-Scanner
Projelerinin kullandığı açık kaynak paketlerdeki bilinen açıkları bulur, gerçekten etkilenip etkilenmediğini anlar ve güncellemeleri kontrollü biçimde otomatikleştirirsin.
Seviye 201 · 17 ders · 15 pratik lab
Dersler
Bağımlılıkları tanımak
- Doğrudan ve dolaylı bağımlılıklar
- Kilit dosyaları: sürümü sabitlemek neden şart
- Açık veritabanları: CVE, GHSA ve OSV
- Kısa görev: bir projenin bağımlılık ağacını çıkar
Tarama
- Python için pip-audit
- Node.js için npm audit
- Birden çok dil için OSV-Scanner
- Erişilebilirlik: açık kod gerçekten çağrılıyor mu
- Kısa görev: üç farklı projeyi tara ve sonuçları karşılaştır
Düzeltme
- Yükseltme stratejisi: yama, küçük ve büyük sürüm
- Düzeltme yoksa: geçici önlemler
- Renovate ile otomatik güncelleme istekleri
- Lisans denetimi: hangi lisans soruna yol açar
- Kısa görev: güvenlik güncellemelerini gruplayan bir Renovate ayarı yaz
Kalıcı süreç
- Bağımlılık politikası: yeni paket ekleme kuralları
- CI’da SCA ve hata eşiği
- Bitirme görevi: eski bir Node.js uygulamasının bağımlılıklarını güvenceye al
Pratik lablar
- Bir projenin bağımlılık ağacını çıkar: Doğrudan ve dolaylı bağımlılıkları say ve en derin zinciri yaz.
- Kilit dosyasıyla sürümleri sabitle: Kilit dosyası olmayan projede dosyayı üret, iki kurulumun aynı sürümleri getirdiğini özetlerle doğrula.
- Bir açığı CVE, GHSA ve OSV kayıtlarında karşılaştır: Aynı açığın üç kaynaktaki etkilenen sürüm aralığını karşılaştır, farkı açıkla ve projenin etkilenip etkilenmediğine karar ver.
- pip-audit ile Python projesini tara: Taramayı çalıştır ve açık içeren paketleri düzeltilmiş sürümleriyle listele.
- Üç projeyi tara ve sonuçları karşılaştır: pip-audit, npm audit ve OSV-Scanner çıktılarını tek tabloda birleştir ve araçların ayrıştığı bulguyu açıkla.
- Açık içeren kodun gerçekten çağrılıp çağrılmadığını kanıtla: Bildirilen açığın etkilediği işlevi bul, projede çağrı yolunu ara ve erişilebilirliğe göre önceliği yeniden belirle.
- Yama sürümüne yükselt ve testleri çalıştır: Tek bir paketi düzeltilmiş yama sürümüne çek ve testlerin geçtiğini göster.
- Düzeltmesi olmayan açık için geçici önlem uygula: Açığı tetikleyen özelliği yapılandırmayla kapat ya da girdiyi sınırla ve önlemi bitiş tarihiyle kaydet.
- Ana sürüm yükseltmesini kırılan çağrılarla birlikte tamamla: Değişiklik günlüğünden kırılan arayüzleri çıkar, kodu uyarla, testleri geçir ve dolaylı bağımlılıktan gelen açığı sürüm geçersiz kılmayla kapat.
- Sorun çıkaran lisansları bağımlılık listesinde bul: Lisans raporunu üret ve politikayla çelişen iki paketi işaretle.
- Güvenlik güncellemelerini gruplayan Renovate yapılandırması yaz: Güvenlik güncellemelerini tek istekte toplayan, ana sürümleri ayrı tutan kuralları yaz ve deneme çalıştırmasıyla doğrula.
- Bağımlılık politikası yaz ve CI’da eşikle uygula: Yeni paket ekleme kurallarını belirle, yüksek açıkta hattı durduran SCA adımını ekle ve belgelenmiş istisnanın geçtiğini göster.
- Eski Node.js uygulamasının bağımlılık durumunu özetle: Eskimiş paket sayısını, açık sayısını ve en eski paketin yaşını çıkar.
- Eski uygulamanın yükseltme sırasını planla: Açıkları önem ve erişilebilirliğe göre sırala, önce yapılacak beş yükseltmeyi ve riskini yaz.
- Eski Node.js uygulamasının bağımlılıklarını güvene al: Kritik ve yüksek açıkları kapat, kilit dosyasını yenile, kalanlar için gerekçeli istisna yaz ve öncesi ile sonrası tarama sonucunu sun.
Kurs hakkında
Projelerinin kullandığı açık kaynak paketlerdeki bilinen açıkları bulur, gerçekten etkilenip etkilenmediğini anlar ve güncellemeleri kontrollü biçimde otomatikleştirirsin.
Ne öğreneceksin
- Bağımlılıkları tanımak
- Tarama
- Düzeltme
- Kalıcı süreç
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.