PROJET AUTOBLOG


Sam & Max: Python, Django, Git et du cul

Site original : Sam & Max: Python, Django, Git et du cul

⇐ retour index

Heartbleed, une semaine plus tard

mardi 15 avril 2014 à 11:16

Il y a eu pas mal d’infos sur le sujet, généralement assez technique et en anglais, aussi je vous fais un petit résumé de la crise.

Le 8 avril dernier, une faille dans le logiciel OpenSSL, surnommée Heartbleed, a été rendue publique. OpenSSL est le logiciel le plus utilisé au monde pour chiffrer les communications entre le navigateur et le site Web. Les banques, les e-commerce, les emails, les réseaux sociaux, tous utilisent SSL, pour éviter que l’on puisse intercepter vos communications. Et la plupart utilisent OpenSSL sur leurs serveurs pour permettre une connexion SSL.

Ce n’est pas le protocole SSL ou le chiffrement en général qui est mis en cause mais bien le logiciel OpenSSL.

Au début, on a cru à une faille critique qui permettait à l’attaquant de lire les communications. Toute personne exploitant cette faille aurait pu récupérer vos identifiants de banque au moment de votre login par exemple.

Il s’est avéré que c’était bien pire encore.

La faille permet de récupérer, à chaque heart beat (d’où le surnom) – c’est à dire à chaque fois qu’un client dit au serveur “je suis toujours connecté” – 64K de mémoire de l’ordinateur cible, au hasard. Parce que cette faille utilise le heart beat, elle n’implique pas d’authentification ou de log, elle est donc parfaitement silencieuse, ne laisse pas de trace, et n’importe qui sans autorisation peut se connecter et en tirer parti.

Tous les sites les plus importants sont concernés incluant tous les réseaux sociaux, fournisseurs d’email, banque, etc. En fait, même les services en ligne qui ne sont pas des sites, comme Steam, sont affectés.

On ne peut pas choisir les 64K sur la machine, mais si on répète l’opération suffisamment longtemps, on peut récupérer la plupart des choses en mémoire. Comme un serveur a généralement énormément de cache en mémoire, il y a de tout dedans : les mots de passe, adresses emails, clés privées, certificats d’authentification, présents dans le programme, etc. En prime, en récupérant la clé privée, on peut écouter les connections au site ou carrément se faire passer pour le site, puis facilement récupérer numéros de carte de crédit, emails, messages privés, et tout ce qui transite.

La plupart des services ont réagit très vite et ont corrigé le problème, seulement la faille a été dans la nature pendant 2 ans.

C’est une catastrophe.

A qui profite le crime ?

La question n’est pas qui peut en tirer parti. La réponse à cela est tous les attaquants : pirates, gouvernements, armées, services secrets et même script kiddies.

Non. Le débat est plutôt de savoir si la faille était intentionnelle ou pas.

D’un côté, j’aime beaucoup cette phrase attribuée à Napoléon :

N’attribuez jamais à la malveillance ce qui s’explique très bien par l’incompétence.

Et l’incompétence, il en a fallu, car il ne s’agit pas d’une faille de cryptographie complexe, mais d’une erreur de débutant en programmation C. Dans un logiciel qui a la portée de OpenSSL, ça amène sérieusement à se poser des questions, malgré le déni de l’auteur.

Par dessus se rajoute une déclaration d’Assange, qui enfonce un clou dans le cercueil, en expliquant que de nombreux logiciels Open Source sont complètement vérolés par la NSA, incluant des distributions Linux aussi réputées que Debian.

Comme souvent sur Internet, ce sont les commentaires de l’article qui sont les plus intéressants. On y note notamment plusieurs personnes, se présentant comme des professionnels de la cryptographies, débattant avec des argumentaires très bien construits de l’implication probable de la NSA et d’autres services secret dans la mise en œuvre de cette faille, et de son exploitation.

D’un côté, Bloomberg a annoncé que la NSA, a défaut d’avoir créé le bug, savait à son propos depuis le début et l’a exploité. De l’autre, la NSA nie (putain la NSA a un compte Twitter ?).

En tout cas, avec la révélation de Prism, il ne tient plus de la théorie du complot mais de faits que ces entités cherchent par tous les moyens à obtenir la main mise sur les réseaux d’information. L’idée qu’ils aient créé cette back door parait donc plausible, bien qu’improuvable.

Et surtout, si c’est le cas, combien d’autres accès aussi radicaux ont-ils à leur disposition ? Mon frère me disait dernièrement :

Je ne sais pas pourquoi ça te surprend encore. Tout en informatique a été craqué. Tout. Depuis toujours. On crack les playstations, Windows… Pourquoi tu crois que tes systèmes de sécurités ne sont pas craqués aux aussi ?

Sous prétexte que tout le monde les utilise, qu’ils sont Open source et que des gens vachement plus intelligents que nous les ont vérifié, on fait confiance à ces systèmes. Mais si la porte blindée est attachée à un mur en BA13 et qu’on ne le sait pas ?

Que faire pour l’utilisateur ?

Comme l’a recommandé Mathieu Agopian, d’abord changer tous ses mots de passe, pour tous ses sites. C’est là qu’on apprécie lastpass.

Je sais pertinemment que personne ne va le faire. Les gens ont une forte tendance à se plaindre que tout le monde est pourri et qu’on ne peut rien y changer, mais dès qu’il faut mettre la main à la pâte, y a plus personne. C’est pareil pour le recyclage, le boycott ou la lecture des programmes électoraux.

Et puis ils n’ont rien à cacher, pas vrai ?

De plus, si il existe d’autres failles de ce genre, ça ne résoudra pas le problème général, qui est politique et social. L’informatique n’est qu’un outil, on ne résout pas avec de la technique les problèmes d’un peuple. Même si ça aide.

De plus, le problème n’est pas complètement résolu côté fournisseur. Il faut que tout le monde mette à jour ses certificats, et les autorités de certifications croulent sous les demandes. Elles n’ont pas une infra prévue pour ça. Ensuite, certains outils ne pourront pas se changer. OpenSSL est présent dans de nombreux systèmes embarqués. Si vous mettre en sécurité implique jeter votre appareil et en racheter un neuf, vous pouvez être certain que que ça se fera encore moins que changer les mots de passe. Et je ne vous parle même pas de l’industrie. Je met ma bite à couper que dans le domaine des transports il y a des tas d’équipements bien trop chers à changer pour qu’ils soient sécurisés. Les professionnels vont donc jouer la carte de l’obscurité et serrer les fesses.

La désillusion sur l’Open Source

Ce qui fait mal au fion, c’est l’évidence de la réponse de Wolf dans un des commentaires de l’article sur Asssange, quand quelqu’un demande des solutions :

I think the reason you’re not receiving much of an answer on this is the reason I gave above – there are none. We’re in a place of no good options.

Car quand il s’agit du système général qui joue contre celui qu’il est censé servir, changer de logiciel ne sert à rien. On pensait que parce que les systèmes ouverts étaient transparents, ils n’étaient pas attaquables de cette manière. Des milliers d’yeux pour regarder le code source, qu’ils disaient.

Heartbleed nous montre une histoire bien différente.

OpenSSL s’est révélé être extrêmement difficile à auditer, car il est très complexe, sa documentation est réputée lacunaire sans compter qu’il faut de sacrées compétences pour ne serait-ce que commencer à proposer de participer.

En clair, la taille, la complexité et l’accessibilité des projets libres les plus importants font un sérieux contre poids à la fameuse garantie de la revue de pairs. C’est pour cette raison que des projets comme Android ne sont pas considérés comme libres par beaucoup : seul Google a les ressources pour étudier tout le code source. On manque de gens compétents, ainsi que de temps et d’argent. Il y a de plus en plus d’informaticiens, mais de moins en moins, proportionnellement, sont qualifiés. Beaucoup de techniciens, peu d’ingénieurs ou de hackers, malgré le titre sur le CV. Et encore moins qui sont motivés pour mettre les mains dans le cambouis du FOSS.

Cela veut-il dire qu’il faut jeter le bébé avec l’eau du bain ?

Certainement pas.

En fait, si cette faille avait été dans un logiciel propriétaire, nous n’aurions jamais été au courant. Elle a été découverte par hasard lors d’un audit d’un système qui n’a absolument rien à voir, par une équipe de sécurité Finlandaise. Les ingénieurs ont matraqué leur cible de tests aléatoires et sont tombés sur un problème. En cherchant l’origine du problème, ils se sont aperçus que le souci ne venait pas du produit testé, mais d’OpenSSL. Parce qu’ils avaient le code source, ils ont pu pointer du doigt la faille et prévenir les auteurs d’OpenSSL.

Entre temps, l’équipe de sécurité de Google (là encore, ça fait jaser car ils ont la réputation d’être proches de la NSA) a publié le bug et le correctif, et la couverture de presse vend le tout comme étant leur propre découverte.

L’Emo de la fin

Donc non, les logiciels Open Source ne sont pas vaccinés contre les failles majeures sous prétexte que le code est public.

Oui, il y a un soupçon grave de sabotage, à l’heure actuelle (et probablement pour longtemps) il n’y a aucune preuve. On peut s’attendre à une grosse vague de rejet de cette idée pour cause de “théorie du complot”. Ça ne change pas beaucoup des débats habituels dès qu’on parle de sécurité. C’est fou comme les gens sont prêt à jouer la carte de la présomption d’innocence pour défendre des grosses institutions boîtes noires au passé trouble et désignent coupable les accusés de pédophilie dès qu’ils voient leur tête au 20H…

La différence, c’est l’enjeu, et il est de taille. On parle pas d’une déchirure du slip, on parle d’être complètement à poil avec un bout du string cassé qui sort de l’anus.

Enfin oui, l’Open Source, offre toujours de meilleures garanties de sécurité en la matière que le logiciel fermé. Plus de transparence, plus de vitesse de réaction, disponibilité immédiate et pour toujours des correctifs, etc. Mais surtout, on vient d’en parler, si il s’agit de sabotage, le problème est politique et social, pas juste technique. Face à cela, un système démocratique, comme l’Open Source, a plus de chance de jouer en notre faveur qu’un système oligarchique de logiciel propriétaire. Reste à vérifier si l’élitisme du savoir ne risque pas de créer une oligarchie d’un autre genre côté FOSS. Sans compter les innombrables problèmes d’ego.

Mais ça ne suffit pas. Et à la lueur de ce genre d’affaire, il va falloir que la communauté du libre, principale gardienne des plus gros codes sources ouverts, se réorganise pour à la fois faire le ménage dans la base de code existante et filtrer à l’entrée les potentiels saboteurs. Qu’ils soient incompétents ou malveillants.

J’aimerais pas être dans les chaussettes de Linus en ce moment.

Malheureusement wikipedia est la preuve que des règles plus restrictives pour participer n’empêche pas les lobbyistes de pourrir le contenu mais apporte bel et bien un énorme frein à l’entrée de sang neuf. Ce qui n’arrange pas nos affaires, dans un monde où la complexité des sujets augmente plus vite que la compétence des gens qui pourraient participer. La revue communautaire reste le moins pire des systèmes, comme la démocratie pour Churchill, mais ça me colle un petit coup de blues tout ça quand même.

flattr this!

Ca va se prolonger

jeudi 10 avril 2014 à 12:12

Situation imprévue et prolongation de l’absence. Retour sur le blog lundi ou mardi.

flattr this!

Au revoir

vendredi 28 mars 2014 à 15:23

Je me tire pour deux semaines.

Pas d’articles.

Pas de comments.

Bisous.

flattr this!

Traquez les erreurs de vos apps Django avec Sentry

mercredi 26 mars 2014 à 05:36

Tout foire tout le temps. Le site (ou app) sans erreur n’existe pas. Après chaque mise à jour on croise les doigts et on espère que tout va bien se passer.
Les plus courageux auront fait des tests unitaires en amont qu’ils lanceront avant l’update, les autres comme moi vont commiter leurs changements et redémarrer le serveur prod. On est boucher de père en fils dans la famille…

Avant toute chose Sentry qui avant était un projet Django serveur/client a depuis évolué et est devenu un serveur uniquement, laissant le choix du client suivant votre framework/language de travail. Sentry est disponible sur à peu près toutes les plateformes (Python, PHP, Ruby, JavaScript, Java, Node.js, iOS) et les frameworks Rails et Django. La documentation est très fournie et le projet très actif.

Dans le cas d’un site web en général on a tellement de pages qu’on ne peut pas prédire à l’avance ce qui va foirer ou pas (mais ça foire toujours, tout foire, etc…). Même si vous avez fait les tests unitaires vous aurez forcément oublié quelque chose.

Cette page spéciale sur les nains obèses unijambistes scatophiles pour lesquels vous avez créé un tag unique et qui ne supporte pas que vous ayez changé votre mode de cache va lamentablement planter et vous priver de la fidélité de DSK sur votre site pour longtemps.

Heureusement nous allons pouvoir logger toutes ces erreurs et avoir des jolis graphiques post-mortems. Bien évidement ça va vous faire du taf en plus bande de feignasses.

Sentry vient en standalone ou en version gratuite limitée, hebergée par les créateurs.
J’ai voulu installer la standalone parceque je revenais de l’apéro et qu’au 8ème Ricard on veut tout faire soit-même mais la raison et 14heures de sommeil l’ont emporté, c’est à mon réveil que je me suis alors décidé à installer la version trial limitée à 7 jours de log et 2800 evenements loggés (qui au passage suffit sur un de nos plus gros site).

la mise en place est vraiment des plus simple:

Créez un compte et ensuite récupérez la clef API dans les préférences sur votre compte en ligne Sentry.

Du côté de votre projet Django:

Installez Raven, qui est un client python pour Sentry. Il va se charger collecter vos erreurs et les transmètre à Sentry.

Comme d’habitude une bonne PIP:

  pip install raven

