News for hackers. Stuff that matters.
Re:NSA Kubernetes Hardening Guidance [pdf] by throwaway984393 on Tuesday August 03, 2021 @05:06PM (#28054229)
> and encryption to protect confidentiality

Probably the hardest part about this. Private networks with private domains. Who runs the private CA, updates DNS records, issues certs, revokes, keeps the keys secure, embeds the keychain in every container's cert stack, and enforces validation?

That is a shit-ton of stuff to set up (and potentially screw up) which will take a small team probably months to complete. How many teams are actually going to do this, versus just terminating at the load balancer and everything in the cluster running plaintext?

Re:NSA Kubernetes Hardening Guidance [pdf] by awsthro00945 on Tuesday August 03, 2021 @09:23PM (#28056232)
For as fundamental and important as encryption-in-transit is, it's always baffled me that there isn't a simpler, easier solution to accomplishing it on private networks. Everyone knows its important, and everyone wants to do it, but it's just such a pain in the ass and so prone to error that even some top security leaders will tell you not to bother because it's such a footgun.

We really need something to help make the process simpler, like how Let's Encrypt made public HTTPS so much easier to do for even the smallest of websites.

Re:NSA Kubernetes Hardening Guidance [pdf] by amarshall on Tuesday August 03, 2021 @11:08PM (#28056767)
In some senses it’s differently complex, but WireGuard or similar may be simpler since it’s lower on the OSI and every application gets it “for free”.
Re:NSA Kubernetes Hardening Guidance [pdf] by EthanHeilman on Wednesday August 04, 2021 @11:24AM (#28062096)
I would argue that if you have services then the right place to put encryption and authentication is at the service level. Building secure channels between IP addresses is all good, but do you really want to map roles/identities/privileges to specific IP addresses if those roles/identities/privileges really represent services?
Re:NSA Kubernetes Hardening Guidance [pdf] by amarshall on Wednesday August 04, 2021 @08:02PM (#28068036)
Why not? The IPs are cryptographically mapped to a specific client. Doesn’t stop one from using DNS to find the IP.

Like I said: differently complex but it’s a general solution to the problem and doesn’t require changing more “inner” things as much.

Re:NSA Kubernetes Hardening Guidance [pdf] by EthanHeilman on Wednesday August 04, 2021 @11:35PM (#28069562)
What if you end up spinning more than one container for that service?

How are these containers getting the different secrets they need to identify themselves? Are you attaching IAM roles to them to get secrets from some secret store?

Re:NSA Kubernetes Hardening Guidance [pdf] by amarshall on Thursday August 05, 2021 @12:39AM (#28069933)
Said it twice before: differently complex. There are plenty of potential “solutions” to the specific scenario you’re describing, but my original comment was more “generally consider X instead of Y so you don’t have to care about Z” rather than “use X in this specific way and it will simply solve every problem with Y”.
Re:NSA Kubernetes Hardening Guidance [pdf] by ianhowson on Wednesday August 04, 2021 @12:25PM (#28062931)
Well, there are encrypted CNIs like Weave. I've used Calico over ZeroTier to similar effect. The network is 'encrypted' and there isn't much effort required past initial configuration.

But that's not really the issue. You still have a big plaintext network with a bunch of random stuff talking, no mutual auth and no security controls other than segmentation. That's the tricky problem that mTLS and service meshes attempt to solve.

Re:NSA Kubernetes Hardening Guidance [pdf] by amarshall on Wednesday August 04, 2021 @07:59PM (#28068019)
First, I’ll respond this w.r.t. k8s CNI specifically: all inter-node traffic is encrypted, the only plaintext is localhost. If you’re worried about network snooping on localhost you’ve got bigger problems. As for security controls, that’s what Network Policies are for.

Outside of k8s (where one has greater control over how specifically e.g. Wireguard is deployed). Again, there is no plaintext outside of localhost. Wireguard is mutual auth, I’m not sure why you think it isn’t. Wireguard + firewall is security control since, well, you have mutual auth so rules can be applied per-client.

Re:NSA Kubernetes Hardening Guidance [pdf] by throwaway984393 on Wednesday August 04, 2021 @04:59PM (#28066229)
If Operating Systems had TLS built into the TCP/IP stack exposed by the kernel/system, you would never need to shim it in anywhere. You would just make a system call and use an open file descriptor/socket. One of the many programming-in-1970s-style things we still have not fixed.

But 1) kernel hackers won't implement it, 2) app devs are too possessive of their stack/codebase to just use one standard implementation/interface, and 3) security people are too paranoid to leave something "so important" up to the OS so they'd rather everyone implement it poorly/fragmentedly.

Re:NSA Kubernetes Hardening Guidance [pdf] by pyuser583 on Wednesday August 04, 2021 @11:25PM (#28069482)
I doubt it’s a coincidence.

We learned recently that for a long time, the primary producers of cryptographic telephones was a single Swiss company. Owned by the CIA.

If security were easy, a lot of intelligence agencies would have a bad day.

Security doesn’t have to be this hard. But the powers that be seem to prefer complex, complicated systems, like DNS or SELinux.

It could be easier. Much easier.

Re:NSA Kubernetes Hardening Guidance [pdf] by klysm on Wednesday August 04, 2021 @09:54AM (#28061012)
The thing is you can use Let’s Encrypt for private networks too. For example, I use a dns challenge to get a wildcard certificate for a sub domain on my personal site, but those domains only resolve in my house. The wildcard cert isn’t essential for this - you could get individual ones - but it was easier for my home lab.
Re:NSA Kubernetes Hardening Guidance [pdf] by spydum on Tuesday August 03, 2021 @10:27PM (#28056535)
Smallstep attempts this, but I agree with everything you have said.
Re:NSA Kubernetes Hardening Guidance [pdf] by Bombthecat on Tuesday August 03, 2021 @11:36PM (#28056942)
You mean like kuma or cert manager?
Re:NSA Kubernetes Hardening Guidance [pdf] by cmckn on Tuesday August 03, 2021 @11:51PM (#28057046)
I think both of those focus on ingress? I suppose you could just create your CA with cert manager and manually issue cert requests, but securing in-cluster traffic (automagically) will need some other moving piece, like a sidecar proxy that the service meshes use.

As far as a service mesh, check out Linkerd! I find Istio much harder to setup and manage. Linkerd is super simple and has always worked pretty much out of the box for me.

https://linkerd.io/

Re:NSA Kubernetes Hardening Guidance [pdf] by 3np on Wednesday August 04, 2021 @01:09AM (#28057483)
One thing to keep in mind is that Linkerd is pretty much strictly k8s only one while Istio and Consul Connect have first-class support for out-of-cluster services as well as e.g. Nomad. Relying on linkerd digs you waaay deeper into k8s lock-in.

This may be fully acceptable for you, but should not be glossed over.

From my experience, linkerd had the most seamless deployment to get to the most feature-complete out-of-the box experience with monitoring etc. But as it goes with these things there’s a much bigger amortized cost in terms of magic to unwind if you need to integrate it.

Re:NSA Kubernetes Hardening Guidance [pdf] by williamallthing on Wednesday August 04, 2021 @06:36PM (#28067333)
Mesh expansion is on the Linkerd roadmap, which will make it possible to run the data plane outside of Kubernetes.
Re:NSA Kubernetes Hardening Guidance [pdf] by 3np on Tuesday August 03, 2021 @09:32PM (#28056279)
Service mesh solutions like Istio / Consul Connect+Vault can help a lot with this.

Depending on the existing size and complexity of your stack those months can be cut down to weeks or even days.

I don't mean to trivialize the time and expertise needed to set up and manage, but if you can afford to run a microservice architecture on k8s already it's definitely not untenable.

Re:NSA Kubernetes Hardening Guidance [pdf] by zaat on Tuesday August 03, 2021 @06:03PM (#28054794)
Encryption today is pretty much requirement for any regulated businesses and required practice for any sane shop, with or without Kubernetes. The only difference is that those services are communicating within the cluster internal network and not across different machines in the servers vlans.

If anything, setting up the whole things within Kubernetes ecosystem can be much easier with the available operators and automation frameworks like cert manager and/or Istio.

Re:NSA Kubernetes Hardening Guidance [pdf] by devy on Tuesday August 03, 2021 @05:29PM (#28054470)
> That is a shit-ton of stuff to set up (and potentially screw up) which will take a small team probably months to complete.

Agree! This is why that "Kubernetes Hardening Guidance" is for NSA, not for startups.

Resource needs aside, keeping basic AppSec/InfoSec hygiene is a strong recommendation. Also there are tons of startups that are trying to provide solutions/services to solve that also. A lot of times, it's worth the money.

Re:NSA Kubernetes Hardening Guidance [pdf] by zeckalpha on Tuesday August 03, 2021 @06:38PM (#28055098)
This guidance is provided by the NSA, not for the NSA.
Re:NSA Kubernetes Hardening Guidance [pdf] by ROARosen on Wednesday August 04, 2021 @01:01AM (#28057453)
From the doc:

>It includes hardening strategies to avoid common misconfigurations and guide system administrators and developers of National Security Systems on how to deploy Kubernetes...

Re:NSA Kubernetes Hardening Guidance [pdf] by zeckalpha on Wednesday August 04, 2021 @01:28AM (#28057554)
Also:

> Purpose > NSA and CISA developed this document in furtherance of their respective cybersecurity missions, including their responsibilities to develop and issue cybersecurity specifications and mitigations. This information may be shared broadly to reach all appropriate stakeholders.

NSA has multiple mandates and many stakeholders.

Re:NSA Kubernetes Hardening Guidance [pdf] by westurner on Wednesday August 04, 2021 @09:22AM (#28060713)
Looks like there's actually a "summary of the key recommendations from each section" on page 2.

> Works cited:

> [1] Center for Internet Security, "Kubernetes," 2021. [Online]. Available: https://cisecurity.org/resources/?type=benchmark&search=kube... .

> [2] DISA, "Kubernetes STIG," 2021. [Online]. Available: https://dl.dod.cyber.mil.wp- content/uploads/stigs/zip/U_Kubernetes_V1R1_STIG.zip. [Accessed 8 July 2021]

> [3] The Linux Foundation, "Kubernetes Documentation," 2021. [Online]. Available: https://kubernetes.io/docs/home/ . [Accessed 8 July 2021].

> [4] The Linux Foundation, "11 Ways (Not) to Get Hacked," 18 07 2018. [Online]. Available: https://kubernetes.io/blog/2018/07/18/11-ways-not-to-get-hac... . [Accessed 8 July 2021].

> [5] MITRE, "Unsecured Credentials: Cloud Instance Metadata API." MITRE ATT&CK, 2021. [Online]. Available: https://attack.mitre.org/techniques/T1552/005/. [Accessed 8 July 2021].

> [6] CISA, "Analysis Report (AR21-013A): Strengthening Security Configurations to Defend Against Attackers Targeting Cloud Services." Cybersecurity and Infrastructure Security Agency, 14 January 2021. [Online]. Available:https://us- cert.cisa.gov/ncas/analysis-reports/ar21-013a [Accessed 8 July 2021].

How can k8s and zero-trust cooccur?

> CISA encourages administrators and organizations review NSA’s guidance on Embracing a Zero Trust Security Model to help secure sensitive data, systems, and services.

"Embracing a Zero Trust Security Model" (2021, as well) https://media.defense.gov/2021/Feb/25/2002588479/-1/-1/0/CSI...

In addition to "zero [trust]", I also looked for the term "SBOM". From p.32//39:

> As updates are deployed, administrators should also keep up with removing any old components that are no longer needed from the environment. Using a managed Kubernetes service can help to automate upgrades and patches for Kubernetes, operating systems, and networking protocols. *However, administrators must still patch and upgrade their containerized applications.*

"Existing artifact vuln scanners, databases, and specs?" https://github.com/google/osv/issues/55

Re:NSA Kubernetes Hardening Guidance [pdf] by throwaway984393 on Tuesday August 03, 2021 @05:36PM (#28054528)
I wonder about that. What are the attack vectors within a K8s cluster to necessitate inter-cluster transport encryption?
Re:NSA Kubernetes Hardening Guidance [pdf] by smarterclayton on Tuesday August 03, 2021 @05:44PM (#28054617)
Most (but not all) overlay networks are implemented in kernel. If you compromise one node in a cluster, you can fairly trivially snoop traffic, bias other nodes to send traffic through you, or listen via various mechanisms such that you can intercept traffic flowing between workloads not actually located on the compromised node.

So always encrypt everything unless you’re in a very rare environment with central network control that cannot be compromised or intercepted from a given machine.

Re:NSA Kubernetes Hardening Guidance [pdf] by throwaway984393 on Tuesday August 03, 2021 @06:35PM (#28055075)
This would be less of a concern if the cluster's pods were Firecrackers, yes?

AWS EKS on Fargate has a dedicated ENI and kernel per pod; the only way to intercept the traffic is when it crosses a network, or with flow control logs. Or if somebody hacked the control plane, but that's always "Game over man, game over!"

Re:NSA Kubernetes Hardening Guidance [pdf] by killjoywashere on Tuesday August 03, 2021 @05:58PM (#28054756)
And if you've been in that kind of rare environment, those people encrypt everything. They'd encrypt their license plate if they could. You want paranoid, look up laser microphones.
Re:NSA Kubernetes Hardening Guidance [pdf] by raesene9 on Wednesday August 04, 2021 @03:12AM (#28058164)
Although with many clusters, compromising a single node is likely to lead to cluster compromise as it allows for all the service account tokens assigned to workloads running on the compromised node to be used by the attacker :)
Re:NSA Kubernetes Hardening Guidance [pdf] by spectre013 on Tuesday August 03, 2021 @08:51PM (#28056043)
We do this right now in a totally disconnected env. We have process in place to get images and manifests into our env. All containers have to go through scanning pipelines and have to be approved through a process.

We also for any container that makes requests that does not have the mechanisms for adding certificates we have to rebuild the containers in the disconnected env to insert certificates to allow communication.

Makes daily life really interesting

Re:NSA Kubernetes Hardening Guidance [pdf] by moochmooch on Tuesday August 03, 2021 @09:34PM (#28056290)
Do you use a proprietary tool to filter containers lacking the certificate mechanisms or is this handled as part of the manifests?
Re:NSA Kubernetes Hardening Guidance [pdf] by spectre013 on Tuesday August 03, 2021 @09:37PM (#28056304)
It's all handled as part of the manifests as well as we can have our clusters pulled if we are caught using non approved containers and they are all scanned when they are brought into the disconnected environment.
Re:NSA Kubernetes Hardening Guidance [pdf] by xyst on Wednesday August 04, 2021 @12:23AM (#28057281)
TLS terminating is fine for most use cases (basic web services), but if you are protecting PII information you need to/should protect from external and internal threats.

Maybe a disgruntled sys admin decides to capture data coming in from the load balancer between the service(s) and sell it to the highest bidder. If traffic is encrypted between the load balancer and underlying service, it makes it much harder to do.

Re:NSA Kubernetes Hardening Guidance [pdf] by fomine3 on Wednesday August 04, 2021 @12:44AM (#28057383)
like protecting from three letter agency
Re:NSA Kubernetes Hardening Guidance [pdf] by sdenton4 on Tuesday August 03, 2021 @05:49PM (#28054663)
For historical context:

https://www.washingtonpost.com/world/national-security/nsa-i...

(Google has since added encryption to its internal entworks.)

Re:NSA Kubernetes Hardening Guidance [pdf] by adolph on Tuesday August 03, 2021 @09:19PM (#28056220)
Entwork uses a tree topology with stepping roots
Re:NSA Kubernetes Hardening Guidance [pdf] by calvinmorrison on Tuesday August 03, 2021 @11:41PM (#28056970)
Isn't this exactly what hashicorps "consul" can do? Specific services, and setup keys/certs so that all internal traffic is also 'blindly' encrypted? End point services don't care or know about it because it's transparent, but over the internal network it's encrypted?
Re:NSA Kubernetes Hardening Guidance [pdf] by __app_dev__ on Tuesday August 03, 2021 @05:37PM (#28054542)
I agree there is a shit-ton of stuff to set up but based on the recent Pipeline and other Hacks where the Companies had to pay millions I would expect more companies to take stuff like this seriously.
Re:NSA Kubernetes Hardening Guidance [pdf] by _spoonman on Tuesday August 03, 2021 @07:49PM (#28055677)
That sounds like work for a prime contractor with at least two subs under it. And consultants to help them implement SAFe AGILE.
Re:NSA Kubernetes Hardening Guidance [pdf] by adolph on Tuesday August 03, 2021 @09:15PM (#28056204)
Opportunity is knocking