RE: [Nea] RE: Detecting Compromised Endpoints
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Nea] RE: Detecting Compromised Endpoints




1) What needs to be measured?

   All the trusted code on the endpoint needs to be measured.
   That includes all the software and firmware in the Trusted
   Computing Base, any code whose compromise would potentially
   cause the system to violate its security policies. This
   includes the BIOS, the boot loader, the OS kernel, the
   kernel drivers, etc. If the operating system is well written,
   it should not include application code since that code
   cannot cause the system to violate its security policies.

The essential problem is that for any *practical* operating system for
  purposes of general-purpose computing, there *is* application code,
  the compromise of which, can cause the system to violate its security
  policies.

The only thing the hash does is to assert that the code is free from any
  *known* vulnerabilities.  Once the system is compromised, it can
continue
  to provide an idyllic view to the TPM/PCR machinery.


3) How does the Posture Validator get that list of PCR values
   for known good configurations?

   Typically from a subscription service that maintains a
   list of PCR values for various versions of software from
   all the major vendors. The decision about which software
   versions are "good" is a policy decision generally left
   to the network owner.

You have to assume that a compromised system would be able to maintain
  a consistently-idyllic view using some similar type of "subscription
service".
  Essentially, a compromised system can continue to update the view of
the
  world it wishes to present to the TCG subsystems.  The *reality*,
however,
  will be quite different.
 

4) Won't this prevent me from using my favorite OS?

   That depends on your network's policy. If you don't like
   their policy, you're free to shop around. Remember that
   the TPM is an optional component and comes disabled. You
   can just leave it disabled. Or you can run your favorite
   OS within an untrusted application. Or you can have an
   untrusted application forward packets from your favorite OS.
   Anyway, those subscription services aren't cheap. Trusted
   boot will probably be mainly deployed in high-security
   environments.

There's also the scenario of a NAT-like device in a
TCG/TPM/NAP/NAC/whatever
  world.  You have a "policy-compliant" system act as a proxy for a pool
  of non-compliant nodes.  "Fixing" that kind of scenario tends to
produce
  a system that is unusable for ordinary use.  Perfectly secure, and
utterly
  unusable.

5) How does this let the server detect endpoint compromise?

   If a trusted software component on the endpoint has been
   compromised, that will show up as a PCR with an unrecognized
   value. Because the TPM hashes the software before it's run
   and won't let the software zero the PCR (and because the
   hash is preimage resistant), the compromised software can't
   get the TPM to report a valid PCR value. And it can't
   replay an old PCR value because of the nonce.

That only applies to "compromised on disk".  The state of said software
  at some time T after it has begun executing *cannot* be attested-to
  by anything.  If that were possible, then it would imply having a
  general solution to the halting problem.  In fact, even the known-good
  PCR values are only attesting to the fact that the software is known
to
  be resistant to all the vulnerabilities we *know about* in the
software.
  With the emergence of zero-day exploits of vulnerabilities, I wonder
  how useful this will actually be.
   
6) Aren't there ways to attack this system?

   Yes. You can break the system if you can successfully attack
   any one of these: the TPM (with physical attacks or by finding
   flaws in it), the CAs that signed the TPM's certificates (or
   their operators), the trusted software that's listed in the
   known good configs, the cryptographic algorithms and protocols
   involved, or the Network Enforcer or the NEA server or their
   operators. There's also a clever attack described in Appendix A
   of the TNC IF-T document. Countermeasures for that attack are
   given in that document.

   I have omitted some attacks for which countermeasures are
   available. If you have other attacks you're interested in,
   please raise them and I'd be glad to address them.

7) Won't there inevitably be vulnerabilities in the trusted software?

   Yes. That's true today. It will probably always be true. The best way
   to handle it is to reduce the number of vulnerabilities by making
   the trusted software as small and secure as possible. Beyond that,
   identify vulnerabilities as soon as possible (preferably before
   exploits are available), prepare fixes, and then remove the old buggy
   software from the list of known good configurations (or move it to a
   list of configurations that require quarantine and mandatory
   remediation).

The problem is that *real* generally-useful computing environments are
still
  going to have very large components that have to be trusted to behave
  correctly at all times.   If you have an operating system that has all
those
  desirable properties, then you don't need any of this TPM/TNC/NEA/TCG
goop.

The raison d'etre for this stuff is precisely because operating systems
today
  are vulnerable due to a large number of factors, including broken
architectures,
  programming language design, human frailty, etc, etc.  And it is
precisely because
  of that that this stuff can't be made to work, for any
sufficiently-rigorous
  definition of the word "work".

The bad guys are getting cleverer, and a large fraction of the "good
guys" haven't
  actually done any detailed analysis of all this TCG/TNC/TPM/NEA stuff
yet.
  I fully expect that there will be gaping holes found within two years.

I'd be perfectly delighted to be proven wrong.


_______________________________________________
Nea mailing list
Nea at ietf.org
https://www1.ietf.org/mailman/listinfo/nea




Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.