protection, exploit

Avira Scout et les technologies de réduction des exploits

Les technologies de réduction des exploits et Avira Scout

Il existe deux technologies très intéressantes pour la réduction des exploits : l’ASLR (Address space layout randomization ou distribution aléatoire de l’espace d’adressage) et la DEP (Data execution prevention ou prévention de l’exécution des données). J’expliquerai un peu plus bas ce en quoi elles consistent. Quoi qu’il en soit, elles sont le fruit de recherches approfondies par des experts en informatique, ont été intégrées au sein des compilateurs actuels par des équipes dédiées, puis activées lors du développement du build par l’équipe Chromium. Nous n’avons qu’une seule chose à faire pour bénéficier de cette même sécurité dans notre navigateur Avira Scout basé sur Chromium : ne surtout pas y toucher !

Lorsque les technologies ASLR et DEP sont activées lors du développement du build, elles modifient certains indicateurs dans l’en-tête des fichiers PE (portable executable) compilés. Il ne devrait pas être trop compliqué d’écrire un script de validation de fonctionnalité juste avant le lancement de la nouvelle version de Scout. Nous avons donc confié à notre jeune padawan Lars la mission de créer un script exécuté juste après le développement du build et avant le lancement du produit. Ceci dans le but de vérifier que tout est fonctionnel au niveau des paramètres ASLR/DEP à l’issue de la compilation.

En authentique padawan, il n’a connu aucun repos avant d’arriver à ses fins. Il n’est à présent plus possible de publier une version d’Avira Scout qui ne présente pas au moins des paramètres ASLR/DEP égaux à ceux de Chrome. Vous bénéficierez de fonctionnalités ASLR/DEP garanties dans la version de Scout basée sur Chromium 49.

ASLR et DEP – pour quels avantages exactement ?

Je vais essayer de simplifier un maximum : les pirates informatiques qui tentent d’exploiter les vulnérabilités identifiées au sein d’un logiciel (comme Avira Scout par exemple) injectent des codes de programme binaires spécifiques dans les failles repérées. La manipulation d’un pointeur de fonction ou d’une adresse retour permet alors de rediriger l’exécution vers ces codes.

Le but de l’attaque étant de prendre le contrôle de l’exécution du programme en appelant des fonctions existantes et en les associant de telle sorte à déclencher par exemple un téléchargement d’une URL suspecte et l’exécution du fichier téléchargé.

La réduction des exploits consiste à compliquer un peu la tâche au pirate informatique, si ce n’est malheureusement la rendre impossible. (À chaque nouvelle trouvaille, les voilà qui rattaquent, cependant les manipulations se font de plus en plus ardues et la fiabilité des attaques va déclinant.)

ASLR (address space layout randomization) :

les composantes d’un fichier exécutable (au format .exe ou dll par exemple) chargé dans la mémoire de l’appareil ne sont pas systématiquement chargées à la même adresse, mais de manière aléatoire au sein de l’espace d’adressage. Cela complique l’appel des différentes fonctions à associer pour le pirate, qui ne sait pas exactement où chercher.

DEP (data execution prevention) :

à l’intérieur de la mémoire, on distingue généralement les données (qui peuvent être modifiées pendant l’exécution du programme, mais ne peuvent pas être exécutées – elles constituent le segment dit « heap » ou tas) du code (qui lui, peut être exécuté). Voilà pour faire simple. La technologie DEP empêche tout simplement la redirection du flux d’exécution vers le tas de données.

Comme nous l’avons déjà expliqué précédemment, la combinaison de ces deux méthodes permet de stopper la grande majorité des exploits (mais pas tous) – c’est pourquoi vous ne voudrez certainement pas vous en passer.

Pense-bête

Dans le cas où vous vous lanceriez dans le développement logiciel, vérifiez la bonne activation des leviers ASLR et DEP avec votre compilateur !

TL ;DR :

ne désactivez jamais les fonctionnalités de sécurité existantes. Jamais.

Cet article est également disponible en: AnglaisAllemandItalien

I use science to protect people. My name is Thorsten Sick and I do research projects at Avira. My last project was the ITES project where I experimented with Sandboxes, Sensors and Virtual Machines. Currently I am one of the developers of the new Avira Browser