Slashdot Mirror


OpenBSD Disables Intel CPU Hyper-Threading Due To Security Concerns (bleepingcomputer.com)

The OpenBSD project announced today plans to disable support for Intel CPU hyper-threading due to security concerns regarding the theoretical threat of more "Spectre-class bugs." Bleeping Computer reports: Hyper-threading (HT) is Intel's proprietary implementation of Simultaneous Multithreading (SMT), a technology that allows processors to run parallel operations on different cores of the same multi-core CPU. The feature has been added to all Intel CPUs released since 2002 and has come enabled by default, with Intel citing its performance boost as the main reason for its inclusion.

But today, Mark Kettenis of the OpenBSD project, said the OpenBSD team was removing support for Intel HT because, by design, this technology just opens the door for more timing attacks. Timing attacks are a class of cryptographic attacks through which a third-party observer can deduce the content of encrypted data by recording and analyzing the time taken to execute cryptographic algorithms. The OpenBSD team is now stepping in to provide a new setting to disable HT support because "many modern machines no longer provide the ability to disable hyper-threading in the BIOS setup."

44 of 234 comments (clear)

  1. Opt-In? by thegarbz · · Score: 4, Insightful

    Given the class of Spectre and Meltdown attacks rely on someone else having the freedom to execute code on your hardware, shouldn't something like this be opt-in? There's a whole world of servers out that where Spectre is ultimately completely irrelevant in terms of a security threat, but hyperthreading is definitely not irrelevant in terms of performance.

    1. Re:Opt-In? by Anonymous Coward · · Score: 5, Insightful

      No, it shouldn't because security should have higher priority over speed. If people want to run their computer in a less secure mode they can do so themselves after making an informed decision and accepting the risks it includes. The default state should be the more secure mode so that it covers everyone.

      +1 to the OpenBSD project for putting security above speed.
      -1 to intel for putting speed above security.

      When you turn off hyperthreading Intel and AMD are much more closer to each other. This is why my next major computer build will be AMD. I will have speed and security.

    2. Re:Opt-In? by Humbubba · · Score: 5, Insightful
      thegarbz says

      Given the class of Spectre and Meltdown attacks rely on someone else having the freedom to execute code on your hardware, shouldn't something like this be opt-in? There's a whole world of servers out that where Spectre is ultimately completely irrelevant in terms of a security threat, but hyperthreading is definitely not irrelevant in terms of performance.

      I can't do any better than quote OpenBSD on this:

      OpenBSD believes in strong security. Our aspiration is to be NUMBER ONE in the industry for security (if we are not already there). Our open software development model permits us to take a more uncompromising view towards increased security than most vendors are able to. We can make changes the vendors would not make.

      https://www.openbsd.org/security.html

    3. Re:Opt-In? by Anonymous Coward · · Score: 2, Insightful

      Read reviews of hyperthreaded performance gain. It's somewhere like 0% or 10%, depending on what you're doing. Not a whole lot. Hyper threading is more like a "silicon trick gone wrong".

    4. Re:Opt-In? by Erik+Hensema · · Score: 5, Funny

      As you can read in their statement, they want to be secure. Being usable is not one of their priorities.

      --

      This is your sig. There are thousands more, but this one is yours.

    5. Re: Opt-In? by Anonymous Coward · · Score: 3, Informative

      They have the best documentation in the NIX world, and arguably the most consistent userland.

      I'm not even a regular user, as OpenBSD doesn't fit my use case, but you're waaaaay off base in claiming they don't put usability as a priority.

      After all, having consistent and clear usability is one of if not the single most important aspect of software security.

    6. Re:Opt-In? by K.+S.+Kyosuke · · Score: 5, Informative

      For AMD's SMT implementation, it's around 30% in heavy workloads. Hell, a Cinebench test by a Czech web site reported a 40% speed boost in Cinebench R15 for an 1800X. On Reddit, a 45% difference was reported for a 1600X.

      --
      Ezekiel 23:20
    7. Re: Opt-In? by phantomfive · · Score: 5, Informative

      It's an option, you can change the setting with a syscall. That's not clear from the summary, you have to click through to the actual announcement.

      --
      "First they came for the slanderers and i said nothing."
    8. Re:Opt-In? by arglebargle_xiv · · Score: 5, Funny

      However, I forgot to add, for OpenBSD, it may not make that much of a difference - they've never been particularly fast, especially on SMP machines, so perhaps the impact on OpenBSD is disproportionately lower and therefore acceptable? Someone should measure this.

      Measure? Measure?!!?! MEASURE???!?! Are you fucking nuts? Why would anyone want to actually measure this when we can have a 2,752-message thread based purely on random anecdotes and opinions arguing over whether there's a difference or not.

      (Wanders off muttering "Measure. He wants to measure").

    9. Re:Opt-In? by Tsolias · · Score: 5, Insightful

      My mode points expired yesterday, so you'll have a comment instead.

      Why the fuck would you need an opt-in for a security feature?
      "Your data are set to be stolen by default. To change the settings please refer to the respective manual"
      Why the fuck isn't data mining, spying, advertising(in windows and ubuntu) opt-in, instead everything bad is opt-out
      and now we see people asking for security features to be opt-in.
      If you are concerned about that administrator that has to flip a value to enable the security holes in his system, it's his job, you don't have to think about him.
      You'll have to think about your average joe, who wants to use *BSD or Linux and isn't specializing in infosec or isn't yet familiar with those terms and practices.
      (yes, there are people who aren't programmers, who know how to use bsd and linux)

    10. Re:Opt-In? by Anonymous Coward · · Score: 3, Insightful

      Lolz. Yes.

    11. Re:Opt-In? by K.+S.+Kyosuke · · Score: 2

      AMD doesn't "claim" 30-40%, these are Cinebench results by Ryzen users (Cinema 4D core with a preset scene, ergo some FP SSE/AVX code, vector/scalar ratio unknown, spatial tree traversal presumably frequent).

      --
      Ezekiel 23:20
    12. Re: Opt-In? by jd · · Score: 3, Insightful

      Lolz? I can has cheezburger?

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    13. Re:Opt-In? by allcoolnameswheretak · · Score: 2

      Why the fuck would you need an opt-in for a security feature?

      Security is always a trade-off. There is no perfect security. You always trade convenience and practicality for a reasonably high degree of security. That's why we have things like passwords instead of everyone requiring to take a blood-sample, have the sample sent to a lab and your DNA analyzed for your identity before letting you access your emails. The blood-sample approach would be more secure than the password, so why not make it default?

      To use a less contrived example: your computer connects to the Internet by default when it starts up, right? Connecting to the internet is a security risk, so by your logic not connecting should be the default and you should always connect manually.

    14. Re:Opt-In? by BusterB · · Score: 5, Informative

      It's true. OpenBSD does not benefit from hyper-threading, at least on all Intel platforms I have tried. Having it off happens to be a small net-win for performance as well (a few percent on compile tests). This isn't just true for OpenBSD or for every workload either. Your mileage obviously may vary and should be tested.

    15. Re: Opt-In? by fuzzyfuzzyfungus · · Score: 3, Interesting

      They don't do 'usable' as in 'hand holding'; but, while that imposes a nontrivial learning curve, it has the very refreshing effect of meaning that there is relatively little 'automagic' doing cryptic stuff when you aren't looking in order to try to make things Just Work. If you want something somewhere you will probably have to put it there; but if you put something somewhere it probably won't get moved unexpectedly.

      Atuomagic has its place(the old OpenBSD installer's enthusiasm for not hiding details of disk partitioning was always sort of irksome without obvious benefit; and it has been dropped in newer versions); but (outside of substantially smaller embedded and educational OSes) OpenBSD does atypically well in giving you the ability to know what is going on, not just have a rough mental sketch of where the black boxes and here-be-dragons zones are. Makes it nice to work with after some time beating your head against automagic that isn't working for some reason and is brutally opaque about why.

    16. Re: Opt-In? by DrXym · · Score: 4, Insightful

      If we're going to go down this reductionist security-trumps-all argument then OpenBSD should disable networking too. And keyboard and monitor support. In fact it should shut down when it starts, but not before throwing away the disk encryption key and bricking the device. Now it's secure. The point is that security is a trade-off between what the device allows and what the threats actually are. Crippling a computers performance to mitigate a threat that doesn't exist for a user is wrong. At the very least it should be an option that might disabled by default but can be enabled if the users wants it to be.

    17. Re:Opt-In? by jellomizer · · Score: 2

      You can opt in by using a different OS.

      OpenBSD is the Secure OS, not fast, easy to use, or available to many different types of hardware. It is secure and reliable (as reliability is considered a prerequisite of being secure)

      OpenBSD is the OS that your run your servers which are connected to the internet. It is the Armored truck of the OS world.

      If you need speed, ease of use, flexibility, hardware support, They are other OS's out there Free and Commercial that will do the trick.

      The biggest treat to OpenBSD isn't its limitations, but the silly thought by executives who think having a unified solution will actually make work better. All on the same OS, and platform. On paper seems like it will be easier to support. But still on the same platform, a Developer, a Systems Admin, Network Engineer, Support rep, have very different jobs that are not so much transferable.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    18. Re:Opt-In? by jellomizer · · Score: 2

      The real question is what needs to be done.

      The history of computing is a series of insecure systems working to get faster. Why? Because the benefits of speed outweigh the cost of security.
      During this time reasonable security enhancements are put in, to put aside higher cost security risks.

      The 1980s a secure system needed a login and password to login, unneeded ports were closed. Open ports needed a password or didn't do a vital function. And trust your floppies.
      The 1990s a secure system needed protection against buffer overflows, firewalls to prevent outside sources from reaching internal systems.
      The 2000s a secure system needed protection from internal problems, where people would actively download malware, then spread across internal networks.
      The 2010s a secure system needs to be safe from internal attacks where hacks can effect what is going on internally. CPU level, memory viability...

      As the bad guys who try to get in get more advanced, systems in general will need to get more secure, because the cost of getting broke into rises.
      The 1980's system, normally turning off the system, and rebuilding from backups was an appropriate fix, and changing the password. As the people who were given access was trusted to use the computer correctly.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    19. Re:Opt-In? by Anonymous Coward · · Score: 4, Insightful

      Yep, I would like to buy a car with no fender or airbags. You simply can't do that, but you can remove them afterwards.

      OpenBSD is secure by default. This is a step to keeping it that way and it totally correct that HT is off to begin with. They already said it will be a switch you can twiddle yourself, but the default will be HT disabled.

      You can leave your car doors unlocked if you want after you finish the default install and start playing.

    20. Re:Opt-In? by Smidge204 · · Score: 2

      Your argument seems to be based on the premise that, since nobody else will be executing code on your hardware, you don't need the extra security.

      The problem is malware doesn't always run with your permission, or knowledge.

      So your analogy would really be more like; Do you have a password on your system? It would be so much faster to access your server if you didn't have to type in a password every time, and you're the only one with access to it anyway, right? Right?
      =Smidge=

    21. Re: Opt-In? by jaa101 · · Score: 4, Insightful

      If we're going to go down this reductionist security-trumps-all argument then OpenBSD should disable networking too.

      There's a fundamental difference between I/O and hyperthreading. Without I/O the computer can do nothing. Without hyperthreading it might be a little slower.

    22. Re: Opt-In? by Anonymous Coward · · Score: 2, Informative

      You should read about OpenBSD's purposes and intentions. They've always been about security, security, security, and anyone going into it should know that.

      I mean, just from the Wikipedia article:

      " As of February 2018, only two remote vulnerabilities have ever been found in the default install, in a period of almost 22 years - a fact prominently displayed on the OpenBSD website."

      "Many of its security features are optional or absent in other operating systems."

      "Its developers frequently audit the source tree for software bugs and security holes. According to OpenBSD expert Michael W. Lucas, OpenBSD "is widely regarded as the most secure operating system available anywhere, under any licensing terms.""

      So, yeah, it makes sense.

    23. Re: Opt-In? by Bongo · · Score: 2

      If we're going to go down this reductionist security-trumps-all argument then OpenBSD should disable networking too. And keyboard and monitor support. In fact it should shut down when it starts, but not before throwing away the disk encryption key and bricking the device. Now it's secure.

      The point is that security is a trade-off between what the device allows and what the threats actually are. Crippling a computers performance to mitigate a threat that doesn't exist for a user is wrong. At the very least it should be an option that might disabled by default but can be enabled if the users wants it to be.

      I read it as, security trumps speed.

      Whether security trumps everything, is a different matter.

    24. Re:Opt-In? by gman003 · · Score: 3, Informative

      There are still programmers who optimize at that level - and then go one further, by pipelining in such a way that the core can execute both threads at as close to full speed as possible. Usually this ends when you're processing data as fast as the L1 cache can prefetch it - with SIMD instructions, you can hit 32 bytes/clock/thread (two 16-byte operations in one clock), while the L1 cache on the current-gen processors can read 64 bytes/clock/core.

      This isn't done on every program, or even most programs, and nobody's optimizing their entire codebase to this level, but for stuff like compressors/decompressors, or codecs, yeah, there's still programmers who will optimize all the way down to the metal.

    25. Re:Opt-In? by jddimarco · · Score: 5, Insightful

      OpenBSD is adding a control to turn off hyper-threading (because some BIOSes these days don't have such a control), and is turning it off by default on Intel CPUs. But it can be turned on again. So OpenBSD is providing control, not taking it away. Read for yourself. https://undeadly.org/cgi?actio...

    26. Re: Opt-In? by chill · · Score: 4, Insightful

      JavaScript in a browser is the ability to run malicious code on demand. If you run a web browser, you use a multi-user computer. Short of something with an air-gap, there aren't any true single-user systems anymore.

      OpenBSD is adding a control to let the system owner mitigate if they decide the risk is not acceptable. You are correct in that security can't trump all and that likelihood is part of the risk equation.

      --
      Learning HOW to think is more important than learning WHAT to think.
    27. Re: Opt-In? by Sloppy · · Score: 2

      The highest value is correctness. The computer should correctly perform the desired operation without side effects.

      Security is always required for correctness (because if a stranger can alter the operation of the computer, they're not likely to be trying to help you).

      Networking will usually be required for correctness. This approaches always-needed when you get ot the kinds of tasks that OpenBSD is used for.

      And a ~20% increase in speed may possibly be required for correctness, but usually isn't.

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    28. Re:Opt-In? by tlhIngan · · Score: 2

      Given the class of Spectre and Meltdown attacks rely on someone else having the freedom to execute code on your hardware, shouldn't something like this be opt-in? There's a whole world of servers out that where Spectre is ultimately completely irrelevant in terms of a security threat, but hyperthreading is definitely not irrelevant in terms of performance.

      I've wondered - would it be possible for the scheduler to schedule related threads together on a core? I mean, if you query the number of processors, it's easy to tell how many sockets you have (physical CPUs), how many cores each physical CPU has, and how many threads each core has. Most schedulers don't differentiate between threads/cores/sockets but it's possible to tell.

      So instead of disabling it completely, or enabling it completely, you only schedule same-process threads on each core? After all, Spectre/Meltdown doesn't really apply at the thread level (why go through all that effort to exfiltrate information from the same process, when you already have full access to the address space?). So a scheduler would schedule same process threads on cores or threads, and different processes on different cores only. After all, it's hyper threading, so you're supposed to do that to begin with, not run disparate process threads on each thread unit.

    29. Re:Opt-In? by jwhyche · · Score: 2

      If its something you can turn on and off I don't see the problem with it.

      --
      I read at +2. If your post doesn't reach that level I will not see or respond to it.
  2. Other options considered by DrTJ · · Score: 5, Funny

    In an interview, Theo de Raadt stated that other measures were considered by OpenBSD to fight the threats posed by Spectre, Meltdown and the new line of harmful code. "There will for sure be a trade-off between cutting edge performance and real security", de Raadt said.

    One of the poweful options considered - that would permanently repel all current threats but didn't make it into final release, was making the power supply option off by default.

  3. More cores less price by Anonymous Coward · · Score: 2, Informative

    Its 2018, entry level phones and $50 TV boxes come with 8x 64 bit cores. Not 2 cores split into 4 threads, or 4 cores split into 8.

    5 years ago, mainstream laptop was Core i3, 3217U with a cpu benchmark of 2300.
    5 years later and the mainstream is Core i3-7100T with a cpu benchmark of 5080

    5 years to only double performance, and then the increase comes from upping the clock speed (1.8Ghz vs 3.4 Ghz).

    Meanwhile ARM sells tens of billions of processors, and Intel sells 15% of that number and dropping. Intel tries to protect its profit on ever lower and lower numbers of sales.

    I'm reminded of IBM and its slow processors that cost $millions each, sold to customers who are the final lockins to their mainframes. That is Intel's future unless it starts to take competition seriously.

  4. About hyperthreading by Erik+Hensema · · Score: 5, Informative

    "a technology that allows processors to run parallel operations on different cores of the same multi-core CPU"

    Not it's not. It's a technology that allows processors to present a single physical core as two logical cores. Two threads of software can run simultaneously on a single physical core.

    It's mostly an optimization of the execution pipeline. When execution in one thread stalls, it can pick up processing in the other thread. It typically boosts performance by about 10-20%. And yes, I can see this could cause problems regarding timing if you can cause a pipeline stall based on a condition you want to test in the other thread on the same core. It'll be hard though. Maybe too hard to justify disabling HT altogether. Providing a switch to turn it off in case an exploit is discovered would be more wise I think.

    --

    This is your sig. There are thousands more, but this one is yours.

    1. Re:About hyperthreading by spth · · Score: 5, Informative

      As can be read in the post (referenced in the summary) on the OpenBSD mailing list, this new option was motivated by BIOSes no longer offering the option to disable hyperthreading.

  5. Re:Given the number of Intel PCs in Theo's house.. by spth · · Score: 3, Insightful

    For some of the recent vulnerabilities, the OpenBSD team, unlike other OS vendors was not informed in advance. So even when one assumes that there is a SpectreNG-variant that uses Hyperthreading, it is not so obvious that it is known to the OpenBSD developers.

    On the other hand, knowing that there are more SpectreNG-variants, and not having been informed about the details might make the OpenBSD devlopers even more cautious about any hardware feature that looks suspicious.

  6. general idea by thePsychologist · · Score: 4, Interesting

    The general idea behind these flaws is that one process can flush the cache that another process is using, and testing whether the flushed area is free. By measuring the amount of time these flush/reload operations take, one can determine most or all of the bits of the secret signing exponent or private key when it's being used in the square-and-multiply algorithm, for example.

    The attacker needs to be on the same machine. However, the main point is that any attacker program doesn't need elevated priveleges to carry out the timing attack since the attacking process will have access to the same cache that a sensitive program is using. Therefore, any seemingly legitimate program that is currently running could have this attack embedded inside it.

    An attack on GnuPG can be mitigated by modifying the square and multiply algorithm, for example, so that it always multiplies. However, cryptographic attacks aren't the only problem - potentially, timing attacks can be carried out on all kinds of software as they slowly leak data.

    --
    "What lies behind us, and what lies before us are tiny matters compared to what lies within us." Ralph Waldo Emerson
  7. Re:Nintendo Switch is mainstream, Intel is niche by Anonymous Coward · · Score: 2

    "AC a 4K display in 2018 is not super high spec. "
    Agreed, hence $50 Android TV boxes support 4k.

    "AC "poor chips" would not be able to support 4K"
    Agreed, hence $50 Android TV boxes are not running 'poor' chips.

    "AC 'faster gaming GPUs and Windows 10 compatibility." is what is needed for the more fun games at 4K and beyond. Something Intel and Windows can support."

    I note your use of getout words like "Advanced", "more fun" and so on. Good luck with that.

    To me it looks like you're a) trying to limit discussion to gaming, b) defining gaming in terms of PC specs, and c) defining 'fun' as those specs.

    When in the real world, Intel's current crop of chips are not fast enough across the board, offer too few cores, are over priced and run over hot. They represent 15% and declining market share.

    They're being left behind.

  8. Dunno by Artem+S.+Tashkinov · · Score: 5, Informative

    Note that SMT doesn't necessarily have a posive effect on performance; it highly depends on the workload. In all likelyhood it will actually slow down

    First of all, it surely looks like OpenBSD developers don't even have a working spellchecker and perhaps they are correct, saying that it doesn't necessarily have a "posive" effect.

    However, in all seriousness, I've seen at least two dozens tests of HT and in the worst case scenario it slows down your performance by less than a few percents, however, when we're talking servers, which nowadays run highly parallelized workloads where a single process may span several cores (nginx, mariadb, redis, mongodb, etc. etc. etc.) the performance gain from using HT may reach up to 30%, i.e. you're getting a third of your cores for free, which allows you to greatly cut expenditures and save on cooling.

    Yes, HT poses security challenges in a multiuser environment (say, for a hosting provider) where people might run any code they want, however a typical application server almost always runs a tightly controlled software stack, which means your server processes cannot run any foreign code, which means Meltdown/Spectre class attacks might be safely disregarded.

    1. Re:Dunno by TranceThrust · · Score: 2

      They are latency-bound so HT just causes two requests to be outstanding simultaneously, effectively hiding the latency of one request behind another request. UltraSparc T2 was an architecture based around exactly this principle with eight threads per core.

      In my experience, if software is well-written (e.g., you make sure you're bandwidth or compute bound), hyperthreads will definitely slow things down. How badly will depend on the exact workload. In all cases enabling hyperthreads will cause your system to behave a lot more variably, which is another thing one may care about.

      For the above reasons HT off has been my default setting since it came out-- though ideally it's controlled from software: if you know you're gonna be latency-bound, then use hyperthreads-- otherwise only pin one thread to any single core. But that's without considering Spectre et al...

  9. Re: A SpectreNG-variant that uses Hyperthreading? by Anonymous Coward · · Score: 5, Informative

    iPhone users:

    Settings > General > Keyboard ... set "Smart Punctuation" to Off.

    You're killing us with this shit, it's unreadable.

  10. Track records matter. by emil · · Score: 5, Insightful

    The current release of OpenBSD, version 6.3, has issued a total of 10 patches against base since release on April 15th. Four of these are security-related, and six are reliability bug fixes.

    Oracle / Red Hat Linux in that time has issued 50 security-related patches, and hundreds more that are classed as bug fixes or enhancements.

    Linux is strong because it scales up and down very well, it exploits CPU features for speed to make applications run very fast, it is friendly to new features, and it has the most market share in the POSIX realm. Linux is weak because it has sacrificed security for speed in many cases, and we have Dirty Cow, Towelroot, and many similar problems in userspace - this makes Linux a bad choice for systems that will not receive patches (i.e. phones, IoT devices, embedded systems, etc.).

    OpenBSD prioritizes security over speed and flexibility. It does not implement fine-grained SMP due to security concerns, and has a "big kernel lock" that Linux left behind in 2.2. It ignores many well-known standards (i.e. NFSv4). There are many things that you cannot do on OpenBSD, but what you can do is magnitudes safer than Linux.

    Android politely stole OpenBSD's entire libc implementation (and then ignored it for several years), and IIRC the OpenBSD code is the largest contribution outside of the kernel itself.

    OpenBSD is also the home of OpenSSH, which itself is quite secure.

    I trust the opinions of the OpenBSD kernel architects, and I will look forward to their patch.

    1. Re:Track records matter. by DrXym · · Score: 2
      You're comparing apples to oranges. I expect the usage patterns of of Red Hat Linux compared to OpenBSD are vastly different.

      I'm sure OpenBSD is very secure and probably worth considering for some very specific roles. It's not a general purpose operating system nor capable of running the kinds of software or loads that a commercial Linux dist is.

    2. Re:Track records matter. by emil · · Score: 2

      I do agree that it's not quite comparable, but I don't know any minimal Linux distribution that implements the equivalent of the OpenBSD base.

      Perhaps to be fair, it appears that Oracle's RHCK has been reissued 7 times since April 15th, which is not quite as bad.

      I have had several rounds of users who want one of the Red Hat clones for some app, then realize after deployment that avalanches of patches are required for these platforms and balked - easily thousands over a six-month period for a typical system. That is aggravating.

  11. Wish list. by emil · · Score: 2

    It would be nice if the browser could signal the scheduler that it launched a new tab as an untrusted process, causing the kernel to sanitize caches before and after its future time slices (in addition to any sandboxing the browser parent process and the OS were already doing).

    It might also make sense if only processes with the same UID could run on different SMT threads on the same core, rather than just turning them off completely.