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

Track CVEs for kubernetes dependencies... #2992

Open
brendandburns opened this issue Nov 29, 2018 · 55 comments
Open

Track CVEs for kubernetes dependencies... #2992

brendandburns opened this issue Nov 29, 2018 · 55 comments
Assignees
Labels
lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. sig/release Categorizes an issue or PR as relevant to SIG Release. sig/security Categorizes an issue or PR as relevant to SIG Security.

Comments

@brendandburns
Copy link
Contributor

Kubernetes has a very large number of golang library dependencies. While there is some work to track and ensure license compatability, there is little to know work done to track vulnerabilities in these library dependencies.

Indeed, I don't know of a database (something like https://ossindex.sonatype.org/) for go libraries that we could use. (perhaps the CNCF can help here...)

But the lack of tools and databases isn't an excuse.

We need to do a better job here of tracking, reporting and updating our dependencies to fix known relevant security issues.

And ultimately, we also need to do a periodic audit to make sure that we aren't importing vulnerabilities into the codebase.

@philips @spiffxp @kubernetes/steering-committee

@k8s-ci-robot k8s-ci-robot added the needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. label Nov 29, 2018
@jayunit100
Copy link
Member

Agree , one highly visible critical CVE unchecked could really hurt a data center and even if not, if public it would hurt the growth and adoption of kubernetes in enterprises.

Should this
Be part of the build process ? We may be able to Integrate with blackduck copilot .

@dims
Copy link
Member

dims commented Nov 29, 2018

