Airflow Configuration

Tip

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)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Configuration File

Apache Airflow, tüm airflow makinelerinde airflow.cfg adında bir config dosyası oluşturur. Bu config dosyası, yapılandırma bilgilerini içerir ve ilginç ve hassas bilgiler içerebilir.

Bu dosyaya erişmenin iki yolu vardır: bazı airflow makinelerini tehlikeye atarak veya web konsoluna erişerek.

Config dosyasındaki değerlerin kullanılanlar olmayabileceğini unutmayın, çünkü AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true' gibi ortam değişkenleri ayarlayarak bunları geçersiz kılabilirsiniz.

Eğer web sunucusundaki config dosyasına erişiminiz varsa, config’in görüntülendiği aynı sayfada gerçek çalışan yapılandırmayı kontrol edebilirsiniz.
Eğer airflow ortamındaki bir makineye erişiminiz varsa, ortamı kontrol edin.

Config dosyasını okurken kontrol edilecek bazı ilginç değerler:

[api]

  • access_control_allow_headers: Bu, CORS için izin verilen başlıkları gösterir.
  • access_control_allow_methods: Bu, CORS için izin verilen yöntemleri gösterir.
  • access_control_allow_origins: Bu, CORS için izin verilen kökenleri gösterir.
  • auth_backend: Belgelerde belirtildiği gibi API’ye kimlerin erişebileceğini yapılandırmak için birkaç seçenek mevcuttur:
  • airflow.api.auth.backend.deny_all: Varsayılan olarak kimse API’ye erişemez.
  • airflow.api.auth.backend.default: Herkes kimlik doğrulaması olmadan erişebilir.
  • airflow.api.auth.backend.kerberos_auth: kerberos kimlik doğrulamasını yapılandırmak için.
  • airflow.api.auth.backend.basic_auth: temel kimlik doğrulaması için.
  • airflow.composer.api.backend.composer_auth: Kompozitör kimlik doğrulamasını kullanır (GCP) ( buradan).
  • composer_auth_user_registration_role: Bu, airflow içinde kompozitör kullanıcısının alacağı rolü gösterir (Op varsayılan olarak).
  • Ayrıca kendi kimlik doğrulama yöntemlerinizi python ile oluşturabilirsiniz.
  • google_key_path: GCP hizmet hesabı anahtarının yolu.

[atlas]

  • password: Atlas şifresi.
  • username: Atlas kullanıcı adı.

[celery]

  • flower_basic_auth : Kimlik bilgileri (user1:password1,user2:password2)
  • result_backend: kimlik bilgilerini içerebilecek Postgres url’si.
  • ssl_cacert: cacert’in yolu.
  • ssl_cert: sertifikanın yolu.
  • ssl_key: anahtarın yolu.

[core]

  • dag_discovery_safe_mode: Varsayılan olarak etkin. DAG’leri keşfederken, DAG ve airflow dizelerini içermeyen dosyaları göz ardı edin.
  • fernet_key: Şifrelenmiş değişkenleri saklamak için anahtar (simetrik).
  • hide_sensitive_var_conn_fields: Varsayılan olarak etkin, bağlantıların hassas bilgilerini gizler.
  • security: Hangi güvenlik modülünün kullanılacağı (örneğin kerberos).

[dask]

  • tls_ca: ca’nın yolu.
  • tls_cert: sertifikanın yolu.
  • tls_key: tls anahtarının yolu.

[kerberos]

  • ccache: ccache dosyasının yolu.
  • forwardable: Varsayılan olarak etkin.

[logging]

  • google_key_path: GCP JSON kimlik bilgilerine giden yol.

[secrets]

  • backend: Etkinleştirilecek gizli arka uç sınıfının tam adı.
  • backend_kwargs: backend_kwargs parametresi bir sözlüğe yüklenir ve gizli arka uç sınıfının init’ine geçirilir.

[smtp]

  • smtp_password: SMTP şifresi.
  • smtp_user: SMTP kullanıcısı.

[webserver]

  • cookie_samesite: Varsayılan olarak Lax’dır, bu nedenle zaten mümkün olan en zayıf değerdir.
  • cookie_secure: oturum çerezi üzerinde güvenli bayrağı ayarlayın.
  • expose_config: Varsayılan olarak False’dur, eğer true ise, config web konsolundan okunabilir.
  • expose_stacktrace: Varsayılan olarak True’dur, python traceback’lerini gösterecektir (potansiyel olarak bir saldırgan için yararlı).
  • secret_key: Bu, çerezleri imzalamak için flask tarafından kullanılan anahtardır (eğer buna sahipseniz, Airflow’daki herhangi bir kullanıcıyı taklit edebilirsiniz).
  • web_server_ssl_cert: SSL sertifikasının yolu.
  • web_server_ssl_key: SSL Anahtarının yolu.
  • x_frame_enabled: Varsayılan True’dur, bu nedenle varsayılan olarak clickjacking mümkün değildir.

Web Authentication

Varsayılan olarak web authentication, webserver_config.py dosyasında belirtilmiştir ve şu şekilde yapılandırılmıştır:

AUTH_TYPE = AUTH_DB

Bu, kimlik doğrulamanın veritabanına karşı kontrol edildiği anlamına gelir. Ancak, aşağıdaki gibi diğer yapılandırmalar da mümkündür:

AUTH_TYPE = AUTH_OAUTH

Üçüncü taraf hizmetlere kimlik doğrulamasını bırakmak için.

Ancak, anonim kullanıcıların erişimine izin verme seçeneği de vardır, aşağıdaki parametreyi istenen role ayarlayarak:

AUTH_ROLE_PUBLIC = 'Admin'

Tip

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)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin