samedi, janvier 10, 2009

La gravité est le bonheur des imbéciles

Je vous préviens tout de suite, ce billet illisible est bourré de disgressions proustiennes...
Parce que le monde est imparfait et que je connais pas encore d'industriel (même ceux qui vendent sur leurs sites web des pièces détachées à plus de 2.000.000 euros !!) qui ait réalisé une analyse de risques à la sauce 27.005 pour ses appli' web, il sera toujours difficile de qualifier le niveau d'impact du risque potentiel (trop classe comme appelation, nan ?) de la petite centaine de vulnérabilités qui forment votre rapport d'audit.
On a beau marteler durant la réunion de lancement, qu'il vous faut au minimum un classement par niveaux de criticité des différentes applications à auditer (et oui, je ne parle même pas d'actifs primaires et secondaires, car je ne veux pas brusquer le chaland toujours ignare en matière de SSI), tout ce que le chef de projet surchargé vous sortira après deux semaines de harcèlement quotidien, c'est un pov' schéma visio (avec un fond noir pour raisons de sécurité...) avec les noms des appli', ou deux noms ont été soulignés car : "ce sont les appli' dont les bases sont sauvegardées toutes les demies journées...alors ce doit être les plus importantes !!"
Tout ça pour dire, qu'il ne faut pas tomber dans le FUD complet (ça, c'est pour la citation de Montesquieu dans le titre) comme le pratiquent certains concurrents (vous savez, une de ces grosses boîtes de la région parisienne qui utilisent Nessus pour auditer des services web !), mais choisir soigneusement les vulnérabilités à mettre en avant lors de la réunion de restitution (vous savez la réunion programmée à 14h00, après le repas arrosé où les commerciaux, qui payent l'addition, ont gonflé le client avec un étalage indigeste de chiffres et de succes story... et d'où il ne faut pas repartir sans avoir fait signer le sacro-saint PV de recette).
Le plus simple, pour choisir les bonnes vuln' à mettre en avant, consiste à utiliser le ratio "facilité d'exécution"/"gain attendue" du délinquant moyen (ratio qui a fait la prospérité de l'ancien maire de New York et de nos chers ministres de l'intérieure, avec la cèlèbre politique de la tolérance zéro, mais ceci est encore une autre histoire...).
Le fait est, que ce sont ces vulnérabilités qui sont les plus simples à expliquer lors de la réunion/sieste de l'après-midi, surtout lorsque vous avez un auditoire composé de littéraires (là, je veux parler des RSSI de toutes les filliales du client qui se sont donné le mot pour la bouff' gratos, et non du consultant sénior qui a insisté pour vous accompagné, car il veut vendre au client une analyse de risques 27.005 ou une politique de sécu de 400 pages... encore que !!) qui considèrent tout sigle anglosaxon comme une grossière insulte à leur intelligence...
En fait, mon message était tout simple : je m'interrogeais sur le ratio vuln' critiques/vuln' hautes qu'il faut glisser dans un rapport d'audit ?
Ah, j'oubliais : "bonne année toi-même !" pour mes six lecteurs.

vendredi, décembre 19, 2008

La nouvelle version de Burp Suite est énorme !!!

Argh ! Enfin les vacances. Je suis sur les genoux.

Bientôt deux mois sans rien poster ! La honte...Pour ma défense, il faut savoir que les fins de semestre sont toujours super chargées pour les pov' p'tits pentesteurs. A croire que nos prestations ne sont commandées qu'avec des queues de crédit ou des fonds de tiroir.  Et enfin, ma fille ainée est rentrée en maternelle cette année. Elle rapporte donc toutes les maladies infantiles du continent à sa p'tite soeur. Mes nuits sont bientôt plus fatiguantes que mes jours...

Nous avons terminé aujourd'hui, zaz idan et moi-même (bizarre ce pseudo, cela ressemble un peu à Zapp Brannigan ! Un parent ?) un audit marathon d'une quarantaine d'applications Web. Dur de réussir à vendre une prestation de qualité lorsque vos concurrents (apparemment, en place chez le client depuis des années) se contente d'un simple scan Nessus ! Bref, il a fallu s'aligner et casser les prix et faire en 15 jours ce qui aurait du être vendu en 40. La galère !

Mais, bon la pêche a été super bonne. Il faut dire que dix ans de scans Nessus sur des portails extranet, cela laisse tout un tas de vulnérabilités super critiques. Un vrai festival du hack. On s'est régalé !

Ces trois dernières semaines nous ont donc permis de tester sur un grand nombre de technos et de plates-formes la version béta, puis la version finale de Burp Suite, nouvelle mouture. Un seul regret, c'est la sortie tardive de sqlmap qui prend désormais en entrée les log de burp. Cela devient de la tuerie...

Pour revenir à Burp, même si les deux premières versions béta étaient plutôt instables, nous avons pu comparer nos tests habituels sous Burp, aux résultats du scanner de vuln' web GrosCulnetix (figure imposée par le client, qui insistait pour avoir du scan !!!). Il n'y a vraiment pas photo, surtout lorsque l'on passe au travers un SiteMinder dernier cri (mais avec des cookies mal gérés par les appli') et des portails extranet WebLogic montés à l'ancienne (mod_rewrite et iframes bidons à la Apache Coyotte vers des vieux Tomcat, Domino et IIS-ASP), alors qu'ils devraient normalement s'appuyer sur leurs fonctionnalités d'hubs de connexions en T3 vers les seules bases de données !!

Bon. Je dois y aller. Si vous avez des trucs à partager sur Burp ou autre chose. N'hésitez pas... Cela me donnera peut être envie de réécrire durant mes vacances (si je trouve une connexion wifi pas trop éloignée et hackable sans antenne externe près de ma location ! Pas évident...)

