CSRF demystifié et enfin réglé !

Dans le numéro 200 de LinuxMag, vous trouverez un article a la fin sur le CSRF et comment enfin régler le sujet sur l’ensemble de vos plateformes; que cela soit via l’infrastructure ou dans le code.

A force de voir lors de pentests/audit de code ce type de vulnérabilité qui ressort et qui est parfois si simple a corriger, j’ai décidé d’écrire cet article de manière pratique et agnostique.

Au sommaire :

  1. CSRF Késako ?
    1. CSRF OK, mais pourquoi cela fonctionne ?
  2. Quelles sont les solutions à notre disposition ?
    1. Les solutions dans la partie infrastructure (serveurs Web, Serveur applicatif)
      1. Sur Apache
      2. La configuration des filtres de TOMCAT
  3. Les solutions dans la partie code…
    1. Aidons Duke avec la libellule… => Java

      1. Bien sûr, avec des frameworks on arrive aussi à se protéger facilement
    2. Pour les éléPHPants, cela peut être simple, ou pas…
      1. Ciel, je n’ai pas de framework PHP!!!!
    3. Moi le perfectionniste par contre, c’est simple => Python
    4. Mettons notre code à l’abri du CSRF sur de bons rails => Ruby On Rails

 

J’espere que cet article vous sera utile, en tout cas, si cela l’est ou ne l’est pas, n’hesitez pas à me contacter, car il y en a d’autres sur d’autres sujets en préparation, et au plus vite je peux améliorer….

L’ANSSI publie #SecNumCloud

Pendant que, hier, j’assistais un huissier sur une ordonnance en CPC 145, mon petit oiseau m’averti d’un nouveau tweet publié par l’ANSSI sur le nouveau référentiel a destination des opérateurs de Cloud (pardon, en nuage je voulais dire….).; oui parfois on s’embete un peu pendant les CPC 145….

Chouette, je met cela dans le « a-lire » ce soir, on va voir ce que l’on a sur ce sujet de la part de l’ANSSI.

Ce matin, au petit lever du jour entre le thé et le café, je me mets a lire ce document. Et la, les bras m’en tombe….C’est quoi le réel intérêt de ce document ? en effet, je ne vois dedans pas grand chose de plus que ce que l’on a dans l’ISO-27002. Bien sur un apport important consiste en la traduction française et la mise a disposition gratuite…(oui la 27002 est payante).

Alors bien sur, vous allez réagir, me dire que je ne suis pas très objectif, qu’il y a le chapitre 19… Et puis que ça va permettre l’émergence de « Cloud Certifiés« . Alors oui, il y a ce point la qui pourrait être bien, mais quand on voit la catastrophe du Cloud à la Francaise.

Bref, encore une fois on vient au secours de certaines sociétés en « verrouillant » des marchés, et en ne regardant pas ce qui se fait à l’extérieur (coucou la CSA).

Sur ce, je vous laisse méditer ce nouveau référentiel, et me faire part de vos « interets », j’ai des clients chez AWS qui demandent des choses….

 

 

BMW prend la main sur votre voiture a distance

Il y a quelques jours, un voleur a décidé de prendre une BMW. Donc, il monte dedans, et la il se retrouve enfermé…. En effet, il semble que BMW soit capable de prendre la main sur votre voiture pour effectuer certaines taches….

Cela me rappelle une présentation que j’ai pu faire à l’API connection en Juin 2015. Ce matin la, j’ai présenté devant un panel important de responsables digitaux, comment en quelques minutes nous pouvions accéder à des données d’une voiture de type allemande conçue vers Munich.

Après téléchargement de l’APK qui va bien, nous avons décompiler cette dernière et regarder ce que nous avions dedans. Rapidement, ont été extraits les APIs et les fonctions de ces dernières  avec les clefs de services.

Très simplement j’aurai pu faire sonner a distance la voiture de mon choix, voir chauffer les sièges ou autres joyeusetés.

Ce qu’a fait BMW pour la police de Seattle, ne m’étonne donc pas beaucoup, et profile peut être le futur de ce qui nous attend… Sur ce, je retourne dans ma 2ch qui elle n’est pas tout a fait prête a subir cela….

 

Refs / links  :

  • http://spdblotter.seattle.gov/2016/11/30/car-thief-foiled-by-police-nap-power-door-locks/
  • https://www.wired.com/2016/08/jeep-hackers-return-high-speed-steering-acceleration-hacks/
  • https://www.wired.com/2016/09/tesla-responds-chinese-hack-major-security-upgrade/

 

 

 

Mobile Security Application Standard (aka MASVS)

En passant, je vous rappelle que le projet OWASP MASVS est actif et peut interesser un paquet de monde développant des applications Mobiles.

Et oui !L‘OWASP n’est pas juste ciblé sur les applications Web 😉

Pour les Genevois, il y a une présentation au prochain Meeting OWASP-Genève du 12/12/2016 par un petit gars bien .

Le Repo du projet est ici : https://github.com/OWASP/owasp-masvs

Google annonce un patch update important pour Décembre 2016

Papa « Google » Noël sera donc prolifique cette année.

Pas moins de 74 correctifs dont 11 critiques a destination de la plateforme Android !

Encore une fois nous pouvons noter que les plateformes qui vont recevoir les mises a jour seront uniquement les plateformes « pures », c’est a dire : Google Nexus (6,6P, …) et Google Pixel.

Il est donc de bon ton de rappeler qu’avant de choisir un mobile « professionnel » sous Android devant donc être le plus proche du meilleur niveau de sécurité, choisir autre chose que du « Google » est souvent s’en remettre au constructeur qui lui, se fiche royalement le plus souvent des mises a jour….

Références :

  • http://arstechnica.com/gadgets/2016/12/android-7-1-1-released-for-pixel-and-most-nexus-devices/

 

Intégrité des scripts tiers chargés dans le navigateur

Il vous est surement arrivé de constater que le développement Web fait la belle part a des éléments externes qui sont chargés dans votre navigateur. Par exemple de nombreux sites n’intègrent pas directement un certain nombre de librairies, mais font appel aux API google.

Exemple :

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>

Bien sûr, c’est une solution très simple et parfois même très optimisée, car google a parfois plus de répondant en termes de temps et de dispos que votre site….

Néanmoins, dans ce cas, vous chargez un élément dans votre navigateur et peut-être faites vous entrer le loup dans la bergerie. En effet, le Javascript chargé va pouvoir travailler comme il le veut avec votre navigateur, et communiquer avec un site externe (en l’occurrence basiquement celui ou il est chargé, sauf si vous travaillez correctement le CSP et la SOP et la ça ouvre plus….).

Il y a deux solutions pour régler ce problème. 

  1. Ne pas inclure les scripts externes dans une page Web. Solution idéale, mais pas toujours réaliste…En effet, le serveur qui vous fourni le script externe est peut être sous votre contrôle quand même ou tout simplement ceux qui vous développe le site Web, ne savent pas faire autrement….
  2. Trouver un mécanisme d’intégrité permettant de s’assurer que tout va bien pour le script chargé et détecter tout changement de ses valeurs.

Le W3C a sorti une spécification qui s’appelle la Subresource Integrity  qui permet de résoudre le second point. Cela va permettre d’ajouter, sur les navigateurs le supportant, un attribut à l’élément <script> pour cette intégrité.

Cela donne quelque chose comme cela :

<script type="text/javascript" integrity="sha384-MBO5IDfYaE6c6Aao94oZrIOiC6CGiSN2n4QUbHNPhzk5Xhm0djZLQqTpL0HzTUxk"src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>

Le calcul d’intégrité doit être effectué par le développeur via un algorithme connu. Il est donc préférable d’utiliser des SHA… Et cet attribut doit ensuite être encodé en BASE64 pour être ajouté dans le morceau de code HTML.

Cela a pour effet que si un bit du fichier est modifié, alors le hash final ne sera pas le même et donc l’intégrité ne serait pas correcte et le navigateur (compatible) sortira une alerte/erreur sur l’intégration de ce script.

Cela ne doit pas pour autant vous empêcher de vérifier quand même avant intégration le contenu du script pour vérifier qu’il n’a pas de contenu malveillant ! 

Pour l’instant les navigateurs suivants supportent cette fonctionnalité :

Comme d’habitude le merveilleux site CanIUse vous dit tout sur celui qui supporte ou pas cette fonctionnalité 

Liens de veille sécurité / Semaine 47 et 48

Santé

 

 Hacks

 

Droit

 

 

 

La Gendarmerie Nationale fait fermer les plus gros hébergeurs de Torrents Français :

 http://www.andorradifusio.ad/Noticies/aixi-es-va-detenir-a-andorra-un-dels-responsables-de-zone-telechargement

  • https://twitter.com/Gendarmerie/status/803277163168468998?ref_src=twsrc%5Etfw

 

 Etudes

 

Divers :