Computerbeveiliging - Hoe je bad guys buiten de deur houdt

Invalid opcode bij Linux (debian)

11-01-2018, 20:34 door Anoniem, 13 reacties
Bij het opstarten krijg ik sinds de laatste updates al vrij snel de melding: invalid opcode: 0000 [#1] SMP NOPTI

Het systeem start verder wel gewoon op.

Mijn vermoeden is dat het wel eens met de nieuwe patches te maken kan hebben.

Mijn vraag is dan ook: werken de laatste beveiligingen nu wel tegen de nieuwe aanvallen Meltdown en Spectre,
of ben ik daar nu in een bepaalde mate kwetsbaar voor.

Het systeem bevat een AMD processor
Reacties (13)
12-01-2018, 00:50 door Anoniem
Een patch voor de kernel source lezende staat NOPTI letterlijk voor: No PTI. Geen page-table isolation. PTI is de oplossing voor spectre en meltdown. Het is dus verstandig om aan te nemen dat u niet beschermd bent.

https://www.spinics.net/lists/stable/msg207796.html
12-01-2018, 10:42 door Anoniem
Nee, PTI is de noodzakelijke workaround voor kwetsbare processoren.

Op AMD (niet kwetsbare voor meltdown) words PTI uitgezet zodat die geen performance verliezen.
12-01-2018, 21:59 door Anoniem
Door Anoniem: Op AMD (niet kwetsbare voor meltdown) words PTI uitgezet zodat die geen performance verliezen.
Dat lijkt me niet helemaal juist.

Een "invalid opcode" melding is juist een melding dat er wél is geprobeerd de instructie uit te voeren op de AMD-processor,
en dat het eigenlijk wel de bedoeling is om deze uit te voeren, maar dat de betreffende AMD-processor deze instructie niet kán uitvoeren, omdat het geen geldige instructie is voor deze AMD processor is.

Waar de instructie precies voor dient (Meltdown of Spectre) is voor mij nog even de vraag.
Je zult wel gelijk hebben dat AMD processoren niet kwetsbaar zijn voor Meltdown, dat heb ik meer gelezen,
maar dan wordt hij toch "silently" overgeslagen dus zonder enige melding daarover?
Dus misschien hoort hij wel bij het mitigeren van Spectre?
13-01-2018, 11:17 door Anoniem
Door Anoniem: Een patch voor de kernel source lezende staat NOPTI letterlijk voor: No PTI. Geen page-table isolation. PTI is de oplossing voor spectre en meltdown. Het is dus verstandig om aan te nemen dat u niet beschermd bent.

https://www.spinics.net/lists/stable/msg207796.html
Volgens je link betekent de melding "enabled during build, disabled during boot". Ik vind dat klinken alsof ze in de kernel (die voor een hoop verschillende processoren is) iets hebben aangebracht dat niet op alle CPU's wordt geactiveerd. Jouw reactie gaat ervan uit dat dat betekent dat de patch niet geschikt is voor de CPU van de vraagsteller maar eigenlijk wel nodig. Een even geldige reden voor het niet activeren is dat het domweg niet nodig is voor die CPU.

Mijn conclusie is niet dat je aan moet nemen dat je niet beschermd bent, mijn conclusie is dat je nog niet genoeg weet om al aannemes te kunnen doen. Dat je niet beschermd bent is een mogelijkheid, maar geen zekerheid.

Ik denk dat je je vraag beter kan stellen op een plek waar specifieke kennis over de Linux-kernel en Debian voorhanden is. Ga op debian.org naar "ondersteuning" en zoek daar naar een geschikte mailinglist of forum ziet om je vraag te stellen. Bij de weinige keren dat ik bugs/problemen te melden had heb ik ze als erg behulpzaam en vriendelijk ervaren (er was één trol die vervelend deed, wat resulteerde in e-mails van een paar anderen buiten het forum om die op bezorgde en verontschuldigende toon uitlegden dat ik die persoon maar gewoon moest negeren en dat die niet representatief was voor waar Debian voor staat - ze zijn dus aangenaam beschaafd daar).

Ik heb trouwens mijn oude AMD-systeem met Debian stable even opgestart, bijgewerkt en gereboot, en ik zie de melding niet. Kennelijk is "Debian" en "AMD" niet specifiek genoeg om het systeem te identificeren. Mijn specifiekere informatie, voor wat het waard is:
$ uname -rv
4.9.0-5-amd64 #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04)
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: AuthenticAMD
CPU family: 15
Model: 107
Model name: AMD Athlon(tm) 64 X2 Dual Core Processor 5600+
Stepping: 2
CPU MHz: 1000.000
CPU max MHz: 2900.0000
CPU min MHz: 1000.0000
BogoMIPS: 2000.13
Virtualization: AMD-V
L1d cache: 64K
L1i cache: 64K
L2 cache: 512K
NUMA node0 CPU(s): 0,1
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl extd_apicid eagerfpu pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch vmmcall lbrv
13-01-2018, 20:30 door Anoniem
De pas uitgekomen Tails 3.4 heeft het probleem ook.

Ik zie daar staan: SMP Debian 4.14.12-2 (2018-01-06)

Anoniem 11:17: je "stable" versie is blijkbaar net wat te oud en heeft het probleem nog niet.
Verder ben ik het roerend met je eens, hoewel hier melden niet meteen een heel slecht idee is natuurlijk.
Al was het alleen maar "ter informatie" aan gebruikers.
Je leest er gemakkelijk overheen, want het systeem dendert toch wel door.
14-01-2018, 19:06 door Nanorise
[Verwijderd door moderator]
16-01-2018, 00:38 door Anoniem
Wat zijn de implicatie van de code hier en welke aanpassingen moeten er komen n.a.v. Spectre
en in mindere mate Meltdown? O.a. een "workqueue: replace pool".

Zie: https://github.com/torvalds/linux/blob/master/drivers/idle/intel_idle.c
16-01-2018, 17:46 door Anoniem
Door Anoniem: Wat zijn de implicatie van de code hier en welke aanpassingen moeten er komen n.a.v. Spectre
en in mindere mate Meltdown? O.a. een "workqueue: replace pool".

Zie: https://github.com/torvalds/linux/blob/master/drivers/idle/intel_idle.c
De code die je hier aanhaalt, heeft niets met Spectre en/of Meltdown te maken. Deze code is verantwoordelijk voor het managen van de idle states van de processor.
16-01-2018, 23:22 door -karma4
Google gaat Debian gebruiken (voorheen Ubuntu), dus ik denk dat je wel mag aannemen dat Debian geen problemen in hun besturingssysteem laat zitten.

https://itsfoss.com/goobuntu-glinux-google/
17-01-2018, 21:08 door Anoniem
Door Anoniem: Wat zijn de implicatie van de code hier en welke aanpassingen moeten er komen n.a.v. Spectre
en in mindere mate Meltdown? O.a. een "workqueue: replace pool".

Zie: https://github.com/torvalds/linux/blob/master/drivers/idle/intel_idle.c

Het gaat hier over een AMD processor waarbij het probleem optreedt. AMD -processors zijn niet van Intel...
23-02-2018, 02:52 door Anoniem
SMP= Symmetric Multi-Processing
NOPTI = No Page-Table-Isolation.

Symmetric Multi-processing heeft betrekking op een enkel systeem met meer dan 1 processor.
Zie https://en.wikipedia.org/wiki/Symmetric_multiprocessing voor details.

PTI mitigeert Meltdown bij x86 processors. https://en.wikipedia.org/wiki/Kernel_page-table_isolation
Maar AMD procesors zijn niet kwetsbaar voor Meltdown en hebben het dus niet nodig
daarom dus NOPTI = No Page-Table-Isolation.

Maar als je dus een systeem met maar 1 (AMD) processor hebt (d.w.z. geen multiprocessorsysteem)
kan er natuurlijk geen strake zijn van SMP, want SMP is bedoelt voor systemen met meer dan 1 processor.
Hier komt (of kwam) naar alle waarschijnlijkheid de foutmelding vandaan.
23-02-2018, 12:36 door Anoniem
Door Anoniem: SMP= Symmetric Multi-Processing
NOPTI = No Page-Table-Isolation.

Symmetric Multi-processing heeft betrekking op een enkel systeem met meer dan 1 processor.
Zie https://en.wikipedia.org/wiki/Symmetric_multiprocessing voor details.

PTI mitigeert Meltdown bij x86 processors. https://en.wikipedia.org/wiki/Kernel_page-table_isolation
Maar AMD procesors zijn niet kwetsbaar voor Meltdown en hebben het dus niet nodig
daarom dus NOPTI = No Page-Table-Isolation.

Maar als je dus een systeem met maar 1 (AMD) processor hebt (d.w.z. geen multiprocessorsysteem)
kan er natuurlijk geen strake zijn van SMP, want SMP is bedoelt voor systemen met meer dan 1 processor.
Hier komt (of kwam) naar alle waarschijnlijkheid de foutmelding vandaan.

Al vrij lang zijn alle Linux kernels 'SMP' - Een 'UP' (UniProcessor) kernel wordt vzviw niet of nauwelijks door een distributie geleverd . Ook niet als je toevallig op een single-core systeem zou installeren.

Btw - je moet wel een echt oud systeem hebben wil je inderdaad maar 1 processor hebben. Let op dat vanuit de kernel gezien het gaat om het aantal cores, niet het aantal behuizingen. Een core is een processor . Ook al zit die in dezelfde behuizing als andere cores.
Single-core systemen zijn _echt_ oud .

En er gaat niks fout als je een SMP kernel draait op een single-core systeem. Andersom ook niet, alleen dan gebruik je ook maar een enkele core .

De _foutmelding_ is 'invalid opcode' . SMP NOPTI erachter zijn enkele kernel config opties , maar geen deel van de foutmelding.
Na de foutmelding moet nog een hele stacktrace komen die veel nuttiger is, maar TS heeft weggelaten bij de post .
23-02-2018, 16:32 door Anoniem
Al vrij lang zijn alle Linux kernels 'SMP' - Een 'UP' (UniProcessor) kernel wordt vzviw niet of nauwelijks door een distributie geleverd . Ook niet als je toevallig op een single-core systeem zou installeren.

Btw - je moet wel een echt oud systeem hebben wil je inderdaad maar 1 processor hebben. Let op dat vanuit de kernel gezien het gaat om het aantal cores, niet het aantal behuizingen. Een core is een processor . Ook al zit die in dezelfde behuizing als andere cores.
Single-core systemen zijn _echt_ oud .

En er gaat niks fout als je een SMP kernel draait op een single-core systeem. Andersom ook niet, alleen dan gebruik je ook maar een enkele core .

De _foutmelding_ is 'invalid opcode' . SMP NOPTI erachter zijn enkele kernel config opties , maar geen deel van de foutmelding.
Na de foutmelding moet nog een hele stacktrace komen die veel nuttiger is, maar TS heeft weggelaten bij de post .

Het probleem zit in /var/lib/dkms/aufs/4.14+20171218/build/fs/aufs/finfo.c:113
en is hier gemeld: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=886329
Zoek op de zin "Message #90 received at 886329", even daarna komt de hele dump.

Tot nu toe heeft men nog niet precies door hoe deze error precies ontstaat. Enig idee?
Het probleem komt ook nog steeds voor in de volgende versie van Tails, Tails 3.5 (al vrij snel bij het opstarten)
Tails 3.5 is eventueel nog te downloaden voor wie deze error zelf ook eens willen zien of bestuderen.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.