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

Adding new Security Advisories content to the Academy #1714

Merged
merged 7 commits into from
Aug 5, 2024

Conversation

mcaveety
Copy link
Contributor

Type of change

New documentation

What should this PR do?

This PR adds two new items to the Academy: An article outlining how Chainguard issues security advisories (i.e. the stages that lead up to the advisory's addition to the database, and how the status labels are chosen and updated as more information is revealed), and a guide explaining how users can use the wolfictl command line tool to view, search, create, and update security advisories.
I also opted to move the existing security advisories article (regarding how to use the advisories feed to inform your next steps) into a new bucket simply titled "Security Advisories" so that all three of these documents share the same home.

Resolves https://github.com/chainguard-dev/internal/issues/3303
Resolves https://github.com/chainguard-dev/internal/issues/4061

Why are we making this change?

Customers have expressed confusion with the security advisories page. Namely, customers want to understand how the security advisories page is created. What factors impact the label chosen for the advisory? Our existing documentation on this topic helps users understand the meaning of the advisories, but this new documentation should clarify any lingering questions on how decisions are made under-the-hood. Particularly, questions surrounding "why does my scanner show this and your feed doesn't?" should be answered, as the article walks through the step-by-step process from vulnerability disclosure to advisory creation and remediation. Those curious about the tooling used to issue an advisory can follow the guide using wolfictl to learn how they could do this themselves.

What are the acceptance criteria?

This set of articles should meet the goal set out by both the above explanation and referenced issues. They should be clearly written, technically accurate, and comprehensive on the topic so customers walk away with a better understanding of the security advisories feed.

How should this PR be tested?

Please check out the deploy preview or build the site locally since I've added some changes to the directory hierarchy of some of the articles. Checking style, links, and technical accuracy is also much appreciated.

@mcaveety mcaveety added documentation Improvements or additions to documentation 24g labels Jul 26, 2024
@mcaveety mcaveety self-assigned this Jul 26, 2024
Copy link

netlify bot commented Jul 26, 2024

Deploy Preview for ornate-narwhal-088216 ready!

Name Link
🔨 Latest commit c0aece0
🔍 Latest deploy log https://app.netlify.com/sites/ornate-narwhal-088216/deploys/66b0e2f77dbbb60008856d47
😎 Deploy Preview https://deploy-preview-1714--ornate-narwhal-088216.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@mcaveety mcaveety marked this pull request as ready for review July 29, 2024 18:52
@mcaveety mcaveety requested a review from a team as a code owner July 29, 2024 18:52
@mcaveety
Copy link
Contributor Author

@amouat I went ahead and opened this up since you offered to take a peek, you're welcome to add your thoughts here whenever you get the chance. @smythp tagging you since you're my reviewer though maybe you'd want to wait until after Adrian gets to it?

@amouat
Copy link
Collaborator

amouat commented Jul 30, 2024

Did you mean to add the text? My understanding is that it's still in a Google doc? https://docs.google.com/document/d/1Kydf-L0iau640M21aTbjLib00ul3YzH5eJ7muGJZLko/edit#heading=h.ufqupmh2gqkj

@amouat
Copy link
Collaborator

amouat commented Jul 30, 2024

I had a look at the Google doc. The lifecycle doc is great! I left a few minor comments.

I'm not sure if we want to the wolfictl doc on Academy though -- either the wolfictl repo or wiki seems better to me. We should check with @sheesh though.

I've not done a review in GitHub as I don't think the docs are in the PR yet.

@mcaveety
Copy link
Contributor Author

I've not done a review in GitHub as I don't think the docs are in the PR yet.

@amouat Oh my goodness, you're right. I was waiting to add the documents since people were still reviewing. Didn't realize I never did that... I'll add them in after I incorporate your edits 😭 sorry about that.

I'm not sure if we want to the wolfictl doc on Academy though -- either the wolfictl repo or wiki seems better to me. We should check with @sheesh though.

When I asked Dan Luhring about external contributions, I discovered that non-Chainguardians are allowed to submit advisories, and a Chainguardian would then review it before it is included in the advisory database. However, we hadn't discussed the possibility of including the technical guide elsewhere. @luhring would you have any opinions here? Do you think it would fit better on one of the relevant repos?

Signed-off-by: mcaveety <[email protected]>
@mcaveety
Copy link
Contributor Author

Did you mean to add the text? My understanding is that it's still in a Google doc? https://docs.google.com/document/d/1Kydf-L0iau640M21aTbjLib00ul3YzH5eJ7muGJZLko/edit#heading=h.ufqupmh2gqkj

They're in there now 😅

@luhring
Copy link

luhring commented Jul 31, 2024

However, we hadn't discussed the possibility of including the technical guide elsewhere. @luhring would you have any opinions here? Do you think it would fit better on one of the relevant repos?

Yeah, we could probably benefit from having better guidance in the Wolfi advisories repo, for example. This has been an open issue for quite a while 😅 : wolfi-dev/advisories#91

@mcaveety
Copy link
Contributor Author

However, we hadn't discussed the possibility of including the technical guide elsewhere. @luhring would you have any opinions here? Do you think it would fit better on one of the relevant repos?

Yeah, we could probably benefit from having better guidance in the Wolfi advisories repo, for example. This has been an open issue for quite a while 😅 : wolfi-dev/advisories#91

@luhring thanks for bringing this up! I'll open a PR on the wolfi advisories repo to share this information, and remove it from this PR. if there's any objections LMK

@mcaveety
Copy link
Contributor Author

@smythp this should be ready for a final review whenever you get this chance. I went ahead and removed the technical guide from this PR but kept the conceptual guide, so that should be the only thing you have to review, other than the file structure change since I bucketed two articles together.

Signed-off-by: mcaveety <[email protected]>
@ltagliaferri
Copy link
Collaborator

I'm not sure why we can't have the security advisory + wolfictl doc in Academy since it is related to Chainguard Images. It's ok for it to be both places if it's also desired within the repo.

Copy link
Collaborator

@SharpRake SharpRake left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left a lot of suggestions, but most of them around comma nitpickery and fixing quotes. I think you have smart quotes turned on, could you do a scan and make sure I didn't miss any?

Otherwise, this is great! I even had a to-do for something like Step 4 assigned to me, so this is super helpful to me!


When you scan a newly-built Chainguard Image with a vulnerability scanner, typically, no CVEs will be reported. However, as software packages age, more vulnerabilities are reported, and CVEs begin to accumulate in images. When this happens, Chainguard releases security advisories to communicate these vulnerabilities to downstream Images users.

Chainguard publishes its security advisories to a dedicated [Security Advisories page](https://images.chainguard.dev/security/) on its Images Registry. Here, you can find a complete listing of CVEs found in various Chainguard Images, including their CVE ID, affected packages, and vulnerability status. Essentially, these security advisories act as metadata for a security vulnerability.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Chainguard publishes its security advisories to a dedicated [Security Advisories page](https://images.chainguard.dev/security/) on its Images Registry. Here, you can find a complete listing of CVEs found in various Chainguard Images, including their CVE ID, affected packages, and vulnerability status. Essentially, these security advisories act as metadata for a security vulnerability.
Chainguard publishes its security advisories to a dedicated [Security Advisories page](https://images.chainguard.dev/security/) on its Images Directory. There, you can find a complete listing of CVEs found in various Chainguard Images, including their CVE ID, affected packages, and vulnerability status. Each advisory is built from the metadata of a given security vulnerability.

I lean on calling it the Directory, don't want to folks to confuse it with a regular registry.

Also I thought the last sentence was a bit off, i tried to reframe it


Chainguard publishes its security advisories to a dedicated [Security Advisories page](https://images.chainguard.dev/security/) on its Images Registry. Here, you can find a complete listing of CVEs found in various Chainguard Images, including their CVE ID, affected packages, and vulnerability status. Essentially, these security advisories act as metadata for a security vulnerability.

![Snapshot of the Chainguard Security Advisories Page](advisories-page.png)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice screenshot!



You can also find consumable Alpine-style `secdb` security advisory feeds at the following URLs:
[Wolfi OS repository feed](https://github.com/wolfi-dev/os): https://packages.wolfi.dev/os/security.json
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[Wolfi OS repository feed](https://github.com/wolfi-dev/os): https://packages.wolfi.dev/os/security.json
* [Wolfi OS repository](https://github.com/wolfi-dev/os) feed: [packages.wolfi.dev/os/security.json](https://packages.wolfi.dev/os/security.json)

This becomes a muddled paragraph without some fancy formatting, I think this would look better but your call

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I lost the formatting from the Google Doc when I copied it over... thanks for pointing this out!

@mcaveety
Copy link
Contributor Author

mcaveety commented Aug 5, 2024

I left a lot of suggestions, but most of them around comma nitpickery and fixing quotes. I think you have smart quotes turned on, could you do a scan and make sure I didn't miss any?

Otherwise, this is great! I even had a to-do for something like Step 4 assigned to me, so this is super helpful to me!

🤦 I do have smart quotes on. I remember this being an issue last year too. oops.

Thanks for your review, I appreciate it Mark!

mcaveety and others added 3 commits August 5, 2024 09:37
Co-authored-by: Mark Drake <[email protected]>
Signed-off-by: Michelle McAveety <[email protected]>
Signed-off-by: mcaveety <[email protected]>
@mcaveety
Copy link
Contributor Author

mcaveety commented Aug 5, 2024

8/5: This has been reviewed and approved, I incorporated some changes in additional commits and added a simple table at Adrian's request. There's some ongoing discussion about adding the technical guide to the Academy so if that is done, I will address it in a future PR. see Slack thread: https://chainguard-dev.slack.com/archives/C040R8V1BG9/p1722869159666029

@mcaveety mcaveety merged commit 66b2253 into chainguard-dev:main Aug 5, 2024
5 checks passed
@mcaveety mcaveety deleted the 24g-advisories branch August 5, 2024 15:16
mcaveety added a commit that referenced this pull request Aug 8, 2024
There was a bit of back-and-forth regarding whether or not we should
include the technical guide for managing security advisories on the
Academy, see #1714 for the context.

After discussing with @sheesh and others, I believe this article should
live on the Academy. The security advisories bucket is a logical place
for it to go. This article will benefit Chainguard employees and placing
it here will make it more accessible and intuitive to find.

There was concern that this article was only suited for internal use,
however,
a) external users have contributed in the past, although rarely
b) if a user wanted to contribute to the advisories repo, they need to
do further reading as stated by the article
c) any submissions to the repository are audited by an employee before
they are merged

I don't think this woud necessarily *encourage* external users to
contribute or cause noise. If anything, external contributions still
benefit anyone using images.

To review this article, please test the site locally on your machine and
follow the guide. It is suggested that you install wolfictl using the
instructions in this tutorial and try out the commands explored in this
guide.

@SharpRake for review :D sorry, I know I've sent you a lot in a short
amount of time! Please take your time 🙏

---------

Signed-off-by: mcaveety <[email protected]>
Signed-off-by: Michelle McAveety <[email protected]>
Co-authored-by: Mark Drake <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
24g documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants