Looker a mis à disposition une mise à jour de sécurité obligatoire pour éviter le risque d'exposition des métadonnées entre les utilisateurs Looker authentifiés qui partagent le même modèle LookML. Pour activer la mitigation dans votre instance, vous devrez peut-être modifier l'utilisation de certains points de terminaison d'API. Ce correctif affecte toutes les versions compatibles de Looker listées dans le document Versions officiellement compatibles.
Qu'est-ce qui a changé ?
Looker a appliqué une mise à jour de sécurité obligatoire à votre système. En raison du changement de comportement de certains points de terminaison d'API, vous devrez prendre des mesures pour activer la mise à jour de sécurité et ajuster votre utilisation des API mises à jour afin d'éviter de générer des erreurs dans vos scripts d'API.
Pour les instances hébergées par Looker, ce correctif ajoute une nouvelle ancienne fonctionnalité, appelée Interdire les ID de requête numérique. Lorsqu'elle est activée, cette ancienne fonctionnalité modifie l'utilisation des points de terminaison d'API suivants:
- Le point de terminaison
GET /queries/<query_id>
nécessite un slug pour lequery_id
. Unquery_id
auquel est attribué un ID de requête numérique renvoie une erreur 404. - Le point de terminaison
POST /render_tasks/queries/<query_id>/<result_format>
nécessite un slug pour lequery_id
. Unquery_id
auquel est attribué un ID de requête numérique renvoie une erreur 404. - Le point de terminaison
GET /running_queries
est réservé aux administrateurs Looker.
Pour les instances hébergées par le client, les modifications précédentes apportées aux points de terminaison de l'API seront activées lorsque l'instance sera mise à niveau vers une version de Looker incluant ce correctif.
Que dois-je faire ?
Google Cloud recommande à tous ses clients de prendre les deux mesures suivantes:
Mettez à jour tous les scripts d'API qui incluent l'un des points de terminaison d'API mis à jour. Si vous ne mettez pas à jour vos scripts d'API comme décrit dans la section suivante, cela peut entraîner des erreurs dans vos applications. Pour savoir comment utiliser l'activité système pour afficher l'utilisation de votre point de terminaison d'API, consultez la section Comment savoir si nous utilisons l'un des points de terminaison d'API mis à jour ? de ce document.
Activez les mises à jour de correctifs. Pour obtenir des instructions, consultez la section correspondant à votre instance Looker:
Mettre à jour les scripts d'API
Si vous utilisez l'un des points de terminaison d'API listés ci-dessous, vous devrez peut-être prendre des mesures, quelle que soit la version de Looker ou de l'API que vous utilisez. L'action recommandée varie selon que vous utilisez l'API 3.0 ou l'API 3.1, ou l'API 4.0.
GET /queries/<query_id>
POST /render_tasks/queries/<query_id>/<result_format>
GET /running_queries
Si vous utilisez l'API 4.0
Si vous utilisez l'API 4.0 et l'un des points de terminaison listés dans la section précédente, apportez les modifications suivantes au code de l'application:
- Remplacez tous les
query_ids
numériques (par exemple, 32, 124, etc.) utilisés avec les points de terminaisonGET /queries/<query_id>
ouPOST /render_tasks/queries/<query_id>/<result_format>
par la valeur slug de la requête. Pour savoir comment trouver la valeur de slug d'une requête, consultez la section "Comment trouver la valeur de slug d'une requête ?". - Toutes les applications qui utilisent le point de terminaison
GET /running_queries
seront limitées aux administrateurs Looker uniquement.
Si vous utilisez l'API 3.0 ou 3.1
Si vous utilisez l'API 3.0 ou l'API 3.1, et que vous utilisez l'un des points de terminaison listés dans la section précédente, apportez les modifications suivantes au code de l'application:
- Le point de terminaison
GET /queries/<query_id>
ne fonctionnera plus. Remplacez le point de terminaisonGET /queries/<query_id>
par le point de terminaisonGET /queries/slug/<slug>
pour récupérer les mêmes métadonnées de requête que vous obteniez auparavant. Pour savoir comment trouver la valeur de slug d'une requête, consultez la section "Comment trouver la valeur de slug d'une requête ?". - Le point de terminaison
POST /render_tasks/queries/<query_id>/<result_format>
ne fonctionnera plus. Les SDK Looker compatibles avec l'API 3.1 seront compatibles avec l'API 3.1 et l'API 4.0. Si vous n'utilisez pas l'un des SDK de Looker, modifiezhttp request path
pour utiliser 4.0 au lieu de 3.1 pour cet appel. Remplacez ensuite tous lesquery_ids
numériques (par exemple, 32, 124, etc.) par la valeur slug de la requête. Pour savoir comment trouver la valeur de slug d'une requête, consultez la section "Comment trouver la valeur de slug d'une requête ?". - Toutes les applications qui utilisent le point de terminaison
GET /running_queries
seront limitées aux administrateurs Looker uniquement.
Comment trouver la valeur du slug d'une requête ?
Vous pouvez trouver la valeur du slug d'une requête de différentes manières:
Pour une exploration, vous trouverez le slug dans l'URL de l'exploration, après la variable
qid=
.Vous pouvez trouver la valeur slug associée à un ID de requête numérique à l'aide de Activité système.
Dans le menu "Explorer" de Looker, sélectionnez Activité système > Historique Explorer.
Dans la vue Requête, sélectionnez les dimensions ID et Lien.
Vous pouvez également ajouter un filtre sur la dimension ID et saisir l'ID numérique de la requête dans le champ de filtre ID de requête.
Cliquez sur Exécuter.
Cliquez sur le lien
[Query]
à côté de l'ID de requête numérique dans les résultats de l'exploration. Une exploration basée sur cet ID de requête numérique s'ouvre alors.Vous pouvez ensuite utiliser le slug dans l'URL de l'exploration, qui suit la variable
qid=
dans l'URL.
Activer le correctif sur les instances Looker (original) hébergées par Looker
Google Cloud recommande à tous les clients hébergeant Looker d'activer la nouvelle ancienne fonctionnalité Désactiver l'ID de requête numérique.
Pour activer l'option Interdire les ID de requête numérique:
Accédez au panneau Administration > Anciens éléments dans le menu "Administration" de Looker.
Activez l'option Interdire les ID de requête numérique:
Activer le correctif sur les instances Looker (Google Cloud Core)
Le correctif est automatiquement activé sur toutes les instances Looker (Google Cloud Core). Vous n'avez rien à faire pour activer le correctif, mais veillez à mettre à jour tous les scripts d'API qui incluent l'un des points de terminaison de l'API mis à jour.
Activer le correctif sur les instances hébergées par le client
Toutes les instances hébergées par le client doivent mettre à jour leur instance Looker vers une version de Looker incluant le dernier correctif. Ce correctif est inclus dans la dernière mise à jour des versions 23.18, 23.20, 24.0 et 24.2 de Looker, ainsi que des versions ESR 23.0, 23.6, 23.12 et 24.0 de Looker. Veillez à mettre à jour tous les scripts d'API qui incluent l'un des points de terminaison de l'API mis à jour avant de mettre à jour votre instance Looker.
Comment savoir si nous utilisons l'un des points de terminaison de l'API mis à jour ?
Vous pouvez afficher la liste des appels d'API effectués sur votre instance Looker à l'aide de l'exploration "Activité système d'utilisation des API".
Dans le menu Explorer de Looker, sélectionnez l'exploration Activité système, puis la vue Utilisation de l'API.
Sélectionnez les dimensions Date de création > Date et Point de terminaison, ainsi que la mesure Consommation totale.
Ajoutez un filtre sur la dimension Point de terminaison et, dans le champ de filtre, incluez les points de terminaison suivants:
/queries/:query_id
/render_tasks/queries/:query_id/:result_format
/running_queries
Cliquez sur Exécuter. Looker affiche des informations sur l'utilisation de ces points de terminaison.
Que faire si j'ai besoin de plus de temps pour mettre à jour mes scripts d'API ?
Contactez l'assistance Looker au plus tard le 21 février à 17h (heure du Pacifique) et indiquez-nous que vous souhaitez désactiver l'ancienne fonctionnalité Désactiver les ID de requête numérique jusqu'à ce que vous puissiez mettre à jour vos scripts d'API.
Les parties concernées doivent-elles effectuer d'autres étapes en plus de celles que je dois suivre pour cet incident afin d'atténuer les effets négatifs potentiels ?
Non
Quelles mesures Looker prend-il pour éviter que ce type de problème ne se reproduise à l'avenir ?
Looker et Google gèrent un programme de sécurité rigoureux pour prévenir et identifier de manière proactive les failles de sécurité en interne. Pour en savoir plus, consultez la page https://cloud.google.com/looker/product/security.
Looker a-t-elle informé les autorités de réglementation ?
Looker respecte l'ensemble des réglementations applicables en ce qui concerne la divulgation de ce type d'incidents.