# Auto-défense des systèmes informatisés

L'auto-défense des systèmes informatisés est une composante des systèmes de défense dont la particularité est l'autonomie et la capacité d'apprentissage.
Contrairement à d'autres mécaniques servant le même but comme les antivirus, ceux-ci ne nécessitent aucune intervention humaine pour se maintenir à jour et/ou devenir capable de contrer des formes d'attaques nouvelles ou inconnues. Encore au stade expérimental, ce procédé n'est pas encore déployé à grande échelle, notamment à cause de son instabilité.

## Contexte

La recherche sur le sujet de l'auto-défense est motivée par l'évolution du monde informatique. Alors que les systèmes informatiques deviennent de plus en plus complexes et larges, les moyens permettant d'attaquer un système deviennent de plus en plus faciles d'accès, de plus en plus performants, et surtout de plus en plus diversifiées. De nombreux sites permettent un accès très rapide à ces outils, qu'il s'agisse de compilations d'outils ou de tutoriels pour tous niveaux d'expérience. Des sites Internet se sont même spécialisés dans ce domaine.
En réponse à cette démocratisation du hacking, la population d'individus voués à la défense de ces systèmes évolue à un rythme moins soutenu, provoquant un surnombre. De même, les méthodes actuelles de défense telles que la cryptographie deviennent insuffisantes$^,$ pour soutenir cette variété toujours grandissante d'attaques.
La recherche dans le domaine de l'auto-défense des systèmes a donc un double-objectif : pallier ce manque et augmenter l'autonomie des systèmes défendus.

## Inspiration

Le principe même d'auto-défense d'un système informatisé n'est pas né de lui-même, mais s'est inspiré de multiples domaines. Une des comparaisons utilisées est celle avec le système nerveux, basée sur plusieurs modules interconnectés, dont s'inspire des technologies expérimentales comme le BANS afin de reproduire son efficacité en termes d'intelligence, de rapidité de transmission d'informations et de robustesse.

## Fonctionnement

Un système de défense dit autonome s'articule autour de trois parties distinctes et fortement liées.
* La détection, sous-entendu la détection de comportements anormaux et/ou de bases de données pré-injectées au sein du système.
* L'apprentissage, réalisée grâce à un système de détection d'intrusion. Une fois que l'intrusion ou programme est identifié comme indésirable, le système l'enregistre et, par apprentissage, devient capable de le repérer de manière plus efficace par la suite.
* La restauration : Une fois la menace détectée et assimilée, le système retourne à un état opérationnel dans les plus brefs délais.

### Détection

Il existe à l'heure actuelle différents systèmes annexes ou méthodes permettant à un système informatique donné de détecter des intrusions ou des dysfonctionnements. Cette détection se retrouve sous plusieurs formes, qu'ils soient des modules individuels intégrés à des outils de défense automatisés ou des systèmes de détection d'intrusion. Dans le cadre de la défense automatisée, les systèmes se reposent sur des concepts adaptés à leur propre fonctionnement.

### Apprentissage

Une fois une attaque détectée, le système entre dans sa seconde phase, celle d'apprentissage. Il utilise encore une fois divers procédés, systèmes et méthodes appartenant au champ de l'apprentissage automatique, qui lui-même découle de la discipline scientifique de l'intelligence artificielle. De manière, deux approches sont principalement adoptées dans cet objectif : enregistrer la signature de l'attaque pour la reconnaître par la suite, ou retenir un comportement en lui-même pour le détecter de manière plus rapide. Certains systèmes utilisent à cette fin la construction de call graph (en) dynamiques afin de retracer une exécution particulière et ainsi repérer les comportements anormaux.

#### Connaissance partagée

