lundi 21 décembre 2009

Dissonance cognitive

Ca y est, j'ai terminé le Challenge Azure (je ne suis pas 1er car il a fallu un peu de temps pour brute-forcer le QCM :)



La mauvaise nouvelle pour vous, c'est que je suis maintenant officiellement autorisé à vous parler de Cloud Computing puisque j'ai envoyé mes applications "In The Cloud" :)

Mais pour être honnête, je n'ai jamais rencontré un challenge aussi grisant depuis la disparition de SecuriTech. Il existe plein de challenges passionnants et intelligents sur Internet, mais rien à faire: le temps limité ajoute un sentiment d'urgence très excitant.

Et le Challenge Azure est vraiment unique. Pourquoi ? Parce qu'il est facile de trouver la solution à tous les autres challenges publics. Soit parce qu'il existe des spoilers, soit parce que ce sont toujours les mêmes failles qui reviennent en boucle: buffer overflow, fichier setuid gérant mal ses privilèges, etc.

Alors que pour le Challenge Azure, il n'existe aucune solution. Personne ne peut vous aider, car personne ne sait comment ça marche. La documentation disponible sur Internet est fausse, car elle ne s'applique pas à la version CTP de novembre 2009. Bien que le challenge consiste simplement à corriger du code déjà écrit par des gens de Microsoft France, vous pouvez rester des heures à contempler une lambda-fonction C# destinée à requêter un blob dans votre storage sans comprendre une ligne de ce qui est écrit.

Et là, la vérité m'est apparue nue. Depuis 10 ans que je pratique la sécurité informatique en entreprise, je n'ai jamais rencontré un développeur (sauf des designers d'IHM en Java, mais je ne pense pas que ça compte). J'en ai pourtant audité des applications, j'en ai prodigué du conseil pour améliorer la sécurité des développements (comme compiler avec /GS, /NXCOMPAT et /SAFESEH) ... mais même dans les réunions de debriefing post-audit les plus houleuses, je n'ai jamais eu en face de moi que des intégrateurs ou des technico-commerciaux ...

Les entreprises dont le coeur de métier n'est pas l'IT n'embauchent pas de développeurs. Les seuls "développeurs" qu'on y recontrent sont des prestataires liés aux gros progiciels internes (comme SAP ou SharePoint). Ce sont souvent des consultants de l'éditeur ou de sociétés aux intérêts très liées. Le reste des applications sont achetées sur étagère, jamais développées en interne.

Et dans le domaine de l'application commerciale, il y a deux cas: soit la start-up avec quelques développeurs, parfois motivés, mais jamais très nombreux, et rarement sensibilisés à la sécurité. Soit la société qui a crû suffisamment pour sous-traiter ses développements en Roumanie, en Inde, au Vietnam, ou n'importe où ailleurs (mais toujours à un endroit où il sera impossible de communiquer avec les développeurs).

Alors après avoir pratiqué un peu sur la plateforme Azure, je souris intérieurement en pensant à la probabilité pour que ma société soit un jour cliente directe de cette solution (mais je pense que cela s'étend à d'autres sociétés françaises de la même envergure). Il est déjà probablement impossible de trouver un employé (pas un sous-traitant) qui sache écrire une ligne de C#. Alors de là à maitriser les subtilités du framework 4.0 ou de LINQ, c'est de la science fiction. Bien sûr il est également possible de développer du code PHP avec Eclipse pour la plateforme Azure, mais là on en est quasiment au stade de la manipulation génétique :)

Petit détail: le SDK Azure ne s'installe que sur Windows Vista et ultérieur. Rien que ce pré-requis est rédhibitoire quand on sait que l'écrasante majorité des postes de travail reste sous Windows XP, le SP2 n'ayant parfois pas été installé par peur des incompatibilités.

La seule voie par laquelle le Cloud a une chance de gagner les entreprises, c'est par la sous-traitance. Après tout, mon employeur m'a bien obligé à enregistrer mon numéro de carte bleue sur le site Web d'une société tierce en charge de tous les voyages et de toutes les notes de frais. Peut-être fait-elle déjà appel au Cloud ? Qui s'en préoccupe de toute façon ?


PS. Pourquoi le Cloud est-il l'avenir de l'informatique ? IDC pense qu'il n'y aura pas de successeur à Windows Seven. Vinton Cerf pense qu'en 2012, il y aura plus de téléphones connectés à Internet que d'ordinateurs. Il me semble que tout cela fait du sens: l'informatique telle que nous la connaissons va disparaitre. Les services informatiques sont déjà en train de disparaitre d'ailleurs ...