CyberFlow Logo CyberFlow BLOG
Soc L3 Cloud Security

Kubernetes Denetim Günlükleri ile Tehdit Tespiti: Siber Güvenlik Stratejileri

✍️ Ahmet BİRKAN 📂 Soc L3 Cloud Security

Kubernetes denetim günlükleri ile tehdit tespiti konularında etkili stratejiler ve yaklaşımlar hakkında bilgilendirici bir rehber.

Kubernetes Denetim Günlükleri ile Tehdit Tespiti: Siber Güvenlik Stratejileri

Kubernetes denetim günlüklerinin önemi, tehdit tespiti yöntemleri ve güvenlik stratejileri hakkında bilgi vererek, siber güvenlik alanında uzmanlaşmanıza yardımcı oluyor.

Giriş ve Konumlandırma

Kubernetes, modern uygulama geliştirme ve dağıtım süreçlerinin temel taşlarından biri haline gelmiştir. Ancak, bu güçlü platformun sağladığı esneklik ve ölçeklenebilirlik, beraberinde bazı güvenlik risklerini de getirmektedir. Siber güvenlik alanında, Kubernetes’in denetim günlükleri (audit logs), potansiyel tehditlerin tespit edilmesinde kritik bir rol oynamaktadır. Kubernetes denetim günlükleri, kimin, ne zaman, nereden ve hangi API çağrısını yaptığını detaylı bir şekilde kaydeden güvenlik kayıtlarıdır. Bu günlükler, kötü niyetli etkinlikleri izlemenin yanı sıra, sistem güvenliğini sağlamak için gerekli olan bilgiye de ışık tutmaktadır.

Denetim Günlüklerinin Önemi

Siber güvenlik, bir organizasyonun bilgi varlıklarını korumak için uyguladığı stratejilerin bütünüdür. Bu noktada, Kubernetes denetim günlükleri, yalnızca bir kayıttan ibaret olmayıp, sistemlerdeki anomalileri ve dış tehditleri belirlemek için hayati öneme sahiptir. Denetim kayıtları, sistem yöneticileri ve güvenlik uzmanları için, geçmişteki olayları incelemek ve mevcut güvenlik stratejilerini gözden geçirmek açısından önemli bir kaynak oluşturmaktadır. Örneğin, tespit edilen bir ‘403 Forbidden’ hatası, bir saldırganın erişim yetkilerini zorlayarak keşif yaptığına dair bir işaret olabilir.

Siber Güvenlik ve Pentest Bağlamı

Kubernetes'in sağladığı esneklik ve çoklu kullanıcı erişimleri, güvenlik risklerini artırmaktadır. Bu nedenle, güvenlik testleri (pentest), sistemin güvenliğini değerlendirmek amacıyla kritik bir süreç haline gelmiştir. Kullanıcıların, hizmetlerin ve veri akışlarının sürekli izlenmesi, olası bir güvenlik açığı durumunda hızlı aksiyon alabilmeyi mümkün kılar. Denetim günlükleri sayesinde izlenebilen şifrelerin gizliliği gibi hassas bilgiler, kötü niyetli kullanıcıların eline geçmeden önce tespit edilebilir.

Tehdit Tespitinde Denetim Günlüklerinin Kullanımı

Denetim günlükleri, ihlal tespitinde anahtar bir araçtır. Özellikle, Kubernetes sistemlerinde belirli olayların ve kullanıcı hareketliliğinin zaman damgası ile kaydedilmesi, güvenlik tehdidi olasılıklarını artıran durumların hızlı bir şekilde belirlenmesine yardımcı olur. Güvenlik olaylarını analiz etmek için kullanılan SIEM (Security Information and Event Management) gibi sistemler, denetim günlüklerini dışarı aktararak, daha güvenli bir analiz ortamında çalışmaya olanak tanır.

Aşağıda, Kubernetes denetim günlüklerinin yapı taşlarını ve kullanım alanlarını merak edenler için bazı önemli kavramları bulabilirsiniz:

- **Denetim (Audit)**: Olay isteğinin alındığı andaki RequestReceived ve tamamlandığı andaki ResponseComplete aşamalarını içerir.
- **Secret**: Özel bilgi nesnelerine yönelik erişim talepleri, tehlikeli durumların erken tespiti için izlenmelidir.
- **Keşif (Discovery)**: Saldırganların bilgi toplamak amacıyla yaptıkları keşifler, denetim kayıtları üzerinden gözlemlenebilir.
- **Silme (Delete)**: Kritik podlarda yapılan silme işlemleri, şüpheli durumların belirlenmesine yardımcı olabilir.

Sonuç

Kubernetes denetim günlükleri, yalnızca geçmişteki olayları kaydetmekle kalmaz, aynı zamanda gelecekteki tehditlerin önlenmesine yönelik eylemler geliştirmeye olanak tanır. Siber güvenlik uzmanlarının, bu günlükleri etkin bir şekilde analiz ederek potansiyel tehditleri belirlemesi, organizasyonların güvenlik duruşunu önemli ölçüde güçlendirebilir. Özellikle, tehdit tespitinde ilerlemek ve siber saldırılara karşı dayanıklı bir ortam oluşturmak için, denetim günlüklerinin rolü asla göz ardı edilmemelidir. Bu bağlamda, denetim politikalarının ve kayıt aşamalarının doğru bir biçimde belirlenmesi, siber güvenlik stratejilerinin başarısı için kritik öneme sahiptir.

Teknik Analiz ve Uygulama

Kubernetes Audit Logs Nedir?

Kubernetes denetim günlükleri, küme içinde kimin, ne zaman, nereden ve hangi API çağrısını yaptığını kronolojik olarak kaydeden güvenlik kayıtlarıdır. Bu günlükler, potansiyel güvenlik tehditlerini tespit etmek için kritik öneme sahiptir. Kubernetes API sunucusu, denetim günlüklerini yapılandırmak için belirli bir denetim politikası izler. Bu politika, hangi olayların kaydedileceğini ve hangi detay seviyesinin kullanılacağını belirler.

Denetim Politikası (Audit Policy) Seviyeleri

Denetim politikalarında üç temel seviye bulunmaktadır:

  1. None (Hiçbiri): Bu kurala uyan hiçbir olay kaydedilmez. Log kalabalığını önlemek için kullanılır.
  2. Metadata (Üst Bilgi): İsteği yapan kullanıcı, zaman ve etkilenen nesne gibi üst bilgileri kaydeder.
  3. RequestResponse (İstek/Cevap): İsteğin hem içeriğini (body) hem de dönen yanıtı kaydedebilir. En detaylı ama en ağır seviye olarak öne çıkar.

Bu seviyeleri ayarlamanın, güvenlik izlemeyi etkileyen büyük bir önemi vardır. Örneğin, yalnızca metadata seviyesinde izlenen olaylar, atlanan kritik güvenlik uyarılarını geride bırakabilir.

Kayıt Aşamaları (Audit Stages)

Denetim sürecindeki aşamaları anlamak, tehdit tespitinde oldukça etkilidir. Kubernetes denetim süreci, genellikle aşağıdaki aşamaları içerir:

  • RequestReceived: Bir API isteği alındığında.
  • ResponseComplete: İsteğin tamamlandığında.

Bu aşamalar, olayların doğru izlenmesi ve analizi için kritik öneme sahiptir. Örneğin, aşağıdaki komut, mevcut denetim politikasını listelemeye yardımcı olur:

kubectl get apiservices

Kritik Olayların İzlenmesi

Kubernetes denetim günlükleri, özellikle "Secret" nesnelerine yapılan 'get' ve 'list' isteklerinin izlenmesi açısından fazlasıyla önemlidir. Bu tür işlemler, saldırganların şifreleri çalma girişimlerini gösterebilir. Olası bir tehdit tespitini gerçekleştirmek için, aşağıdaki komut kullanılabilir:

kubectl get secrets --namespace <ad-space>

Bu komut, belirli bir isim alanındaki tüm şifreleri görüntüleyecektir.

Runtime Güvenliği ve Falco

