dimanche 14 décembre 2008

Où va la sécurité ?

L'initiative sécurité de Microsoft est-elle un échec ?

Il n'a échappé à personne [sid][hdm] que le Patch Tuesday a été particulièrement prolifique ce mois-ci.

Par ailleurs, de nouvelles failles non corrigées sont exploitées "dans la nature" [Wordpad][IE] et [MS-SQL, dont je n'ai pas trouvé trace ailleurs] dès le lendemain - une technique qui vise à maximiser la surface d'exposition des cibles.

Est-ce donc un échec du SDL ? Les Mécapoulets sont-ils grillés ?

Il est très difficile de répondre à cette question car le "marché" des vulnérabilités se brouille de plus en plus.
  • Il est évident que le code dit "hérité" (c'est-à-dire le code écrit par des développeurs partis à la retraite avec leurs stock-options) est beaucoup plus difficile à corriger et à maintenir. La majorité des failles trouvées ces dernières années affectent des parsers dans des applications clientes "lourdes" et de conception ancienne (Office, Internet Explorer, Windows Media, etc.). Ce type de code est un puit sans fond pour la recherche de failles, que ce soit par analyse statique, ou par fuzzing. Il n'y a qu'à tenter de lire les spécifications du format Office pour se rendre compte de l'impossibilité d'écrire un parser correct.
  • Microsoft a tout intérêt à produire de "gros" patches, car celà minimise le downtime dû au reboot pour les clients, mais également le nombre de bulletins publiés chaque année (une métrique absurde s'il en est, pourtant largement employée car facilement accessible). Ce qui explique peut-être la lenteur avec laquelle certaines failles sont patchées.
  • La criticité des failles est également discutable. Par exemple l'une des failles patchées par MS08-073 n'est exploitable que sur Internet Explorer 5.01 ...
A ce sujet, et sans rentrer dans les détails techniques, seuls 2 patches me semblent réellement intéressants ce mois-ci : MS08-076 et MS08-077. En effet, tous les autres sont des corruptions mémoire sans innovation technique.

MS08-076 est une faille probablement détectée en interne chez Microsoft (aucun crédit n'étant donné), qui transpose l'attaque par réflexion de crédences aux codecs Windows Media. La deuxième faille concerne la fuite d'authentifiants NTLM via le protocole ISATAP (un mécanisme de transition IPv6). Pas le genre de technologies qui suscitent beaucoup d'intérêt chez les bugs hunters, et pourtant des failles qui ne nécessitent pas une ligne d'assembleur à exploiter, donc beaucoup plus fiables que la moyenne, et totalement indétectables par les outils de sécurité déployés aujourd'hui en entreprise.

C'est à se demander si les chercheurs de failles veulent réellement exploiter leurs découvertes, ou juste gagner de l'argent et/ou du crédit avec.

MS08-077 est une faille de contournement du contrôle d'accès dans le portail SharePoint 2007. Tous ceux qui ont déjà touché de près ou de loin à cette plateforme apprécieront à sa juste valeur la complexité d'une telle découverte.

MS08-067

Ce Patch Tuesday de décembre ne bouleverse finalement pas le paysage en matière de sécurité : des failles côté client, des patches à passer, des redémarrages planifiés, des codes d'exploitation laissés aux tâcherons de l'underground, dans des pays où le développement d'un outil d'exploitation complet coûte $50/mois.

La faille la plus significative de cette année 2008 reste à mon sens MS08-067. Une faille exploitable à distance sans authentification, et nous voilà revenus 4 ans en arrière au temps de Blaster et Sasser.

La seule chose qui a empêché le crash de l'Internet mondial, ce sont les filtrages et/ou la NAT déployée par les FAI depuis. Mais dans les entreprises, l'atterrissage a été douloureux. Le patch n'a pas été identifié comme suffisamment critique pour arrêter la production. Les antivirus, tout comme les soi-disantes solutions de "0day protection", n'avaient pas les bonnes signatures (sic). Les portables et les clés USB continuent d'entrer et sortir du réseau local sans contrôle. Et là, c'est le drame. Heureusement que les payloads embarqués dans les vers actuels, tels que Win32/Conficker, se contentent d'actions insignifiantes telles que voler des authentifiants pour WoW !

Je n'ai évidemment aucune information sur le sujet, mais lorsque l'armée américaine prétend être victime d'une attaque extrêment complexe, provenant des services russes, et l'obligeant à interdire l'usage des clés USB sur ses réseaux, je crains qu'il ne s'agisse que d'un ver très banal mais redoutable sur un réseau qui n'a jamais été exposé au feu d'Internet ...

Le test d'intrusion est-il mort ?

Dans le même ordre idée, l'article "Penetration Testing: Dead in 2009" m'a encore beaucoup navré.

D'abord, parce que le test de pénétration régulier fait partie intégrante de presque toutes les "normes" en sécurité (PCI/DSS, ISO 2700x, et autres), et que ces normes ne vont pas disparaitre en 2009.

Mais surtout parce que l'article est en fait une interview de la société Fortify, spécialisée dans l'audit de code source. Et même en supposant que leur outil soit parfait, qu'il soit utilisé dans tous les produits d'ici fin 2008, et que tous les utilisateurs mettent à jour en 2009 avec les produits corrigés, il faudra bien alors admettre que le (bon) test d'intrusion n'a rien à voir avec l'exploitation de failles d'implémentation ...

Les failles d'implémentation connues:
  • Sont facilement détectables par les scanners de vulnérabilités ;
  • Peuvent être corrigées rapidement par les patches de l'éditeur ;
  • Ne marchent pas dans la vraie vie (Windows 2008 64-bit anyone ?).
Quant au cas des failles inconnues (souvent appelées "0day"), leur cas est vite évacué car trop peu d'auditeurs en disposent, et l'effort de développement sur les plateformes modernes est trop important dans le cadre d'audits réguliers ou d'audits de conformité. Les tests "free for all", seuls applications possibles de ces failles, sont très rares puisque la plupart des entreprises ne passent déjà pas les cas simples.

Le cas PHP est bien entendu à part, puisque le coût d'une faille include est souvent marginal :)

Il est beaucoup plus intéressant dans le cadre d'un test d'intrusion d'identifier des problèmes simples (ex. compte sans mot de passe), susceptibles d'être exploités par des codes automatiques ou des employés malveillants. Ou encore des failles de conception, qui nécessitent de remettre à plat une architecture réseau ou un produit.

Si vous arrivez à persuader un service informatique qu'il est absolument nécessaire d'activer la signature SMB pour contrer les attaques en réflexion de crédences, le test a servi à quelquechose. Sinon, le client restera vulnérable à une faille de conception des protocoles LM et NTLM qui garantit le "succès" de tout test de pénétration ultérieur (sauf si l'auditeur est mauvais, ce qui peut être une conclusion intéressante).

Quel modèle de marché pour les failles ?

Dans ces conditions, la recherche de failles apparait plus comme une activité intellectuelle et ludique que comme la seule et unique source d'intrusion en 2009.

Les américains, prompts à quantifier et à titriser, tentent depuis longtemps d'assigner une valeur monétaire aux "0day" pour imaginer dompter la bête (voir à ce sujet le débat lancé sur la liste Daily Dave -  il est vrai que la société Immunity ne tarit pas d'éloges sur les vertus du "0day") .

Compte-tenu du fait que la loi du marché à tout prix a provoqué la crise mondiale que l'on sait, j'ai du mal à voir comme un marché du "0day" va stimuler la sécurité informatique du côté défensif ... D'autant que les pratiques dans le domaine ne sont déjà plus très étiques, et que les pirates résidant en dehors du "monde libre" sont peu susceptibles de vendre à des américains.

D'autres chercheurs de failles (européens: [WSLabi][Vupen]) se tournent vers les vendeurs d'IDS/IPS : "achetez tel produit car c'est le seul à vous protéger contre la dernière faille dans Internet Explorer, dont seuls les chinois disposent !". Tant d'années au service de la sensibilisation des utilisateurs et des bonnes pratiques pour entendre ça ... c'est triste. Si personne ne surfait sous le compte "administrateur", on en serait pas là. Heureusement que d'autres prédisent la mort des IDS/IPS en 2009 :)

D'ailleurs Snort s'oriente vers la fonction de "Passive Vulnerability Scanner" plutôt que vers la détection hardcore, vouée à l'échec.

Voilà, c'est tout pour aujourd'hui. Si vous en voulez plus, il faudra voter pour ma soumission à SSTIC. Ah non je dois confondre avec BlackHat, le processus de sélection des soumissions à SSTIC reste totalement obscur pour moi :)

7 commentaires:

mxatone a dit…

Un poste très intéressant et je pense que tu poses la bonne question :

Est-ce donc un échec du SDL ? Les Mécapoulets sont-ils grillés ?

Et deux éléments de réponse:

1)Il est évident que le code dit "hérité" (c'est-à-dire le code écrit par des développeurs partis à la retraite avec leurs stock-options) est beaucoup plus difficile à corriger et à maintenir.

C'est pourquoi beaucoup de parties ont été réécrites, on le remarque clairement entre XP et Vista. Mais certaines parties sont tellement complexes qu'il faudrait plusieurs mois (pour pas dire années) pour améliorer ces bases de code.

2)La criticité des failles est également discutable. Par exemple l'une des failles patchées par MS08-073 n'est exploitable que sur Internet Explorer 5.01 ...

Et oui Microsoft support encore ie 5, et on comprend la complexité de la création d'un patch quand on touche un vieux composant qui marche à travers plusieurs systèmes d'exploitation, ou sur 3 à 4 versions différentes. Sans compter le respect sans commune mesure de la compatibilité & co ...

Le SDL n'est pas un échec mais il faut espérer qu'il utilise les nouvelles vulnérabilité pour empécher les futurs attaques. Ce n'est donc pas la recette miracle mais une bonne approche surtout quand on compare aux logiciels comme Acrobat ou Flash (sid a aussi déjà couvert le sujet). Hélas Microsoft à aussi peur de cela car même si ils n'en sont pas les auteurs, il restent concerné car ces failles décrédibilises Windows.

En tout cas, les problèmes de sécu sont loin d'être fini ...

Anonyme a dit…

Tu ne devrais pas tomber aussi facilement dans les trolls tendus par un de tes ex-padawans, devenu apprenti trolleur depuis.

Ensuite, pour MS08-067, il est des boîtes de service dont on taira le nom, chargé de la gestion de réseau d'entreprise, qui n'ont pas appliqué ce patch, parce qu'il était hors-cycle, et que vous comprenez, c'est pas planifié trois mois à l'avance... Clap, clap, clap...

Enfin, tu sais très bien où va la sécurité ;) People never learn... Never...

newsoft a dit…

@mxatone: dis donc, tu bosses pour Microsoft maintenant ou tu es juste un fanboy ? ;)

mxatone a dit…

@newsoft: je suis démaské, je commence le 9 Fevrier dans la SWI Science team.

Après j'ai pas report beaucoup de vuln en dehors de Microsoft, uniquement chez Adobe ... Et l'approche n'est pas la même.

Chez Microsoft ils t'écoutent et acceptent n'importe quel discussion sécurité etc ... z'en font même un peu trop limite.

Chez Adobe, tant que c pas publique, tu peux attendre. Et si tu reportes pas une vuln, tu fermes ta gueule ! Et puis quand on voit la qualité des patchs, check la size a l'entre d'un calloc alors que le prob etait un int overflow dedans ... ce genre de petit trésors. Ca donne envie ;)

newsoft a dit…

@mxatone: je le savais, en fait :)

Tu vas bien t'amuser chez MS, surtout maintenant qu'ils se mettent à chercher des failles dans les produits tiers !

mxatone a dit…

Hehe lol, ca risque d'etre amusant en effet. Mail moi le traitre (c ivan je suis sur !!) ;).

Anonyme a dit…

La communauté de la sécurité des systèmes d'information est un échec.