Dans le fichier settings.py de votre projet Django:

Utilisez la clef Api fournie par Sentry (voir plus haut)

# used for sentry login
RAVEN_CONFIG = {
    'dsn': 'https://aboudouboudousplish:aboudouboudousplash@app.getsentry.com/1984',
}

Vous pouvez faire un test pour voir si tout est bien configuré:

Dans votre projet Django tapez

python manage.py raven test

Vous devriez recevoir un email de Sentry avec le récapitulatif du test raven.


L’interface Sentry:

La liste des évènements avec possibilité de filtres.

Sur le flux vous allez avoir la liste de tous les évènements loggés, vous pouvez les trier en choisissant parmi une plétore d’options. Vous pouvez nettoyer ce flux en un seul clic (lors d’un redemarrage de serveur vous risquez d’avoir beaucoup d’erreurs qui n’en sont en fait pas, donc inutile de les traiter).

L'évènement en détail, une clarté qui donne envie d'avoir des bugs ^^

Chaque évènement du flux a une vue détail où vous allez pouvoir tracer le bug, c’est clair et plein d’informations (un peu comme les pages de debug Django). Il y a la possibilité d’ajouter des notes, de relancer la requête afin de vérifier la correction effectuée.


Le mode Team:

Sentry vous permet de bosser en équipe, vous créez un projet, des utilisateurs et chacun peut monitorer, corriger des bugs etc (pas dispo dans la version trial). Vous pouvez aussi créer des groupes d’utilisateurs qui n’auront accès qu’à certains projet. Le côté équipe a bien été intégré. Vous saurez sur qui gueuler lorsque le bug aura été mal corrigé.

Conclusion:
Monitorer ses apps est un vrai calvaire quand on n’a pas les bons outils ou que ces derniers sont chiants à installer/maintenir.
Sentry offre deux possibilités d’installation et leur mode trial vaut vraiment le coup (gratuit je le répète), les plus courageux se farciront l’install.
Pour la version standalone j’ai lu un peu partout qu’il était préférable de l’installer sur un serveur à part, à méditer avant de se lancer. Les logs sont en temps réél, vous n’avez pas à attendre le lendemain pour savoir ce qui a planté la veille, vous pouvez donc corriger vos bugs rapidement.

Le plus gros problème de Sentry je pense c’est qu’on tombe accroc, je m’y rend désormais plusieurs fois par jour pour voir si il n’y a pas un petit bug à corriger :)

PS: je cherche l’équivalent pour monitorer les serveurs, Munin est trop vieux et tous les autres outils que j’ai pu tester demande à installer (entendez passer des heures à compiler) toute une machinerie. L’idéal serait des paquets à installer sur les serveurs à monitorer + service en ligne à la Sentry.

flattr this!

Pour 2014, prenez une bonne résolution : baisez de la grosse !

lundi 24 mars 2014 à 15:27

Il n’est jamais trop tard pour se reprendre en main et aller dans la bonne direction.

J’étais en train de me faire draguer par une copine de mon coloc plutôt rondoudou que pikachu quand je me suis fait la réflexion que toutes les rondes avec qui j’avais couché avait été de super bon coups.

Ça va faire raler Max, parce que lui il n’aime que les anorexiques. Il a bon goût en la matière ceci dit, et on se rejoint tous les deux sur les africaines, alors ça compense.

Par contre ça va plaire à Réchèr qui est très BBW.

Bref, 5 raisons de passer le permis poids lourd…

Elles se donnent au max

Et oui, elles font des efforts. Comme dit le dicton : “De mémoire de marin, a jamais vu une baleine faire l’étoile de mer.”

Ce dicton n’existe absolument pas et je l’ai complètement inventé.

On a pas peur de taper dans le fond

Il y a des filles, on a peur de les casser en deux. Et d’autres, on peut partir en rodéo en levrette. Or, comme l’énergie cinétique c’est 1/2 de mv carré, avoir un corps résistant pour absorber le choc est un avantage non négligeable.

Elles ont la langue super entrainée.

Les grosses sucent super bien. C’est un cliché. Je ne suis pas un échantillon représentatif.

Mais bon, je défend l’idée. On est sur internet, si je dis une connerie se sera diluée dans la masse de toute façon.

Elles ont des seins idéaux pour la branlette espagnole

Le bonnet F a plein d’avantages. On peut y plonger la tête dedans. On peut y insérer divers choses. On peut faire sa muscu avec.

Elles cuisinent bien. Et moi après, j’ai souvent faim.

Parce que le cul et la bouffe, c’est indissociable.

Et je ne dis absolument pas ça parce que j’ai pris du poids dernièrement.

La semaine prochaine on vous expliquera pourquoi brouter de la rousse est bon pour la peau.

flattr this!