AWS - CloudWatch Enum
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
CloudWatch, AWS kaynakları, uygulamalar ve hizmetler için birleşik bir görünüm sağlayarak günlükler/ölçümler/olaylar biçiminde izleme ve operasyonel veri toplar. CloudWatch Log Olaylarının her günlük satırı için 256KB boyut sınırlaması vardır. Yüksek çözünürlüklü alarmlar ayarlayabilir, günlükleri ve ölçümleri yan yana görselleştirebilir, otomatik eylemler alabilir, sorunları giderebilir ve uygulamaları optimize etmek için içgörüler keşfedebilirsiniz.
Örneğin CloudTrail'den günlükleri izleyebilirsiniz. İzlenen olaylar:
Güvenlik Grupları ve NACL'lerdeki değişiklikler
EC2 örneklerini başlatma, durdurma, yeniden başlatma ve sonlandırma
IAM ve S3 içindeki Güvenlik Politikalarındaki değişiklikler
AWS Yönetim Konsolu'na yapılan başarısız girişim denemeleri
Başarısız yetkilendirme ile sonuçlanan API çağrıları
CloudWatch'ta arama yapmak için filtreler: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
Bir ad alanı, CloudWatch ölçümleri için bir konteynırdır. Ölçümleri kategorize etmeye ve izole etmeye yardımcı olur, böylece yönetim ve analiz daha kolay hale gelir.
Örnekler: EC2 ile ilgili ölçümler için AWS/EC2, RDS ölçümleri için AWS/RDS.
Ölçümler, AWS kaynaklarının performansını veya kullanımını temsil eden zaman içinde toplanan veri noktalarıdır. Ölçümler, AWS hizmetlerinden, özel uygulamalardan veya üçüncü taraf entegrasyonlardan toplanabilir.
Örnek: CPUUtilization, NetworkIn, DiskReadOps.
Boyutlar, ölçümlerin bir parçası olan anahtar-değer çiftleridir. Bir ölçümü benzersiz bir şekilde tanımlamaya yardımcı olur ve ek bağlam sağlar; bir ölçüme iliştirilebilecek en fazla boyut sayısı 30'dur. Boyutlar ayrıca belirli özelliklere dayalı olarak ölçümleri filtrelemeye ve birleştirmeye olanak tanır.
Örnek: EC2 örnekleri için boyutlar InstanceId, InstanceType ve AvailabilityZone içerebilir.
İstatistikler, zaman içinde ölçüm verileri üzerinde yapılan matematiksel hesaplamalardır. Yaygın istatistikler arasında Ortalama, Toplam, Minimum, Maksimum ve Örnek Sayısı bulunur.
Örnek: Bir saatlik bir süre boyunca ortalama CPU kullanımını hesaplama.
Birimler, bir ölçümle ilişkili ölçüm türüdür. Birimler, ölçüm verilerine bağlam ve anlam sağlamaya yardımcı olur. Yaygın birimler arasında Yüzde, Bayt, Saniye, Sayım bulunur.
Örnek: CPUUtilization Yüzde olarak ölçülürken, NetworkIn Bayt olarak ölçülebilir.
CloudWatch Gösterge Panelleri, AWS CloudWatch ölçümlerinizin özelleştirilebilir görünümlerini sağlar. Farklı AWS hizmetlerinden çeşitli ölçümleri bir araya getirerek verileri görselleştirmek ve kaynakları tek bir görünümde izlemek için paneller oluşturup yapılandırmak mümkündür.
Anahtar Özellikler:
Widget'lar: Grafikler, metinler, alarmlar ve daha fazlasını içeren gösterge panellerinin yapı taşları.
Özelleştirme: Düzen ve içerik, belirli izleme ihtiyaçlarına göre özelleştirilebilir.
Örnek Kullanım Durumu:
EC2 örnekleri, RDS veritabanları ve S3 kovaları dahil olmak üzere tüm AWS ortamınız için anahtar ölçümleri gösteren tek bir gösterge paneli.
AWS CloudWatch'taki Ölçüm Akışları, CloudWatch ölçümlerini seçtiğiniz bir hedefe sürekli olarak akıtmanıza olanak tanır. Bu, AWS dışındaki araçlar kullanarak gelişmiş izleme, analiz ve özel paneller için özellikle yararlıdır.
Ölçüm Verisi, Ölçüm Akışları içindeki gerçek ölçümler veya akıtılan veri noktalarını ifade eder. Bu veri noktaları, AWS kaynakları için CPU kullanımı, bellek kullanımı vb. gibi çeşitli ölçümleri temsil eder.
Örnek Kullanım Durumu:
Gelişmiş analiz için gerçek zamanlı ölçümleri üçüncü taraf bir izleme hizmetine gönderme.
Uzun vadeli depolama ve uyumluluk için bir Amazon S3 kovasında ölçümleri arşivleme.
CloudWatch Alarmları, ölçümlerinizi izler ve önceden tanımlanmış eşiklere dayalı olarak eylemler gerçekleştirir. Bir ölçüm bir eşiği aşarsa, alarm bir veya daha fazla eylem gerçekleştirebilir, örneğin SNS aracılığıyla bildirim göndermek, otomatik ölçeklendirme politikasını tetiklemek veya bir AWS Lambda işlevi çalıştırmak.
Anahtar Bileşenler:
Eşik: Alarmın tetiklendiği değer.
Değerlendirme Dönemleri: Verilerin değerlendirildiği dönem sayısı.
Alarm için Veri Noktaları: Alarmı tetiklemek için gereken ulaşılmış eşik sayısı.
Eylemler: Bir alarm durumu tetiklendiğinde ne olacağı (örneğin, SNS aracılığıyla bildirim gönderme).
Örnek Kullanım Durumu:
EC2 örneği CPU kullanımını izleme ve 5 ardışık dakika boyunca %80'i aşarsa SNS aracılığıyla bildirim gönderme.
Anomali Tespit Cihazları, ölçümlerinizde otomatik olarak anormallikleri tespit etmek için makine öğrenimini kullanır. Anomali tespiti, sorunları gösterebilecek normal desenlerden sapmaları tanımlamak için herhangi bir CloudWatch ölçümüne uygulanabilir.
Anahtar Bileşenler:
Model Eğitimi: CloudWatch, normal davranışın neye benzediğini belirlemek için tarihsel verileri kullanarak bir model eğitir.
Anomali Tespit Bandı: Bir ölçüm için beklenen değer aralığını görsel olarak temsil eder.
Örnek Kullanım Durumu:
Bir EC2 örneğinde güvenlik ihlali veya uygulama sorunu gösterebilecek olağandışı CPU kullanım desenlerini tespit etme.
İçgörü Kuralları, ölçüm verilerinizdeki eğilimleri tanımlamanıza, zirveleri veya ilgi çekici diğer desenleri tespit etmenize olanak tanır; bu, eylemlerin alınması gereken koşulları tanımlamak için güçlü matematiksel ifadeler kullanır. Bu kurallar, kaynak performansını ve kullanımını izlerken anormallikleri veya olağandışı davranışları tanımlamanıza yardımcı olabilir.
Yönetilen İçgörü Kuralları, AWS tarafından sağlanan önceden yapılandırılmış içgörü kurallarıdır. Belirli AWS hizmetlerini veya yaygın kullanım durumlarını izlemek için tasarlanmıştır ve ayrıntılı yapılandırma gerektirmeden etkinleştirilebilir.
Örnek Kullanım Durumu:
RDS Performansını İzleme: CPU kullanımı, bellek kullanımı ve disk I/O gibi anahtar performans göstergelerini izleyen Amazon RDS için yönetilen bir içgörü kuralını etkinleştirme. Bu ölçümlerden herhangi biri güvenli operasyonel eşikleri aşarsa, kural bir uyarı veya otomatik hafifletme eylemi tetikleyebilir.
Uygulamalardan ve sistemlerden (CloudTrail dahil) AWS hizmetlerinden günlükleri toplayıp izlemeye olanak tanır ve uygulamalar/sistemler (CloudWatch Agent bir hosta kurulabilir). Günlükler süresiz olarak saklanabilir (Günlük Grubu ayarlarına bağlı olarak) ve dışa aktarılabilir.
Öğeler:
Günlük Grubu
Aynı saklama, izleme ve erişim kontrol ayarlarını paylaşan bir günlük akışları koleksiyonu
Günlük Akışı
aynı kaynaktan gelen günlük olaylarının bir dizisi
Abonelik Filtreleri
Belirli bir günlük grubundaki olayları eşleştiren bir filtre deseni tanımlar, bunları Kinesis Data Firehose akışına, Kinesis akışına veya bir Lambda işlevine gönderir
CloudWatch temel verileri her 5 dakikada toplar (detaylı olanı her 1 dakikada yapar). Toplamadan sonra, bir alarmı tetiklemek için eşikleri kontrol eder. Bu durumda, CloudWatch bir olayı göndermeye ve bazı otomatik eylemleri (AWS lambda işlevleri, SNS konuları, SQS kuyrukları, Kinesis Akışları) gerçekleştirmeye hazır olabilir.
Günlükleri otomatik olarak CloudWatch'a geri göndermek için makinelerinizde/konteynerlerinizde ajanlar kurabilirsiniz.
Bir rol oluşturun ve örneği CloudWatch'un örneklerden veri toplamasına izin veren izinlerle bağlayın (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM)
Ajanı EC2 örneğine indirin ve kurun (https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip). Bunu EC2 içinden indirebilir veya AWS Sistem Yöneticisi kullanarak otomatik olarak kurabilirsiniz, AWS-ConfigureAWSPackage paketini seçerek.
CloudWatch Agent'ı yapılandırın ve başlatın.
Bir günlük grubunun birçok akışı vardır. Bir akışın birçok olayı vardır. Ve her akışın içinde, olayların sıralı olması garanti edilir.
cloudwatch:DeleteAlarms
,cloudwatch:PutMetricAlarm
, cloudwatch:PutCompositeAlarm
Bu izinlere sahip bir saldırgan, bir organizasyonun izleme ve uyarı altyapısını önemli ölçüde zayıflatabilir. Mevcut alarmları silerek, bir saldırgan kritik performans sorunları, güvenlik ihlalleri veya operasyonel hatalar hakkında yöneticileri bilgilendiren önemli uyarıları devre dışı bırakabilir. Ayrıca, metrik alarmlarını oluşturarak veya değiştirerek, saldırgan yöneticileri yanlış uyarılarla yanıltabilir veya meşru alarmları susturabilir, böylece kötü niyetli faaliyetleri maskeleyebilir ve gerçek olaylara zamanında yanıt verilmesini engelleyebilir.
Ayrıca, cloudwatch:PutCompositeAlarm
izni ile bir saldırgan, bileşik alarm A'nın bileşik alarm B'ye, bileşik alarm B'nin de bileşik alarm A'ya bağlı olduğu bir döngü veya döngü oluşturma yeteneğine sahip olacaktır. Bu senaryoda, döngünün bir parçası olan herhangi bir bileşik alarmı silmek mümkün değildir çünkü silmek istediğiniz alarmla bağlı olan her zaman başka bir bileşik alarm vardır.
Aşağıdaki örnek, bir metrik alarmını etkisiz hale getirmenin nasıl yapılacağını göstermektedir:
Bu metrik alarmı, belirli bir EC2 örneğinin ortalama CPU kullanımını izler, metriği her 300 saniyede bir değerlendirir ve 6 değerlendirme dönemi gerektirir (toplam 30 dakika). Eğer ortalama CPU kullanımı bu dönemlerin en az 4'ünde %60'ı aşarsa, alarm tetiklenecek ve belirtilen SNS konusuna bir bildirim gönderecektir.
Eşiği %99'dan fazla olacak şekilde değiştirerek, Periyodu 10 saniye, Değerlendirme Dönemlerini 8640 (çünkü 8640 dönem 10 saniye, 1 güne eşittir) ve Alarm için Veri Noktalarını da 8640 olarak ayarlayarak, CPU kullanımının 24 saat boyunca her 10 saniyede bir %99'un üzerinde olması gerekecektir ki alarm tetiklenebilsin.
Potansiyel Etki: Kritik olaylar için bildirim eksikliği, potansiyel olarak tespit edilmemiş sorunlar, yanlış alarmlar, gerçek alarmları bastırma ve gerçek olayların tespit edilmesinin potansiyel olarak kaçırılması.
cloudwatch:DeleteAlarmActions
, cloudwatch:EnableAlarmActions
, cloudwatch:SetAlarmState
Alarm eylemlerini silerek, saldırgan kritik uyarıların ve otomatik yanıtların tetiklenmesini engelleyebilir; bu, bir alarm durumu ulaşıldığında yöneticileri bilgilendirmek veya otomatik ölçeklendirme faaliyetlerini başlatmak gibi durumları içerir. Alarm eylemlerini uygunsuz bir şekilde etkinleştirmek veya yeniden etkinleştirmek, daha önce devre dışı bırakılmış eylemleri yeniden etkinleştirerek veya hangi eylemlerin tetiklendiğini değiştirerek beklenmedik davranışlara yol açabilir; bu da olay yanıtında kafa karışıklığı ve yanlış yönlendirmeye neden olabilir.
Ayrıca, bu izne sahip bir saldırgan alarm durumlarını manipüle edebilir, yöneticileri oyalamak ve kafa karıştırmak için sahte alarmlar oluşturabilir veya devam eden kötü niyetli faaliyetleri veya kritik sistem arızalarını gizlemek için gerçek alarmları susturabilir.
Eğer bir bileşik alarmda SetAlarmState
kullanırsanız, bileşik alarmın gerçek durumuna geri dönmesi garanti edilmez. Gerçek durumuna yalnızca çocuk alarmlarından herhangi biri durum değiştirirse geri döner. Ayrıca, yapılandırmasını güncellediğinizde yeniden değerlendirilir.
Potansiyel Etki: Kritik olaylar için bildirim eksikliği, potansiyel olarak tespit edilemeyen sorunlar, yanlış alarmlar, gerçek alarmları bastırma ve gerçek olayların potansiyel olarak kaçırılması.
cloudwatch:DeleteAnomalyDetector
, cloudwatch:PutAnomalyDetector
Bir saldırgan, metrik verilerdeki olağandışı desenleri veya anormallikleri tespit etme ve bunlara yanıt verme yeteneğini tehlikeye atabilir. Mevcut anomali dedektörlerini silerek, bir saldırgan kritik uyarı mekanizmalarını devre dışı bırakabilir; ve bunları oluşturarak veya değiştirerek, izlemeyi dikkatini dağıtmak veya aşırı yüklemek amacıyla yanlış yapılandırabilir veya yanlış pozitifler oluşturabilir.
Aşağıdaki örnek, bir metrik anomali dedektörünü etkisiz hale getirmenin nasıl yapılacağını göstermektedir. Bu metrik anomali dedektörü, belirli bir EC2 örneğinin ortalama CPU kullanımını izler ve yalnızca istenen zaman aralığı ile “ExcludedTimeRanges” parametresini eklemek, anomali dedektörünün o süre zarfında ilgili verileri analiz etmemesini veya uyarı vermemesini sağlamak için yeterlidir.
Potansiyel Etki: Olağandışı desenlerin veya güvenlik tehditlerinin tespitinde doğrudan etki.
cloudwatch:DeleteDashboards
, cloudwatch:PutDashboard
Bir saldırgan, panoları oluşturarak, değiştirerek veya silerek bir organizasyonun izleme ve görselleştirme yeteneklerini tehlikeye atabilir. Bu izinler, sistemlerin performansı ve sağlığı hakkında kritik görünürlüğü kaldırmak, panoları yanlış veriler gösterecek şekilde değiştirmek veya kötü niyetli faaliyetleri gizlemek için kullanılabilir.
Potansiyel Etki: İzleme görünürlüğünün kaybı ve yanıltıcı bilgiler.
cloudwatch:DeleteInsightRules
, cloudwatch:PutInsightRule
,cloudwatch:PutManagedInsightRule
Insight kuralları anormallikleri tespit etmek, performansı optimize etmek ve kaynakları etkili bir şekilde yönetmek için kullanılır. Mevcut insight kurallarını silerek, bir saldırgan kritik izleme yeteneklerini ortadan kaldırabilir ve sistemi performans sorunları ve güvenlik tehditlerine karşı kör bırakabilir. Ayrıca, bir saldırgan yanıltıcı veriler oluşturmak veya kötü niyetli faaliyetleri gizlemek için insight kurallarını oluşturabilir veya değiştirebilir, bu da yanlış tanılara ve operasyon ekibinden uygunsuz tepkilere yol açabilir.
Potansiyel Etki: Performans sorunlarını ve anormallikleri tespit etme ve yanıt verme zorluğu, yanlış bilgilendirilmiş karar verme ve potansiyel olarak kötü niyetli faaliyetleri veya sistem arızalarını gizleme.
cloudwatch:DisableInsightRules
, cloudwatch:EnableInsightRules
Kritik içgörü kurallarını devre dışı bırakarak, bir saldırgan organizasyonu ana performans ve güvenlik metriklerine karşı etkili bir şekilde kör edebilir. Tersine, yanıltıcı kuralları etkinleştirerek veya yapılandırarak, yanlış veriler oluşturmak, gürültü yaratmak veya kötü niyetli faaliyetleri gizlemek mümkün olabilir.
Potansiyel Etki: Operasyon ekibi arasında kafa karışıklığına yol açarak, gerçek sorunlara gecikmiş yanıtlar ve yanlış uyarılara dayalı gereksiz eylemlere neden olabilir.
cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
, cloudwatch:PutMetricData
cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
izinlerine sahip bir saldırgan, metrik veri akışlarını oluşturup silerek güvenlik, izleme ve veri bütünlüğünü tehlikeye atabilir:
Kötü niyetli akışlar oluşturma: Hassas verileri yetkisiz hedeflere göndermek için metrik akışları oluşturma.
Kaynak manipülasyonu: Aşırı veri ile yeni metrik akışlarının oluşturulması, çok fazla gürültü üretebilir ve yanlış uyarılara neden olarak gerçek sorunları gizleyebilir.
İzleme kesintisi: Metrik akışlarını silerek, saldırganlar izleme verilerinin sürekli akışını kesintiye uğratır. Bu şekilde, kötü niyetli faaliyetleri etkili bir şekilde gizlenir.
Benzer şekilde, cloudwatch:PutMetricData
izni ile bir metrik akışına veri eklemek mümkün olacaktır. Bu, eklenen uygunsuz veri miktarı nedeniyle bir DoS'a yol açabilir ve tamamen işe yaramaz hale getirebilir.
Aşağıdaki EC2 örneği için %70 CPU kullanımına karşılık gelen verilerin eklenmesi örneği:
Potansiyel Etki: İzleme verilerinin akışında kesinti, anormalliklerin ve olayların tespitini etkileyerek, kaynak manipülasyonu ve aşırı metrik akışlarının oluşturulması nedeniyle maliyetlerin artmasına neden olur.
cloudwatch:StopMetricStreams
, cloudwatch:StartMetricStreams
Bir saldırgan, etkilenen metrik veri akışlarının akışını kontrol edebilir (kaynak kısıtlaması yoksa her veri akışı). cloudwatch:StopMetricStreams
izni ile, saldırganlar kritik metrik akışlarını durdurarak kötü niyetli faaliyetlerini gizleyebilir.
Potansiyel Etki: İzleme verilerinin akışında kesinti, anormalliklerin ve olayların tespitini etkileyebilir.
cloudwatch:TagResource
, cloudwatch:UntagResource
Bir saldırgan, CloudWatch kaynaklarından (şu anda yalnızca alarmlar ve Contributor Insights kuralları) etiket ekleyebilir, değiştirebilir veya kaldırabilir. Bu, etiketlere dayalı olarak organizasyonunuzun erişim kontrol politikalarını etkileyebilir.
Potansiyel Etki: Etiket tabanlı erişim kontrol politikalarının kesintiye uğraması.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)