Runtime güvenliği sağlamak için açık kaynaklı araçlar, denetim günlüklerini analiz ederek anormallikleri tespit edebilir. Falco, bu konuda kullanılan en popüler araçlardan biridir. Falco, sistem çağrılarını ve denetim günlüklerini izleyerek şüpheli aktiviteleri otomatik olarak tespit eder. Örneğin, belirli kurallar oluşturmak için Falco'ya aşağıdaki gibi bir yapılandırma dosyası ekleyebilirsiniz:

rules:
  - rule: "Shell Access"
    desc: "Detect shell access to a container"
    condition: container.id != "" and evt.type in (execve)
    output: "Shell opened in container (user=%user.name container=%container.id command=%proc.cmdline)"
    priority: WARNING

Pod Exec Tespit Etme

Denetim kayıtlarındaki pod/exec istekleri, bir kullanıcının çalışan bir konteynere etkileşimli kabuk bağlantısı kurduğunu gösterir. Saldırganların pod içerisine sızma girişimlerini tespit etmek için bu tür isteklerin izlenmesi gerekir. Özellikle, '403 Forbidden' hatalarıyla karşılaşıldığında, bu durum bir saldırganın küme içinde yetki sınırlarını zorlamaya çalıştığını işaret edebilir.

RBAC Hatalarının Analizi

Role-Based Access Control (RBAC) mekanizmaları, Kubernetes kümesinde kimlerin neye erişim hakkı olduğunu belirler. Ancak, RBAC konfigürasyonundaki hatalar, güvenlik açıklarına yol açabilir. Denetim kayıtlarının analizi, bu tür hataların tespitine yardımcı olur. Örneğin, yetkisiz erişim denemeleri sıklıkla denetim kayıtlarında yer alır.

Anonim Erişim Riski

Kubernetes API sunucusuna yönelik anonim istekler, güvenlik açığı oluşturur. Eğer API sunucusu herkese açık (Public) bırakılmışsa, bu durum unauthenticated request olarak tanımlanır. Denetim kayıtları aracılığıyla bu tür istekleri tespit edebilir ve iyileştirmeler yapabilirsiniz.

Log Merkezi ve SIEM Entegrasyonu

Kubernetes günlüklerinin dışarı aktarılması, güvenli bir SIEM platformuna entegre edilmesi için önemlidir. SIEM, uygulama ve sistemlerden gelen verileri toplar ve ilişkisini analiz eder. Böylece, saldırganların izlerini silmeye çalışabileceği durumlarda, bir denetim kaynağı olarak kullanılabilir. Örneğin, kritik bir podda yapılan 'Delete' ya da 'Update' işlemlerinin kayıtları, potansiyel saldırıları izlemek için değerlidir.

Kritik Sistem Değişiklikleri

Kubernetes kümesinde yapılan kritik değişiklikler, özellikle 'kube-system' namespace'i altındaki podlarda kaydedilmelidir. Bu tür değişiklikler, servis kesintisi veya kalıcılık sağlama amacı taşıyan şüpheli hareketlerin göstergesi olabilir. Kayıtların detaylı bir şekilde tutulması, güvenlik ekibinin hızlı ve etkili tepki vermesine yardımcı olur.

Bu stratejiler ve araçlar, Kubernetes denetim günlüklerinin etkili bir şekilde kullanılmasına olanak tanır. Doğru yapılandırma ve analiz yöntemleri ile, siber tehditler karşısında daha güçlü bir savunma mekanizması oluşturulabilir.

Risk, Yorumlama ve Savunma

Kubernetes kütüphaneleri, modern uygulamaların yönetiminde büyük bir rol oynamaktadır. Ancak, bu esneklik ve otomasyon, siber güvenlik açısından da bazı riskleri beraberinde getirmektedir. Kubernetes denetim günlükleri, bu riskleri değerlendirmenin ve müdahalelerde bulunmanın önemli bir aracıdır. Bu bölümde, elde edilen bulguların güvenlik anlamı, olası yanlış yapılandırmalar, zafiyetler ve bunların etkileri üzerine odaklanacağız.

Risklerin Tespiti