vendredi, octobre 31, 2008

La connaissance engendre la peur... ou bien ça fatigue...

Un billet de mauvaise humeur, pour chasser les miasmes :

J'ai rien à écrire d'interressant. Ou bien est-ce la flème ? Toujours est-il que ma verve s'épuise peu à peu entre les copier-coller des rapports d'audit et autres propales. Il faut vraiment ramer pour alimenter son boulot de pentester. Ce boulot est synonyme de missions courtes de moins de 20 jours. Quand j'en aurais marre, je deviendrais Consultant Orga' qui passe l'hiver au chaud avec une mission de plus de 100 jours. Une bonne politique de sécurité Coorporate. Voila ce qu'il me faut pour reprendre pied !


Si j'avais le courage, je vous parlerais de la faille de conception trouvée aujourd'hui : la bonne vieille faille qu'aucun scan de vuln' web, même un à 4000$, n'aurait pu trouvé. Mais bon, cela serait trop compliqué de décrire un script d'authentification, à la sauce Ajax, scotché sur une vieille base Domino aux ACL super-aiguisées. De toute manière, je ne sais même pas si je retrouverai un jour le même type de faille chez un autre client...

Bon, je soigne ma mauvaise grippe ce weekend et je me remotive. Promis !

samedi, août 30, 2008

Fukuyama n'a jamais été un homme révolté

Bien qu'il soit sympa de vérifier chaque jour combien le petit père Francis s'est lamentablement planté en jouant les prophètes, je vous rassure, je ne vais pas tenter de vous démontrer ici en quoi l'éternel retour hégélien peut s'appliquer au Pentest web2.0 ! 
Quant à la notion de révolte, il faut simplement faire un diff entre l'œuvre de Camus (le révolté) et celle de Sartre (le révolutionnaire) pour comprendre l'allusion, mais je ne vais pas  faire ici l'étalage de mes lettres (d'autres Pentesteurs se complaisent  à le faire  quotidiennement !) '];alert('Troll');//.
Les frameworks de Pentest ont révolutionné notre métier en nous délestant, entre autres, de l'énorme travail de veille-techno/adaptation-opcodes-frenchies que tout pentesteur digne de ce nom doit fournir. Bien qu'ayant trouvé un employeur qui reconnaisse enfin cette tâche en tant que "travail à part entière" (vive le code de pointage "Formation_Perso" !), je peux vous avouer, qu'en ce moment, je me fie énormément aux mises à jour de Metasploit pour tout ce qui touche au domaine Client-Serveur, afin de mieux me concentrer sur les appli' Web et en particulier le Web2.0. (Chacun son domaine de prédilection)
Les frameworks de Pentest pour appli Web sont apparemment à la mode parmis mes confrères. Pourtant, je suis resté fidèle à l'Open Source (ou est-ce ma parano/prudence habituelle ?) en m'appuyant sur le trio Burp/Wapiti/w3af plutôt que sur un framework comme Accunetix, Appscan ou Web Inspect.(oui, je sais, Burp n'est pas vraiment de l'Open Source...)
En fait, les frameworks propriétaires actuels sont très décevants lorsqu'il s'agit de réaliser un pentest d'une appli sous Ajax. Les meilleurs d'entre eux arrivent péniblement à passer en revue ("parser" dans le jargon) les objets Thick Clients (Applets Java, Controles ActiveX, ObjectsFlash...) et restent sans voix face à un appel XHR.
En raison de l'extrême transparence des techno Ajax (tout passe en clair), je ne pense pas qu'un parseur web2.0 très poussé soit actuellement indispensable. En effet, la reconnaissance d'une appli sous Ajax est tout à fait réalisable aujourd'hui à l'aide d'un furieux mélange d'interruptions sous Firebug et de scripts Greasemonkey et Chikenfoot. Avec la pratique, on arrive en quelques minutes à obtenir la liste de toutes les requêtes XHR et à extraire les fonctions intéressantes correspondantes.
En parlant de scripts Greasemonkey, je vous déconseille vivement le script WebPageFingerprint d'Aung Khant qui n'est rien d'autre qu'un cheval de Troie sur pattes ! Celui-ci rapatrie toutes les failles potentielles directement au site de yehg. L'étude de ce script est cependant très enrichissante, bien que les fonctions d'analyse restent inaccessibles sur le site de son auteur. ;-)
Pour revenir à l'idée d'un parser Ajax, un tel outil va devenir indispensable lorsque les techno' Ajax vont gagner en maturité et commencer à chiffrer/masquer toutes les XHR. En fait, un petit nombre de développeurs web2.0 semblent avoir déjà entammer ce travail d'obfuscation à l'aide des différents outils d'anonymisation de variables à leur disposition (à moins que je soit tombé sur des développeurs off-shore indiens qui protègent leur gagne-pain ??)
En dépit de l'apparente complexité d'Ajax, un tel parser n'est pas monstrueux à coder. Pour démarrer, on peut se baser sur le parser rudimentaire proposé par Sheeraj Shah : scanajax.rb et l'enrichir peu à peu au fil de ces découvertes. A savoir que cet outil ne fonctionne correctement qu'une fois toutes ces dépendances respectées : gem install rest-open-uri openuri-memcached urirequire jrexml rexml-expansion-fix
Cependant, dès que l'on rencontre des techniques d'obfuscation, il faut se raccrocher aux interruptions de Firebug et à une analyse approfondie sous WebDevelopper pour s'y retrouver. Je doute que les parser d'Acunetix ou de Web Inspect aient un quelconque avenir en la matière. Bref, il nous faut construire l'ollydbg du JavaScript/XHR. 
CQFD pour la digression hégélienne...