From 3fea64fe97627445903375d84e32bbdf43ae46d7 Mon Sep 17 00:00:00 2001 From: Oliver Chang Date: Thu, 10 Feb 2022 13:31:57 +1100 Subject: [PATCH 1/3] Update README To better clarify relationship with OSV schema. Also update process image. --- README.md | 27 ++++++++++-------- docs/images/diagram.png | Bin 31126 -> 42302 bytes .../frontend/src/components/Home.vue | 20 +++++++------ 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 29c2f65b96f..14dc677cda2 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,17 @@ # OSV - Open Source Vulnerabilities -OSV is a [vulnerability database] and triage infrastructure for open source -projects aimed at helping both open source maintainers and consumers of open -source. +https://osv.dev is a [vulnerability database] and triage infrastructure for +open source projects aimed at helping both open source maintainers and +consumers of open source. -For open source maintainers, OSV's automation helps reduce the burden of triage. -Each vulnerability undergoes automated bisection and impact analysis to -determine precise affected commit and version ranges. +This repository contains the infrastructure code that serves https://osv.dev +(and other user tooling). This infrastructure serves as an aggregator of +vulnerability databases that have adopted the +[OpenSSF Vulnerability format](https://github.com/ossf/osv-schema). -For open source consumers, OSV provides an API that lets users of these projects -query whether or not their versions are impacted. +https://osv.dev additionally provides infrastructure to ensure affected +versions are accurately represented in each vulnerability entry, through +bisection and version analysis. [vulnerability database]: https://osv.dev/list @@ -19,9 +21,9 @@ query whether or not their versions are impacted. ## Current data sources **This is an ongoing project.** We encourage open source ecosystems to adopt -the [OpenSSF Vulnerability format](https://github.com/ossf/osv-schema) for the -benefit of the open source community. See our -[blog post](https://security.googleblog.com/2021/06/announcing-unified-vulnerability-schema.html) +the [OpenSSF Vulnerability format](https://github.com/ossf/osv-schema) to enable +open source users to easily aggregate and consume vulnerabilities across all ecosystesm. +See our [blog post](https://security.googleblog.com/2021/06/announcing-unified-vulnerability-schema.html) for more details. The following ecosystems have vulnerabilities encoded in this format: @@ -72,7 +74,8 @@ You can find an overview of OSV's architecture [here](docs/architecture.md). ## This repository -This repository contains all the code for running OSV on GCP. This consists of: +This repository contains all the code for running https://osv.dev on GCP. This +consists of: - API server (`gcp/api`) - Web interface (`gcp/appengine`) diff --git a/docs/images/diagram.png b/docs/images/diagram.png index af485469a3a25f520f1462a414b375c8e086f00a..22577bc3e4abc0869f78bd9eb4f2950737018a3c 100644 GIT binary patch literal 42302 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 Y>Jj^MjWggsz|K6Be|$e*))@AG04uc!WdHyG diff --git a/gcp/appengine/frontend/src/components/Home.vue b/gcp/appengine/frontend/src/components/Home.vue index 836097cc7ae..20cfeb7affb 100644 --- a/gcp/appengine/frontend/src/components/Home.vue +++ b/gcp/appengine/frontend/src/components/Home.vue @@ -23,29 +23,30 @@

Database for open source vulnerabilities

- OSV is a vulnerability database + OSV.dev is a vulnerability database and triage infrastructure for open source projects aimed at helping both open source maintainers and consumers of open source.

- This feed contains vulnerabilities from + This infrastructure serves as an aggregator of vulnerabilities from OSS-Fuzz (mostly C/C++), Python, and Go, and Rust, and GSD, and - npm (from GitHub Security Advisories). - - More to come. + parts of GitHub Security Advisories (Maven, npm). +

+

+ These databases have all adopted the + OpenSSF Open Source + Vulnerability format, making common tooling and aggregation very + simple. More data sources from other popular ecosystems are in the works.

API

For open source consumers, OSV provides an API that lets users query whether or not their versions are impacted. - - These vulnerabilities are encoded in the - OpenSSF Open Source Vulnerability format.

         curl -X POST -d \
@@ -69,7 +70,8 @@
       

Open source

- This is an open source project from Google. + This is an open source project. + We welcome contributions!

More information

From 65a83f44af5cb59ab83a0a1c1eee32b7987f8585 Mon Sep 17 00:00:00 2001 From: Oliver Chang Date: Thu, 10 Feb 2022 14:44:52 +1100 Subject: [PATCH 2/3] comment --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 14dc677cda2..9bec391f521 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,19 @@ # OSV - Open Source Vulnerabilities -https://osv.dev is a [vulnerability database] and triage infrastructure for +[osv.dev] is a [vulnerability database] and triage infrastructure for open source projects aimed at helping both open source maintainers and consumers of open source. -This repository contains the infrastructure code that serves https://osv.dev +This repository contains the infrastructure code that serves osv.dev (and other user tooling). This infrastructure serves as an aggregator of vulnerability databases that have adopted the [OpenSSF Vulnerability format](https://github.com/ossf/osv-schema). -https://osv.dev additionally provides infrastructure to ensure affected +osv.dev additionally provides infrastructure to ensure affected versions are accurately represented in each vulnerability entry, through bisection and version analysis. +[osv.dev]: https://osv.dev [vulnerability database]: https://osv.dev/list

From 177b1e72d8561ae95a910e9666f3a446b2d607f2 Mon Sep 17 00:00:00 2001 From: Oliver Chang Date: Thu, 10 Feb 2022 14:45:41 +1100 Subject: [PATCH 3/3] more fixes --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9bec391f521..1352aa7bce6 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,12 @@ open source projects aimed at helping both open source maintainers and consumers of open source. -This repository contains the infrastructure code that serves osv.dev +This repository contains the infrastructure code that serves [osv.dev] (and other user tooling). This infrastructure serves as an aggregator of vulnerability databases that have adopted the [OpenSSF Vulnerability format](https://github.com/ossf/osv-schema). -osv.dev additionally provides infrastructure to ensure affected +[osv.dev] additionally provides infrastructure to ensure affected versions are accurately represented in each vulnerability entry, through bisection and version analysis.