Aug 12 2010

Projet de spécifications fonctionnelles des moyens de sécurisation

Tag: AdminSys, news, recherche, undergroundArrouan @ 12:42 pm

Dans cet article, j’analyse les spécifications de ce logiciel HADOPI et j’explique en quoi il est impossible sans de grave atteinte à la vie privée, la sécurité et la qualité des transfert d’information.

La première fonctionnalité est une politique de sécurité dont la mise en oeuvre est décidée par le titulaire de l’accès. Ce que demande ici HADOPI est ni plus ni moins un controle d’accès discretionnaire (DAC). De plus, rien d’orginial pour une politique de sécurité, elle doit être souple et avoir une granualité fine. Le logiciel se base sur cette politique pour observer (sans enregistrer) les flux et prendre la décision de bloquer ou non ces flux. Ce système est clairement un système de filtrage des flux orienté politique  orienté réseau. Il est demandé qu’il soit aussi bien orienté l’utilisation de listes (blanches, noires, grises) que de l’analyse du traffic (tres orienté analyse de flux et même plus loin DPI).

Ensuite, le logiciel doit être capable d’analyser la configuration du postes, des logiciels, du reseau de manière statique. On peut donc imaginer qu’il va vérifier que vous avez bien défini une clef sécurisé WEP (oui oui WEP c’est sécurisé d’après HADOPI…). Mais là où ca devient fort c’est quand il demande une analyse dynamique des logiciels en fonctionnement soit une analyse dynamique du système ou de l’application. C’est bien beau ça mais tout d’abord pour quoi faire (ça on le fera plus tard) et ils connaissent la difficulté d’avoir un tel dispositif fonctionnant sur un système réel ? Je suis bien placé pour en parler, la mise en place de contrôle d’accès dynamique sur un système pour protéger contre les flux illégaux, c’est le sujet de ma thèse.

Après on a le droit à la killer feature qui va bien avec le DAC, c’est à dire si le logiciel détecte quelque chose d’illégal, il l’annonce à l’utilisateur.

Finalement, de manière générale, la dernière fonctionnalité est la mise en place d’un système de journalisation contenant une version en clair et une version sécurisé qui contient ce qu’a fait le logiciel de sécurisation mais aussi ce qu’il a détecté et ce que l’utilisateur a décidé de faire. Bien sur, le journal sécurisé doit etre confidentielle, authenthique et infalsifiable. En gros, seul HADOPI et l’utilisateur sont senser pouvoir le lire. D’un point de vue sécurité, la fonctionnalité doit donc garantir l’intégrité, la confidentialité et la non répudiation.

Après ca devient fort quand ils demandent que le logiciel puisse lutter contre l’usurpation, le contournement ou l’altération. Mais aussi que toute la structure du logiciel lui meme soit sécurisé .Ensuite, on a le droit au fonctionnalité classique de mise à jour, de faible impact des performances, de désinstallation. On notera que le logiciel peut être fait (ou peut tourner) sur des logiciels libres, c’est gentil de leur part non ? Mais bon vu qu’il faut qu’en même faire plaisir au gros éditeurs, HADOPI précise que le logiciel peut être ajouté dans des suites de sécurité. Quand on voit l’efficacité de ces suites comme les antivirus, ça fait peur…

Comme il a déjà été, le logiciel peut être installé aussi bien sur le PC (ou console ou téléphone, etc) que sur la passerelle, c’est à dire la box en ce moment en France. Mais comme la box est très fermée, peu puissante et renouvellé rarement cette fois n’est que exploratoire. Dans le cadre des grands entreprises, des sondes DPI peuvent également être proposé.

La politique de sécurité doit être générique et universelle. Le logiciel doit être capable d’analyser sans trop de coût un traffic allant jusqu’à 100Mb/s. La modification des listes est possible par l’utilisateur mais ces modifications sont journalisées. Clairement le coeur du système est  l’analyse dynamique des flux réseaux qui sent tres fort le DPI. Mais pour autant, il n’analyse pas le contenu des flux car pour le moment d’après e document ce n’est pas possible d’analyser les attributs de données pour détecter si le flux contient un DRM ou si il est un fichier légal. Ce passage est l’un des meilleurs car il fait directement allusion à un des brevets déposé par Pr. Riguidel qui est justement la personne responsable de ce document. Ils ont même penser aux flux chiffrés en disant que même si ce n’est pas possible de faire une analyse de ces protocoles, une analyse statistique est toujours possible.

Le document explique bien que le logiciel sera pas capable de faire la différence entre un téléchargement P2P d’un ISO Linux et celui d’un film sous copyright. Il doit détecter les piles protocolaires. Par exemple, tout streaming en dehors des sites reconnus comme sur, pourrait être considerer comme illégale. De manière pratique, on peut supposer que le téléchargement HTTP soit interdit sur des sites comme megaupload. Une des autres détections proposée est la détection de VPN chiffré vers des sites problèmatiques, qui a dit IPRedator ?

Le problème de ce logiciel est qu’il doit tourner sur un système controlé par l’utilisateur mais pour autant rester intégre. On a ici un problème non résoluble. En effet, pour fonctionner le logiciel doit faire confiance au système. Hors le système est controler par l’utilisateur et par conséquence ce dernier peut en modifier le comportement. Le logiciel ne pourra donc pas rester intégre. Et encore, même si l’utilisateur n’attaque pas l’intégrité du logiciel, tout virus tournant sur la machine pourra attaquer le dit logiciel. Le coeur du logiciel est d’avoir un journal infalsifiable ce qui est impossible à part en utilisant un TPM et encore j’en doute dans le cadre d’un système controlé à 100% par l’utilisateur.

