mercredi 23 juin 2010

Dessine-moi une Hadopi

L'hadopi est une loi et une Haute Autorité chargé de veiller au respect des droits d'auteurs fort contestée.

Dernièrement, nous avons pu voir deux logiciels censés être des logiciels de sécurisation. Le premier par un fournisseur d'accès au nom d'agrume, le second nommé hadopi-protect, ce qui relève d'un certain art de l'à-propos.
Inutile de le préciser, ces deux logiciels ont été des FAIL, des Epic Fail, des échecs épiques dont la moitié de l'internet continue de rire.

Ce désastre était pourtant attendu. Il était absolument évident, du fait de la popularité (si l'on peut dire) d'Hadopi dans le monde des internautes, que le moindre de ces logiciels de sécurisation allait faire l'objet d'une étude en règle et se faire disséquer jusqu'au dernier octet. Pourtant, des décideurs ont choisi de publier (et vendre) ces logiciels. On ne peut leur opposer un argumentaire technique (ils n'y connaissent vraisemblablement rien en informatique), mais la simple évocation d'une armée d'internautes prêt à en découdre aurait du les en dissuader. Toutefois, ces logiciels ont été écrits, puis publiés.

Mais une question me taraude. Ce logiciel de sécurisation surfant sur les préconisations de la hadopi, à quoi est-il censé servir? On a entendu parler d'un fameux logiciel de sécurisation pendant les débats parlementaires, mais aujourd'hui, où en sommes-nous? J'ai passé du temps sur legifrance et le site du conseil constitutionnel pour savoir à quoi peut bien servir ce logiciel et quelles sont les missions de sécurisation qu'il est chargé de remplir. La réponse est surprenante.
( CC signifie Conseil Constitutionnel )

Acte premier, la loi du 12 juin 2009
1/ De l'intérêt de comprendre l'intention du législateur: l'étude des dispositions du projet de Loi n°2009-669 du 12 juin 2009 favorisant la diffusion et la protection de la création sur internet
(extrait du site de l'Assemblée nationale / Sénat: http://www.senat.fr/leg/tas08-081.html)
Trois dispositions intéressent l'obligation de sécurisation de la connexion internet dans ce projet de loi :
  • L'article 4 du projet de loi supprime l'actuel article L. 335-12 du code de la propriété intellectuelle, qui fait peser sur l'abonné à internet une obligation de veiller à ce que son accès ne fasse pas l'objet d'une utilisation portant atteinte aux droits de propriété littéraire et artistique, par coordination avec la création d'un nouvel article L. 336-3 (introduit par l'article 11 du projet de loi) qui précise le contenu de cette obligation, l'assortit d'une sanction et détaille les clauses exonératoires de responsabilité.
  • L'article 6 (devenu ultérieurement article 5, la lisibilité des textes est un bonheur) du projet de loi crée l'obligation, mise à la charge du titulaire d'un accès à des services de communication au public en ligne par l'actuel article L. 335-12, de veiller à ce que cet accès ne fasse pas l'objet d'une utilisation qui méconnaît les droits de propriété littéraire et artistique.
    Les alinéas suivants prévoient les clauses d'exonération. Ils disposent que la responsabilité du titulaire de l'accès ne peut être retenue lorsque le titulaire de l'accès a mis en œuvre un des moyens de sécurisation définis en application de l'article L. 331-30. Ils écartent également la responsabilité de l'abonné lorsqu'un tiers a frauduleusement accédé au service, à moins que cette personne ne se trouve placée sous l'autorité ou la surveillance de l'abonné. Ils prévoient enfin le cas de force majeure.
  • L'article 8 modifie le 1° du I de l'article 6 de la loi n° 2004-575 du 21 juin 2004 pour la confiance dans l'économie numérique. Il a pour objet de prévoir que les fournisseurs d'accès informent leurs abonnés de l'existence de moyens techniques permettant de prévenir l'utilisation frauduleuse de leur accès à internet - moyens techniques dont la mise en oeuvre permet au titulaire de faire jouer la clause exonératoire prévue à l'article L. 336-3 du code de la propriété intellectuelle. En revanche, il ne contraint pas les fournisseurs d'accès à proposer de tels dispositifs, contrairement à ce que prévoit le même article de loi du 21 juin 2004 pour ce qui concerne les moyens techniques permettant de restreindre l'accès à certains services ou de les sélectionner (dits « de contrôle parental »).

Acte deux, ou la saisine du conseil constitutionnel et ses conséquences
2/ Les articles du projet de loi précité avaient pour conséquence d'insérer dans le CPI (code de propriété intellectuelle) une nouvelle version de l'obligation de sécuriser sa connexion internet assortie de sanctions en cas d'inexécution et de possibilités d'exonération de ses sanctions dès lors que l'internaute installait des programmes dits « mouchards ». Cependant, ces textes ont été déclaré partiellement non conforme à la Constitution par la décision n° 2009-580 DC du 10 juin 2009. Les parties en rouge n'ont jamais été promulguées (autrement dit elles n'existent pas):

L'article 11 de la loi LCI introduit au chapitre VI du titre III du livre III de la première partie du CPI l'article L. 336-3 ainsi rédigé
« Art. L. 336-3. - La personne titulaire de l'accès à des services de communication au public en ligne a l'obligation de veiller à ce que cet accès ne fasse pas l'objet d'une utilisation à des fins de reproduction, de représentation, de mise à disposition ou de communication au public d'oeuvres ou d'objets protégés par un droit d'auteur ou par un droit voisin sans l'autorisation des titulaires des droits prévus aux livres Ier et II lorsqu'elle est requise.

« Aucune sanction ne peut être prise à l'égard du titulaire de l'accès dans les cas suivants :
« 1° Si le titulaire de l'accès a mis en oeuvre l'un des moyens de sécurisation figurant sur la liste mentionnée au deuxième alinéa de l'article L. 331-32 ;
« 2° Si l'atteinte aux droits visés au premier alinéa du présent article est le fait d'une personne qui a frauduleusement utilisé l'accès au service de communication au public en ligne ;
« 3° En cas de force majeure.
« Le manquement de la personne titulaire de l'accès à l'obligation définie au premier alinéa n'a pas pour effet d'engager la responsabilité pénale de l'intéressé.

« Art. L. 331‑30 L. 331‑32. – Après consultation des concepteurs de moyens de sécurisation destinés à prévenir l’utilisation illicite de l’accès à un service de communication au public en ligne, des personnes dont l’activité est d’offrir l’accès à un tel service ainsi que des sociétés régies par le titre II du présent livre et des organismes de défense professionnelle régulièrement constitués, la Haute Autorité rend publiques les spécifications fonctionnelles pertinentes que ces moyens doivent présenter pour être considérés, à ses yeux, comme exonérant valablement de sa responsabilité le titulaire de l’accès au titre de l’article L. 336‑3.
« Au terme d’une procédure d’évaluation certifiée prenant en compte leur conformité aux spécifications visées au premier alinéa et leur efficacité, la Haute Autorité établit une liste labellisant les moyens de sécurisation dont la mise en œuvre exonère valablement le titulaire de l’accès de sa responsabilité au titre de l’article L. 336‑3. Cette labellisation est périodiquement revue.
« Un décret en Conseil d’État précise la procédure d’évaluation et de labellisation de ces moyens de sécurisation.

Acte trois, le retour d'Hadopi, tentative de mise en conformité à la jurisprudence du CC
3/ L’obligation de surveillance de l’accès à internet aujourd'hui
3-1/ Absence de sanction ayant leur fondement sur la loi LCI précitée

L’ensemble du dispositif institué par la loi repose sur le manquement à l’obligation de surveillance de l’accès à internet institué par le premier alinéa de l’article L. 336-3 du code de la propriété intellectuelle ainsi rédigé dans sa version issu de la loi de juin 2009: « La personne titulaire de l’accès à des services de communication au public en ligne a l’obligation de veiller à ce que cet accès ne fasse pas l’objet d’une utilisation à des fins de reproduction, de représentation, de mise à disposition ou de communication au public d’oeuvres ou d’objets protégés par un droit d’auteur ou par un droit voisin sans l’autorisation des titulaires des droits prévus aux livres Ier et II lorsqu’elle est requise. »

Si cette obligation a été validée par le CC, tout le système de sanction et les modalités d'exonération de ces dernières est tombé (notamment, l'article L 331-32 du CPI a été déclaré non conforme à la Constitution) par la décision du CC (cf l'analyse des Cahiers du CC dispo à l'adresse suivante - source officielle du CC:
http://www.conseil-constitutionnel.fr/conseil-constitutionnel/root/bank/download/2009-580DC-ccc_580dc.pdf )

On a donc une obligation figurant à l'article L 336-3 du CPI, qui n'est plus sanctionnée par la loi LCI et dont tout le système d'exonération de sanction n'a plus de fondement juridique de fait. En clair, suite à la promulgation de la loi dite « HADOPI », cette autorité ne peut légalement homologuer quelque logiciel que ce soit de quelque provenance qu'il soit puisque cette homologation devait faire l'objet d'une procédure fondée sur un décret pris en Conseil d'Etat en application de l'article L 331-32 du CPI tel qu'issu de la Loi LCI. Or cet article a été déclaré non conforme à la Constitution! Il n'est donc jamais devenu un article de loi en vigueur et donc ne crée aucune obligation.

Mais le Gouvernement s'est remis à l'ouvrage et a décidé d'adopter de nouvelles dispositions législatives pour introduire tout de même des sanctions pour non respect de l'obligation de sécurisation de la ligne internet tout en respectant les principes posés par le CC.

3-2/ La modification de l'article L 336-2 du CPI par la loi n° 2009-1311« protection pénale de la propriété littéraire et artistique sur Internet » et l'introduction de sanctions

« L’objectif affiché par le projet de loi est de conduire à son terme le dispositif de riposte graduée contre les atteintes aux droits d’auteur commises sur internet, en tirant les conséquences de la censure du 10 juin 2009 À cette fin, le projet de loi poursuit deux orientations principales. D’une part, il soumet le jugement des délits de contrefaçon commis sur internet à des règles de procédure pénale particulières (jugement à juge unique et procédure simplifiée). D’autre part, il institue deux peines complémentaires de suspension de l’accès à un service de communication au public en ligne. L’une, délictuelle, est destinée à réprimer les contrefaçons commises au moyen de ce type de service, l’autre, contraventionnelle, vise certaines contraventions de la cinquième classe qui auront vocation à figurer dans la partie réglementaire du code de la propriété intellectuelle (CPI) » (commentaire tiré de ce document).

Pour faire bref, « les questions constitutionnelles que tranche la décision du 22 octobre 2009 sont de nature assez différente de celles traitées dans la décision du 10 juin 2009. L’essentiel de la décision du 22 octobre 2009 porte, en effet, sur la question de la répartition entre la compétence du législateur et celle du pouvoir réglementaire en matière de lois pénales et de procédure pénale » (tiré du même document).

Fin de cet intermède juridique (si vous avez déjà débuggé du code noyau, sachez que c'est un plaisir après avoir suivi les méandres des textes de lois :-) ).

Aujourd'hui, la loi parle donc toujours de la sécurisation de l'accès à internet. Sauf que:
  • En cas de litige avec la Hadopi, aucun logiciel de sécurisation ne peut servir à s'exonérer de la sanction.
  • La Hadopi n'est habilitée à homologuer aucun logiciel.
  • La Hadopi ne peut pas obliger à employer un logiciel de sécurisation.
Reste donc ce fameux (fumeux?) logiciel de sécurisation. N'importe lequel fera l'affaire, puisqu'il ne sert à rien. Et d'ailleurs, il n'y a aucune pertinence à y avoir recours si ce n'est acheter un produit commercial et marketing. Cependant, notons que ce produit n'apporte aucune protection sur le terrain juridique (je vous laisse seul juge du terrain technique).

mercredi 2 juin 2010

Le challenge SSTIC2010 est terminé.

Tous les ans, le SSTIC propose un challenge ouvert à tous en lien avec la sécurité informatique. Cette année, le concours est organisé par l'ANSSI. L'ANSSI est l'agence gouvernementale dérivant de la DCSSI, suite aux recommandations du livre blanc sur la défense nationale. Elle a volonté de devenir autorité dans les systèmes de sécurité informatiques. A mon avis il n'y a pas de hasard quant à la présence de l'ANSSI comme organisateur du challenge cette année. Quitte à faire phosphorer des participants, autant leur montrer la direction :)

Débutons par la recherche de la personne qui a créé ce challenge. Généralement, si l'auteur est connu, il a publié un certains nombres de conférences ou d'articles, il est facile de cerner le domaine d'activité ou les pistes générales de résolution. Ici, l'identité de l'auteur n'est pas connue. Dommage. Pas de labo smartphones sur le site de l'ANSSI, pas de publication non plus.

Il s'agit d'un challenge de forensics sous linux, d'un CPU ARM, du système Android. Après quelques recherches rapides, on apprend que le fonctionnement des programmes sous Android utilise une machine virtuelle appelée Dalvik, grossièrement comparable une machine Java, et que le format d'exécutables est de type .dex, optimisé à chaud en .odex.

Revenons à l'ANSSI. Quel a été son but en proposant ce challenge? Je ne pense pas qu'il s'agisse de savoir si les participants savent utiliser les commandes strings et grep ;)
Pour décompiler du code dex, ça a été fait juste avant le challenge: http://www.illegalaccess.org/undx/ . Pour décompiler de l'odex ça existe depuis un peu plus de temps: http://code.google.com/p/smali/

Mais comment analyser cette RAM? Il existe des outils d'analyse de dump mémoire sous windows: http://www.moonsols.com/. Certains vieux trucs, non cités ici, permettent dans certains cas de lire une image mémoire sous linux avec un noyau patché.

Sinon, côté outil d'analyse de RAM sous linux, c'est le néant. Et je pense que c'est ce qu'attends l'ANSSI! A ce titre, le double concours est clair. Il est clairement indiqué qu'ils attendent non seulement la solution, mais surtout une explication détaillée de celle-ci. Je pense à ce titre que la valeur monétaire d'un outil de forensics sous linux dépasse de loin la valeur des lots :) [ Wild Guess de ma part, je n'ai pas de chiffre en tête. ]

Quel serait cet outil dans ce cas? A mon avis, pour s'approcher de la solution, il faut recréer la table des process dans l'image mémoire. Un process est une structure, définie dans <linux/sched.h> task_struct. Les process font partie d'une liste doublement chaînée.
Yapluka
trouver un process dans le dump Android, remonter la chaîne reconstruire l'équivalent de /proc/ et de lister les fichiers ouverts, les lignes de commandes utilisées, les arguments, etc.. Le process initial cible évident semble être init, de pid 1. Je dis "yapluka", je pense qu'on doit vite tomber dans pas mal de subtilités, et ça explique pourquoi je n'ai pas poussé mon idée. Une fois les fichiers trouvés, à mon avis, il faut iliser undx et/ou baksmali pour comprendre le code, faire l'opération inverse, et voir afficher "Bravo ! Va lancer le binaire" ;)

Est-ce que le challenge SSTIC cette année consistait pour l'ANSSI de créer des outils de forensics? Je me trompe peut-être, j'espère que l'intégralité des solutions seront fournies sur le site du SSTIC, elles seront sûrement intéressantes à consulter. Réponse le 10 juin.