samedi 8 août 2009

Résilience

Le site twitter est de nouveau sous le feu de l'actualité.

Il a été victime d'un DDOS, interdisant de fait son accès. On voit fleurir des questions (naïves) de journalistes s'interrogeant sur les causes ayant rendues une attaque de ce type possible.

Ceci dit, cette attaque, tout comme plusieurs autres avant celles-ci me font interroger sur le phénomène de résilience des réseaux. Qu'est ce que la résilience, tout d'abord? Wiktionary m'indique plusieurs définitions dont celles-ci:
-Aptitude à s’adapter, à réussir à vivre et à se développer positivement en dépit de circonstances défavorables et de stress.
-propriété physique d'un matériau de retrouver sa forme après avoir été comprimé ou déformé ; élasticité.
La résilience informatique serait donc double. Tout d'abord la résistance de celui-ci face à tout type de sollicitations (légitimes ou malveillantes), et ensuite la possibilité qu'a celui-ci de retrouver son fonctionnement initial et optimal même après une phase de fonctionnement dégradé.
L'information possède une bonne résilience également tant qu'on la duplique.
Informatiquement, la duplication de l'information se fait à coût nul (j'approxime bien entendu) de ce fait la résilience de l'information au sens large est acquise (ce qui pose bien entendu d'autres problèmes concernant la dualité de protection de l'information. Soit on la duplique à l'infini et son accès sera toujours possible; soit on restreint de manière confidentielle son accès à un emplacement unique et cette information peut être perdue).

On peut de plus parler de résilience à différents niveaux:
-résilience du réseau
-résilience du service
-résilience d'infrastructure

Quelques exemples viennent immédiatement à l'esprit suite à cette définition. Un réseau IP possède une bonne résilience: en effet, il a été conçu à la base pour ce but. La disparition de plusieurs de ses noeuds ne doit pas empêcher la circulation de l'information. Les protocoles de routage adaptatifs ont été conçus dans ce but.
Le service DNS possède une bonne résilience. En effet, il est décentralisé (via l'utilisation d'Anycast, RFC3258) et permet de mettre en oeuvre des mécanismes de serveurs secondaires.
La résilience d'infrastructure va concerner tout ce qui est connexe (matériel comme logiciel), comme l'accès en énergie, les mécanismes de haute disponibilité (hard par le doublement des équipements et soft par les programmes permettant de basculer en cas de problèmes), et les mécanismes de sauvegardes de données.

Ces mécanismes de résilences sont interdépendants, et doivent chacun s'appuyer les uns sur les autres pour offrir une bonne résilience globale.

Pour ce message, je propose quelques réflexions sur certains réseaux dit résilients:

1/ Le P2P
Par P2P j'entends les réseaux de partage Peer-to-peer et les botnets basés sur une technologie de peer-to-peer. C'est le réseau résilient par excellence. Entièrement décentralisé, il peut renaître tant qu'un second hôte est présent. Il est très efficace pour partager de l'information. Toutefois, l'information en elle-même n'est pas résiliente. Une information peut partagée peut progressivement disparaître. De plus, le point crucial de ses réseaux concerne l'accès aux service DNS. En effet, la connaissance des voisins du réseau impose une première requête donnant quelques noeuds qui pourront par la suite donner les noeuds suivant, etc..
La recherche dans le domaine des botnets est à ce sujet intéressante. Les premiers botnets disposait d'un serveur de contrôle et de commande unique (par exemple un canal IRC). Ce dispositif offre une résilience très faible. Le C&C disparaît, le botnet avec. Les auteurs de botnets (comme les auteurs de softs P2P) ont donc migrés progressivement vers des solutions décentralisées.
Toutefois, ces réseaux ne sont malgré tout pas d'une résilience absolue. A ce sujet, l'analyse de certaines analyses sur des botnets précisent qu'en jouant sur les DNS il serait possible de prendre la main et de contrôler ces réseaux.

2/ NNTP et SMTP
Les services NNTP et SMTP possèdent également une bonne résilience intrinsèque. La résilience de NNTP s'appuye uniquement sur la duplication permanente et asynchrone des informations via un système distribué de serveur NNTP. SMTP fonctionne sur le principe asynchrone et sur le routage successif des informations. De plus SMTP peut tout à fait résister à un problème temporaire. Les mails sont conservés, pour être réémis plus tard.

Résilience d'infrastructures
-C'est un point qui me semble très intéressant et à creuser. En effet, la majorité des services sur internet repose des près ou de loin sur DNS. Est-il possible d'imaginer internet sans DNS?
-Résilience d'accès au réseau. Une ville s'est faite couper du réseau internet. Les conséquences en ont été graves.


Le DNS me paraît une bonne piste de réflexion. Nous avons là un service essentiel au bon fonctionnement de tous les réseaux. Par qui transite les requêtes et réponses DNS? Qui peut influer sur ces requêtes et réponses? Si on est attaquant ou utilisateur, quelles conséquences?
Une autre piste concerne BGP et les mécanismes de routage entre les AS. En effet, si plusieurs AS se mettent d'accord, il est possible de faire disparaître du paysage d'internet un de ses acteurs. Voir les liens expliquant cela sur la page wikipedia de mcColo. La question qui suit est double: Comment éviter de se faire déconnecter d'internet? Comment déconnecter une partie d'internet du reste d'internet?

Aucun commentaire:

Enregistrer un commentaire