AWS - CloudTrail Enum
CloudTrail
AWS CloudTrail, AWS ortamınızda gerçekleşen etkinlikleri kaydedip izler. AWS kaynaklarıyla gerçekleştirilen tüm etkileşimler için kimin ne yaptığını, ne zaman yaptığını ve nereden yaptığını içeren ayrıntılı etkinlik günlüklerini yakalar. Bu, değişikliklerin ve eylemlerin denetim izini, güvenlik analizi, uyumluluk denetimi ve kaynak değişiklik izleme için yardımcı olur. CloudTrail, kullanıcı ve kaynak davranışını anlamak, güvenlik durumlarını geliştirmek ve düzenleyici uyumluluğu sağlamak için önemlidir.
Her kaydedilen etkinlik aşağıdakileri içerir:
Çağrılan API'nin adı:
eventName
Çağrılan hizmet:
eventSource
Zaman:
eventTime
IP adresi:
SourceIPAddress
Ajan yöntemi:
userAgent
. Örnekler:Signing.amazonaws.com - AWS Yönetim Konsolu'ndan
console.amazonaws.com - Hesabın kök kullanıcısı
lambda.amazonaws.com - AWS Lambda
İstek parametreleri:
requestParameters
Yanıt öğeleri:
responseElements
Etkinlikler, yaklaşık olarak her 5 dakikada bir JSON dosyasında yeni bir günlük dosyasına yazılır, CloudTrail tarafından tutulur ve sonunda günlük dosyaları yaklaşık 15 dakika sonra S3'e teslim edilir. CloudTrail günlükleri, hesaplar ve bölgeler arasında birleştirilebilir. CloudTrail, size teslim edildikten sonra günlük dosyalarınızın değişmediğini doğrulamak için günlük dosyası bütünlüğünü kullanmanıza olanak sağlar. Günlüklerin içindeki bir özet dosyasının SHA-256 karma değeri oluşturur. Yeni günlüklerin SHA-256 karma değeri her saat başı oluşturulur. Bir Trail oluştururken etkinlik seçicileri, kaydedilecek izi belirtmenize olanak tanır: Yönetim, veri veya içgörü etkinlikleri.
Günlükler bir S3 kovasında saklanır. Varsayılan olarak Sunucu Tarafı Şifreleme (SSE-S3) kullanılır, bu nedenle AWS, içeriği erişimi olan kişiler için şifresini çözer, ancak ek güvenlik için KMS ile SSE kullanabilir ve kendi anahtarlarınızı kullanabilirsiniz.
Günlükler, aşağıdaki ad biçimine sahip bir S3 kovasında saklanır:
BucketAdı/AWSLogs/HesapID/CloudTrail/BölgeAdı/YYY/AA/GG
BucketAdı:
aws-cloudtrail-logs-<hesapID>-<rastgele>
Örnek:
aws-cloudtrail-logs-947247140022-ffb95fe7/AWSLogs/947247140022/CloudTrail/ap-south-1/2023/02/22/
Her klasörün içindeki her günlüğün bir adı bu formatta olacaktır: HesapID_CloudTrail_BölgeAdı_YYYYAAGGTSSSZ_Rastgele.json.gz
Günlük Dosyası Adlandırma Kuralı
Ayrıca, dosya bütünlüğünü kontrol etmek için (özet dosyaları) aynı kovada olacak:
Birden Fazla Hesaptan Günlükleri Birleştirme
Günlük dosyalarının teslim edileceği AWS hesabında bir Deneme oluşturun
CloudTrail için çapraz hesap erişimine izin vermek için hedef S3 kovasına izinleri uygulayın ve erişime ihtiyaç duyan her AWS hesabına izin verin
Diğer AWS hesaplarında yeni bir Trail oluşturun ve 1. adımda oluşturulan kovayı kullanmayı seçin
Ancak, aynı S3 kovasına tüm günlükleri kaydedebilirsiniz, ancak birden fazla hesaptan gelen CloudTrail günlüklerini tek bir AWS hesabına ait bir CloudWatch Günlüklerine birleştiremezsiniz.
Bir hesap, aynı (veya farklı) günlükleri farklı kovalarda saklayan CloudTrail'den farklı Trailsa sahip olabilir.
Tüm org hesaplarından Cloudtrail'ı 1'e
CloudTrail oluştururken, orgdaki tüm hesaplar için cloudtrail'ı etkinleştirmek ve günlükleri yalnızca 1 kovada almak mümkündür:
Bu şekilde, tüm hesapların tüm bölgelerinde CloudTrail'ı kolayca yapılandırabilir ve günlükleri 1 hesapta (korumanız gereken hesap) merkezileştirebilirsiniz.
Günlük Dosyalarını Kontrol Etme
Günlüklerin değiştirilmediğini kontrol etmek için aşağıdaki komutu çalıştırabilirsiniz:
CloudWatch'a Günlükler
CloudTrail, şüpheli faaliyetler gerçekleştirildiğinde sizi uyaracak olan bir uyarı ayarlayabilmeniz için günlükleri otomatik olarak CloudWatch'a gönderebilir. CloudTrail'ın günlükleri CloudWatch'a göndermesine izin vermek için bir rol oluşturulması gerekmektedir. Mümkünse, bu işlemleri gerçekleştirmek için AWS varsayılan rolünü kullanmanız önerilir. Bu rol, CloudTrail'in aşağıdaki işlemleri gerçekleştirmesine izin verecektir:
CreateLogStream: CloudWatch Günlükleri günlük akışı oluşturmayı sağlar
PutLogEvents: CloudTrail günlüklerini CloudWatch Günlükleri günlük akışına iletmeyi sağlar
Olay Geçmişi
CloudTrail Olay Geçmişi, kaydedilen günlükleri bir tabloda incelemenizi sağlar:
İncelemeler
CloudTrail İncelemeleri, CloudTrail izlerinden yazma yönetimi olaylarını otomatik olarak analiz eder ve olağandışı faaliyetleri size bildirir. Örneğin, belirlenen temel çizgilerden farklılık gösteren TerminateInstance
olaylarında bir artış varsa, bunu bir İnceleme olayı olarak göreceksiniz. Bu olaylar, olağandışı API faaliyetlerini bulmayı ve yanıtlamayı daha kolay hale getirir.
İncelemeler, CloudTrail günlükleriyle aynı kovette saklanır: BucketAdı/AWSLogs/HesapID/CloudTrail-Insight
Güvenlik
CloudTrail Günlük Dosyası Bütünlüğü |
|
Yetkisiz erişimi durdurun |
|
Günlük dosyalarının silinmesini önleyin |
|
Erişim Danışmanı
AWS Erişim Danışmanı, son 400 günlük AWS CloudTrail günlüklerine dayanarak bilgilerini toplar. CloudTrail, bir AWS hesabında yapılan AWS API çağrılarının ve ilgili olayların bir geçmişini kaydeder. Erişim Danışmanı, bu verileri kullanarak bir IAM kullanıcısının veya rolünün hangi AWS hizmetlerine eriştiğini ve bu erişimin ne zaman gerçekleştiğini belirleyebilir. Bu, AWS yöneticilerinin izinleri geliştirmeye yönelik bilinçli kararlar vermelerine yardımcı olur, çünkü uzun süre erişilmemiş hizmetleri belirleyebilir ve gerçek kullanım modellerine dayanarak aşırı geniş izinleri azaltabilirler.
Bu nedenle, Erişim Danışmanı, kullanıcılara gereksiz izinlerin verildiği konusunda bilgi verir, böylece yönetici bunları kaldırabilir.
Eylemler
Numaralandırma
CSV Enjeksiyonu
CloudTrail içinde CVS enjeksiyonu gerçekleştirmek mümkündür. Eğer günlükler CSV olarak dışa aktarılıp Excel ile açılırsa, keyfi kod yürütme gerçekleştirilebilir. Aşağıdaki kod, payload içeren hatalı bir Trail adıyla bir günlük girişi oluşturacaktır:
Daha fazla CSV Enjeksiyonu hakkında bilgi için sayfayı kontrol edin:
Bu özel teknik hakkında daha fazla bilgi için https://rhinosecuritylabs.com/aws/cloud-security-csv-injection-aws-cloudtrail/ adresini kontrol edin.
Tespiti Atlatma
HoneyTokens atlatma
HoneyTokens, duyarlı bilgilerin dışarıya çıkarılmasını tespit etmek için oluşturulur. AWS durumunda, izlenen AWS anahtarları oluşturulur, eğer bir anahtarla bir eylem tetiklenirse, o anahtarı çalan biri olmalıdır.
Ancak, bu izleme CloudTrail aracılığıyla gerçekleştirilir ve bazı AWS hizmetleri CloudTrail'e günlük göndermez (listeyi burada bulabilirsiniz). Bu hizmetlerden bazıları, yetkisiz bir kişi (honeytoken anahtarı) erişmeye çalıştığında, ARN içeren bir hata ile yanıt verir.
Bu şekilde, bir saldırgan herhangi bir günlüğü tetiklemeden anahtarın ARN'sini elde edebilir. ARN'de saldırgan, AWS hesap kimliği ve adını görebilir, bu şekilde bir saldırgan HoneyToken'ın şirket hesaplarının kimliklerini ve adlarını belirleyebilir.
HoneyTokens Tespiti
Pacu, bir anahtarın Canarytokens, SpaceCrab, SpaceSiren'a ait olup olmadığını tespit eder:
Eğer rol adında
canarytokens.org
veya hata mesajında534261010715
hesap kimliği görünüyorsa.Daha yeni testlerde,
717712589309
hesabını kullandıklarını ve hala adındacanarytokens.com
dizesinin bulunduğunu tespit ettiler.Eğer rol adında
SpaceCrab
veya hata mesajında görünüyorsaSpaceSiren, kullanıcı adları oluşturmak için uuid'leri kullanır:
[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}
Eğer ad rastgele oluşturulmuş gibi görünüyorsa, büyük olasılıkla bir HoneyToken'dır.
Tespit edilen tüm genel API'lerin artık CloudTrail günlükleri oluşturmadığı düzeltilmiştir, bu yüzden belki kendi API'nizi bulmanız gerekebilir...
Veya Kodlanmış içindeki erişim anahtarından Hesap Kimliğini alabilirsiniz burada açıklandığı gibi ve Honeytokens AWS hesaplarınızın hesap kimliğini kontrol edebilirsiniz:
Daha fazla bilgi için orijinal araştırmayı kontrol edin.
Üçüncü Altyapıya Erişim
Bazı AWS hizmetleri, Veritabanları veya Kubernetes kümeleme (EKS) gibi bazı altyapıları oluşturur. Bir kullanıcı, bu hizmetlere (örneğin Kubernetes API'si gibi) doğrudan eriştiğinde AWS API'sini kullanmaz, bu nedenle CloudTrail bu iletişimi göremez.
Bu nedenle, EKS'ye erişimi olan bir kullanıcı, EKS API'sinin URL'sini keşfetmişse yerel olarak bir belirteç oluşturabilir ve CloudTrail tarafından tespit edilmeden doğrudan API hizmetiyle iletişim kurabilir.
Daha fazla bilgi için:
pageAWS - EKS Post ExploitationCloudTrail Yapılandırmasını Değiştirme
Sporları Silme
Trail Durdurma
To stop a CloudTrail trail, you can use the AWS Management Console, AWS CLI, or AWS SDKs. The following steps outline how to stop a trail using the AWS Management Console:
Open the AWS Management Console and navigate to the CloudTrail service.
In the left navigation pane, click on "Trails".
Select the trail that you want to stop.
Click on the "Actions" dropdown menu and choose "Stop logging".
Confirm the action by clicking on "Stop logging" in the dialog box that appears.
Once the trail is stopped, it will no longer record any API activity in your AWS account.
Çoklu bölge kaydını devre dışı bırakma
Bucket Yapılandırmasını Değiştirme
S3 kovasını silin
Kovaya ait politikayı CloudTrail hizmetinden gelen yazma işlemlerini reddedecek şekilde değiştirin
S3 kovasına nesneleri silmek için yaşam döngüsü politikası ekleyin
CloudTrail günlüklerini şifrelemek için kullanılan kms anahtarını devre dışı bırakın
Cloudtrail fidye yazılımı
S3 fidye yazılımı
Asimetrik bir anahtar oluşturabilir ve CloudTrail'in verileri bu anahtarla şifrelemesini sağlayabilir ve ardından özel anahtarı silerek CloudTrail içeriğinin kurtarılamamasını sağlayabilirsiniz. Bu temel olarak bir S3-KMS fidye yazılımı'dır ve aşağıda açıklanmıştır:
pageAWS - S3 Post ExploitationKMS fidye yazılımı
Bu, önceki saldırıyı farklı izin gereksinimleriyle gerçekleştirmenin daha kolay bir yoludur:
pageAWS - KMS Post ExploitationReferanslar
Last updated