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.

mercredi 19 mai 2010

route del default (ou: "et si on réglait définitivement les problèmes de sécurité du LAN" )

La sécurité informatique est un domaine de recherche qui couvre un large spectre de menaces. Certains se spécialisent en reverse engineering, d'autres en spécialistes d'intrusions, en ingénierie sociale, en cryptographie, en protection des réseaux et bien d'autres activités encore.

Le LAN, comme dont je fais référence dans cet article est un réseau d'entreprise, connecté à internet. Ces LANs sont bien évidemment 'at risk'. Les firewalls aujourd'hui fonctionnent relativement bien et les attaques frontales ne sont plus très efficace. Par contre, on observe un énorme regain d'intérêt sur les attaques visant le poste client. Un attaquant cherchera a pousser un poste client à aller chercher lui-même sur internet une charge offensive qui lui permettra de prendre le contrôle de la machine afin soit de rebondir, soit d'extraire des données.

Pour un administrateur SSI (Sécurité des Systèmes d'Informations), la tâche consistant à sécuriser son LAN et éviter ce genre d'attaques revient à une mission impossible pour deux raisons majeures.
La première est évidente: les utilisateurs sont des simples utilisateurs, non conscients des impacts sécuritaire. Lorsqu'un mail d'un "ami" leur arrive et leur demande de cliquer pour voir une video "marrante", ils cliquent, installent un "codec" au besoin, cliquent encore trois ou quatre fois sur des fenêtres de confirmation et se sont fait pirater.
La seconde raison concerne le patch management. En effet, il semble devenu acquis qu'il est impossible de maintenir un parc conséquent à jour. Des virus comme Conficker parviennent à infecter des larges organisations alors même que le virus soit apparu suite au correctif! Ce document et les liens afférents confirme que la cible du "up-to-date" ne sera jamais atteinte.

Ceci étant posé, comment réussir à augmenter le niveau de sécurité ou diminuer l'impact des failles du LAN?

Pour cela, pas de meilleure lecture que les ancêtres ;). En effet, je lisais dans un bouquin (dont je n'ai pas la référence ici) la manière dont une université avait donné accès à internet à un réseau sensible. En ces temps reculés, le masquage n'existait pas. De plus, l'université ne voulait pas router ces IP dû au caractère confidentiel des données sur les machines en question.
L'administrateur a installé une machine avec deux cartes réseaux (une côte LAN une côté internet), qui n'était pas configurée en routeur. Les utilisateurs se connectaient en telnet dessus, puis exportaient en X-DISPLAY le navigateur web sur leur poste local.

Je trouve cette idée excellente et riche d'enseignements, au point même que je pense qu'il faudrait y revenir, ce qui est réalisable en deux étapes.

Première étape: Lister les services dont ont besoin les utilisateurs, qui sont généralement les trois suivants
1- Mail
2- Web
3- flux métiers (par exemple un accès à un serveur TSE ou un accès à une base de données)

Deuxième étape: couper la route par défauti des machines du LAN, d'ou le titre du post de ce blog. En listant ces services, on constate que l'on se passe très bien de passerelle par défaut, voire même de DNS. Le serveur SMTP/POP/IMAP est joint sur le réseau local ou à 1 hop maximum. Les flux réseaux également. Pour le web, il ne faut pas utiliser de proxy. En effet, un virus pourrait récupérer ce paramétrage et sortir sur internet. Il faut utiliser un export DISPLAY afin que seul l'affichage sur le poste local soit effectué. C'est là tout le principe de la méthode. Certains points sont en suspens; notemment l'utilisation d'un web très dynamique (flash, etc..) ou l'envoi de pièces jointes. Généralement ces deux points sont interdits par des politiques d'entreprise (et contournées :) ), avec un export DISPLAY, la politique d'entreprise est d'autant plus respectée que la configuration du navigateur reste sous la maîtrise de l'administrateur.

A peu près toute activité virulente ou offensive risque est donc stoppée dans l'oeuf. Toutes mes récentes lectures de blog de sécurité ou autre qui impliquent une attaque du LAN repose sur ces deux assomptions: A- La machine attaquée pourra résoudre un nom DNS. B- La machine attaquée pourra sortir sur internet. (S'ensuit des débats sans fin préconisant l'utilisation de HTTPS pour éviter les sondes IDS/IPS.)
Je n'ai pas encore vu de botnets ou d'attaques basées sur des communications entièrement asynchrones comme l'email [Cela ne veut pas dire que cela n'existe pas, je fais confiance à l'imagination débordante des pirates :) ].

Avec ma méthode, la gestion de la sécurité revient sur un périmètre gérable et maîtrisable par l'administrateur sécurité ce qui est un énorme gain. Il peut suivre un serveur de mail (ou un pool de), un serveur de sessions X, et une politique de route statique. A la limite, les machines du LAN peuvent ne plus être mises à jour puisque toute faille restera confinée.

En conclusion, essayez d'imaginer votre réseau local sans route par défaut et l'impact que cela donne sur la gestion de la sécurité. Supprimer la route par défaut semble techniquement réalisable, pourquoi s'en priver?