gcc

Le
dyrmak
Bonjour,
Voici quelques résultats suivis d'une question:

-
Le gcc que j'utilise pour les kernels à venir:

Utilisation des specs internes.
COLLECT_GCC=/opt/gcc73R/bin/gcc
COLLECT_LTO_WRAPPER=/opt/gcc73R/libexec/gcc/x86_64-pc-linux-gnu/
7.2.1/lto-wrapper
Cible : x86_64-pc-linux-gnu
Configuré avec: ..//gcc-7.3.0-RC-20180122/configure --prefix=/opt/gcc73R
Modèle de thread: posix
gcc version 7.2.1 20180122 (GCC)

bugs : cpu_meltdown spectre_v1 spectre_v2
bugs : cpu_meltdown spectre_v1 spectre_v2
bugs : cpu_meltdown spectre_v1 spectre_v2
bugs : cpu_meltdown spectre_v1 spectre_v2

Linux quelite.terre 4.14.15+ownlowlatency #1 SMP PREEMPT
Wed Jan 24 00:38:07 CET 2018 x86_64 GNU/Linux


Checking count of LFENCE opcodes in kernel: YES (86 opcodes found, which
is >= 70)
STATUS: NOT VULNERABLE (heuristic to be improved when official patches
become available)

CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
* Hardware (CPU microcode) support for mitigation: NO
* Kernel support for IBRS: NO
* IBRS enabled for Kernel space: NO
* IBRS enabled for User space: NO
* Mitigation 2
* Kernel compiled with retpoline option: YES
* Kernel compiled with a retpoline-aware compiler: NO
> STATUS: VULNERABLE (IBRS hardware + kernel support OR kernel
with retpoline are needed to mitigate the vulnerability)

CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI): YES
* PTI enabled and active: YES
> STATUS: NOT VULNERABLE (PTI mitigates the vulnerability)


Question qui saute aux yeux, du moins je l'espère: .

Comment être sûr que gcc sait ripoliner ?
(GCC73R est supposé le savoir, mais comment en être sûr ?)

dyrmak
--
La cosa bien rocosa
++++ ++++
Linux operating system
++++ ++++
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre www.aribaut.com
Le #26461082
Le 24/01/2018 à 08:01, dyrmak a écrit :
Bonjour,
Voici quelques résultats suivis d'une question:
----------------------------------------------------
Le gcc que j'utilise pour les kernels à venir:

Hello, une question : c'est quoi les gcc ? Cela sert à quoi ?
--
http://zetrader.info & http://zetrader.fr
http://aribaut.com - http://zeforums.com
Pierre www.zetrader.fr
Le #26461079
Le 24/01/2018 à 10:48, Pierre www.aribaut.com a écrit :
Le 24/01/2018 à 08:01, dyrmak a écrit :
Bonjour,
Voici quelques résultats suivis d'une question:
----------------------------------------------------
Le gcc que j'utilise pour les kernels à venir:

Hello, une question : c'est quoi les gcc ? Cela sert à quoi ?

J'ai trouvé (je crois), a priori c'est ça :
https://fr.wikipedia.org/wiki/GNU_Compiler_Collection
--
http://zetrader.info & http://zetrader.fr
http://aribaut.com - http://zeforums.com
Jo Engo
Le #26461134
Le Wed, 24 Jan 2018 10:59:23 +0100, Pierre www.zetrader.fr a écrit :
Hello, une question : c'est quoi les gcc ? Cela sert à quoi ?

J'ai trouvé (je crois), a priori c'est ça :
https://fr.wikipedia.org/wiki/GNU_Compiler_Collection

Sino gcc en minuscules, c'es Gnu C Compiler, le compilateur c de gnu, qui
fait partie de la collection.

--
Judex vainc : trafiquez plombage whisky !
-- Zalmanski, Alain
dyrmak
Le #26461166
En 15 lignes Jo Engo a écrit
dans news:pan$8a95a$1bf222e4$7ef1c75d$
le mercredi, 24 janvier 2018 à 14:26:39 :
Le Wed, 24 Jan 2018 10:59:23 +0100, Pierre www.zetrader.fr a écrit :
Hello, une question : c'est quoi les gcc ? Cela sert à quoi ?

J'ai trouvé (je crois), a priori c'est ça :
https://fr.wikipedia.org/wiki/GNU_Compiler_Collection

Sino gcc en minuscules, c'es Gnu C Compiler, le compilateur c de gnu, qui
fait partie de la collection.

Un compilateur sert à transformer le langage conventionnel humain
en instructions machine, du binaire quoi.
Mon but n'est pas de courir derrière le dernier kernel qu'il est
tout beau, ce que je
recherche c'est préparer dans la mesure du possible la transcription
des patches relatifs à meltdown et spectre dans les kernels plus
anciens, j'en ai besoin pour faire un rédeploiement sur un certain
nombre de machines, je souhaiterais voir portés sur le
kernel-3.6.16.60 et les kernels 4.9.76++ les patches qui seront
adoptés en amont, je sais que ces modifications sont au-dessus
de mes modestes capacités, mais ici toute suggestion est bonne
à prendre, en ayant l'½il attentif sur un possible rétro-portage
des techniques "retpolines" sur les gcc version 4++, ce qui
ouvrirait la voie à un possible rétro-portage également des
patches de spectre sur ces anciens kernels, auquel cas
je me ferai un plaisir fou de recompiler tout ce qui doit l'être,
les modules dkms devraient suivre la dance, sinon ça sert
à rien de patcher pour patcher les patches.
Résultat dramatique de tout ça : La MINT-13 que j'ai tant utilisé
s'en va, je me coupe un bras, à la Yul Bryner, enfin, ce n'est
qu'une façon de dire les choses.....
dyrmak
--
Es un lobito el cordero
++++ --- ++++
Linux operating system
++++ --- ++++
David Larochette
Le #26461202
Le Wed, 24 Jan 2018 07:01:00 +0000, dyrmak a écrit :
Question qui saute aux yeux, du moins je l'espère: ....
Comment être sûr que gcc sait ripoliner ?
(GCC73R est supposé le savoir, mais comment en être sûr ?)

Déjà tu peux utiliser l'option -mindirect-branch=thunk-extern
A priori si gcc ne la reconnait, c'est qu'il ne retpoline pas.
Tu peux aussi rechercher les retpolines directement dans l'assembleur
généré (option -S). Ils sont de la forme
label:
lfence ou pause
jmp label
dyrmak
Le #26461246
En 17 lignes David Larochette a écrit
dans news:5a6901c9$0$7176$
le mercredi, 24 janvier 2018 à 22:59:37 :
Déjà tu peux utiliser l'option -mindirect-branch=thunk-extern
A priori si gcc ne la reconnait, c'est qu'il ne retpoline pas.
Tu peux aussi rechercher les retpolines directement dans l'assembleur
généré (option -S). Ils sont de la forme
label:
lfence ou pause
jmp label


Merci!
C'est tout à fait ça, mais pour la génération d'assembleur sur le
kernel, je ne suis pas sûr d'avoir suffisamment de place pour
vérifier ça.... mais je suis bien curieux de voir ces morçeaux
de code qui ne spéculent pas.
J'applique les options sur une petite compilation:
- Avec gcc natif:
gcc -mindirect-branch=thunk-extern -mindirect-branch-register
-DRETPOLINE kernel/exit.c
gcc: error: unrecognized command line option
‘-mindirect-branch=thunk-extern’
gcc: error: unrecognized command line option
‘-mindirect-branch-register’
Maintenant, si j'utilise la version retpolinée :
gcc -mindirect-branch=thunk-extern
-mindirect-branch-register -DRETPOLINE kernel/exit.c
kernel/exit.c:7:10: erreur fatale: linux/mm.h : Aucun fichier ou
dossier de ce type
#include ^~~~~~~~~~~~
compilation terminée.
Évidemment, je n'ai que faire d'une compilation qui n'est
définie qu'avec un Makefile, mais la tentative de compilation
a eu lieu, ET CELA me renseigne sur le fait de la prise en compte
de l'option par gcc : celui-ci ripoline.... bel et bien !
D'autre part, la version du spectre-meltdown.sh utilisé n'est
plus la bonne, il faut utiliser la version 0.32:
* Mitigation 2
* Kernel compiled with retpoline option: YES
* Kernel compiled with a retpoline-aware compiler: YES (kernel
reports full retpoline compilation)
* Retpoline enabled: YES
STATUS: NOT VULNERABLE (Mitigation: Full generic retpoline)

CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Mitigated according to the /sys interface: YES (kernel confirms
that the mitigation is active)
* Kernel supports Page Table Isolation (PTI): YES
* PTI enabled and active: YES
* Running under Xen PV (64 bits): NO
STATUS: NOT VULNERABLE (Mitigation: PTI)


Mais pour les nouveaux kernels il vaut mieux se fier
à la vérification native:
grep . /sys/devices/system/cpu/vulnerabilities/*
/sys/devices/system/cpu/vulnerabilities/meltdown:Mitigation: PTI
/sys/devices/system/cpu/vulnerabilities/spectre_v1:Vulnerable
/sys/devices/system/cpu/vulnerabilities/spectre_v2:Mitigation:Full
generic retpoline
Il reste spectre_v1.... On verra la suite des événements ....
dyrmak
--
La mala vida que me dá
++++ --- ++++
Linux operating system
++++ --- ++++
Jo Engo
Le #26461274
Le Thu, 25 Jan 2018 11:20:05 +0000, dyrmak a écrit :
Il reste spectre_v1....


Ne fais pas attention si je suis à la ramasse mais es-tu sûr qu'il n'y a
pas eu d'autres pansements de sécurité que tu aurais omis parce que moins
(euphémisme) médiatisés, pour bien faire ne devrais-tu pas :
— soit les traquer et les appliquer aussi
— soit tenter d'installer des kernels plus récents et full-patched (je
sais c'est moins fun mais on ne peut pas s'amuser toujours autant)
--
16:15 kadreg est passé abbé
16:17 gege> 16:15 il va mettre du temps à arriver athé...
Publicité
Poster une réponse
Anonyme