Provided by: devscripts_2.22.2ubuntu3_amd64 bug

NOM

       hardening-check - Vérifier les binaires pour des fonctionnalités de sécurisation

SYNOPSIS

       hardening-check [options] [ELF ...]

       Examiner un ensemble donné de binaires ELF et rechercher plusieurs fonctions de
       sécurisation, échouant si toutes ne sont pas trouvées.

DESCRIPTION

       Cet utilitaire recherche dans un ensemble de binaires ELF plusieurs fonctionnalités de
       sécurisation qui peuvent avoir été compilées dans un exécutable. Ces fonctionnalités
       sont :

       Position Independent Executable
               Cela indique que l'exécutable a été construit d'une manière telle (PIE) que la
               section "texte" du programme peut être transférée en mémoire. Pour tirer avantage
               de cette fonctionnalité, le noyau exécuté doit prendre en charge la distribution
               aléatoire de l'espace d'adressage (Address Space Layout Randomization – ASLR) de
               texte.

       Stack Protected
               Cela indique qu'il y a des indices que l'ELF a été compilé avec l'option
               -fstack-protector de gcc(1) (par exemple utilisation de __stack_chk_fail). Le
               programme sera résistant au dépassement de pile.

               Quand un exécutable a été construit sans qu'une table de caractères ne soit
               allouée dans la pile, cette recherche mènera à des fausses alertes (dans la mesure
               où __stack_chk_fail n'est pas utilisé), même s'il a été compilé avec les bonnes
               options.

       Fortify Source functions
               Cela indique que l'exécutable a été compilé avec -D_FORTIFY_SOURCE=2 et -O1 ou
               plus. Cela provoque le remplacement de certaines fonctions non sûres de glibc par
               leurs équivalents plus sûrs (par exemple strncpy à la place de strcpy) , ou
               remplace des appels vérifiables au moment de l'exécution par des versions runtime-
               check (par exemple __memcpy_chk à la place de memcpy).

               Quand un exécutable a été construit de telle manière que les versions renforcées
               des fonctions de glibc ne sont pas utiles (par exemple, l'utilisation est vérifiée
               comme sûre au moment de la compilation, ou l'utilisation ne peut pas être vérifiée
               au moment de l'exécution), cette recherche mènera à de fausses alertes. Pour
               tenter de pallier cela, la recherche réussira si une fonction renforcée est
               découverte, et échouera si uniquement des fonctions non renforcées sont
               découvertes. Les conditions non vérifiables réussissent aussi (par exemple, aucune
               fonction qui peut être renforcée n'est trouvée, ou n'est pas liée à glibc).

       Read-only relocations
               Cela indique que l'exécutable a été construit avec les options -Wl,-z,relro pour
               que les marquages ELF (RELRO) demandent que l'éditeur de liens au moment de
               l'exécution marque toutes les zones de la table de réadressage en "lecture seule"
               si les translations d'adresses ont été résolues avant le début de l'exécution.
               Cela réduit le nombre de zones de mémoire d'un programme qui peuvent être
               utilisées par un attaquant pour réaliser une exploitation efficace de corruption
               de mémoire.

       Immediate binding
               Cela indique que l'exécutable a été construit avec les options -Wl,-z,now pour que
               les marquages ELF (BIND_NOW) demandent que l'éditeur de liens au moment de
               l'exécution résolve toutes les réadressages avant de démarrer l'exécution du
               programme. Si cette option est combinée avec l'option RELRO ci-dessus, cela réduit
               encore davantage les zones de mémoire accessibles aux attaques par corruption de
               mémoire.

OPTIONS

       --nopie, -p
               N'exige pas que les exécutables vérifiés soient construits comme PIE.

       --nostackprotector, -s
               N'exige pas que les exécutables vérifiés soient construits avec le protecteur de
               pile.

       --nofortify, -f
               N'exige pas que les exécutables vérifiés soient construits avec Fortify Source.

       --norelro, -r
               N'exige pas que les exécutables vérifiés soient construits avec RELRO.

       --nobindnow, -b
               N'exige pas que les exécutables vérifiés soient construits avec BIND_NOW.

       --nocfprotection, -b
               N'exige pas que les exécutables vérifiés soient construits avec le protecteur de
               pile.

       --quiet, -q
               Ne fournir que des rapports d'échec.

       --verbose, -v
               Fournir des rapports d'échec verbeux.

       --report-functions, -R
               Après le rapport, afficher toutes les fonctions externes nécessaires à l'ELF.

       --find-libc-functions, -F
               Au lieu de faire un rapport normal, localiser le libc pour le premier ELF sur la
               ligne de commande et rapporter toutes les fonctions "renforcées" exportées par
               libc.

       --color, -c
               Activer les sorties d'état colorées.

       --lintian, -l
               Changer les rapports pour une sortie analysable par une vérification de lintian.

       --debug Rapporter des données de débogage durant le traitement.

       --help, -h, -?
               Afficher un message d'aide bref et quitter.

       --man, -H
               Afficher la page de manuel et quitter.

VALEUR DE RETOUR

       Quand toutes les fonctionnalités de sécurisation vérifiables des exécutables examinés ont
       été détectées, ce programme s'achève avec un code de sortie de "0". Si une vérification
       échoue, le code de sortie sera "1". Les vérifications individuelles peuvent être
       désactivées avec des options en ligne de commande.

AUTEUR

       Kees Cook <kees@debian.org>

COPYRIGHT ET LICENCE

       Copyright 2009-2013 Kees Cook <kees@debian.org>.

       Ce programme est un logiciel libre ; il est permis de le distribuer et/ou de le modifier
       selon les termes de la GNU General Public License, telle que publiée par la Free Software
       Foundation, version 2 ou ultérieure.

VOIR AUSSI

       gcc(1), hardening-wrapper(1)

TRADUCTION

       Cyril Brulebois <cyril.brulebois@enst-bretagne.fr>, 2006

       Thomas Huriaux <thomas.huriaux@gmail.com>, 2006

       David Prévot <david@tilapin.org>, 2010-2013

       Xavier Guimard <yadd@debian.org>, 2018-2021