AWS’de Kimse Fark Etmeden Hiçbir Şey Hareket Etmez: Tehdit Algılama Kılavuzu
Bu sefer konu, resmi adıyla “Tehdit Algılama ve Olay Müdahalesi” alanının “AWS bunu nasıl fark eder ki?” kısmını oluşturan Tehdit Algılama. Bilerek “fark etme” kısmında duruyorum. Bir bulgu ortaya çıktıktan sonra neler olduğu, oyun kitapları, otomatik düzeltme ve gerçek olay müdahale mekanizması ise bambaşka bir konudur ve kendi notlarında ele alınır. İkisini karıştırmak her ikisini de bulanıklaştırır, bu yüzden bu yazıda kasıtlı olarak dar bir alana odaklanacağım: tek görevi izlemek, kaydetmek ve uyarıda bulunmak olan sekiz hizmet.
Bunu, çok spesifik bir iş bölümü olan bir gözetim sistemi olarak düşünün. Bazı parçalar kameralardır. Bazıları arşivdir. Biri ise kayıtları gerçekten inceleyen dedektiftir. Hadi kadroyla tanışalım.
Hadi derinlemesine inceleyelim🙌
Güvenlik Merkezi: Durum Odası
Security Hub kendi başına hiçbir şeyi tespit etmez ve bu, açıklığa kavuşturulması gereken ilk konudur. Bu bir toplama katmanıdır. GuardDuty, Inspector, Macie, Firewall Manager, IAM Access Analyzer, SSM Patch Manager; hepsi bulgularını buraya iletir ve Security Hub, bunları sabahın 2’sinde açık olan beş tarayıcı sekmesi yerine tek bir görünümde birleştirir. Arka planda, kendi sürekli denetimleri için AWS Config kurallarına dayanır ve sonuçları EventBridge aracılığıyla gönderir; otomasyondan bahsediyorsak, otomasyon kısmı burada yer alır.
Etkinleştirdiğiniz anda üç standart otomatik olarak kontrol edilir ve bunlar sınavda açıklama yerine adlarıyla yer alır:
- AWS Temel Güvenlik En İyi Uygulamaları v1.0, temel kriterler: MFA, parola politikası, halka açık S3 kovaları olmaması
- CIS AWS Foundations Benchmark v1.2: Günlük kaydı ve izleme temelleri
- PCI DSS v3.2.1, ortamınızda kart verileri varsa
Unutulmaması gereken tek cümle: Security Hub, diğer tespit kontrolleri bir araya getiren bir tespit kontrolüdür. O, saha ajanı değil, durum odasıdır.
GuardDuty: Asla Uyumayan Bekçi
GuardDuty, saha ajanıdır. İki algılama motorunu paralel olarak çalıştırır: Threat Intelligence, faaliyetlerinizi bilinen kötü niyetli IP'ler, etki alanları ve URL'lerle (AWS, CrowdStrike, Proofpoint ve diğer kaynaklardan gelen veriler) karşılaştırır; ML / Anomaly Detection ise hesabınız için "normal" durumun neye benzediğine dair bir temel oluşturur ve bir şey bu temelden saptığı anda bunu işaretler.
Bu özelliği etkinleştirdiğiniz anda üç veri kaynağı zorunludur: VPC Akış Günlükleri, CloudTrail (yönetim ve veri olayları) ve DNS sorgu günlükleri. Bunların ötesindeki her şey isteğe bağlı bir Koruma Planı kapsamında yer alır ve işte kullanıcıları gerçekten yanıltan ayrıntı da budur: bir tanesi hariç tüm koruma planları varsayılan olarak etkindir. EKS Çalışma Zamanı Koruması, kümenize yüklenmiş gerçek bir ajan eklentisi gerektirir; bu nedenle manuel olarak etkinleştirmeniz gereken tek plandır. Buna karşılık, EKS denetim günlükleri otomatiktir. Aynı hizmet, iki varsayılan ayar; hangisinin hangisi olduğunu bilin.
Ad bulma sözdizimi, bir tanesini çözene kadar göz korkutucu görünebilir:
ThreatPurpose:ResourceTypeAffected/ThreatFamilyName.DetectionMechanism!Artifact
CryptoCurrency:EC2/BitcoinTool.B!DNS şu anlama gelir: EC2 örneğinde, bilinen bir bitcoin madenciliği araç ailesinden kaynaklanan kripto para suistimali, kötü amaçlı bir etki alanına yapılan DNS araması yoluyla tespit edilmiştir. Bir tanesini çözdüğünüzde, geri kalanları kendiliğinden anlaşılır hale gelir.
Ciddiyet derecesi sayısaldır ve tam olarak ezberlemeye değer: 7,0–8,9 Yüksek (güvenlik ihlali olduğu varsayılır, hemen harekete geçin), 4,0–6,9 Orta (temel durumdan sapma, göz ardı edilirse kötüleşir), 1,0–3,9 Düşük (zaten engellenmiş, sadece bir veri noktası). İki tuhaf derecede spesifik sınırlama: bölge başına hesap başına yalnızca bir aktif Güvenilir IP listesi, ancak aynı anda en fazla altı aktif Tehdit Listesi; AWS açıkça, beyaz listeye eklemeyi idareli, engelleme listesine eklemeyi ise cömertçe yapmanızı bekliyor.
Çoklu hesap kurulumlarında, bir hesap yönetici olur, geri kalanlar üye olur; bulgular otomatik olarak yukarıya aktarılır ve bu aktarım, AWS Organizations aracılığıyla (önerilen yöntem; yetki devri yapılmış bir yönetici vasıtasıyla) veya kuruluş dışındaki hesaplar için manuel davetler yoluyla gerçekleştirilir. Ve hatırlamaya değer bir izin tuzağı: AmazonGuardDutyFullAccess, Malware Protection hizmetine bağlı rolün oluşturulmasını içerir, ancak Güvenilir IP veya Tehdit Listesi yükleme iznini içermez; bu, ayrı ve daha dar kapsamlı bir yetkilendirmedir.
Tüm bunları somutlaştıran bir rakam: us-east-1'de 55 milyon CloudTrail olayı aylık yaklaşık 220 $'a mal olur; 500 GB VPC Flow ve DNS günlüğü 500 $ ekler; S3 ve EKS koruması da birkaç dolar daha ekleyerek toplamda aylık yaklaşık 727 $'a ulaşır. S3 kovasının bir aydır sessizce kripto madenciliği yaptığını fark etmenize karşı ucuz bir sigorta.
Yukarıdaki şema, baştan sona gerçekçi bir zinciri adım adım göstermektedir: sızdırılmış bir IAM erişim anahtarı, kripto madenciliği yapmak üzere başlatılan bir EC2 örneği ve bunu tespit eden GuardDuty bulgusu. Kırmızı GuardDuty kutusuna kadar olan her şeyin yarısı algılamadan ibarettir; bu yazının asıl konusu da budur. Ondan sonraki her şey (Incident Manager, Systems Manager aracılığıyla karantina, güvenilir bir AMI'dan yeniden kurulum, kimlik bilgilerinin değiştirilmesi) düzeltme işlemleridir ve bunlar kendi kılavuzlarıyla ayrı bir yazının konusudur. Buraya, alarmın çalmasıyla her şeyin aniden durmuş gibi bir izlenim vermemesi için eklenmiştir.
Detective: Dava Dosyasını Gerçekten Okuyan Kişi

Amazon Detective, “şüpheli bir oturum açma var” bilgisinin yeterli olmadığı ve bu oturumun nelere eriştiğini, neyle iletişim kurduğunu ve ne kadar geriye gittiğini bilmeniz gereken anlar için vardır. CloudTrail yönetim olaylarını, VPC akış verilerini, GuardDuty ve Security Hub bulgularını ve EKS denetim günlüklerini otomatik olarak alır; ayrı bir CloudTrail veya VPC Akış Günlüğü kurulumu gerekmez ve tüm bunları bir davranış grafiğine dönüştürür: varlıklar (hesaplar, kullanıcılar, roller, IP'ler, örnekler) ilişkilerle birbirine bağlanır (bir IP'nin bir örneğe erişmesi, bir rolün başka bir rolü üstlenmesi gibi).
Ön koşul zinciri, sınavlarda sıkça sorulan bir tuzaktır: GuardDuty’nin önceden etkinleştirilmiş olması gerekir ve Detective ancak bundan 48 saat sonra etkinleştirilebilir. Bu işlem bölgeye özgüdür; dolayısıyla çok bölgeli iş yükleri söz konusu olduğunda, her bölge için ayrı bir grafik oluşturularak bölge bazında etkinleştirilmesi gerekir. Bundan iki hafta sonra, gerçek bir tarihsel temel oluşturmaya başlar.
Bilmeniz gereken rakamlar: davranış grafiği başına en fazla 1.200 üye hesabı, verilerin tam bir yıl boyunca saklanması ve hacme göre ölçeklenen fiyatlandırma. AWS, us-east-1 bölgesinde 500 GB için aylık yaklaşık 1.000 $, 10.000 GB’da 8.500 $’a ve 20.000 GB’da 11.000 $’a çıkacağını tahmin ediyor.
Temel bilgilerin ötesinde bilinmesi gereken bir özellik de Finding Groups’tur: Bu özellik, makine öğrenimi ve grafik analizini kullanarak potansiyel olarak binlerce ayrı bulguyu, ilgili gerçek taktikler, ilk erişim, ayrıcalık yükseltme, savunma atlatma, yanal hareket ve veri sızdırma ile etiketlenmiş tek bir bağlantılı güvenlik olayı altında toplar. Detective, kırk bulguyu manuel olarak bir hikayeye dönüştürmek yerine, size zaten birleştirilmiş hikayeyi sunar.
Inspector: Eski CVE’lere Tahammül Göstermeyen Tarayıcı
Amazon Inspector, EC2, ECR konteyner görüntülerini ve Lambda’yı bilinen güvenlik açıkları açısından tarar; burada önemli olan mimari ayrıntı, mevcut sürümün, kullanımdan kaldırılan “Inspector Classic”in çalışma şeklinin tam tersine, özel bir Inspector ajanı yerine SSM Ajanı üzerinde çalışmasıdır. Keşif ve tarama tamamen otomatiktir; planlama gerektirmez; bir kaynak değişirse, kendi kendine yeniden taranır. Ciddiyet derecesi, Ulusal Güvenlik Açığı Veritabanına göre standart CVSS puanlamasıyla belirlenir.
Bulgular üç durumdan birinde yer alır ve bu ayrım, sıkça düşülen bir tuzaktır: "Aktif", bulgunun gerçek ve çözülmemiş olduğu anlamına gelir; "Gizlenmiş", bulguyu açıkça gizlediğiniz anlamına gelir (bulgu hâlâ oluşturulur, sadece gösterilmez); "Kapatılmış" ise Inspector'ın düzeltmeyi doğruladığı anlamına gelir; bir bulguyu asla manuel olarak kapatmazsınız. Gizleme, görünürlüğü engeller; altta yatan algılama üzerinde herhangi bir etki yaratmaz.
AWS Config: Her Şeyi Hatırlayan Defter
AWS Config varsayılan olarak kapalıdır; atılacak ilk gerçek adım, bir Config Recorder kurmaktır. Çalışmaya başladığında, her kaynak bir Yapılandırma Öğesi alır: meta veriler, öznitelikler, diğer kaynaklarla ilişkiler ve mevcut yapılandırma; hepsi JSON biçimindedir.
Sınavlarda sürekli olarak karşımıza çıkan ayrım şudur:
- Yapılandırma Geçmişi: Belirli bir kaynağa ait zaman çizelgesidir ve her altı saatte bir S3'e aktarılır
- Yapılandırma Anlık Görüntüsü, hesaptaki her kaynağın belirli bir andaki durumunun, isteğe bağlı veya zamanlanmış olarak yakalanması
Çoklu hesap veya çoklu bölge görünürlüğü, her şeyi tek bir yere toplayan bir Aggregator aracılığıyla sağlanır. Yapılandırma Kuralları, 55'ten fazla hizmette 320'den fazla AWS tarafından yönetilen seçeneği sunar ve uyumluluk durumu "Uyumlu", "Uyumsuz" veya "Yetersiz Veri" (kural hiç çalıştırılmadı, özel bir Lambda sessizce hata veriyor veya kaynak silindi) olarak belirlenir. Özel kurallar, isteğe bağlı olarak Rule Development Kit ile iskeleti oluşturulmuş bir Lambda fonksiyonundan veya CloudFormation Guard'dan gelir; hatırlanmaya değer tek istisna şudur: Config yalnızca halihazırda var olan kaynakları değerlendirir (tespit edici), oysa cfn-guard, dağıtımdan önce IaC şablonlarını doğrular (proaktif).
Her şeyden önce akılda tutulması gereken cümle şudur: Config, uyumlu olmayan bir kaynağın oluşturulmasını asla engellemez. Bu, bir denetleyici değil, tamamen görünürlük sağlar. Bu ayrım tek başına, şaşırtıcı sayıda sınav sorusunun cevabını verir.
CloudTrail: Uçuş Kayıt Cihazı
CloudTrail, her API çağrısını günlüğe kaydeder ve bunları ayırt edilmesi gereken üç olay türüne ayırır: Yönetim Olayları (hesap düzeyinde işlemler, varsayılan olarak etkindir), Veri Olayları (S3 GetObject gibi kaynak düzeyinde, hacim nedeniyle ayrı olarak etkinleştirilir) ve Insight Olayları (anormal Write API davranışı, varsayılan olarak devre dışıdır ve varlığı kolayca unutulabilir).
Trail'ler üç türde gelir: Tüm Bölgeler (önerilen varsayılan ayar), Tek Bölge (yalnızca CLI'da, kasıtlı olarak dar kapsamlı) ve Kuruluş Trail'i (Yönetim hesabından oluşturulur, kuruluş genelinde geçerlidir; üye hesaplar görüntüleyebilir ancak asla değiştiremez).
Kullanıcıları hazırlıksız yakalayan bir rakam: Konsolun Olay Geçmişi yalnızca 90 gün boyunca saklanır. Bunun ötesinde, S3’e veya CloudWatch Logs’a yazılan gerçek bir İz gereklidir; işte bu nedenle İzler ayrı bir kavram olarak mevcuttur.
Her olayın içinde, diğerlerine göre daha önemli olan birkaç alan vardır: userIdentity (kim), eventTime / eventSource / eventName (ne zaman, hangi hizmet, hangi eylem), sourceIPAddress (nereden), responseElements (başarılı mı, başarısız mı) ve readOnly (okuma için true, yazma için false; false değerini bir hata olarak algılamayın). IAM tarafında: CloudTrailServiceRolePolicy, yalnızca CloudTrail'in kendi hizmet bağlantılı rolü için mevcuttur; AWSCloudTrail_FullAccess, iz yönetimini ve bunun S3/SNS/CloudWatch/KMS bağımlılıklarını kapsar; AWSCloudTrail_ReadOnlyAccess ise sizi Get, Describe, List ve LookupEvents ile sınırlar.
CloudTrail Lake: Kara Kutuyu Sorgulanabilir Bir Veritabanına Dönüştürme

CloudTrail Lake, belirli bir sıkıntıyı ortadan kaldırır: Standart CloudTrail, size S3'te bir yığın JSON sunar ve gerçek analiz genellikle Athena veya benzeri bir aracı kendiniz entegre etmenizi gerektirir. Lake bu adımı ortadan kaldırır; CloudTrail olayları, CloudTrail Insights ve AWS Config öğeleri (ayrıca üçüncü taraf kaynaklar) için, düz SQL ile sorgulanabilen ve 10 yıla kadar saklanan, değiştirilemez bir veri gölü sunar.
Kurulum iki adımdan oluşur. İlk olarak, bir Olay Veri Deposu: neyin alınacağı, ne kadar süreyle saklanacağı, hangi hesaplar ve bölgeler. Buradaki fiyatlandırma seçeneği bir formalite değildir: bir yıllık uzatılabilir saklama süresi, kullandıkça öde modeline geçmeden önce 366 gün ücretsiz kullanım sağlar ve bu, aylık 25 TB’nin altındaki kullanımlarda, Config veya üçüncü taraf beslemeleri gibi karışık kaynaklar söz konusu olduğunda ya da yedi yılı aşan saklama süresine ihtiyaç duyduğunuzda doğru tercihtir. Yedi yıllık saklama süresi, depolama maliyetini tamamen ortadan kaldırır ve yalnızca veri alımı için faturalandırma yapar; ancak bu, yalnızca aylık 25 TB sınırını aştığınızda karlı hale gelir. Düşük hacimli bir hesapta yedi yıllık seçeneği tercih etmek para tasarrufu sağlamaz, sadece ihtiyacınız olmayan bir süre aralığına sizi bağlar.
İkincisi, sorgulama. Ne istediğinizi biliyorsanız ancak tam şemayı bilmiyorsanız, elle yazdığınız SQL veya üretken yapay zeka tarafından çevrilen sade İngilizce kullanabilirsiniz. Sonuçlar çubuk, çizgi veya pasta grafikler olarak görselleştirilir, düz metin halinde otomatik olarak özetlenir ve yeniden kullanım için kaydedilir. Kesinlikle akılda tutulması gereken fatura detayı şudur: sorgu yazmak, kaydetmek ve yapay zeka tarafından oluşturulmasına hiçbir ücret ödenmez; yalnızca bir sorguyu gerçekten çalıştırdığınızda, gigabayt başına taranan verilere göre faturalandırılırsınız.
CloudWatch: Nabız Monitörü

