Il kernel Linux registra lo stato KPTI all'avvio, quindi l'esecuzione del seguente comando stamperebbe lo stato sui kernel con patch. Se non stampa nulla allora, KPTI è disabilitato.
dmesg -wH | grep 'Kernel/User page tables isolation'
Il kernel Linux 4.15rc6 ha abilitato KPTI (isolamento della tabella delle pagine del kernel) ed è stato riportato al kernel Linux 4.14.11, 4.9.74, 4.4.109, 3.16.52 e 3.2.97.
Quindi, se stai eseguendo una di queste versioni, KPTI è a posto. La maggior parte delle distribuzioni (che eseguono qualsiasi versione del kernel Linux) invierà un aggiornamento al kernel Linux entro un giorno o due per correggere Meltdown e Spectre.
Nota:aggiungi il parametro pti=off
al GRUB per disabilitare il KPTI. Per informazioni:https://askubuntu.com/questions/19486/how-do-i-add-a-kernel-boot-parameter
Cose che indicano lo stato di KPTI:
-
Nei kernel standard, le stringhe
Kernel/User page tables isolation: enabled
oKernel/User page tables isolation: force enabled on command line
neldmesg
output significa che il kernel sta eseguendo l'isolamento della tabella delle pagine del kernel. Quest'ultimo messaggio indica inoltre che il kernel ritiene che l'isolamento della tabella delle pagine non sia necessario per questa CPU. -
In alcuni kernel con patch del fornitore (principalmente RedHat e derivati):un valore diverso da zero in
/sys/kernel/debug/x86/pti_enabled
. L'assenza di questo file non significa nulla, però:il kernel standard non lo fornisce. -
Nel kernel 4.14.18 o più recente e nelle versioni corrispondenti dei kernel LTS, il contenuto di
/sys/devices/system/cpu/vulnerabilities/meltdown
:una riga che inizia conMitigation:
indica che è in atto una mitigazione (KPTI, microcodice o qualcos'altro), una riga che inizia conNot affected
indica che si ritiene che la CPU non sia interessata dal problema e una riga che inizia conVulnerable
indica che si ritiene che la CPU sia vulnerabile, ma la mitigazione è assente o insufficiente.
Cose che non indicano lo stato di KPTI:
-
Versione del kernel. Il kernel 4.14.11 e successivi e le versioni corrispondenti dei kernel 4.1, 4,4 e 4.9 LTS sono capaci di KPTI, ma possono essere compilati con esso disabilitato e può essere disabilitato all'avvio. Inoltre, le versioni precedenti a queste non sono automaticamente a rischio:alcune distribuzioni hanno eseguito il backport delle patch KPTI su kernel precedenti.
-
bugs : cpu_insecure
in/proc/cpuinfo
. La presenza di this indica che if il kernel è compilato per l'isolamento della tabella delle pagine e if l'isolamento della tabella delle pagine non è stato disabilitato all'avvio o in fase di esecuzione, verrà utilizzato l'isolamento della tabella delle pagine. Inoltre, non indicano che una CPU è vulnerabile all'attacco Meltdown:il kernel 4.14.11 lo imposta per tutte le CPU x86, mentre il kernel 4.14.12 lo imposta per tutte le CPU non AMD, anche quelle come il Pentium MMX o il "Bonnell" Atom CPU non vulnerabili. -
CONFIG_PAGE_TABLE_ISOLATION=y
nella configurazione del kernel. Questo indica solo che il kernel è in grado di isolare la tabella delle pagine del kernel. KPTI può essere disabilitato al momento dell'avvio dalla riga di comando del kernel tramitenopti
opti=off
opzioni. Su alcuni sistemi, può essere disabilitato in fase di esecuzione scrivendo0
a/sys/kernel/debug/x86/pti_enabled
.
Su un kernel supportato:
dmesg | grep 'Isolamento tabelle pagine kernel/utente'
risulterà abilitato o disabilitato.
Se non ci sono risultati, allora il kernel non supporta KPTI.