Airflow Configuration
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apache Airflow generiše config fajl na svim airflow mašinama pod nazivom airflow.cfg
u home direktorijumu korisnika airflow. Ovaj config fajl sadrži informacije o konfiguraciji i može sadržati zanimljive i osetljive informacije.
Postoje dva načina da se pristupi ovom fajlu: kompromitovanjem neke airflow mašine ili pristupanjem web konzoli.
Napomena da vrednosti unutar config fajla možda nisu one koje se koriste, jer ih možete prepisati postavljanjem env varijabli kao što su AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
.
Ako imate pristup config fajlu na web serveru, možete proveriti pravu aktivnu konfiguraciju 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 config fajla:
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 izvore za CORS
auth_backend
: Prema dokumentaciji nekoliko opcija može biti postavljeno za konfiguraciju 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 konfiguraciju kerberos autentifikacije
airflow.api.auth.backend.basic_auth
: Za osnovnu autentifikaciju
airflow.composer.api.backend.composer_auth
: Koristi autentifikaciju kompozitora (GCP) (iz ovde).
composer_auth_user_registration_role
: Ovo označava ulogu koju će korisnik kompozitora dobiti unutar airflow (Op podrazumevano).
Takođe možete napraviti svoju metodu autentifikacije pomoću Pythona.
google_key_path
: Putanja do GCP servisnog naloga
password
: Atlas lozinka
username
: Atlas korisničko ime
flower_basic_auth
: Akreditivi (user1:password1,user2:password2)
result_backend
: Postgres url koji može sadržati akreditive.
ssl_cacert
: Putanja do cacert
ssl_cert
: Putanja do certifikata
ssl_key
: Putanja do ključa
dag_discovery_safe_mode
: Omogućeno podrazumevano. Kada se otkrivaju DAG-ovi, ignorišu se svi fajlovi koji ne sadrže stringove DAG
i airflow
.
fernet_key
: Ključ za čuvanje enkriptovanih varijabli (simetričan)
hide_sensitive_var_conn_fields
: Omogućeno podrazumevano, skriva osetljive informacije o konekcijama.
security
: Koji sigurnosni modul koristiti (na primer kerberos)
tls_ca
: Putanja do ca
tls_cert
: Putanja do certifikata
tls_key
: Putanja do tls ključa
ccache
: Putanja do ccache fajla
forwardable
: Omogućeno podrazumevano
google_key_path
: Putanja do GCP JSON akreditiva.
backend
: Puno ime klase backend-a za tajne koje treba omogućiti
backend_kwargs
: Parametar backend_kwargs se učitava u rečnik i prosleđuje init klasi backend-a za tajne.
smtp_password
: SMTP lozinka
smtp_user
: SMTP korisnik
cookie_samesite
: Podrazumevano je Lax, tako da je već najslabija moguća vrednost
cookie_secure
: Postavi sigurnu oznaku na sesijskom kolačiću
expose_config
: Podrazumevano je False, ako je tačno, konfiguracija se može pročitati iz web konzole
expose_stacktrace
: Podrazumevano je True, prikazaće python tracebacks (potencijalno korisno za napadača)
secret_key
: Ovo je ključ koji koristi flask za potpisivanje kolačića (ako imate ovo možete imitirati bilo kog korisnika u Airflow-u)
web_server_ssl_cert
: Putanja do SSL certifikata
web_server_ssl_key
: Putanja do SSL ključa
x_frame_enabled
: Podrazumevano je True, tako da podrazumevano clickjacking nije moguć
Podrazumevano web autentifikacija je specificirana u fajlu webserver_config.py
i konfiguriše se kao
Što znači da se autentifikacija proverava u odnosu na bazu podataka. Međutim, druge konfiguracije su moguće kao
Da se autentifikacija prepusti uslugama trećih strana.
Međutim, postoji i opcija da se omogući pristup anonimnim korisnicima, postavljanjem sledećeg parametra na željenu ulogu:
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)