Files

2.9 KiB
Raw Blame History

AWS MWAA Execution Role Hesabı Wildcard Açığı

Zafiyet

MWAA'nın execution role'ü (Airflow çalışanlarının AWS kaynaklarına erişmek için kullandığı IAM rolü) çalışması için şu zorunlu policy'ye ihtiyaç duyar:

{
"Effect": "Allow",
"Action": [
"sqs:ChangeMessageVisibility",
"sqs:DeleteMessage",
"sqs:GetQueueAttributes",
"sqs:GetQueueUrl",
"sqs:ReceiveMessage",
"sqs:SendMessage"
],
"Resource": "arn:aws:sqs:us-east-1:*:airflow-celery-*"
}

Hesap kimliği konumundaki joker (*), role airflow-celery- ile başlayan herhangi bir AWS hesabındaki herhangi bir SQS kuyruğu ile etkileşim kurma yetkisi verir. Bu, AWS'in MWAA'nın dahili kuyruklarını ayrı bir AWS yönetimli hesapta sağlaması gerektiği için gereklidir. airflow-celery- önekiyle kuyruk oluşturulmasına dair herhangi bir kısıtlama yoktur.

Düzeltilemez: Joker karakteri dağıtım öncesi kaldırmak MWAA'yı tamamen bozar - scheduler işçilerin görev kuyruğa koymasını sağlayamaz.

Zafiyeti Doğrulayan ve Vektörü Kabul Eden Dokümantasyon: AWS Documentation

İstismar

Tüm Airflow DAG'ları execution role'unun izinleriyle çalışır. DAG'lar Python betikleri olup rastgele kod çalıştırabilirler — araç kurmak, kötü amaçlı betikler indirmek veya herhangi bir Python kütüphanesini import etmek için yum veya curl kullanabilirler. DAG'lar atanmış bir S3 klasöründen çekilir ve zamanlamaya göre otomatik olarak çalıştırılır; saldırganın ihtiyaç duyduğu tek şey o bucket yoluna PUT yapabilme yetkisidir.

DAG yazabilen herkes (genellikle MWAA ortamlarındaki çoğu kullanıcı), bu izni kötüye kullanabilir:

  1. Data Exfiltration: Harici bir hesapta airflow-celery-exfil adlı bir kuyruk oluşturun, hassas verileri buna boto3 ile gönderen bir DAG yazın

  2. Command & Control: Harici bir kuyruktan komutları sorgulayın, bunları çalıştırın, sonuçları geri gönderin — SQS API'leri üzerinden kalıcı bir arka kapı oluşturur

  3. Cross-Account Attacks: İsimlendirme desenini takip eden diğer organizasyonların kuyruklarına kötü amaçlı mesajlar enjekte edin

Tüm saldırılar, doğrudan internet bağlantısı yerine AWS API'lerini kullandıkları için ağ kontrollerini atlar.

Etki

Bu, IAM tabanlı bir mitigasyon olmaksızın MWAA'da bir mimari kusurdur. AWS dokümantasyonunu izleyen her MWAA dağıtımı bu zafiyete sahiptir.

Ağ Kontrolü Atlama: Bu saldırılar internet erişimi olmayan özel VPC'lerde bile çalışır. SQS API çağrıları AWS'in dahili ağı ve VPC endpoint'lerini kullanır; geleneksel ağ güvenlik kontrollerini, güvenlik duvarlarını ve çıkış trafiği izlemeyi tamamen atlar. Organizasyonlar bu veri çıkışı yolunu ağ düzeyindeki kontrollerle tespit edemez veya engelleyemez.