Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
tallclair opened this issue Apr 6, 2022 · 12 comments
Open

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

tallclair opened this issue Apr 6, 2022 · 12 comments
Assignees
Labels
committee/security-response Denotes an issue or PR intended to be handled by the product security committee. language/en Issues or PRs related to English language lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. sig/docs Categorizes an issue or PR as relevant to SIG Docs. sig/security Categorizes an issue or PR as relevant to SIG Security. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@tallclair
Copy link
Member

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 tallclair added the kind/bug Categorizes issue or PR as related to a bug. label Apr 6, 2022
@k8s-ci-robot k8s-ci-robot added sig/security Categorizes an issue or PR as relevant to SIG Security. sig/docs Categorizes an issue or PR as relevant to SIG Docs. committee/security-response Denotes an issue or PR intended to be handled by the product security committee. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Apr 6, 2022
@tallclair
Copy link
Member Author

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

@sftim
Copy link
Contributor

sftim commented Apr 6, 2022

Some thoughts

  • as a personal opinion, I think it's OK not to pay buy bounties about the URLs of third party projects that we hyperlink to
    • if we hyperlink to a web page and that thing we link to is compromised by other means, eg they commit their release key and push it, that's also not a bug bounty where the Kubernetes project would pay out
    • I have a feeling that, technically, we hyperlink to every CNCF landscape project
  • there might be a service that can open GitHub issues when pages we link to expire and are replaced with lookalikes or with holding pages
  • the existing third party software disclaimer does state “The Kubernetes project authors aren't responsible for these projects, which are listed alphabetically”, but we could reword it or even link to a page that clarifies the lack of responsibility
  • maybe there is a reputable-enough list of network plugins and / or cluster add-ons that folks might want to use
    • we could hyperlink to that list, whilst retaining the disclaimer that we're not responsible for the list of contents
  • we used to provide instructions on setting up a cluster that included details for common network plugins; we no longer do, and I wonder if that means that folks are instead following external guides more.
    • if the outcome of that is that more people using Kubernetes are relying on docs we don't own at all, does that actually help achieve the outcome we want in terms of helping people run secure clusters?

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

@k8s-ci-robot k8s-ci-robot added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. language/en Issues or PRs related to English language and removed kind/bug Categorizes issue or PR as related to a bug. labels Apr 6, 2022
@sftim
Copy link
Contributor

sftim commented Apr 6, 2022

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
Copy link
Member

+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
Copy link
Member Author

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
Copy link
Contributor

sftim commented Apr 14, 2022

/triage accepted

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Apr 14, 2022
@sftim
Copy link
Contributor

sftim commented May 16, 2022

Also relates to #20607

@sftim
Copy link
Contributor

sftim commented May 16, 2022

/priority important-longterm

@k8s-ci-robot k8s-ci-robot added the priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. label May 16, 2022
@AugustasV
Copy link
Contributor

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

@k8s-triage-robot
Copy link

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

You can:

  • Confirm that this issue is still relevant with /triage accepted (org members only)
  • Close this issue with /close

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

/remove-triage accepted

@k8s-ci-robot k8s-ci-robot added needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. and removed triage/accepted Indicates an issue or PR is ready to be actively worked on. labels May 16, 2023
@sftim
Copy link
Contributor

sftim commented Jul 27, 2023

/triage accepted

I think we've found something that works.

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Jul 27, 2023
@sftim
Copy link
Contributor

sftim commented Oct 24, 2023

/assign

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
committee/security-response Denotes an issue or PR intended to be handled by the product security committee. language/en Issues or PRs related to English language lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. sig/docs Categorizes an issue or PR as relevant to SIG Docs. sig/security Categorizes an issue or PR as relevant to SIG Security. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
Status: Triage Accepted
Development

No branches or pull requests

6 participants