# [hardened] c'est quoi au juste ?

## loopx

J'ai entendu le mot "hardened" dans une conférence cisco. Ce mot est aussi présent pour les kernel et autre (compilateur, etc... dans le USE). Mais c'est quoi au juste ce support ?

Est-ce que c'est difficile à utiliser ? Quels sont les options du kernel (hardened-sources) en plus ?

Et pour le USE, ca représente quoi au juste au niveau de gcc par exemple ?

Merci d'avance

----------

## _droop_

Bonjour,

as tu lu la page du projet gentoo qui contient de nombreux liens vers les technologies utilisées ?

----------

## Untux

Salut, je me suis amusé à traduire la page indiquée par _droop_. Alors au cas ou tu ne speak pas english...

[edit]Je l'ai mis là en attendant qu'il soit, peut-être, inclut dans la doc Gentoo.[/edit]

[re-edit]Elle est maintenant disponible sur le site Gentoo, ici[/re-edit]

Accessoirement, j'ai du mal à traduire « userland », à distinguer « heap », « stack » et « buffer », à traduire « stack smashing »... enfin, en plus du style il y a encore certainement quelques améliorations à apporter.Last edited by Untux on Mon May 08, 2006 3:36 pm; edited 2 times in total

----------

## geekounet

 *tutux wrote:*   

> Accessoirement, j'ai du mal à traduire « userland », à distinguer « heap », « stack » et « buffer », à traduire « stack smashing »... enfin, en plus du style il y a encore certainement quelques améliorations à apporter.

 

userland=espace utilisateur

heap=tas

stack=pile

buffer=tampon

----------

## boozo

@ tutux : En voilà une contribution intéressante pour la communauté   :Smile:   comme tu as pu le voir, cette page n'était pas traduite dans la doc française officielle mais maintenant oui   :Razz:   il serait peut-être judiscieux de contacter la doc-team sur la ML dédiée (ou en passant par kopp peut-être ?!) pour leur/nous "offir" le fruit de ton travail non ?!

ça y'est sans le savoir, tu es bon pour te référencer comme traducteur officiel  :Laughing: 

----------

## Enlight

 *pierreg wrote:*   

>  *tutux wrote:*   Accessoirement, j'ai du mal à traduire « userland », à distinguer « heap », « stack » et « buffer », à traduire « stack smashing »... enfin, en plus du style il y a encore certainement quelques améliorations à apporter. 
> 
> userland=espace utilisateur
> 
> heap=tas
> ...

 

pour stack smashing, moi je dis vraiment "taper dans la pile" parceque tu peux pas remplacer par ecrasement de pointeur dans la pile c'est pas toujours vrai. après en plus soutenu peut être "corruption de la pile"?

----------

## Untux

Salut à tous et merci pour vos réponses,

@pierreg : Je n'avais donc pas trop dénaturé le sens... ouf. Il faudra juste que je modifie les « piles » qui devraient être des « tas ». Quand à Userland... je n'en comprend toujours pas le sens dans ce contexte. Qu'entend-on par « espace utilisateur » et quel est le lien entre noyau et espace utilisateur ?... par curiosité.

@Boozo : En voilà un encouragement intéressant pour mon individualité ;) Je vais donc contacter l'équipe pour leur proposer cette traduction. Mais, qui est Kopp ? Sur la liste des leads je trouve neysx et cam... cette liste serait-elle obsolète ?

@Enlight : Bon à savoir. C'est le genre de truc difficile à traduire quand on est pas développeur. « Corruption de pile » me semble pas mal; Plus facile à placer que « taper dans la pile », même si c'est un peu moins précis.

----------

## boozo

@ tutux : je n'ai rien contre le fait de flatter l'ego, et plus encore lorsque cela profite au groupe en corrolaire   :Laughing: 

bon sinon kopp est un membre actif du forum fr qui traduit notamment la GWN comme tu peux le voir sur le post en sticky  :Razz:   je l'ai cité car il me semble être plus à même que moi de te renseigner sur la meilleure procédure à suivre   :Wink: 

----------

## bibi.skuk

 *tutux wrote:*   

> 
> 
> @Boozo : En voilà un encouragement intéressant pour mon individualité  Je vais donc contacter l'équipe pour leur proposer cette traduction. Mais, qui est Kopp ? Sur la liste des leads je trouve neysx et cam... cette liste serait-elle obsolète ?

 

C'est a neysx qu'il faut proposer ta traduction... (au format xml)

bon, plus qu'a la lire maintenant

----------

## Quaker_Fou

Bravo a Tutux et a tous ceux qui traduisent les docs officielles  :Very Happy: 

J'ai lu dans ce document que du shellcode pouvait par exemple lancer une console root pour faire une execution malveillante.

Je sais pas pour vous mais lorsque je dois emerger et compiler de grosses applications , j'ai tendance a laisser une console en root tout la nuit pour compiler mais je me retrouve surement en pleine nuit avec un terminal en root qui ne fait plus rien.

Je pense pas qu'en terme de sécurité ce soit très efficace.

Pensez vous qu'on puisse definir un "time out" aprés une inactivité d'un terminal root?

Ou pensez vous plutot que c'est completement inutile?

----------

## kopp

Salut tutux

Effectivement pour la traduction, c'est Xavier Neys qui est traducteur en chef pour la france et chef du projet de documentation gentoo, donc lui à contacter plus que moi : neysx@gentoo.org

Sinon, pour soumettre une proposition de traduction, il suffit de remplir un bug sur bugzilla :

https://bugs.gentoo.org/enter_bug.cgi?product=Doc%20Translations&component=[FR]&short_desc=[fr]%20

Il y a sinon une page pleine d'informations sur la traduction fr :

http://gentoo.neysx.org/mystuff/trads/fr/trads-fr.xml

il faudra t'inscrire sur la liste de diffusion, ce sera plus pratique

Sinon, quand à être référencé en tant que traducteurs officiels, je pense qu'il faut participer plus qu'une seule traduction. En tous cas, Xavier ne m'a jamais proposé, et dans tous ceux qui traduisent, il n'y en a qu'un ou deux qui sont référencé. ENfin, p'tet qu'il faut juste demander  :Smile: 

En tous cas, bienvenue parmi nous  :Wink: 

----------

## Untux

@boozo : gracie once encore.

@bibi.skuk : noté. Je lui ai déjà envoyé un message. Merci!

@Quaker_Fou : Merci. Et pour (essayer) de répondre à ta question (qu'on me corrige si je divague par overdose de suppositions) : Pour accéder à ton système et exploiter un dépassement de tampon, un pirate a besoin d'un accès à ton ordinateur. Cet accès peut se faire via Internet mais il faut pour cela que ton système exécute une application qui écoute et sert des requêtes en provenances d'Internet. Ou encore, qu'une de tes applications clientes ait une connexion établie avec un serveur sur Internet. Or ta console ouverte en root n'est probablement pas configurée pour répondre aux requêtes venant de l'extérieur. En soi, elle ne représente donc un danger que si l'on peut accéder physiquement à ton ordinateur. Par contre, il n'est pas impossible qu'une console ouverte puisse être exploitée par un pirate ayant déjà partiellement compromis ton système... mais là je suppose vraiment beaucoup.

@kopp : Merci pour ces précisions et la bienvenue :] J'ai déjà envoyé un message à neysx... après avoir essayé en vain de soumettre la traduction sur bugzilla. À ma grande honte, je n'ai pas trouvé le moyen de joindre un fichier sur l'interface web. J'ignore si cette incapacité est à mettre sur le compte de ma stupidité ou sur celle d'une quelconque limitation imposée aux noobs, mais quoi qu'il en soit, je trouve pas. Accessoirement, je me suis inscrit sur gentoo-doc-fr@gentoo.org... on s'y croisera peut-être  :Smile: 

PS Mes excuses à loopx pour avoir quelque peu dénaturé son fil  :Confused:  Ça partait d'une bonne intention  :Shocked: 

----------

## boozo

 *tutux wrote:*   

> À ma grande honte, je n'ai pas trouvé le moyen de joindre un fichier sur l'interface web. J'ignore si cette incapacité est à mettre sur le compte de ma stupidité ou sur celle d'une quelconque limitation imposée aux noobs, mais quoi qu'il en soit, je trouve pas

 

 :Laughing:   tiens regarde ce lien et adapte la méthodolgie à ton cas de figure   :Wink: 

----------

## loopx

merci tutux pour cette belle traduction  :Smile: 

C'est bien plus compréhensible ainsi   :Cool: 

----------

## -KuRGaN-

Ouaip merci tout bien, c'est vrai qu'on zappe un peu le travail de traduction des fois, qui est quand même pas facile.

Et bienvenue à toi

----------

## Untux

@boozo : ah haaaaa, en fait il fallait passer à l'étape suivante ! Nikel, merci boozo. Bon bin je vais faire ça pour la traduc de PostgreSQL... je suis lancé. lol

@loopx et -KuRGaN- : Merci les gars !

----------

## Kangourou

 *Quaker_Fou wrote:*   

> Bravo a Tutux et a tous ceux qui traduisent les docs officielles 
> 
> J'ai lu dans ce document que du shellcode pouvait par exemple lancer une console root pour faire une execution malveillante.
> 
> Je sais pas pour vous mais lorsque je dois emerger et compiler de grosses applications , j'ai tendance a laisser une console en root tout la nuit pour compiler mais je me retrouve surement en pleine nuit avec un terminal en root qui ne fait plus rien.
> ...

 

Moi quand je lance un gros truc à compiler sans être devant le pc, je fait simplement

```
emerge truc; exit
```

Ça evite que quelqu'un reprenne la main sans que je le veuille, par contre on vois pas si la compilation c'est bien passée, et les messages supplémentaires   :Confused: 

----------

## geekounet

 *Kangourou wrote:*   

>  *Quaker_Fou wrote:*   Bravo a Tutux et a tous ceux qui traduisent les docs officielles 
> 
> J'ai lu dans ce document que du shellcode pouvait par exemple lancer une console root pour faire une execution malveillante.
> 
> Je sais pas pour vous mais lorsque je dois emerger et compiler de grosses applications , j'ai tendance a laisser une console en root tout la nuit pour compiler mais je me retrouve surement en pleine nuit avec un terminal en root qui ne fait plus rien.
> ...

 

Tu lance l'emerge dans un screen et tu quitte ta session tranquillement. Et quand tu reviens, tu ré-ouvre ton screen et t'as les messages de fin  :Wink: 

----------

## loopx

 *pierreg wrote:*   

> Tu lance l'emerge dans un screen et tu quitte ta session tranquillement. Et quand tu reviens, tu ré-ouvre ton screen et t'as les messages de fin 

 

+1   :Laughing: 

----------

## Kangourou

Ah oui pourquoi pas   :Embarassed: 

Mais ça laisse la console ouverte, même si elle n'est pas directement accessible. C'est aussi ce qui fesait peur à Quaker_Fou non ?

----------

## -KuRGaN-

Ca ne laisse pas vraiment une console ouverte mais bon, si quelqu'un accède déjà à une de tes console, que tu as un screen qui tourne ou pas, gare aux bobos   :Wink: 

----------

## Quaker_Fou

C'est justement pour ca que je voulais un 'delog' automatique.

Je ne suis qu'un homme   :Wink:  et j'oublie souvent de me delogguer quand je suis en root.

Screen a l'air sympa mais je vais peut etre oublier aussi de detacher le screen  :Laughing: 

L'interet de poser un timeout, c'etait pour une question de confort.

Une inactivité d'un terminal root au bout de x seconde(s)/minute(s) entrainerait un delog automatique.

----------

## Ey

 *loopx wrote:*   

> J'ai entendu le mot "hardened" dans une conférence cisco. Ce mot est aussi présent pour les kernel et autre (compilateur, etc... dans le USE). Mais c'est quoi au juste ce support ?

 

Juste histoire de finir de répondre à ta question initiale : le "hardening" (traduire durcissement) c'est le fait de renforcer la sécurité d'un système. Quand CISCO en parle c'est par rapport à ces routeurs.

----------

## Ey

 *tutux wrote:*   

> Salut, je me suis amusé à traduire la page indiquée par _droop_. Alors au cas ou tu ne speak pas english...
> 
> [edit]Je l'ai mis là en attendant qu'il soit, peut-être, inclut dans la doc Gentoo.[/edit]
> 
> Accessoirement, j'ai du mal à traduire « userland », à distinguer « heap », « stack » et « buffer », à traduire « stack smashing »... enfin, en plus du style il y a encore certainement quelques améliorations à apporter.

 

"hardened" tu dois le traduire par "durci" et non "endurci" même si ça sonne un peu bizarre, c'est un terme de sécu et c'est comme ça qu'on le traduit en français (cf system hardening/durcissement des systèmes et co)

----------

## PabOu

pour répondre à la premiere question : "hardened" veut dire "endurci", "encore plus sécurisé".. ce n'est pas utilisé que pour les noyaux linux, mais aussi avec PHP par exemple.

On a aussi laissé une question en suspend : l'espace utilisateur. la ram est découpée en 3 parties : le noyau, l'espace noyau et l'espace utilisateur. L'espace utilisateur est l'endroit ou se trouve les applications. L'espace noyau se compose des données des fonctions et variables du noyau uniquement.

Quand on parle d'espace utilisateur pour hardened-gentoo, il s'agit de faire le "hardening" sur tous les binaires, lors de la compilation avec GCC. Ces binaires seront ainsi "hardenés". A l'opposé, il y a le hardening dans le noyau, qui empêche (ou modifie ?) l'execution de code "à risque".

pour le delog automatique, je ne sais pas.. par contre, tu peux ajouter "; exit" à la fin de ta commande emerge. de cette façon, lorsqu'il à terminé emerge, il se delog automatiquement.

----------

## Ey

 *PabOu wrote:*   

> "endurci"

 

Non "durci"

----------

## Quaker_Fou

Bon j'ai fait une petite recherche, il y a une variable d'environnement qui peut etre pratique pour le "delog" automatique.

Etant donné que je souhaitais deloggué uniquement l'utilisateur root aprés XXX temps d'inactivité, il m'a suffit de :

```
su

echo "TMOUT=XXX" >> ~/.bashrc
```

Cordialement,

----------

## kaworu

question bête : pourquoi ne pas passer par sudo ?

----------

## Quaker_Fou

Parce que je l'ai pas emergé et que je l'utilise pas   :Laughing: 

----------

## Untux

@Ey : Merci pour cette précision. Je vais corriger ça. La traduction est maintenant disponible sur le site Gentoo

@Pab0u : Merci pour l'explication. J'essaierai de voir si il est possible de l'ajouter au document d'origine... les ignorants comme moi apprécient ces petits compléments d'information.

----------

## boozo

@ tutux : Bravo !  :Cool:  et merci encore   :Wink: 

----------

## kaworu

 *boozo wrote:*   

> @ tutux : Bravo !  et merci encore  

 

+1 merci bcp ^__^

----------

## lesourbe

sinon 

```
emerge machin && exit
```

bon c est simpliste et surtout ca plante si emerge retourne une erreur.

bon c'est l'idée, y'a plus qu'à améliorer.

----------

## dapsaille

 *Kangourou wrote:*   

>  *Quaker_Fou wrote:*   Bravo a Tutux et a tous ceux qui traduisent les docs officielles 
> 
> J'ai lu dans ce document que du shellcode pouvait par exemple lancer une console root pour faire une execution malveillante.
> 
> Je sais pas pour vous mais lorsque je dois emerger et compiler de grosses applications , j'ai tendance a laisser une console en root tout la nuit pour compiler mais je me retrouve surement en pleine nuit avec un terminal en root qui ne fait plus rien.
> ...

 

redirige stdout dans un fichier texte et ensuite fait ton exit :p

----------

## lesourbe

```
emerge machin > emerge.status && exit || echo "emerge machin failed" >> emerge.status && exit 
```

a essayer

----------

## loopx

Heu, après toute cette discussion, je suis pret pour tester le hardened   :Rolling Eyes: 

Je suis passé au hardened-sources et j'ai activé le use hardened. J'ai essayé de passer le compilateur gcc, mais il y a un problème que je ne comprend pas trop. J'ai fais quelque recherche, et voila sur quoi je tombe:

```

serveur loopx # gcc-config -l

 [1] i686-pc-linux-gnu-3.3.6

 [2] i686-pc-linux-gnu-3.3.6-hardened

 [3] i686-pc-linux-gnu-3.3.6-hardenednopie

 [4] i686-pc-linux-gnu-3.3.6-hardenednopiessp

 [5] i686-pc-linux-gnu-3.3.6-hardenednossp

 [6] i686-pc-linux-gnu-3.4.6 *

 [7] i686-pc-linux-gnu-3.4.6-hardenednopie

 [8] i686-pc-linux-gnu-3.4.6-hardenednopiessp

 [9] i686-pc-linux-gnu-3.4.6-hardenednossp

 [10] i686-pc-linux-gnu-3.4.6-vanilla

serveur loopx # ls -lh /usr/lib/gcc/i686-pc-linux-gnu/3.4.6

total 7.1M

-rw-r--r-- 1 root root 2.0K Jun 11 05:59 crtbegin.o

-rw-r--r-- 1 root root 2.2K Jun 11 05:59 crtbeginS.o

-rw-r--r-- 1 root root 2.3K Jun 11 05:59 crtbeginT.o

-rw-r--r-- 1 root root 1.5K Jun 11 05:59 crtend.o

-rw-r--r-- 1 root root 1.5K Jun 11 05:59 crtendS.o

-rw-r--r-- 1 root root 4.5K Jun 11 05:59 hardened.specs

-rw-r--r-- 1 root root 4.5K Jun 11 05:59 hardenednopie.specs

-rw-r--r-- 1 root root 4.5K Jun 11 05:59 hardenednopiessp.specs

-rw-r--r-- 1 root root 4.5K Jun 11 05:59 hardenednossp.specs

drwxr-xr-x 3 root root  512 Jun 11 05:59 include

drwxr-xr-x 3 root root  136 Jun 11 05:59 install-tools

-rw-r--r-- 1 root root 1.5K Jun 11 05:59 libfrtbegin.a

-rw-r--r-- 1 root root 509K Jun 11 05:59 libg2c.a

-rwxr-xr-x 1 root root  754 Jun 11 05:59 libg2c.la

lrwxrwxrwx 1 root root   15 Jun 11 05:59 libg2c.so -> libg2c.so.0.0.0

lrwxrwxrwx 1 root root   15 Jun 11 05:59 libg2c.so.0 -> libg2c.so.0.0.0

-rwxr-xr-x 1 root root 150K Jun 11 05:59 libg2c.so.0.0.0

-rw-r--r-- 1 root root 259K Jun 11 05:59 libgcc.a

-rw-r--r-- 1 root root  94K Jun 11 05:59 libgcc_eh.a

lrwxrwxrwx 1 root root   13 Jun 11 05:59 libgcc_s.so -> libgcc_s.so.1

-rw-r--r-- 1 root root  38K Jun 11 05:59 libgcc_s.so.1

-rw-r--r-- 1 root root  37K Jun 11 05:59 libgcov.a

-rw-r--r-- 1 root root 2.3M Jun 11 05:59 libstdc++.a

-rwxr-xr-x 1 root root  909 Jun 11 05:59 libstdc++.la

lrwxrwxrwx 1 root root   18 Jun 11 05:59 libstdc++.so -> libstdc++.so.6.0.3

lrwxrwxrwx 1 root root   18 Jun 11 05:59 libstdc++.so.6 -> libstdc++.so.6.0.3

-rwxr-xr-x 1 root root 1.2M Jun 11 05:59 libstdc++.so.6.0.3

-rw-r--r-- 1 root root 2.3M Jun 11 05:59 libstdc++_pic.a

-rw-r--r-- 1 root root 179K Jun 11 05:59 libsupc++.a

-rwxr-xr-x 1 root root  849 Jun 11 05:59 libsupc++.la

-rw-r--r-- 1 root root 4.5K Jun 11 05:59 specs

-rw-r--r-- 1 root root 4.5K Jun 11 05:59 vanilla.specs

```

Je n'ai pas de profile "hardened" dans gcc, et pourtant je l'ai avec l'ancienne version et il se trouve aussi dans les fichiers ... hardened.specs. Je sais pas trop ce que je dois faire. choisir un autre ?

----------

## PabOu

le hardened sources n'est pas suffisant !

Tu as aussi besoin de recompiler gcc avec toutes les options hardened.. utiliser les bons flags... tout recompiler avec ce nouveau gcc...

Le plus simple, c'est de commencer avec le profile hardened, et de tout recompiler ensuite (emerge gcc, tu choisis le nouveau gcc avec eselect compiler, et puis emerge -e world)

----------

## antoine_

Concernant le problème du emerge à delogger une fois qu'il est fini, j'ai une autre solution à proposer. Je pense qu'il suffit d'utiliser la commande nohup : elle permet de détacher un processus de toute console. L'avantage, c'est que du coup vous pouvez même fermer votre session utilisateur pendant que ça emerge (personne ne pourra toucher à vos fichiers), et il n'est pas possible de faire Ctrl+c pour récupérer la main en root.

```
 $ nohup emerge truc 
```

La sortie standard et le flux d'erreur standard sont redirigés vers un fichier nohup.out, que vous pourrez consulter le lendemain matin pour voir si tout s'est bien passé.

Je n'ai pas de shell sous la main pour tester, mais en principe ça marche...

----------

