Airflow Configuration

Tip

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

Υποστηρίξτε το 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: Αυτό υποδεικνύει τους επιτρεπόμενους headers για CORS
  • access_control_allow_methods: Αυτό υποδεικνύει τις επιτρεπόμενες μεθόδους για CORS
  • access_control_allow_origins: Αυτό υποδεικνύει τις επιτρεπόμενες προελεύσεις για CORS
  • auth_backend: Σύμφωνα με τα docs μερικές επιλογές μπορούν να είναι σε εφαρμογή για να ρυθμίσουν ποιος μπορεί να έχει πρόσβαση στην 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 service account key

[atlas]

  • password: Κωδικός πρόσβασης Atlas
  • username: Όνομα χρήστη Atlas

[celery]

  • flower_basic_auth : Διαπιστευτήρια (user1:password1,user2:password2)
  • result_backend: URL Postgres που μπορεί να περιέχει διαπιστευτήρια.
  • ssl_cacert: Διαδρομή προς το cacert
  • ssl_cert: Διαδρομή προς το cert
  • ssl_key: Διαδρομή προς το key

[core]

  • dag_discovery_safe_mode: Ενεργοποιημένο από προεπιλογή. Κατά την ανακάλυψη DAGs, αγνοήστε οποιαδήποτε αρχεία που δεν περιέχουν τις συμβολοσειρές DAG και airflow.
  • fernet_key: Κλειδί για την αποθήκευση κρυπτογραφημένων μεταβλητών (συμμετρικό)
  • hide_sensitive_var_conn_fields: Ενεργοποιημένο από προεπιλογή, κρύβει ευαίσθητες πληροφορίες συνδέσεων.
  • security: Ποιο μοντέλο ασφάλειας να χρησιμοποιηθεί (για παράδειγμα kerberos)

[dask]

  • tls_ca: Διαδρομή προς ca
  • tls_cert: Διαδρομή προς το cert
  • tls_key: Διαδρομή προς το tls key

[kerberos]

  • ccache: Διαδρομή προς το αρχείο ccache
  • forwardable: Ενεργοποιημένο από προεπιλογή

[logging]

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

[secrets]

  • backend: Πλήρες όνομα κλάσης του secrets backend που θα ενεργοποιηθεί
  • backend_kwargs: Η παράμετρος backend_kwargs φορτώνεται σε ένα λεξικό και περνάται στο init της κλάσης secrets 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 cert
  • web_server_ssl_key: Διαδρομή προς το SSL Key
  • x_frame_enabled: Προεπιλογή είναι True, οπότε από προεπιλογή η κλοπή κλικ δεν είναι δυνατή

Web Authentication

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

AUTH_TYPE = AUTH_DB

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

AUTH_TYPE = AUTH_OAUTH

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

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

AUTH_ROLE_PUBLIC = 'Admin'

Tip

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

Υποστηρίξτε το HackTricks