@jayunit100 AFAICT copilot does not support golang (looking at https://copilot.blackducksoftware.com/)

@cblecker cblecker added the sig/release Categorizes an issue or PR as relevant to SIG Release. label Nov 29, 2018
@k8s-ci-robot k8s-ci-robot removed the needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. label Nov 29, 2018
@cblecker
Copy link
Member

cc: @kubernetes/product-security-team

I know GitHub does this for other languages.. I wonder if they will start doing it for Go 🤔.

@brendandburns
Copy link
Contributor Author

@jessfraz Do you know anything about tools that Github might be working on?

@jessfraz
Copy link
Contributor

yes there is work on better tooling around this, so if you can hang tight for a little bit (maybe a few months but don't quote me on that) it will get better

@jessfraz
Copy link
Contributor

jessfraz commented Nov 30, 2018

I had bounced some ideas off @cblecker and the PST about our plans here with github integrations but happy to discuss with anyone else as well :) don't want to necessarily make promises in public in writing just in case things change a little but we would love feedback on the ideas going forward

@brendandburns
Copy link
Contributor Author

@jessfraz any chance you can add me to the email?

@jessfraz
Copy link
Contributor

Added!

@gjohnson
Copy link

In the interim, would something like dependabot work?

@tallclair
Copy link
Member

@bgrant0607
Copy link
Member

On trimming dependencies: that's one of many reasons why I want provider-specific code (e.g., cloud providers, volume sources) out of tree.

@philips
Copy link
Contributor

philips commented Feb 26, 2019

@brendanburns Did you ever see any response on the CNCF Service Desk request for Go dependency CVE tracking?

@tallclair Is there even a way for Go dependencies to express metadata about security right now?

@tallclair
Copy link
Member

Not that I know of... Maybe it's something the go team could help us solve?

@philips
Copy link
Contributor

philips commented Feb 26, 2019

@tallclair Yea, I think we are in a bit of a chicken and egg situation. If there is no way to express security issues then it is impossible to build tooling for it.

Anyone know who on the Go team to talk to? The only person I know is @bradfitz 👋

@tallclair
Copy link
Member

Yea, I think we are in a bit of a chicken and egg situation.

I think there are some hacky things we could do, like creating a dashboard for commits of the dependencies. For other dependencies in github, we could also track issues & releases.

@Sajmani
Copy link

Sajmani commented Feb 27, 2019

I'll loop in a few Go team members here; CVE tracking is definitely something we're thinking about. It would be useful to us to know what form this needs to take to integrate well with the k8s workflow.

CC @rsc @andybons @FiloSottile @julieqiu @spf13

@dims
Copy link
Member

dims commented Feb 27, 2019

@caniszczyk
Copy link

nothing was every filed to the CNCF servicedesk but note that FOSSA which Kubernetes uses for licensing scanning already supports security scanning

CNCF also is happy to fund other tools like Snyk that do this type of work

@dims
Copy link
Member

dims commented Feb 27, 2019

@caniszczyk Snyk does seem interesting, let's see what others say. one issue is that they support dep/govendor and we are currently using godep

@caniszczyk
Copy link

@dims ya, I mean since we're already doing the FOSSA scanning for licensing checks it shouldn't be too hard to do the CVE scan too, they are more than happy to help with this, but we leave it up to the project to choose what tools work best

@philips
Copy link
Contributor

philips commented Feb 27, 2019 via email

@caniszczyk
Copy link

caniszczyk commented Feb 27, 2019 via email

@philips
Copy link
Contributor

philips commented Feb 27, 2019

@dims @caniszczyk The problem is that the data set FOSSA and synk are working from is super duper small. There are many libraries Kubernetes depends on that we have fixed issues in that don't show up in the snyk data set.

To fix this we have to work with the Go community to enable publishing of this metadata. This is not a vendor selection issue at this point. It is a missing metadata issue.

@philips
Copy link
Contributor

philips commented Feb 27, 2019

@caniszczyk Sent. For context here was the request headers.

From: Brendan Burns
Date: Wed, Nov 28, 2018, 10:35 PM
To: [email protected]
Subject: Request for CVE/Vulnerability tracking for golang packages.

@philips
Copy link
Contributor

philips commented Mar 5, 2019

For those following along the CNCF Service desk silently ignores emails from addresses not pre-registered with it. https://twitter.com/BrandonPhilips/status/1102992489072349184

@tom-snyk
Copy link

tom-snyk commented Mar 6, 2019

@dims happy to get some of our team involved to learn your requirements! @philips appreciate this is a community publishing issue to; however, we do have some unique harvest capabilities that might be able to help source more. Let us know if you want to chat with our engineers.

@nikhita
Copy link
Member

nikhita commented Mar 31, 2021

/assign @navidshaikh

@tallclair
Copy link
Member

Hopefully we can leverage https://go.googlesource.com/proposal/+/master/design/draft-vulndb.md for this in the future

@BenTheElder
Copy link
Member

@tallclair +1 -- I've been in contact with the google team working on this, they've actually been using kubernetes/kubernetes as a test case given our large dependency tree 👍

@PushkarJ
Copy link
Member

PushkarJ commented May 6, 2021

I am working with @navidshaikh on this from sig-security In terms of triage options of CVEs post identification regardless of tools, would love to hear some feedback on this proposal: https://docs.google.com/document/d/1V-IUJVYq4SGizNpZXA9GPBPeCJ-oH9p5V747o51NYvo/edit

Thanks @tallclair for your earlier feedback on slack for this proposal.

/sig security

@BenTheElder
Copy link
Member

vulndb is now somewhat exposed in https://deps.dev/
however, it's not really setup to monitor a repo @ HEAD AFAICT.
There's been some progress recently on standing up snyk I think (some recent discussion in #sig-testing, #code-organization, #wg-k8s-infra).

@Sajmani
Copy link

Sajmani commented Jul 29, 2021

A prototype CLI for reading the Go vulndb is here:
https://pkg.go.dev/golang.org/x/exp/vulndb/govulncheck
This is not yet ready for production use, but we welcome early adopter feedback.

@dims
Copy link
Member

dims commented Jul 29, 2021

@Sajmani thanks! will poke at it when we get a chance

@PushkarJ
Copy link
Member

A prototype CLI for reading the Go vulndb is here:
https://pkg.go.dev/golang.org/x/exp/vulndb/govulncheck
This is not yet ready for production use, but we welcome early adopter feedback.

@vinayakankugoyal is this the same tool you are doing a demo about in next SIG Security Tooling meeting (08/17)?

@vinayakankugoyal
Copy link

Yeah its https://pkg.go.dev/golang.org/x/exp/vulndb/govulncheck

@vinayakankugoyal
Copy link

vinayakankugoyal commented Aug 12, 2021

cc @zpavlinovic (who will be doing the demo)

@justaugustus
Copy link
Member

@vinayakankugoyal is this the same tool you are doing a demo about in next SIG Security Tooling meeting (08/17)?

@kubernetes/release-engineering -- FYI, in case anyone is able to attend this meeting.

Adding current RelEng Tech Leads as assignees:
/unassign @justaugustus @hasheddan
/assign @cpanato @puerco

@tabbysable
Copy link
Member

/sig security

@k8s-ci-robot k8s-ci-robot added the sig/security Categorizes an issue or PR as relevant to SIG Security. label Feb 3, 2024
@dims
Copy link
Member

dims commented Feb 4, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. sig/release Categorizes an issue or PR as relevant to SIG Release. sig/security Categorizes an issue or PR as relevant to SIG Security.
Projects
Development

No branches or pull requests