CloudWatch, daha geniş kapsamlı bir gözlemlenebilirlik katmanıdır ve burada en çok önem verdiğimiz kısım, CloudTrail verilerini eyleme geçirilebilir uyarılara dönüştürmektir. Başarısız bir konsol oturum açma girişimini ele alalım: CloudTrail bunu bir yönetim olayı olarak kaydeder, bir Metrik Filtresi o CloudTrail günlük grubunu bu örüntü açısından tarar ve bunu bir eşik değerine dahil eder; bu eşik değeri aşıldığında Alarm durumu "OK"den çıkar. Alarmlar üç durumdan birinde bulunur: OK, ALARM veya INSUFFICIENT_DATA (yeni başlamış veya değerlendirmemiz için henüz yeterli veri yok).
Bu durum değişikliği öylece kalmaz; CloudWatch bunu otomatik olarak bir olay olarak yayar ve EventBridge, bu olayla ilgili fiilen bir işlem yapmak için kullandığımız araçtır. Bir Kural, gelen olayları (alarm durum değişiklikleri dahil) filtreler ve bunları bir Olay Veriyolu aracılığıyla bir veya daha fazla Hedefe dağıtır; bizim durumumuzda, bir sayfa için SNS, otomatik düzeltme için Lambda, başka bir sistemin daha sonra alacağı bir kuyruk için SQS kullanılır; bunların tümü aynı alarmdan gelir ve bizim tarafımızda ek bir bağlantı kurulmasına gerek yoktur. Contributor Insights, “bu kuralı en çok kim tetikliyor?” sorusuna yanıt verir; kullanıma hazır, CIS ile uyumlu örnek kurallar sunar. Log Insights ise, günlükleri incelemek için özel olarak tasarlanmış bir sorgu dili sağlar ve bu veriler CSV, JSON veya XLSX formatlarında dışa aktarılabilir.
Unutulmaması gereken fiyatlandırma detayı: ilk 3 gösterge tablomuz ve 50 metrik ücretsizdir; bunun ötesindeki her gösterge tablosu bize aylık 3 $'a mal olur. Bir kurumsal şirket için önemsiz bir miktar olsa da, kişisel bir test hesabında sessizce biriken türden bir masraftır.
Hikayenin Aslında Bittiği Yer (Şimdilik)
Bu sekiz öğeyi yan yana dizdiğinizde bir şekil ortaya çıkar: bazıları sinyal üretir (GuardDuty, Inspector, Config, CloudTrail), bazıları bu sinyalleri toplar ve normalleştirir (Security Hub, CloudWatch), bazıları ise bağlam ve anlatı ekler (Detective, CloudTrail Lake). Bu listede neyin eksik olduğuna dikkat edin: burada hiçbir şey eyleme geçmiyor. Kimse bir örneği izole etmiyor, kimlik bilgilerini iptal etmiyor veya adli bir anlık görüntü oluşturmuyor. İşte burada çizgiyi çekmenin asıl amacı da budur; algılama, AWS’nin size omzunuza dokunduğu kısımdır. Bundan sonra yapacağınız şey, tamamen farklı bir alandır ve kendi oyun kitapları ile kendi otomasyonuna sahiptir.

Kaynakça
- AWS Security Hub nedir?
- Amazon GuardDuty nedir?
- GuardDuty bulgu türleri
- Amazon GuardDuty fiyatlandırması
- Amazon Detective nedir?
- Amazon Detective fiyatlandırması
- Amazon Inspector nedir?
- AWS Config nedir?
- AWS CloudTrail Kullanıcı Kılavuzu
- AWS CloudTrail Lake ile çalışma
- Amazon CloudWatch nedir?
- AWS Sertifikalı Güvenlik — Uzmanlık (SCS-C03) Sertifika Hazırlığı
Bu yazı işinize yaradıysa paylaşmayı veya logdaki diğer yazıları keşfetmeyi düşünebilirsiniz.