Ma conclusion est que la mise en place d’un logiciel permettant de faire de l’analyse réseau sur une ligne à haut débit est tout simplement impossible d’un point de vue sécurité informatique car il mélange des concepts qui sont fondamentallement incompatibles. En effet, pour garantir le fonctionnement du logiciel et du journal, il faut faire confiance au système sous jaceant c’est à dire le système d’exploitation. Ce n’est pas possible de faire confiance à un utilisateur. L’utilisateur ayant un controle total du système d’exploitation, le système n’est donc pas de confiance et le logiciel ne peut donc pas fonctionner en restant sécurisé. On pourrait imaginer que l’utilisateur arrive à modifier les alertes à inscrire dans le journal avant qu’elle soit écrite dans ce dernier et donc éviter une détection. Aucun système ne peut protéger un logiciel sur un système d’exploitation non sur sans ajouter une couche plus basse qui est elle meme sécurisé. Par exemple, des logiciels comme Overshadow permettent une telle chose mais en faisant confiance à l’hyperviseur qui controle le système d’exploitation. Ce n’est pas une possibilité ici puisque l’hyperviseur serait également sous le control de l’utilisateur. La seule solution serait d’avoir un système d’exploitation renforcée ne permettant pas à l’utilisateur de fonctionner comme il le souhaite. Un tel système implémentant un control d’accès mandataire et resistant aux utilisateurs est tout à fait possible comme nous l’avons démontré lors du défi de sécurité de l’ANR en proposant un OS qui ne fait pas confiance à l’utilisateur et reste intégre. Mais cela va à l’encontre de la demande de politique discretionnaire car un tel système requiere un politique mandataire. Je ne parle meme pas des problèmes de performances pour l’analyse en temps réel du traffic réseau mais aussi de la protection du système d’exploitation.

Pour finir,  si on fait confiance à des sociétés d’antivirus pour ce logiciel, ca va être un belle blague… De tout façon vu les demandes et les possibilités, il est tout simplement impossible de concevoir un tel système. Tout tentative sera forcement attaquable et le pire c’est qu’au lieu de sécuriser l’utilisateur, il y a de grandes chances que ce logiciel ouvre de nouveau vecteur d’attaque comme nous l’avons vu dans le logiciel GreenDam.

A titre personnel et de recherche, je suis pressé de voir ces logiciels car même en ayant une tres bonne connaissance de l’état de l’art universitaire et industrielles de la sécurité système, je ne vois aucune solution possible qui soit réaliste ! Attendons nous donc à bien rigoler !


Jul 20 2008

Sécurité des systèmes de gestion de packages (apt, yum etc …)

Tag: AdminSysGarnett @ 1:52 am

Il y’a deux jours, un message assez intéressant est passé sur la liste debian security. Une étude initié par l’université d’Arizona met en lumière plusieurs vulnérabilités dans la manière dont sont conçus les systèmes style apt, yum, yast etc …

En gros ces systèmes sont soumis à trois types d’attaques :
- Les attaques par rejeu.
- Les attaques sur les méta-données des dépôts.
- Les “man in the middle”.

1) Les attaques par rejeu.

Ce type d’attaque consiste à monter un miroir ne distribuant que des vieilles versions de ses logiciels. Ces logiciels sont signés mais vulnérables. L’attaquant pourra logger les IP des machines récupérant les logiciels. On obtient donc une liste des machines avec les paquets vulnérables qu’elles ont téléchargés. Cette attaque se base en grande partie sur le fait qu’il est facile de faire enregistrer un serveur miroir. L’impact de cette attaque est très limité sous Debian et Ubuntu car les updates de sécurité sont distribués via les fameux serveur security.debian.org (sauf pour les versions non stables sid et testing). Ces serveurs sont trusted. Ce type attaque a tout de même initié une réflexion chez les développeurs d’apt : ils souhaitent associer aux dépôts un timestamp signé pour savoir si un dépôt est désynchronisé. Pour finir, il est malheureusement impossible de distribuer les releases via les dépôts security.debian.org, le délai de synchronisation diminuerait énormément l’aspect réactif de ces serveurs.

2) Les attaques sur les méta données.

Les dépôts sont composées de deux éléments : des logiciels (en général signés) et des méta-données. Ces méta-données contiennent souvent un fichier d’index. Une attaque type DoS serait de faire de gigantesques fichiers d’index car dans tout les cas, ils sont téléchargés. La seule parade serait de contenir le cache du système de gestion de paquets sur une partition dédiée. Cette attaque est décrite ici.

3) Les MiM.

Revenons sur l’attaque par rejeu. Les dépôts security.debian.org ne sont pas si invulnérables que ça. Ils sont sensibles au MiM. Si une machine réalise ses mises à jour de sécurité et qu’un proxy transparent intercepte ses requêtes en les loggants, on obtient la listes des vulnérabilités associées à cette machine. Une parade envisagée est de passer les serveurs de sécurité en HTTPS. Une suite de scénarios (catastrophes) commence à ce thread. Certaines distributions commerciales utilisent des miroirs HTTPS.