Airflow Configuration

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Konfiguracioni fajl

Apache Airflow generiše konfiguracioni fajl na svim airflow mašinama koji se naziva airflow.cfg u home direktorijumu korisnika airflow-a. Ovaj konfiguracioni fajl sadrži informacije o konfiguraciji i može sadržati zanimljive i osetljive informacije.

Postoje dva načina pristupa ovom fajlu: kompromitovanjem neke airflow mašine ili pristupom web konzoli.

Imajte na umu da vrednosti unutar konfiguracionog fajla možda nisu one koje se koriste, jer ih možete prebrisati postavljanjem env promenljivih kao što je AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'.

Ako imate pristup konfiguracionom fajlu na web serveru, možete proveriti stvarnu konfiguraciju koja se izvršava na istoj stranici na kojoj se prikazuje konfiguracija. Ako imate pristup nekoj mašini unutar airflow okruženja, proverite okruženje.

Neke zanimljive vrednosti za proveru prilikom čitanja konfiguracionog fajla:

[api]

  • access_control_allow_headers: Ovo označava dozvoljene zaglavlja za CORS

  • access_control_allow_methods: Ovo označava dozvoljene metode za CORS

  • access_control_allow_origins: Ovo označava dozvoljene origin-e za CORS

  • auth_backend: Prema dokumentaciji nekoliko opcija može biti postavljeno da konfiguriše ko može pristupiti API-ju:

  • airflow.api.auth.backend.deny_all: Podrazumevano niko ne može pristupiti API-ju

  • airflow.api.auth.backend.default: Svi mogu pristupiti bez autentifikacije

  • airflow.api.auth.backend.kerberos_auth: Za konfigurisanje kerberos autentifikacije

  • airflow.api.auth.backend.basic_auth: Za osnovnu autentifikaciju

  • airflow.composer.api.backend.composer_auth: Koristi autentifikaciju kompozitora (GCP) (od ovde).

  • composer_auth_user_registration_role: Ovo označava ulogu koju će korisnik kompozitora dobiti unutar airflow-a (Op podrazumevano).

  • Takođe možete kreirati sopstveni autentifikacioni metod sa python-om.

  • google_key_path: Putanja do GCP servisnog naloga ključa

[atlas]

  • password: Atlas lozinka

  • username: Atlas korisničko ime

[celery]

  • flower_basic_auth : Kredencijali (user1:password1,user2:password2)

  • result_backend: Postgres url koji može sadržati kredencijale.

  • ssl_cacert: Putanja do cacert-a

  • ssl_cert: Putanja do cert-a

  • ssl_key: Putanja do ključa

[core]

  • dag_discovery_safe_mode: Podrazumevano je omogućeno. Pri otkrivanju DAG-ova, ignorisati sve fajlove koji ne sadrže stringove DAG i airflow.

  • fernet_key: Ključ za čuvanje enkriptovanih promenljivih (simetrično)

  • hide_sensitive_var_conn_fields: Podrazumevano je omogućeno, sakriva osetljive informacije o konekcijama.

  • security: Koju sigurnosnu modul koristiti (na primer kerberos)

[dask]

  • tls_ca: Putanja do ca

  • tls_cert: Deo do cert-a

  • tls_key: Deo do tls ključa

[kerberos]

  • ccache: Putanja do ccache fajla

  • forwardable: Podrazumevano je omogućeno

[logging]

  • google_key_path: Putanja do GCP JSON kredencijala.

[secrets]

  • backend: Puno ime klase tajnih backend-a za omogućavanje

  • backend_kwargs: Parametar backend_kwargs se učitava u rečnik i prosleđuje init metodi klase tajnih backend-a.

[smtp]

  • smtp_password: SMTP lozinka

  • smtp_user: SMTP korisnik

[webserver]

  • cookie_samesite: Podrazumevano je Lax, tako da je već najslabija moguća vrednost

  • cookie_secure: Postavi secure flag na sesijski kolačić

  • expose_config: Podrazumevano je False, ako je true, konfiguracija može biti pročitana sa web konzole

  • expose_stacktrace: Podrazumevano je True, prikazaće python tracebacks (potencijalno korisno za napadača)

  • secret_key: Ovo je ključ koji flask koristi za potpisivanje kolačića (ako ga imate, možete preuzeti identitet bilo kog korisnika u Airflow-u)

  • web_server_ssl_cert: Putanja do SSL cert-a

  • web_server_ssl_key: Putanja do SSL ključa

  • x_frame_enabled: Podrazumevano je True, tako da podrazumevano nije moguće clickjacking

Web autentifikacija

Podrazumevano je da je web autentifikacija navedena u fajlu webserver_config.py i konfigurisana je kao

AUTH_TYPE = AUTH_DB

Što znači da se autentifikacija proverava protiv baze podataka. Međutim, moguće su i druge konfiguracije kao što su

AUTH_TYPE = AUTH_OAUTH

Da biste autentifikaciju prepustili uslugama trećih strana.

Međutim, takođe postoji opcija da omogućite pristup anonimnim korisnicima, postavljajući sledeći parametar na željenu ulogu:

AUTH_ROLE_PUBLIC = 'Admin'
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated