Bulut denetim izi en iyi uygulamaları: kapsam, saklama, bütünlük ve inceleme
Bulut denetim izleri için pratik kontrol listesi: neyin kaydedileceği, ne kadar saklanacağı, değiştirilmeye karşı nasıl korunacağı ve nasıl inceleneceği.
Yayımlandı: Güncellendi: Read in English
Kısa yanıt
Her hesap ve bölgedeki tüm kontrol düzlemi aktivitesini kaydedin, hassas kaynaklar için veri erişimi kaydını etkinleştirin, her olayı bireysel bir kimlikle ilişkilendirin, kayıtları ayrı ve bir kez yazılabilir depolamaya aktarın, en az bir yıl saklayın, kayıt yapılandırmasını kimin değiştirebileceğini kısıtlayın ve yüksek riskli olayları sürekli inceleyin.
Yönetici özeti
Bir bulut denetim izi ancak eksiksizse, yeterince uzun süre saklanıyorsa, değiştirilmeye karşı korunuyorsa ve gerçekten inceleniyorsa faydalıdır. Bu kontrol listesi en iyi uygulamaları kapsam, kimlik, saklama, bütünlük, erişim denetimi, normalleştirme ve inceleme başlıkları altında gruplar; NIST SP 800-92 ve CIS Controls'a atıfta bulunur ve her uygulamayı hangi sağlayıcı özelliklerinin desteklediğini gösterir.
Temel bulgular
- 01 En yaygın başarısızlık kapsam boşluklarıdır: yeni hesaplar, yeni bölgeler ve veri düzlemi erişimi çoğu zaman kaydedilmez.
- 02 Bir saldırganın kontrol ettiği hesapta tutulan kayıtlar silinebilir; ayrı hesaplar veya projeler ve bir kez yazılabilir depolama bu riski azaltır.
- 03 Paylaşılan kimlik bilgileri ilişkilendirmeyi boşa çıkarır — denetim izi ancak kullanılan kimlikler kadar spesifik olabilir.
- 04 Kayıt yapılandırmasındaki değişikliklerin kendisi de kaydedilmeli ve bunlar için alarm üretilmelidir.
1. Kapsam
- Kontrol düzlemi kaydını, kullanmayı beklemedikleriniz de dahil olmak üzere her hesap, abonelik veya projede ve her bölgede etkinleştirin.
- Hassas veri depoları (kişisel veri içeren nesne bucket’ları, secret yöneticileri, anahtar yönetimi) için veri erişimi kaydını etkinleştirin ve maliyetini kabul edin.
- İş yükü olaylarının yanı sıra organizasyon düzeyindeki olayları (hesap oluşturma, politika değişiklikleri) da dahil edin.
2. Kimlik
- İnsanlar için bireysel kimlikler, otomasyon için ayrı servis kimlikleri kullanın; paylaşılan kimlik bilgileri ilişkilendirmeyi imkânsız kılar.
- Hangi ayrıcalıkların kullanıldığını anlayabilmek için kullanıcıyla birlikte kapsamı (hesap, proje, rol veya oturum) da kaydedin.
- Denetim kimliklerinin İK kayıtlarıyla eşleşmesi için oturum açmayı merkezi bir kimlik sağlayıcısına federe edin.
3. Saklama
- Saklamayı politika ve mevzuata göre tanımlayın; bir yıl yaygın bir temel düzeydir.
- Sağlayıcının varsayılan süresi dolmadan kayıtları kontrolünüzdeki depolamaya aktarın.
- Ağ ve uygulama loglarıyla korelasyon kurabilmek için yeterli istek meta verisini (kaynak IP, user agent, istek kimliği) tutun.
4. Bütünlük
- Mevcut olduğu yerde bütünlük doğrulamasını kullanın (CloudTrail digest dosyaları).
- Aktarılan kayıtları bir kez yazılabilir depolamaya yazın (object lock veya saklama politikaları).
- Kayıtları, iş yükü yöneticilerinin değiştiremeyeceği ayrı bir güvenlik hesabında veya projesinde saklayın.
5. Erişim denetimi
- Kaydı kimin durdurabileceğini, silebileceğini veya yeniden yapılandırabileceğini kısıtlayın; bu tür her değişiklikte alarm üretin.
- İnceleme yapanlar için okuma erişimini, kayıt hattı için yazma erişiminden ayırın.
6. Normalleştirme
Birden fazla bulutta faaliyet gösteriyorsanız, kuralların ve aramaların sağlayıcılar arasında çalışması için olayları ortak bir şemaya normalleştirin. Aşağıdaki olay modeli vTrail’in alanlarını CloudTrail, Google Cloud ve CADF karşılıklarına eşler.
| Alan | Tip | Açıklama | AWS CloudTrail | Google Cloud Audit Logs | OpenStack CADF |
|---|---|---|---|---|---|
| event_time | string (RFC 3339) | İşlemin alındığı zaman (UTC). | eventTime | timestamp | eventTime |
| request_id | string | Gateway, servis ve kaynak loglarını ilişkilendirmek için benzersiz istek kimliği. | requestID | insertId / operation.id | id / requestId (attachment) |
| http_method | string | API çağrısının HTTP fiili (GET, POST, PUT, PATCH, DELETE). | — | httpRequest.requestMethod | action (mapped) |
| full_path | string | Hedef kaynağı belirten istenen API yolu. | eventSource + eventName | protoPayload.methodName / resourceName | target.id / requestPath |
| http_status | integer | Yanıt durum kodu — işlemin sonucu. | errorCode (on failure) | protoPayload.status.code | outcome / reason.reasonCode |
| client_ip | string (IP) | Çağıranın kaynak IP adresi. | sourceIPAddress | protoPayload.requestMetadata.callerIp | initiator.host.address |
| user_agent | string | İstemci yazılımı (konsol, CLI, SDK, Terraform). | userAgent | protoPayload.requestMetadata.callerSuppliedUserAgent | initiator.host.agent |
| auth_user_id | string | Kimliği doğrulanmış kullanıcının kalıcı kimliği. | userIdentity.principalId | protoPayload.authenticationInfo.principalSubject | initiator.id |
| auth_user_name | string | İstek anındaki okunabilir kullanıcı adı. | userIdentity.userName / arn | protoPayload.authenticationInfo.principalEmail | initiator.name |
| auth_project_id | string | Token kapsamındaki proje (kiracı). | recipientAccountId | resource.labels.project_id | initiator.project_id |
| auth_scope | string | Token’ın yetki kapsamı veya rol bağlamı. | userIdentity.sessionContext | protoPayload.authorizationInfo | initiator.credential |
| service_id | string | İsteği işleyen arka uç bulut servisi (compute, ağ, depolama). | eventSource | protoPayload.serviceName | observer.id / target.typeURI |
| route_id | string | İstekle eşleşen API gateway rotası. | — | — | — |
| request_time | number (ms) | Uçtan uca istek işleme süresi. | — | httpRequest.latency | — |
{
"event_time": "",
"request_id": "",
"http_method": "",
"full_path": "",
"http_status": null,
"client_ip": "",
"user_agent": "",
"auth_user_id": "",
"auth_user_name": "",
"auth_project_id": "",
"auth_scope": "",
"service_id": "",
"route_id": "",
"request_time": null
} 7. İnceleme
- Yüksek riskli olaylardan oluşan kısa bir liste için sürekli alarm üretin (bkz. bulut aktivite izleme).
- Ayrıcalıklı aktiviteyi belirli bir takvime göre inceleyin.
- İzi test edin: bilinen bir işlem gerçekleştirin ve aktarılan depoda doğru şekilde ilişkilendirilmiş olarak göründüğünü doğrulayın.
Sağlayıcı özelliklerinin kontrol listesiyle eşleşmesi
| Özellik | vTrail PortvMind Cloud | AWS CloudTrail Amazon Web Services | Azure Monitor Activity Log Microsoft Azure | Cloud Audit Logs Google Cloud |
|---|---|---|---|---|
| Kontrol düzlemi denetim kapsamı API veya konsol üzerinden yapılan yönetim işlemlerini (oluşturma, değiştirme, silme) kaydeder. | Var Bulut yönetim API işlemleri. | Var Yönetim olayları varsayılan olarak kaydedilir. | Var Azure Resource Manager yazma/silme/eylem işlemleri. | Var Admin Activity logları her zaman etkin. |
| Kimlik ilişkilendirme Her işlemin arkasındaki kimliği doğrulanmış kullanıcıyı, projeyi/hesabı ve kapsamı belirtir. | Var Kullanıcı kimliği, kullanıcı adı, proje kimliği ve yetki kapsamı. | Var userIdentity bloğu (principal, hesap, oturum). | Var Çağıran ve claim bilgileri. | Var authenticationInfo.principalEmail. |
| İstek meta verisi İstek kimliği, HTTP metodu, yol, durum kodu, kaynak IP ve user agent bilgisini yakalar. | Var İstek kimliği, HTTP metodu, yol, durum, istemci IP, user agent, istek süresi. | Var eventTime, requestID, sourceIPAddress, userAgent, errorCode. | Kısmi Korelasyon kimliği, işlem, durum ve mevcutsa HTTP istek ayrıntılarında çağıran IP. | Var requestMetadata.callerIp ve callerSuppliedUserAgent; durum. |
| Veri düzlemi (veri erişimi) olayları Veri düzeyindeki okuma ve yazmaların (ör. nesne okuma) isteğe bağlı kaydı. | Doğrulanmadı | Var Veri olayları (ör. S3 nesne düzeyi) isteğe bağlıdır ve ücretlidir. | Kısmi Activity Log'un kendisi değil, kaynak logları ve tanılama ayarlarıyla. | Var Data Access logları, çoğunlukla varsayılan olarak kapalı. |
| Olay arama ve filtreleme Kullanıcı, zaman aralığı, kaynak veya işleme göre konsol ya da API üzerinden arama. | Doğrulanmadı | Var Olay geçmişi araması; CloudTrail Lake'te SQL sorguları. | Var Portal filtreleme ve Log Analytics (KQL). | Var Logs Explorer ve Log Analytics. |
| Yapılandırılabilir saklama süresi Belgelenmiş varsayılan saklama süresi ve uzatma seçenekleri. | Doğrulanmadı | Var 90 günlük olay geçmişi; S3 trail veya CloudTrail Lake ile daha uzun saklama. | Var Platformda 90 gün; Log Analytics veya Storage ile daha uzun. | Var Admin Activity _Required bucket'ında 400 gün; diğer bucket'lar yapılandırılabilir. |
| Dışa aktarma ve akış Nesne depolama, log analitiği veya SIEM hatlarına aktarım. | Doğrulanmadı | Var S3, CloudWatch Logs, EventBridge. | Var Tanılama ayarlarıyla Log Analytics, Storage ve Event Hubs. | Var Cloud Storage, BigQuery ve Pub/Sub'a sink. |
| Kayıt bütünlüğü doğrulama Değiştirilmeyi tespit eden kriptografik veya değiştirilemezlik kontrolleri. | Doğrulanmadı | Var Digest dosyalarıyla log bütünlüğü doğrulama. | Kısmi Aktarım hedefinde değiştirilemez depolama politikaları. | Kısmi Kilitli log bucket'ları saklama değişikliğini engeller. |
| Fiyatlandırma modeli Temel denetim geçmişinin dahil olup olmadığı ve gelişmiş özelliklerin nasıl ücretlendirildiği. | Doğrulanmadı | Var Olay geçmişi ve yönetim olaylarının bir kopyası ücretsiz; veri olayları ve Lake ücretli. | Var 90 günlük Activity Log dahil; Log Analytics alımı ücretlidir. | Var Admin Activity ücretsiz; Data Access alımı ücretsiz kotanın üzerinde ücretli. |
| Bilgi kaynağı | Sağlayıcı ekibince sağlandı | Resmî dokümantasyon | Resmî dokümantasyon | Resmî dokümantasyon |
Sınırlamalar
Bu kontrol listesi genel bir rehberdir; hukuki veya uyum danışmanlığı değildir. Sağlayıcı özellik değerlendirmeleri bulut denetimi metodolojisini izler; vTrail ayrıntıları sağlayıcı tarafından sağlanmıştır ve bunların birçoğu doğrulanmadı olarak işaretlenmiştir.
Sonuç
Bir denetim izi sessizce başarısız olur: eksik bölgeler, kısa saklama süresi veya silinebilir depolama ancak bir olay sırasında fark edilir. Önce kapsam boşluklarını kapatın, kayıtları saldırganların ulaşamayacağı bir yere taşıyın ve izi düzenli olarak test edin.
Sık sorulan sorular
Bulut denetim kayıtları ne kadar süre saklanmalı?
Politikalarınızın ve mevzuatın gerektirdiği kadar; bir yıl yaygın bir asgari süredir ve bazı çerçeveler daha uzun süre gerektirir. Sağlayıcıların varsayılan saklama süresi çoğu zaman daha kısadır, bu nedenle aktarımı planlayın.
Değiştirilmeye karşı kanıt sunan (tamper-evident) denetim kaydı nedir?
Değiştirilmesi veya silinmesi tespit edilebilen bir kayıttır; örneğin imzalı digest dosyaları veya bir saklama süresi boyunca değişikliği engelleyen depolama sayesinde.
Kaynaklar
- [1] NIST SP 800-92: Guide to Computer Security Log Management — NIST Resmî dokümantasyon erişim:
- [2] CIS Critical Security Controls — Audit Log Management — Center for Internet Security İkincil kaynak erişim:
- [3] AWS CloudTrail User Guide — AWS Resmî dokümantasyon erişim:
- [4] Cloud Audit Logs overview — Google Cloud Resmî dokümantasyon erişim:
- [5] Azure Monitor activity log — Microsoft Resmî dokümantasyon erişim:
İlgili araştırmalar
Bulut güvenliği ve denetim
AWS CloudTrail alternatifleri: diğer bulutlarda ve OpenStack'te denetim kaydı
Google Cloud, Azure, OpenStack tabanlı bulutlar ve küçük sağlayıcılardaki CloudTrail karşılıkları; kapsam, kimlik, saklama, aktarım ve bütünlük açısından.
Bulut güvenliği ve denetim
Bulut aktivite izleme: denetim kayıtları, alarmlar ve metrikler nasıl bir araya gelir
Bulut denetim kaydı, aktivite izleme ve performans izleme arasındaki fark ve sağlayıcılar genelinde denetim olayları üzerine alarm kurmanın yolu.
Bulut güvenliği ve denetim
Bulut denetim kaydı karşılaştırması: CloudTrail, vTrail, Google Cloud Audit Logs ve Azure Activity Log
Bulut sağlayıcıları kimin neyi ne zaman yaptığını nasıl kaydeder: dört denetim kaydı servisinde kapsam, kimlik, istek meta verisi, saklama, aktarım ve bütünlük.
Depolama
S3 uyumlu nesne depolama: hangi bulutlar S3 API'yi destekler ve uyumluluk ne anlama gelir
Hangi bulut sağlayıcıları S3 uyumlu nesne depolama sunar, S3 uyumluluğu genellikle neyi kapsar, nerede yetersiz kalır ve geçişten önce nasıl test edilir.