.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "HARDENING-CHECK.FR 1" .TH HARDENING-CHECK.FR 1 "2023-12-12" "Utilitaires Debian" " " .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NOM" .IX Header "NOM" hardening-check \- Vérifier les binaires pour des fonctionnalités de sécurisation .SH "SYNOPSIS" .IX Header "SYNOPSIS" hardening-check [options] [\s-1ELF ...\s0] .PP Examiner un ensemble donné de binaires \s-1ELF\s0 et rechercher plusieurs fonctions de sécurisation, échouant si toutes ne sont pas trouvées. .SH "DESCRIPTION" .IX Header "DESCRIPTION" Cet utilitaire recherche dans un ensemble de binaires \s-1ELF\s0 plusieurs fonctionnalités de sécurisation qui peuvent avoir été compilées dans un exécutable. Ces fonctionnalités sont : .IP "\fBPosition Independent Executable\fR" 8 .IX Item "Position Independent Executable" Cela indique que l'exécutable a été construit d'une manière telle (\s-1PIE\s0) que la section \*(L"texte\*(R" 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 – \s-1ASLR\s0) de texte. .IP "\fBStack Protected\fR" 8 .IX Item "Stack Protected" Cela indique qu'il y a des indices que l'\s-1ELF\s0 a été compilé avec l'option \fB\-fstack\-protector\fR de \fBgcc\fR\|(1) (par exemple utilisation de \fB_\|_stack_chk_fail\fR). Le programme sera résistant au dépassement de pile. .Sp 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ù \fB_\|_stack_chk_fail\fR n'est pas utilisé), même s'il a été compilé avec les bonnes options. .IP "\fBFortify Source functions\fR" 8 .IX Item "Fortify Source functions" Cela indique que l'exécutable a été compilé avec \fB\-D_FORTIFY_SOURCE=2\fR et \fB\-O1\fR ou plus. Cela provoque le remplacement de certaines fonctions non sûres de glibc par leurs équivalents plus sûrs (par exemple \fBstrncpy\fR à la place de \fBstrcpy\fR) , ou remplace des appels vérifiables au moment de l'exécution par des versions runtime-check (par exemple \fB_\|_memcpy_chk\fR à la place de \fBmemcpy\fR). .Sp 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). .IP "\fBRead-only relocations\fR" 8 .IX Item "Read-only relocations" Cela indique que l'exécutable a été construit avec les options \fB\-Wl,\-z,relro\fR pour que les marquages \s-1ELF\s0 (\s-1RELRO\s0) demandent que l'éditeur de liens au moment de l'exécution marque toutes les zones de la table de réadressage en \*(L"lecture seule\*(R" 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. .IP "\fBImmediate binding\fR" 8 .IX Item "Immediate binding" Cela indique que l'exécutable a été construit avec les options \fB\-Wl,\-z,now\fR pour que les marquages \s-1ELF\s0 (\s-1BIND_NOW\s0) 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 \s-1RELRO\s0 ci-dessus, cela réduit encore davantage les zones de mémoire accessibles aux attaques par corruption de mémoire. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-\-nopie\fR, \fB\-p\fR" 8 .IX Item "--nopie, -p" N'exige pas que les exécutables vérifiés soient construits comme \s-1PIE.\s0 .IP "\fB\-\-nostackprotector\fR, \fB\-s\fR" 8 .IX Item "--nostackprotector, -s" N'exige pas que les exécutables vérifiés soient construits avec le protecteur de pile. .IP "\fB\-\-nofortify\fR, \fB\-f\fR" 8 .IX Item "--nofortify, -f" N'exige pas que les exécutables vérifiés soient construits avec Fortify Source. .IP "\fB\-\-norelro\fR, \fB\-r\fR" 8 .IX Item "--norelro, -r" N'exige pas que les exécutables vérifiés soient construits avec \s-1RELRO.\s0 .IP "\fB\-\-nobindnow\fR, \fB\-b\fR" 8 .IX Item "--nobindnow, -b" N'exige pas que les exécutables vérifiés soient construits avec \s-1BIND_NOW.\s0 .IP "\fB\-\-nocfprotection\fR, \fB\-b\fR" 8 .IX Item "--nocfprotection, -b" N'exige pas que les exécutables vérifiés soient construits avec le protecteur de pile. .IP "\fB\-\-quiet\fR, \fB\-q\fR" 8 .IX Item "--quiet, -q" Ne fournir que des rapports d'échec. .IP "\fB\-\-verbose\fR, \fB\-v\fR" 8 .IX Item "--verbose, -v" Fournir des rapports d'échec verbeux. .IP "\fB\-\-report\-functions\fR, \fB\-R\fR" 8 .IX Item "--report-functions, -R" Après le rapport, afficher toutes les fonctions externes nécessaires à l'\s-1ELF.\s0 .IP "\fB\-\-find\-libc\-functions\fR, \fB\-F\fR" 8 .IX Item "--find-libc-functions, -F" Au lieu de faire un rapport normal, localiser le libc pour le premier \s-1ELF\s0 sur la ligne de commande et rapporter toutes les fonctions \*(L"renforcées\*(R" exportées par libc. .IP "\fB\-\-color\fR, \fB\-c\fR" 8 .IX Item "--color, -c" Activer les sorties d'état colorées. .IP "\fB\-\-lintian\fR, \fB\-l\fR" 8 .IX Item "--lintian, -l" Changer les rapports pour une sortie analysable par une vérification de lintian. .IP "\fB\-\-debug\fR" 8 .IX Item "--debug" Rapporter des données de débogage durant le traitement. .IP "\fB\-\-help\fR, \fB\-h\fR, \fB\-?\fR" 8 .IX Item "--help, -h, -?" Afficher un message d'aide bref et quitter. .IP "\fB\-\-man\fR, \fB\-H\fR" 8 .IX Item "--man, -H" Afficher la page de manuel et quitter. .SH "VALEUR DE RETOUR" .IX Header "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 \*(L"0\*(R". Si une vérification échoue, le code de sortie sera \*(L"1\*(R". Les vérifications individuelles peuvent être désactivées avec des options en ligne de commande. .SH "AUTEUR" .IX Header "AUTEUR" Kees Cook .SH "COPYRIGHT ET LICENCE" .IX Header "COPYRIGHT ET LICENCE" Copyright 2009\-2013 Kees Cook . .PP Ce programme est un logiciel libre ; il est permis de le distribuer et/ou de le modifier selon les termes de la \s-1GNU\s0 General Public License, telle que publiée par la Free Software Foundation, version 2 ou ultérieure. .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fBgcc\fR\|(1), \fBhardening\-wrapper\fR\|(1) .SH "TRADUCTION" .IX Header "TRADUCTION" Cyril Brulebois <\fIcyril.brulebois@enst\-bretagne.fr\fR>, 2006 .PP Thomas Huriaux <\fIthomas.huriaux@gmail.com\fR>, 2006 .PP David Prévot <\fIdavid@tilapin.org\fR>, 2010\-2013 .PP Xavier Guimard <\fIyadd@debian.org\fR>, 2018\-2021