Configuraci贸n de Airflow

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Archivo de Configuraci贸n

Apache Airflow genera un archivo de configuraci贸n en todas las m谩quinas de airflow llamado airflow.cfg en el directorio home del usuario de airflow. Este archivo de configuraci贸n contiene informaci贸n de configuraci贸n y puede contener informaci贸n interesante y sensible.

Hay dos formas de acceder a este archivo: Comprometiendo alguna m谩quina de airflow, o accediendo a la consola web.

Ten en cuenta que los valores dentro del archivo de configuraci贸n pueden no ser los utilizados, ya que puedes sobrescribirlos configurando variables de entorno como AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'.

Si tienes acceso al archivo de configuraci贸n en el servidor web, puedes verificar la configuraci贸n real en ejecuci贸n en la misma p谩gina donde se muestra la configuraci贸n.
Si tienes acceso a alguna m谩quina dentro del entorno de airflow, verifica el entorno.

Algunos valores interesantes para verificar al leer el archivo de configuraci贸n:

[api]

  • access_control_allow_headers: Esto indica los encabezados permitidos para CORS
  • access_control_allow_methods: Esto indica los m茅todos permitidos para CORS
  • access_control_allow_origins: Esto indica los or铆genes permitidos para CORS
  • auth_backend: Seg煤n la documentaci贸n hay algunas opciones que se pueden configurar para determinar qui茅n puede acceder a la API:
  • airflow.api.auth.backend.deny_all: Por defecto, nadie puede acceder a la API
  • airflow.api.auth.backend.default: Todos pueden acceder sin autenticaci贸n
  • airflow.api.auth.backend.kerberos_auth: Para configurar autenticaci贸n kerberos
  • airflow.api.auth.backend.basic_auth: Para autenticaci贸n b谩sica
  • airflow.composer.api.backend.composer_auth: Utiliza autenticaci贸n de compositores (GCP) (de aqu铆).
  • composer_auth_user_registration_role: Esto indica el rol que el usuario de composer obtendr谩 dentro de airflow (Op por defecto).
  • Tambi茅n puedes crear tu propio m茅todo de autenticaci贸n con python.
  • google_key_path: Ruta a la clave de cuenta de servicio de GCP

[atlas]

  • password: Contrase帽a de Atlas
  • username: Nombre de usuario de Atlas

[celery]

  • flower_basic_auth : Credenciales (user1:password1,user2:password2)
  • result_backend: URL de Postgres que puede contener credenciales.
  • ssl_cacert: Ruta al cacert
  • ssl_cert: Ruta al cert
  • ssl_key: Ruta a la clave

[core]

  • dag_discovery_safe_mode: Habilitado por defecto. Al descubrir DAGs, ignora cualquier archivo que no contenga las cadenas DAG y airflow.
  • fernet_key: Clave para almacenar variables encriptadas (sim茅trica)
  • hide_sensitive_var_conn_fields: Habilitado por defecto, oculta informaci贸n sensible de las conexiones.
  • security: Qu茅 m贸dulo de seguridad usar (por ejemplo, kerberos)

[dask]

  • tls_ca: Ruta al ca
  • tls_cert: Ruta al cert
  • tls_key: Ruta a la clave tls

[kerberos]

  • ccache: Ruta al archivo ccache
  • forwardable: Habilitado por defecto

[logging]

  • google_key_path: Ruta a las credenciales JSON de GCP.

[secrets]

  • backend: Nombre completo de la clase del backend de secretos a habilitar
  • backend_kwargs: El par谩metro backend_kwargs se carga en un diccionario y se pasa a init de la clase del backend de secretos.

[smtp]

  • smtp_password: Contrase帽a SMTP
  • smtp_user: Usuario SMTP

[webserver]

  • cookie_samesite: Por defecto es Lax, por lo que ya es el valor m谩s d茅bil posible
  • cookie_secure: Establecer bandera segura en la cookie de sesi贸n
  • expose_config: Por defecto es False, si es verdadero, la configuraci贸n puede ser le铆da desde la consola web
  • expose_stacktrace: Por defecto es True, mostrar谩 tracebacks de python (potencialmente 煤til para un atacante)
  • secret_key: Esta es la clave utilizada por flask para firmar las cookies (si tienes esto puedes suplantar a cualquier usuario en Airflow)
  • web_server_ssl_cert: Ruta al certificado SSL
  • web_server_ssl_key: Ruta a la clave SSL
  • x_frame_enabled: Por defecto es True, por lo que por defecto el clickjacking no es posible

Autenticaci贸n Web

Por defecto, la autenticaci贸n web se especifica en el archivo webserver_config.py y se configura como

AUTH_TYPE = AUTH_DB

Lo que significa que la autenticaci贸n se verifica contra la base de datos. Sin embargo, son posibles otras configuraciones como

AUTH_TYPE = AUTH_OAUTH

Para dejar la autenticaci贸n a servicios de terceros.

Sin embargo, tambi茅n hay una opci贸n para permitir el acceso a usuarios an贸nimos, configurando el siguiente par谩metro al rol deseado:

AUTH_ROLE_PUBLIC = 'Admin'

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks