Récemment à ParisRB, nous avons eu des présentations sur la sécurité. Dorian et Jean-Baptiste se sont gentiment proposer de continuer avec une série régulière.
Tout d’abord je rappelle aux curieux que nous réussissons depuis janvier à transmettre les meetups en live sur la chaîne YouTube ParisRB et que nous avons un Slack qui vous permet de réagir durant l’événement et poser des questions.
La sécurité c’est bien joli mais il est difficile de comprendre
pourquoi un code javascript alert('pwn3d!')
est une faille.
Plus que jamais je ne suis pas un expert mais je vise à vulgariser et démystifier ces sujets : je ne suis pas un dentiste, mais je peux quand même vous expliquer comment vous brosser les dents.
Acceptez les difficultés
Car au niveau de la plupart des développeurs, c’est bien de ça qu’il s’agit : une forme d’hygiène. Avec les bonnes habitudes, et dans une équipe un peu complète, on évite un maximum de problèmes. Dans les cas rares où vous avez des besoins très précis, vous serez au courant avant et vous prendrez vos dispositions.
Le monde de la sécurité peut rebuter pour plusieurs aspects. Tout d’abord ça fait peur, et plus que tout autre domaine on a peur de ne jamais être à la hauteur : le sujet est vaste, plein de jargon et de technicité, et comme dans le jeu des gendarmes et des voleurs c’est un jeu d’attaques et contre-attaques, et on a toujours l’impression d’avoir une étape de retard.
Ça fait aussi de vous quelqu’un d’extrêmement parano, jusque dans la vraie vie. Et pire, comme “la sécurité d’une chaîne est celle de son maillon le plus faible”, et personne ne veut être le maillon faible.
L’approche par le risque
Là encore j’ai a priori de quoi faire un épisode complet sur chaque type de faille, mais on va commencer par des généralités. Parlons de la sécurité de votre habitation, et désolé si ça vous empêche de dormir ce soir :)
Le premier postulat c’est que tout change et rien n’est certain : “le risque zéro n’existe pas”. On va protéger sa maison contre les cambrioleurs, mais pas contre une attaque au camion bélier ou au lance-roquettes. Les banques et data-centers, eux, peuvent et devraient s’en inquiéter.
L’idée est dissuader l’attaquant avant même qu’il tente de rentrer chez vous : trop long, trop compliqué, pour des gains incertains.
Analyse de comportements
Des études disent qu’une bonne porte et de bonnes fenêtres font fuir la majorité des cambrioleurs : plus le temps passe et plus ils font de bruit, plus ils ont de chances que vous reveniez, ou qu’un passant les remarque.
Avec cette approche, une des clés de votre système, ce n’est pas d’être totalement imperméable, mais que toute attaque soit aussi difficile, et longue, et bruyante que possible.
C’est comme avoir des caméras de surveillance : ça n’empêche pas le crime d’avoir lieu, mais ça augmente les chances de détection et de retrouver des traces pour punir le coupable. Aucune protection, mais de la dissuasion.
Dans vos systèmes, en tant que développeur, vous êtes de toutes façons déjà parti pour tout tracer et analyser : pour votre reporting, votre chef, votre curiosité, votre business, avoir des idées de ce qui est important et ce qui l’est moins…
Il suffit de rajouter l’aspect sécurité à cette question : qu’est-ce qui consitue un comportement normal, et qu’est-ce qui sort de la norme ? Mettez en place un système d’analyse et d’alerte, vous ne serez jamais déçus d’être prévenu d’une situation anormale : appli cassée, serveur KO, réseau coupé… et intrusion en cours.
Et tant pis pour le voisin !
On dit parfois que si vous êtes dans un groupe poursuivi par un lion affamé, il n’y a pas besoin de courir plus vite que le lion, mais plus vite que la personne la plus lente du groupe.
C’est pareil : si votre porte ou votre site ne sont pas ultra sécurisés, on souhaite au moins qu’ils soient plus difficiles à pirater que celui du voisin. On suppose les attaquants ne sont pas totalement idiots et se reporteront sur la cible la plus facile.
Le coût total
Tout cela coûte de l’argent à mettre en place et à regarder en permanence. Il y a de nouveau un équilibre à trouver entre la prévention, la réaction (qu’est-ce que ça vous coûte de couper puis de réparer), et ce qu’une attaque vous aura coûté entretemps en business perdu.
Dans la vraie vie on peut tout à fait mettre des assurances, vous en avez une sur votre logement, et sur votre business, que vous négociez en fonction de votre budget, des risques et des coûts.
Bon, ça remplit déjà un épisode, on verra plus tard pour l’explication des méthodes elles-mêmes comme les injections. J’imagine que vous avez de quoi réfléchir, et que vous ne serez pas surpris d’apprendre que la plupart des fans de sécurité que je connais sont aussi très intéressés par la sécurité physique des locaux, et notamment les serrures.
Dormez bien !