kubernetes / website

Kubernetes website and documentation repo:
https://kubernetes.io
Creative Commons Attribution 4.0 International
4.45k stars 14.34k forks source link

Sustainable solution to maintaining links to 3rd party content #32778

Open tallclair opened 2 years ago

tallclair commented 2 years ago

The Security Response Committee gets a fair amount of reports about link hijacking, which is basically what you get when a third party project we were linking to disappears or changes its name (surprisingly common...) We just got a big dump of reports about links on https://kubernetes.io/docs/concepts/cluster-administration/addons/ and https://kubernetes.io/docs/concepts/cluster-administration/networking/. This is a problem because not only are we drawing from our bug bounty fund to pay out bounties for these, but it also increases the load on the security response committee to validate, triage & follow up on these issues.

Brainstorming some possible solutions:

  1. Exclude these from the bug bounty - Not ideal, as this is still a bad user experience at best, and an attack vector at worst.
  2. Eliminate or reduce external links - Probably the best solution when it's feasible, but not good when the links are providing value to the users.
  3. Better detection of removed content - I believe we already have some form of broken link detection in place, but that doesn't work when a domain falls back to the domain registrar (e.g. a "buy this domain" page). An engineering solution could be to cache the TLS certificates, and flag the link for manual review (file an issue?) when the certificate changes. I don't know how much churn this would generate from legitimate cert rotation though.

Other ideas?

/sig security docs /committee security-response

tallclair commented 2 years ago

From https://datastudio.google.com/reporting/fede2672-b2fd-402a-91d2-7473bdb10f04/page/567IC, between Mar 7 - Apr 5, 2022:

sftim commented 2 years ago

Some thoughts

/remove-kind bug (not sure what this is, we might add that label back as we triage this) /lifecycle frozen /language en

sftim commented 2 years ago

Maybe the folks behind the CNCF landscape might be able to help us out here / we can draw on that existing work? The CNCF landscape is another kind of curated list; it's maintained; there are lots of projects.

I do have a feeling that there are still lots of projects (client libraries, network plugins, container runtimes, the list goes on) that aren't in the landscape. As Kubernetes' wider ecosystem grows, a path that involves the CNCF landscape might well be the way forward.

reylejano commented 2 years ago

+1 to use the CNCF landscape but it will act as a gatekeeper

Another thought I had is to remove all links on the cluster-admin/addons and cluster-admin/networking page and keep a short summary of the plugins. Users can search for the appropriate repo and docs for the plugin on their own.

tallclair commented 2 years ago

I'm in favor of delegating to the CNCF landscape. FWIW, you can filter to CNI projects for the sake of the cluster-admin/networking page: https://landscape.cncf.io/card-mode?category=cloud-native-network&grouping=category (though there is not complete overlap with our list)

sftim commented 2 years ago

/triage accepted

sftim commented 2 years ago

Also relates to https://github.com/kubernetes/website/issues/20607

sftim commented 2 years ago

/priority important-longterm

AugustasV commented 2 years ago

I can take a look, update some links and update docs.

k8s-triage-robot commented 1 year ago

This issue has not been updated in over 1 year, and should be re-triaged.

You can:

For more details on the triage process, see https://www.kubernetes.dev/docs/guide/issue-triage/

/remove-triage accepted

sftim commented 1 year ago

/triage accepted

~I think we've found something that works.~

sftim commented 11 months ago

/assign