sterum
Well-Known Member
Das würde mich auch stark interessieren, da ich noch eine SandyBridge CPU (i7 2700k) habe und diese für meine Bedürfnisse noch schnell genug ist.Gibt es auch Gedanken wie es um ältere CPUs steht.
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Das würde mich auch stark interessieren, da ich noch eine SandyBridge CPU (i7 2700k) habe und diese für meine Bedürfnisse noch schnell genug ist.Gibt es auch Gedanken wie es um ältere CPUs steht.
Aber die sind auch gleich so alt, dass sie sowieso nicht mehr ernsthaft in Szenarien genutzt werden, wo sie angreifbar sind. PCID werden automagisch auf CPU genutzt, die es können. Das ist ab ca. Westmere aufwärts, wobei es da durch Intels schwer durchschaubares Kern-Recycling Ausreißer in beide Richtungen gibt
So, for now, we fully disable PCIDs with KAISER when INVPCID is
not available. This is fixable, but it's an optimization that
we can do later.
'time make -j6 -DWITH_META_MODE buildworld buildkernel' der r328513 Sourcen auf leerem /usr/obj.
# Ohne PTI:
22155.900u 865.078s 1:38:05.05 391.1% 54657+3480k 68449+148967io 24578pf+0w
# Mit PTI
22193.461u 917.469s 1:38:29.84 391.0% 54614+3477k 68572+148403io 24590pf+0w
=> 0,41% langsamer
'time make -j6 -DWITH_META_MODE buildworld buildkernel' der r328513 Sourcen auf gefülltem /usr/obj.
Dies baut nichts neu, feuert nur jede Menge Syscalls auf die Source- und Object-Dateien ab.
# Ohne PTI
178.254u 67.015s 1:24.44 290.4% 3986+2677k 71094+5263io 24955pf+0w
# Mit PTI
175.149u 66.678s 1:24.24 287.0% 3751+2644k 69693+5457io 23630pf+0w
=> Gleich schnell
'rm -Rf /usr/obj' auf das gefüllte /usr/obj. Es war ein UFS-Dateisystem, die unlink() Syscalls kehren
also (meist) sofort zurück und warten nicht auf das Dateisystem oder die SSD.
# Ohne PTI
0.145u 6.655s 0:09.75 69.6% 9+172k 166+4997io 0pf+0w
# Mit PTI
0.085u 5.686s 0:08.15 70.6% 10+180k 170+4997io 0pf+0w
=> -19,63% langsamer (wahrscheinlich durch Cache-Effekte, dumme Milchmädchenmessung)
CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Checking whether we're safe according to the /sys interface: YES (kernel confirms that the mitigation is active)
> STATUS: NOT VULNERABLE (Mitigation: Full generic retpoline)
CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Checking whether we're safe according to the /sys interface: YES (kernel confirms that the mitigation is active)
> STATUS: NOT VULNERABLE (Mitigation: PTI)
CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Checking whether we're safe according to the /sys interface: NO (kernel confirms your system is vulnerable)
> STATUS: VULNERABLE (Vulnerable: Minimal generic ASM retpoline)
CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Checking whether we're safe according to the /sys interface: YES (kernel confirms that the mitigation is active)
> STATUS: NOT VULNERABLE (Mitigation: PTI)
$ uname -r
4.14.15-1-ARCH
$ cat /sys/devices/system/cpu/vulnerabilities/spectre_v2
Mitigation: Full generic retpoline
Author: kib
Date: Wed Jan 31 14:36:27 2018
New Revision: 328625
URL: https://svnweb.freebsd.org/changeset/base/328625
Log:
IBRS support, AKA Spectre hardware mitigation.
It is coded according to the Intel document 336996-001, reading of the
patches posted on lkml, and some additional consultations with Intel.
For existing processors, you need a microcode update which adds IBRS
CPU features, and to manually enable it by setting the tunable/sysctl
hw.ibrs_disable to 0. Current status can be checked in sysctl
hw.ibrs_active. The mitigation might be inactive if the CPU feature
is not patched in, or if CPU reports that IBRS use is not required, by
IA32_ARCH_CAP_IBRS_ALL bit.
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D14029
Hängt natürlich davon ab, wer und wie dein Kernel kompiliert hat. Vermutlich wurde dein 4.14.14 noch mit einem GCC ohne Retpoline-Fähigkeit gebaut.
Müsste für die Leute vom Hardwaredienst eigentlich ziemlich naheliegend sein, aber wir reden hier von Intel oOGerücht? Führt CPU-Microcode Update zu Überhitzung?
Das tauchte bei fefe auf:
https://blog.fefe.de/?ts=a485e7ee
Author: kib
Date: Sat Feb 17 18:00:01 2018
New Revision: 329462
URL: https://svnweb.freebsd.org/changeset/base/329462
Log:
MFC r328083,328096,328116,328119,328120,328128,328135,328153,328157,
328166,328177,328199,328202,328205,328468,328470,328624,328625,328627,
328628,329214,329297,329365:
Meltdown mitigation by PTI, PCID optimization of PTI, and kernel use of IBRS
for some mitigations of Spectre.
Tested by: emaste, Arshan Khanifar <arshankhanifar@gmail.com>
Discussed with: jkim
Sponsored by: The FreeBSD Foundation
# 1. Lauf: 2137 Sekunden
# 2. Lauf: 51 Sekunden
# 1. Lauf: 2142 Sekunden
# 2. Lauf: 52 Sekunden
# 1. Lauf: 2238 Sekunden
# 2. Lauf: 66 Sekunden.
sysctl vm.pmap.pti
vm.pmap.pti: 1
Damit IBRS genutzt wird muss ein entsprechender Microcode eigespielt und noch 'hw.ibrs_disable=0' in der /boot/loader.conf gesetzt sein.Für IBRS nachgucken: sysctl hw.ibrs_active
Modified files:
sys/arch/amd64/amd64: cpu.c gdt.c genassym.cf identcpu.c lapic.c
locore.S locore0.S machdep.c pmap.c spl.S
trap.c vector.S
sys/arch/amd64/conf: ld.script
sys/arch/amd64/include: asm.h cpu.h cpufunc.h frame.h frameasm.h
gdt.h pmap.h specialreg.h
Added files:
sys/arch/amd64/include: cpu_full.h
Log message:
Meltdown: implement user/kernel page table separation.
On Intel CPUs which speculate past user/supervisor page permission checks,
use a separate page table for userspace with only the minimum of kernel code
and data required for the transitions to/from the kernel (still marked as
supervisor-only, of course):
- the IDT (RO)
- three pages of kernel text in the .kutext section for interrupt, trap,
and syscall trampoline code (RX)
- one page of kernel data in the .kudata section for TLB flush IPIs (RW)
- the lapic page (RW, uncachable)
- per CPU: one page for the TSS+GDT (RO) and one page for trampoline
stacks (RW)
When a syscall, trap, or interrupt takes a CPU from userspace to kernel the
trampoline code switches page tables, switches stacks to the thread's real
kernel stack, then copies over the necessary bits from the trampoline stack.
On return to userspace the opposite occurs: recreate the iretq frame on the
trampoline stack, switch stack, switch page tables, and return to userspace.
mlarkin@ implemented the pmap bits and did 90% of the debugging, diagnosing
issues on MP in particular, and drove the final push to completion.
Many rounds of testing by naddy@, sthen@, and others
Thanks to Alex Wilson from Joyent for early discussions about trampolines
and their data requirements.
Per-CPU page layout mostly inspired by DragonFlyBSD.
https://undeadly.org/cgi?action=article;sid=20180228225937
FreeBSD-SA-18:03.speculative_execution Security Advisory
The FreeBSD Project
Topic: Speculative Execution Vulnerabilities
Category: core
Module: kernel
Announced: 2018-03-14
Credits: Jann Horn (Google Project Zero); Werner Haas, Thomas
Prescher (Cyberus Technology); Daniel Gruss, Moritz Lipp,
Stefan Mangard, Michael Schwarz (Graz University of
Technology); Paul Kocher; Daniel Genkin (University of
Pennsylvania and University of Maryland), Mike Hamburg
(Rambus); Yuval Yarom (University of Adelaide and Data6)
Affects: All supported versions of FreeBSD.
Corrected: 2018-02-17 18:00:01 UTC (stable/11, 11.1-STABLE)
2018-03-14 04:00:00 UTC (releng/11.1, 11.1-RELEASE-p8)
CVE Name: CVE-2017-5715, CVE-2017-5754
Special Note: Speculative execution vulnerability mitigation is a work
in progress. This advisory addresses the most significant
issues for FreeBSD 11.1 on amd64 CPUs. We expect to update
this advisory to include 10.x for amd64 CPUs. Future FreeBSD
releases will address this issue on i386 and other CPUs.
freebsd-update will include changes on i386 as part of this
update due to common code changes shared between amd64 and
i386, however it contains no functional changes for i386 (in
particular, it does not mitigate the issue on i386).
For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit <URL:https://security.FreeBSD.org/>.
I. Background
Many modern processors have implementation issues that allow unprivileged
attackers to bypass user-kernel or inter-process memory access restrictions
by exploiting speculative execution and shared resources (for example,
caches).
II. Problem Description
A number of issues relating to speculative execution were found last year
and publicly announced January 3rd. Two of these, known as Meltdown and
Spectre V2, are addressed here.
CVE-2017-5754 (Meltdown)
- ------------------------
This issue relies on an affected CPU speculatively executing instructions
beyond a faulting instruction. When this happens, changes to architectural
state are not committed, but observable changes may be left in micro-
architectural state (for example, cache). This may be used to infer
privileged data.
CVE-2017-5715 (Spectre V2)
- --------------------------
Spectre V2 uses branch target injection to speculatively execute kernel code
at an address under the control of an attacker.
III. Impact
An attacker may be able to read secret data from the kernel or from a
process when executing untrusted code (for example, in a web browser).
IV. Workaround
No workaround is available.
V. Solution
Perform one of the following:
1) Upgrade your vulnerable system to a supported FreeBSD stable or
release / security branch (releng) dated after the correction date,
and reboot.
2) To update your vulnerable system via a binary patch:
Systems running a RELEASE version of FreeBSD on the i386 or amd64
platforms can be updated via the freebsd-update(8) utility, followed
by a reboot into the new kernel:
# freebsd-update fetch
# freebsd-update install
# shutdown -r now
3) To update your vulnerable system via a source code patch:
The following patches have been verified to apply to the applicable
FreeBSD release branches.
a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.
[FreeBSD 11.1]
# fetch https://security.FreeBSD.org/patches/SA-18:03/speculative_execution-amd64-11.patch
# fetch https://security.FreeBSD.org/patches/SA-18:03/speculative_execution-amd64-11.patch.asc
# gpg --verify speculative_execution-amd64-11.patch.asc
b) Apply the patch. Execute the following commands as root:
# cd /usr/src
# patch < /path/to/patch
c) Recompile your kernel as described in
<URL:https://www.FreeBSD.org/handbook/kernelconfig.html> and reboot the
system.
VI. Correction details
CVE-2017-5754 (Meltdown)
- ------------------------
The mitigation is known as Page Table Isolation (PTI). PTI largely separates
kernel and user mode page tables, so that even during speculative execution
most of the kernel's data is unmapped and not accessible.
A demonstration of the Meltdown vulnerability is available at
https://github.com/dag-erling/meltdown. A positive result is definitive
(that is, the vulnerability exists with certainty). A negative result
indicates either that the CPU is not affected, or that the test is not
capable of demonstrating the issue on the CPU (and may need to be modified).
A patched kernel will automatically enable PTI on Intel CPUs. The status can
be checked via the vm.pmap.pti sysctl:
# sysctl vm.pmap.pti
vm.pmap.pti: 1
The default setting can be overridden by setting the loader tunable
vm.pmap.pti to 1 or 0 in /boot/loader.conf. This setting takes effect only
at boot.
PTI introduces a performance regression. The observed performance loss is
significant in microbenchmarks of system call overhead, but is much smaller
for many real workloads.
CVE-2017-5715 (Spectre V2)
- --------------------------
There are two common mitigations for Spectre V2. This patch includes a
mitigation using Indirect Branch Restricted Speculation, a feature available
via a microcode update from processor manufacturers. The alternate
mitigation, Retpoline, is a feature available in newer compilers. The
feasibility of applying Retpoline to stable branches and/or releases is under
investigation.
The patch includes the IBRS mitigation for Spectre V2. To use the mitigation
the system must have an updated microcode; with older microcode a patched
kernel will function without the mitigation.
IBRS can be disabled via the hw.ibrs_disable sysctl (and tunable), and the
status can be checked via the hw.ibrs_active sysctl. IBRS may be enabled or
disabled at runtime. Additional detail on microcode updates will follow.
The following list contains the correction revision numbers for each
affected branch.
Branch/path Revision
- -------------------------------------------------------------------------
stable/11/ r329462
releng/11.1/ r330908
- -------------------------------------------------------------------------
To see which files were modified by a particular revision, run the
following command, replacing NNNNNN with the revision number, on a
machine with Subversion installed:
# svn diff -cNNNNNN --summarize svn://svn.freebsd.org/base
Or visit the following URL, replacing NNNNNN with the revision number:
<URL:https://svnweb.freebsd.org/base?view=revision&revision=NNNNNN>
VII. References
<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5715>
<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5754>
The latest revision of this advisory is available at
<URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-18:03.speculative_execution.asc>
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen