Docker güvenliği
İmaj, çalışma zamanı ve ağ güvenliği.
Seviye 201 · 20 ders · 18 pratik lab
Dersler
Denetim
- Docker'da çalışan konteynerleri denetlemek: Docker'da çalışan konteynerlerin hangi kullanıcıyla, hangi yetkilerle ve hangi bağlamalarla çalıştığını denetleyip riskli olanları belirlemeyi öğrenirsin.
- Docker Compose projesini denetlemek: Docker Compose dosyasını satır satır gözden geçirip açıkta kalan port, yetki ve sırları bulmayı öğrenirsin.
- Compose geçersiz kılma dosyalarında güvenlik sapmasını yakalamak: Ana Compose dosyası güvenliyken geçersiz kılma dosyalarının portları, yetkileri ya da hata ayıklamayı yeniden açtığı durumları bulabileceksin.
- Kısa görev: bir sunucudaki konteynerlerin yetki ve port envanterini çıkar
Yüzey ve yetki
- Docker'da port yayınlamayı azaltmak: Docker konteyner portlarını dış ağa yayınlamanın riskini anlar, gereksiz yayınları kaldırıp yalnızca gerekenleri yerel adrese bağlamayı öğrenirsin.
- Docker soketine erişimi kaldırmak: Docker soketine erişimin neden ana makine üzerinde tam yetki anlamına geldiğini ve bunu konteynerlerden nasıl kaldıracağını anlarsın.
- Docker'da salt okunur bağlamalar ve ayrıcalıklı kipi kaldırmak: Docker konteynerlerine verilen ana makine dizinlerini salt okunur yapmayı ve gereksiz ayrıcalıklı kipi kaldırmayı öğrenirsin.
- Docker'da root olmayan çalışan kullanıcılar: Docker konteyneri içindeki uygulamayı root yerine sınırlı bir kullanıcıyla çalıştırmanın neden daha güvenli olduğunu ve bunu nasıl ayarlayacağını öğrenirsin.
- Docker’da cap_drop, no-new-privileges ve salt okunur kök dosya sistemi: Konteynerin Linux yeteneklerini kısıp yetki kazanmasını engelleyebilecek ve kök dosya sistemini salt okunur çalıştırabileceksin.
- Kısa görev: bir konteyneri gereken en az yetkiyle yeniden çalıştır
İmaj ve gizli bilgiler
- Docker çalışma zamanı sırlarını doğru yönetmek: Docker'da parola ve anahtar gibi sırları imaja veya ortam değişkenlerine gömmek yerine çalışma zamanında güvenli yoldan vermeyi öğrenirsin.
- BuildKit gizli bağlamalarıyla derlemede belirteç sızdırmamak: Derleme sırasında gereken belirteci BuildKit gizli bağlamasıyla verip imaj katmanlarında iz kalmadığını docker history ile doğrulayabileceksin.
- Docker imaj temizliği: sürüm sabitleme ve geçmişteki sırlar: Docker imajlarında sürüm etiketlerini sabitlemeyi ve imaj geçmişinde unutulmuş sırları bulup temizlemeyi öğrenirsin.
- Trivy ile imajdaki bilinen açıkları taramak: Bir konteyner imajını Trivy ile tarayıp bulguları önem sırasına koyabilecek ve temel imajı güncelleyerek azaltabileceksin.
- Kısa görev: geçmişinde belirteç kalmış bir imajı temiz biçimde yeniden derle
Ağ ve birimler
- Docker servis ağlarını bölmek: Docker'da konteynerleri ayrı ağlara bölüp her servisin yalnızca konuşması gereken servislerle iletişim kurmasını sağlamayı öğrenirsin.
- Paylaşılan birimlerde servisler arası sınırı korumak: Birden çok konteynerin aynı birimi kullandığı durumda her servisin yalnızca kendi klasörüne yazabilmesini sağlayabileceksin.
- Docker Compose sırları ve sağlık denetimleri: Docker Compose'ta sırları güvenli biçimde vermeyi ve sağlık denetimleriyle servislerin düzgün çalıştığını izlemeyi öğrenirsin.
- Kısa görev: veritabanını yalnızca uygulamanın görebileceği ağa taşı
Bitirme
- Bitirme görevi: bir uygulamanın Docker konteyner güvenlik denetimi: Bitirme görevi: kurgusal bir şirketin Docker Compose ile çalışan uygulamasını denetler, bulduğun riskleri düzeltir ve kısa bir güvenlik özeti yazarsın.
Pratik lablar
- Çalışan konteynerlerin yetki ve portlarını envanterle: docker inspect ile her konteynerin kullanıcısını, yayınlanan portlarını ve ayrıcalıklı olup olmadığını tabloya yaz.
- Bir Compose projesini güvenlik açısından denetle: Compose dosyasında ayrıcalıklı kip, soket bağlama, açık port ve düz parola bulgularını listele ve düzelt.
- Geçersiz kılma dosyasının getirdiği güvenlik sapmasını yakala: Birleştirilmiş Compose yapılandırmasını çıkar, override dosyasının sessizce eklediği yetki ve bağlamayı bul ve bunu denetleyen bir betik yaz.
- Yayınlanan gereksiz portları kaldır: Veritabanı ve önbellek servislerinin ana makineye yayınlanan portlarını kaldır ve uygulamanın iç ağdan eriştiğini göster.
- Docker soketi bağlamasını ve ayrıcalıklı kipi kaldır: Soketi bağlayan izleme konteynerini salt okunur ölçüm kaynağına geçir, privileged ayarını kaldır ve işlevini doğrula.
- Konteyneri en az yetkiyle yeniden çalıştır: Tüm yetenekleri düşür, yalnızca gerekeni ekle, no-new-privileges ve salt okunur kök dosya sistemi uygula ve yazma gereken yolları tmpfs ile çöz.
- Konteynerdeki sürecin hangi kullanıcıyla çalıştığını bul: Üç servis için süreç kullanıcısını kontrol et ve root olanları listele.
- İşçi servisini root olmayan kullanıcıya geçir: Compose dosyasında user ayarını ver, birim sahipliğini düzelt ve işçinin kuyruğu işlemeyi sürdürdüğünü göster.
- Düşük port ve birim sahipliği sorunlarını root’a dönmeden çöz: 80 numaralı portu dinleyen ve paylaşılan birime yazan servisi ayrıcalıksız kullanıcıyla çalışır hale getir ve kullandığın çözümü gerekçelendir.
- Ortam değişkenindeki parolayı docker inspect ile gör: Parolanın konteyner yapılandırmasından okunabildiğini göster ve hangi servislerin etkilendiğini yaz.
- Parolayı Compose secrets ile dosya olarak ver: Ortam değişkenini Compose gizli bilgisine çevir, uygulamayı dosyadan okutacak şekilde ayarla ve inspect çıktısında görünmediğini doğrula.
- Derlemede kullanılan belirteci BuildKit gizli bağlamasına taşı: ARG ile verilen paket deposu belirtecinin imaj geçmişinde kaldığını göster, gizli bağlamaya geçir ve geçmişin temiz olduğunu kanıtla.
- Sabitlenmemiş imaj etiketlerini bul: Compose ve Dockerfile dosyalarında latest ya da etiketsiz kullanılan imajları listele.
- Trivy ile imajı tara ve düzeltilebilir açıkları kapat: Yüksek ve kritik bulguları çıkar, taban imajı ve paketleri güncelle ve yeniden tarayarak farkı göster.
- Geçmişinde belirteç bulunan imajı temiz olarak yeniden oluştur: Katman geçmişinden belirteci çıkar, derlemeyi çok aşamalı ve gizli bağlamalı hale getir, eski imajı kayıttan kaldır ve belirteci yenile.
- Servislerin hangi ağlara bağlı olduğunu çıkar: Compose projesindeki ağları ve her ağa bağlı servisleri listele.
- Veritabanını yalnızca uygulamanın gördüğü ağa taşı: İç ağ tanımla, veritabanını ona bağla ve ön yüz konteynerinin artık veritabanına ulaşamadığını göster.
- Paylaşılan birimde servis sınırlarını ve sağlık denetimlerini kur: İki servisin aynı birime yazdığı düzeni salt okunur bağlama ve alt yollarla ayır, sağlık denetimi ekle ve bir uygulama için güvenlik inceleme raporu yaz.
Kurs hakkında
İmaj, çalışma zamanı ve ağ güvenliği.
Ne öğreneceksin
- Denetim
- Yüzey ve yetki
- İmaj ve gizli bilgiler
- Ağ ve birimler
- Bitirme
Ö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 ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
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.