Kubernetes denetim kayıtları, kullanıcıların, zamanın ve API çağrılarının detaylarını kaydederek, sistemdeki olası riskleri tespit etmek için kritik bir veritabanı sağlar. Kullanıcıların yanlış yapılandırmalar veya yetkisiz erişim girişimleri hakkında bilgi sahibi olmaları, güvenlik açığı tehdidini azaltabilir. Örneğin, bir kullanıcının kube-system namespace’inde yetki aşımı ile gerçekleştirdiği bir güncellemeyi izlemek, potansiyel bir saldırının izlerini gösterebilir.

apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: RequestResponse
  verbs: ["update"]
  resources:
  - group: ""
    resources: ["namespaces"]

Yukarıda görülen örnek, Kubernetes denetim politikasında güncelleme işlemleri için kaydetme düzeyini belirlemektedir. Yanlış yapılandırmalar veya zafiyetlerin izlenmesi, bu tür detayların loglanmasıyla mümkün olmaktadır.

Yorumlama Süreci

Denetim günlüklerinin yorumlanması, güvenlik ekibinin olumsuz bir durumu hızlıca tespit etmesini sağlar. Örneğin, 403 Forbidden hataları, kullanıcıların yetkilerini aşan API çağrılarında görülebilir. Bu tür kayıtlar, potansiyel bir keşif (discovery) saldırısının izlerini taşıyabilir. Kötü niyetli bir kullanıcının, küme yapısını anlamak adına böyle bir tetkik yapma ihtimali yüksektir.

Ayrıca, "Secret" nesnelerine gerçekleştirilen get ve list istekleri de dikkatle izlenmelidir. Bu tür işlemler, hassas bilgiler üzerinde sızma girişimlerini gösterebilir.

2023-10-20T14:37:02.123456Z    127.0.0.1    [USER]    GET    /secrets/mysecret

Bu tür bir kayıt, potansiyel bir veri ihlali girişimini işaret edebilir. Bu nedenle, her bir denetim kaydı analize tabii tutulmalıdır.

Savunma Stratejileri

Kubernetes güvenliği için proaktif savunma önlemleri almak kritik öneme sahiptir. İlk olarak, denetim kayıtlarının dışarı aktarımını sağlamak için güvenilir bir SIEM (Security Information and Event Management) sistemi entegre edilmelidir. Bu, saldırganların izlerini silmesine karşı alınmış bir önlemdir.

kubectl get pods --namespace kube-system -o json | jq '.items[] | select(.status.phase=="Running")'

Yukarıdaki komut, çalışan podları gözlemlemek için kullanılabilir. Belirli bir pod üzerinde şüpheli bir güncelleme veya silme (delete) işlemi gerçekleştirilip gerçekleştirilmediğini kontrol edebilirsiniz. Özellikle kritik podların güncellenmesi veya silinmesi, sistemin stabilitesini tehlikeye atabilir ve potansiyel bir saldırı göstergesi olabilir.

Ayrıca, sistem yöneticileri için denetim politikalarının ve kurallarının düzenli olarak gözden geçirilmesi önerilmektedir. Kurallar, yeni tehdit vektörlerine karşı güncellenmeli ve sistemdeki potansiyel zayıf noktaları belirlemek için kullanılmalıdır.

Son olarak, RBAC (Role-Based Access Control) yapılandırması dikkatli bir şekilde yönetilmeli ve anonim erişim (system:anonymous) olan yapılandırmalar tanımlanmalı ve gerektiğinde sınırlandırılmalıdır. Anonim erişim, güvenlik zafiyetlerine sebebiyet verebilir ve siber saldırganların sızma girişimlerinin önünü açabilir.

Sonuç

Kubernetes denetim günlükleri, güvenlik analizi ve tehdit tespiti için hayati bir kaynak oluşturur. Elde edilen çıktılar, potansiyel tehlikeleri anlamada kritik rol oynar. Yanlış yapılandırmalar ve zafiyetler, sistemin bütünlüğünü tehdit etmekte ve bu nedenle titizlikle izlenmelidir. Proaktif savunma stratejileri ve düzenli denetim politikası güncellemeleri, Kubernetes ortamlarının güvenliğini artırmak adına kritik öneme sahiptir.