Man page - hardening-check(1)

Packages contains this manual

Available languages:

en fr de

Manual

HARDENING-CHECK.FR

NOM
SYNOPSIS
DESCRIPTION
OPTIONS
VALEUR DE RETOUR
AUTEUR
COPYRIGHT ET LICENCE
VOIR AUSSI
TRADUCTION

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 en é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.

Branch Protection

Cela indique que l’exĂ©cutable a Ă©tĂ© construit avec -mbranch-protection=standard. Sur les processeurs ARM, cela fournit des protections additionnelles de structure de contrĂŽle en utilisant les instrutions de cible d’embranchement (BTI, Branch Target Instructions) qui marquent tous les emplacements d’embranchement valables, et les codes d’authentification de pointeur (PAC, Pointer Authentication Codes) qui signent et vĂ©rifient les cibles d’embranchements indirects. Cela contribue Ă  empĂȘcher l’utilisation de failles basĂ©es sur le dĂ©tournement du dĂ©roulement d’un programme pour lui faire exĂ©cuter du code Ă  un emplacement arbitraire en mĂ©moire.

OPTIONS

--nopie , -p

Ne pas exiger que les exécutables vérifiés soient construits comme PIE.

--nostackprotector , -s

Ne pas exiger que les exécutables vérifiés soient construits avec le protecteur de pile.

--nofortify , -f

Ne pas exiger que les exécutables vérifiés soient construits avec Fortify Source.

--norelro , -r

Ne pas exiger que les exécutables vérifiés soient construits avec RELRO.

--nobindnow , -b

Ne pas exiger que les exécutables vérifiés soient construits avec BIND_NOW.

--nocfprotection , -x

Ne pas exiger que les exécutables vérifiés soient construits avec la protection de structure de contrÎle.

--nobranchprotection , -B

Ne pas exiger que les exĂ©cutables vĂ©rifiĂ©s soient construits avec la protection d’embranchement.

--quiet , -q

Ne fournir que des rapports d’échec.

--verbose , -v

Fournir des rapports d’échec dĂ©taillĂ©s.

--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 la 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-2024