Airflow Configuration

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Configuration File

Apache Airflow δημιουργεί ένα config file σε όλες τις μηχανές airflow που ονομάζεται airflow.cfg στον φάκελο του χρήστη airflow. Αυτό το config file περιέχει πληροφορίες ρύθμισης και μπορεί να περιέχει ενδιαφέρουσες και ευαίσθητες πληροφορίες.

Υπάρχουν δύο τρόποι για να αποκτήσετε πρόσβαση σε αυτό το αρχείο: Με την παραβίαση κάποιας μηχανής airflow ή με την πρόσβαση στην web κονσόλα.

Σημειώστε ότι οι τιμές μέσα στο config file μπορεί να μην είναι οι χρησιμοποιούμενες, καθώς μπορείτε να τις αντικαταστήσετε ρυθμίζοντας μεταβλητές περιβάλλοντος όπως AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'.

Αν έχετε πρόσβαση στο config file στον web server, μπορείτε να ελέγξετε την πραγματική τρέχουσα ρύθμιση στην ίδια σελίδα που εμφανίζεται το config. Αν έχετε πρόσβαση σε κάποια μηχανή μέσα στο περιβάλλον airflow, ελέγξτε το περιβάλλον.

Ορισμένες ενδιαφέρουσες τιμές για έλεγχο κατά την ανάγνωση του config file:

[api]

  • access_control_allow_headers: Αυτό υποδεικνύει τους επιτρεπόμενους κεφαλίδες για CORS

  • access_control_allow_methods: Αυτό υποδεικνύει τις επιτρεπόμενες μεθόδους για CORS

  • access_control_allow_origins: Αυτό υποδεικνύει τις επιτρεπόμενες προελεύσεις για CORS

  • auth_backend: Σύμφωνα με τα έγγραφα μερικές επιλογές μπορούν να είναι σε εφαρμογή για να ρυθμίσουν ποιος μπορεί να έχει πρόσβαση στο API:

  • airflow.api.auth.backend.deny_all: Από προεπιλογή κανείς δεν μπορεί να έχει πρόσβαση στο API

  • airflow.api.auth.backend.default: Όλοι μπορούν να έχουν πρόσβαση χωρίς αυθεντικοποίηση

  • airflow.api.auth.backend.kerberos_auth: Για να ρυθμίσετε αυθεντικοποίηση kerberos

  • airflow.api.auth.backend.basic_auth: Για βασική αυθεντικοποίηση

  • airflow.composer.api.backend.composer_auth: Χρησιμοποιεί την αυθεντικοποίηση composers (GCP) (από εδώ).

  • composer_auth_user_registration_role: Αυτό υποδεικνύει τον ρόλο που θα αποκτήσει ο χρήστης composer μέσα στο airflow (Op από προεπιλογή).

  • Μπορείτε επίσης να δημιουργήσετε τη δική σας μέθοδο αυθεντικοποίησης με python.

  • google_key_path: Διαδρομή προς το κλειδί υπηρεσίας GCP

[atlas]

  • password: Κωδικός πρόσβασης Atlas

  • username: Όνομα χρήστη Atlas

[celery]

  • flower_basic_auth : Διαπιστευτήρια (user1:password1,user2:password2)

  • result_backend: URL Postgres που μπορεί να περιέχει διαπιστευτήρια.

  • ssl_cacert: Διαδρομή προς το cacert

  • ssl_cert: Διαδρομή προς το πιστοποιητικό

  • ssl_key: Διαδρομή προς το κλειδί

[core]

  • dag_discovery_safe_mode: Ενεργοποιημένο από προεπιλογή. Κατά την ανακάλυψη DAGs, αγνοήστε οποιαδήποτε αρχεία που δεν περιέχουν τις συμβολοσειρές DAG και airflow.

  • fernet_key: Κλειδί για την αποθήκευση κρυπτογραφημένων μεταβλητών (συμμετρικό)

  • hide_sensitive_var_conn_fields: Ενεργοποιημένο από προεπιλογή, κρύβει ευαίσθητες πληροφορίες συνδέσεων.

  • security: Ποιο μοντέλο ασφάλειας να χρησιμοποιηθεί (για παράδειγμα kerberos)

[dask]

  • tls_ca: Διαδρομή προς ca

  • tls_cert: Διαδρομή προς το πιστοποιητικό

  • tls_key: Διαδρομή προς το κλειδί tls

[kerberos]

  • ccache: Διαδρομή προς το αρχείο ccache

  • forwardable: Ενεργοποιημένο από προεπιλογή

[logging]

  • google_key_path: Διαδρομή προς τα GCP JSON creds.

[secrets]

  • backend: Πλήρες όνομα κλάσης του backend μυστικών για ενεργοποίηση

  • backend_kwargs: Η παράμετρος backend_kwargs φορτώνεται σε ένα λεξικό και περνάται στο init της κλάσης backend μυστικών.

[smtp]

  • smtp_password: Κωδικός πρόσβασης SMTP

  • smtp_user: Χρήστης SMTP

[webserver]

  • cookie_samesite: Από προεπιλογή είναι Lax, οπότε είναι ήδη η πιο αδύναμη δυνατή τιμή

  • cookie_secure: Ρυθμίστε τη σημαία ασφαλείας στο cookie συνεδρίας

  • expose_config: Από προεπιλογή είναι False, αν είναι true, το config μπορεί να διαβαστεί από την web κονσόλα

  • expose_stacktrace: Από προεπιλογή είναι True, θα δείξει python tracebacks (πιθανώς χρήσιμο για έναν επιτιθέμενο)

  • secret_key: Αυτό είναι το κλειδί που χρησιμοποιείται από το flask για να υπογράψει τα cookies (αν έχετε αυτό μπορείτε να παριστάνετε οποιονδήποτε χρήστη στο Airflow)

  • web_server_ssl_cert: Διαδρομή προς το SSL πιστοποιητικό

  • web_server_ssl_key: Διαδρομή προς το SSL Κλειδί

  • x_frame_enabled: Η προεπιλογή είναι True, οπότε από προεπιλογή η κλοπή κλικ δεν είναι δυνατή

Web Authentication

Από προεπιλογή η web authentication καθορίζεται στο αρχείο webserver_config.py και είναι ρυθμισμένη ως

AUTH_TYPE = AUTH_DB

Που σημαίνει ότι η αυθεντικοποίηση ελέγχεται σε σχέση με τη βάση δεδομένων. Ωστόσο, είναι δυνατές και άλλες ρυθμίσεις όπως

AUTH_TYPE = AUTH_OAUTH

Για να αφήσετε την αυθεντικοποίηση σε τρίτες υπηρεσίες.

Ωστόσο, υπάρχει επίσης μια επιλογή να επιτρέψετε την πρόσβαση σε ανώνυμους χρήστες, ρυθμίζοντας την ακόλουθη παράμετρο στο επιθυμητό ρόλο:

AUTH_ROLE_PUBLIC = 'Admin'

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Υποστήριξη HackTricks

Last updated