L'approche de la connaissance partagée permet à une ou plusieurs entités au sein d'un système défendu d'étendre une information à l'ensemble du système afin d'en faire une connaissance commune. Ainsi, un sous-réseau ou un agent du réseau n'ayant pas encore été la cible de cette attaque se retrouve avec des moyens de la contrecarrer, la rendant ainsi impotente.
CORTEX, par exemple, permet également de sauvegarder l'information et d'en tirer des mécanismes et méthodes de défense plus robustes. Basé sur les mécanismes du système nerveux, représentés par un réseau de base de données et de serveurs dédiés, ce mécanisme permet à une partie du réseau défendu par CORTEX de transmettre l'information au reste du réseau, qui n'est pas affecté. Un exemple très simple d'informations pouvant être relayé de cette manière est un lien vers un site de fishing, reporté à travers tout le réseau comme dangereux. Lors de l'échange de données telles que de nouveaux spywares ou malwares, ce sont cette fois des caractéristiques qui sont envoyées, telles que le nom, la taille, ou encore des caractéristiques comportementales particulières.
Ce principe de « nerf central » sert également d'interface pour les équipes de développement, afin d'ajouter de nouveaux comportements à adopter en cas de nouveaux problèmes. Par exemple, un logiciel malveillant que la librairie de solutions n'a pas su contrecarrer entièrement sera reporté jusqu'au «nerf central», où les ingénieurs pourront développer de nouveaux procédés de défense, solution qui sera ensuite distribuée à toutes les entités du réseau concerné.

### Récupération

L'étape finale, pour une protection effective, est de récupérer les données si celles-ci ont été endommagées. Il existe plusieurs situations possibles, pour lesquelles la récupération ne prendra pas forcément la même forme. Dans le cadre d'une attaque DDoS (attaque par déni de service) par exemple, la récupération consistera en la réhabilitation du serveur afin de pouvoir de nouveau supporter une charge stable. Lors d'une intrusion dans un système, l'on vérifie l'intégrité des données et le retour à un système intègre et nettoyé de toute intrusion externe. Dans cette optique, les solutions utilisées sont le plus couramment le retour à un état antérieur, sauvegardé auparavant, ou la récupération de données qui permet de recouvrir des données partiellement perdues, corrompues ou effacées à partir de celles restantes.

## Solutions existantes

Bien que le sujet soit d'ordre expérimental, il existe un certain nombre de produits et de systèmes mettant déjà en pratique les principes de la défense automatique et autonome de systèmes.

### BANS

Très inspiré du système nerveux, le BANS (Bionic Autonomous Nervous System) est un système de défense autonome utilisant plusieurs modèles mathématiques tels que la logique floue ou l'entropie afin de sécuriser le système qui lui a été donné. Il s'est montré efficace dans la défense intelligente face à des menaces connues ou inconnues, et permet à plusieurs ordinateurs de se prémunir en collaboration contre une intelligence malveillante distribuée telle qu'une attaque par déni de service.

### CORTEX

CORTEX est un système autonome chargé de défendre un système critique ou très important, comme une base de données. Il opère sans intervention humaine et est capable de défendre la zone qui lui est affectée contre des attaques nouvelles ou inconnues du système. Séparé en deux modules, CORTEX se repose sur la base d'une batterie de tests, appelée sur tous les services, afin de diagnostiquer des comportements anormaux et agir en conséquence. Il utilise un système de connaissances à plusieurs niveaux afin de couvrir un large éventail de possibilités d'attaques, et donc de défenses.

### CSISM

CSISM est un système autonome de défense qui tente de répliquer le fonctionnement du JBI (Joint Battlespace Infosphere), à la seule différence qu'il ne requiert aucune intervention extérieure, là où le programme JBI nécessitait une équipe d'experts en défense pour fonctionner correctement. Il est capable de se défendre contre des attaques soutenues en environnement opérationnel.

### Booby Trap

Le Booby Trapping Software est une méthode de défense dite active, contrairement aux précédents systèmes qui se reposaient sur une défense passive et l'apprentissage des données pour solidifier leurs défenses. Elle part du constat du déséquilibre entre attaquants et défenseurs : là où un attaquant n'a qu'une faille à trouver, le défenseur se doit de maintenir tous les points d'accès potentiels du système. Le Booby trapping se propose de prendre des mesures de répression immédiatement après la détection d'une intrusion, afin d'insérer par la suite des pièges à l'endroit ciblé afin de dissuader les éventuels attaquants futurs. Le plus souvent, ces pièges sont des morceaux de code source déclenchés à la détection.

### White worms

Un bon ver informatique, dit white worm, est une variante du ver informatique, dont l'effet est supposé inverse. En effet, il exploite les mêmes failles techniques qu'un autre ver malveillant, connu sous le nom de Conficker, afin non pas d'infecter mais de désinfecter toutes les machines compromises. Pour des raisons évidentes de sécurité$^,$ cette pratique, bien que bienveillante dans son intention première, est illégale et fortement controversée.