Looker ha publicado una actualización de seguridad obligatoria para evitar el riesgo de que se expongan metadatos entre usuarios autenticados de Looker que compartan el mismo modelo de LookML. Para habilitar la mitigación en tu instancia, es posible que tengas que cambiar el uso de determinados endpoints de la API. Este parche afecta a todas las versiones de Looker compatibles que se indican en el documento Versiones compatibles oficialmente.
¿Qué ha cambiado?
Looker ha aplicado una actualización de seguridad obligatoria a tu sistema. Debido al cambio en el comportamiento de algunos endpoints de la API, tendrás que tomar medidas para habilitar la actualización de seguridad y ajustar el uso que hagas de las APIs actualizadas para evitar que se produzcan errores en tus secuencias de comandos de la API.
En las instancias alojadas en Looker, este parche añade una nueva función antigua llamada Inhabilitar IDs de consulta numéricos. Cuando se habilita, esta función antigua provoca cambios en el uso de los siguientes endpoints de la API:
- El endpoint
GET /queries/<query_id>
requiere un slug paraquery_id
. Unquery_id
al que se le proporcione un ID de consulta numérico devolverá un error 404. - El endpoint
POST /render_tasks/queries/<query_id>/<result_format>
requiere un slug paraquery_id
. Unquery_id
al que se le proporcione un ID de consulta numérico devolverá un error 404. - El endpoint
GET /running_queries
solo está disponible para los administradores de Looker.
En las instancias alojadas por el cliente, los cambios anteriores en el endpoint de la API se habilitarán cuando la instancia se actualice a una versión de Looker que incluya este parche.
¿Qué debo hacer?
Google Cloud recomienda que todos los clientes completen las dos acciones siguientes:
Actualiza las secuencias de comandos de las APIs que incluyan alguno de los endpoints de las APIs actualizados. Si no actualizas tus secuencias de comandos de API como se describe en la siguiente sección, es posible que se produzcan errores en tus aplicaciones. Para obtener instrucciones sobre cómo usar Actividad del sistema para ver el uso de tus endpoints de API, consulta la sección ¿Cómo puedo saber si usamos alguno de los endpoints de API actualizados? de este documento.
Habilita las actualizaciones de parches. Para obtener instrucciones, consulta la sección correspondiente a tu instancia de Looker:
Actualizar secuencias de comandos de API
Si usas uno de los endpoints de la API que se indican a continuación, es posible que tengas que tomar medidas independientemente de la versión de Looker o de la API que estés usando. La acción recomendada varía en función de si usas la API 3.0 o la API 3.1, o la API 4.0.
GET /queries/<query_id>
POST /render_tasks/queries/<query_id>/<result_format>
GET /running_queries
Si usas la API 4.0
Si usas la API 4.0 y uno de los endpoints indicados en la sección anterior, haz los siguientes cambios en el código de la aplicación:
- Sustituye los
query_ids
numéricos (por ejemplo, 32, 124, etc.) que se usen con los endpointsGET /queries/<query_id>
oPOST /render_tasks/queries/<query_id>/<result_format>
por el valor slug de la consulta. Para obtener instrucciones sobre cómo encontrar el valor de slug de una consulta, consulta la sección "¿Cómo puedo encontrar el valor de slug de una consulta?". - Las aplicaciones que usen el endpoint
GET /running_queries
solo podrán ser utilizadas por administradores de Looker.
Si usas la API 3.0 o 3.1
Si usas la API 3.0 o la API 3.1 y uno de los endpoints indicados en la sección anterior, haz los siguientes cambios en el código de la aplicación:
- El endpoint
GET /queries/<query_id>
dejará de funcionar. Sustituye el endpointGET /queries/<query_id>
por el endpointGET /queries/slug/<slug>
para obtener los mismos metadatos de consulta que antes. Para obtener instrucciones sobre cómo encontrar el valor de slug de una consulta, consulta la sección "¿Cómo puedo encontrar el valor de slug de una consulta?". - El endpoint
POST /render_tasks/queries/<query_id>/<result_format>
dejará de funcionar. Los SDKs de Looker que admitan la API 3.1 también admitirán las APIs 3.1 y 4.0. Si no usas ninguno de los SDKs de Looker, modificahttp request path
para que use la versión 4.0 en lugar de la 3.1 en esa llamada. A continuación, sustituya cualquierquery_ids
numérico (por ejemplo, 32, 124, etc.) por el valor del slug de la consulta. Para obtener instrucciones sobre cómo encontrar el valor de slug de una consulta, consulta la sección "¿Cómo puedo encontrar el valor de slug de una consulta?". - Las aplicaciones que usen el endpoint
GET /running_queries
solo podrán ser utilizadas por administradores de Looker.
¿Cómo puedo encontrar el valor de slug de una consulta?
Puedes encontrar el valor del slug de una consulta de las siguientes formas:
En el caso de un Exploración, puedes encontrar el slug en la URL del Exploración después de la variable
qid=
.Puede encontrar el valor del slug asociado a un ID de consulta numérico mediante Actividad del sistema.
En el menú Explorar de Looker, selecciona Actividad del sistema > Historial Explorar.
En la vista Consulta, seleccione las dimensiones ID y Enlace.
También puede añadir un filtro en la dimensión ID e introducir el ID de consulta numérico de la consulta en el campo de filtro ID de consulta.
Haz clic en Ejecutar.
Haga clic en el enlace
[Query]
situado junto al ID de consulta numérico de los resultados de Explorar para abrir una exploración basada en ese ID de consulta numérico.Después, puedes usar el slug en la URL de Exploración, que sigue a la variable
qid=
en la URL.
Habilitar el parche en instancias de Looker (original) alojadas en Looker
Google Cloud recomienda que todos los clientes alojados en Looker habiliten la nueva función antigua No permitir ID de consulta numérico.
Para habilitar No permitir IDs de consulta numéricos, sigue estos pasos:
En el menú Administrar de Looker, vaya al panel Administrar > Versión antigua.
Habilita el interruptor No permitir IDs de consulta numéricos:
Habilitar el parche en instancias de Looker (Google Cloud Core)
El parche se habilita automáticamente en todas las instancias de Looker (Google Cloud Core). No tienes que hacer nada para habilitar el parche, pero asegúrate de actualizar las secuencias de comandos de la API que incluyan alguno de los endpoints de la API actualizados.
Habilitar el parche en instancias alojadas por el cliente
Todas las instancias alojadas por el cliente deben actualizar su instancia de Looker a una versión de Looker que incluya el parche más reciente. Este parche se incluye en la actualización más reciente de las versiones 23.18, 23.20, 24.0 y 24.2 de Looker, así como en las versiones 23.0, 23.6, 23.12 y 24.0 de ESR de Looker. Actualiza las secuencias de comandos de la API que incluyan alguno de los endpoints de la API actualizados antes de actualizar tu instancia de Looker.
¿Cómo puedo saber si usamos alguno de los endpoints de la API actualizados?
Puedes ver una lista de las llamadas a la API que se han hecho a tu instancia de Looker mediante la Exploración de actividad del sistema de uso de la API.
En el menú Explorar de Looker, selecciona la exploración Actividad del sistema y, a continuación, la vista Uso de la API.
Seleccione las dimensiones Fecha de creación > Fecha y Endpoint, así como la métrica Uso total.
Añada un filtro en la dimensión Punto final e incluya los siguientes puntos finales en el campo de filtro:
/queries/:query_id
/render_tasks/queries/:query_id/:result_format
/running_queries
Haz clic en Ejecutar. Looker mostrará información sobre el uso de esos endpoints.
¿Qué debo hacer si necesito más tiempo para actualizar mis secuencias de comandos de la API?
Ponte en contacto con el equipo de Asistencia de Looker antes de las 17:00 (hora del Pacífico) del 21 de febrero e indícanos que quieres inhabilitar la función antigua Disallow Numeric Query IDs hasta que puedas actualizar tus secuencias de comandos de la API.
¿Deben seguir pasos adicionales las partes afectadas, además de los que tengo que seguir yo para este incidente, para mitigar los posibles efectos adversos?
No
¿Qué medidas está tomando Looker para evitar que se produzcan problemas similares en el futuro?
Looker y Google mantienen un programa de seguridad sólido para prevenir e identificar de forma proactiva los fallos de seguridad internos. Puedes consultar más información en https://cloud.google.com/looker/product/security.
¿Ha informado Looker a las autoridades competentes?
Looker cumple todos los requisitos normativos pertinentes relativos a la comunicación de este tipo de problemas.