From 13d138f7d70b0e9ed68bdee5c4b7fe20b9773331 Mon Sep 17 00:00:00 2001 From: WT Date: Wed, 13 May 2020 18:05:02 +0800 Subject: [PATCH] Update- security (#7820) Signed-off-by: Wenting Liu --- README.md | 7 +++- SECURITY.md | 96 +++++++++++++++++++++++++++++++++++++++++++ images/tikv-logo.png | Bin 17826 -> 14180 bytes images/tikv.svg | 2 +- 4 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 SECURITY.md diff --git a/README.md b/README.md index accb14d25d7..5d21cf6e7e9 100644 --- a/README.md +++ b/README.md @@ -122,11 +122,16 @@ Quick links: ## Security - ### Security Audit A third-party security auditing was performed by Cure53. See the full report [here](./docs/Security-Audit.pdf). +### Reporting Security Vulnerabilities + +To report a security vulnerability, please send an email to [TiKV-security](tikv-security@lists.cncf.io) group. + +See [Security](./SECURITY.md) for the process and policy followed by the TiKV project. + ## Communication Communication within the TiKV community abides by [TiKV Code of Conduct](./CODE_OF_CONDUCT.md). Here is an excerpt: diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000000..2de757a26b2 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,96 @@ +# TiKV Security Policy + +As a widely adopted distributed storage service, TiKV attaches great importance to code security. We are very grateful to users, security vulnerability researchers, etc. for reporting security vulnerabilities to us. All reported security vulnerabilities will be carefully assessed, addressed, and answered by us. + +This document describes the security process and policy followed by the TiKV project. + +## TiKV Security Team + +Security vulnerabilities should be handled quickly and sometimes privately. The primary goal of this process is to reduce the total time users are vulnerable to publicly known exploits. + +The TiKV Security Team is responsible for organizing the entire response including internal communication and external disclosure but will need help from relevant developers to successfully run this process. + +The TiKV Security Team will consist of TiKV contributors assigned by the TiKV Maintainer team. + +## Supported versions + +The following are the versions that we support for security updates + +| Version | Supported | +| ------- | ------------------ | +| 4.x | :white_check_mark: | +| 3.x | :white_check_mark: | +| 2.x | :white_check_mark: | +| < 2.0 | :x: | + +## Reporting a vulnerability + +For all TiKV security-related defects, please send an email to tikv-security@lists.cncf.io. This mailing list is specially maintained by the TiKV security team. You will receive an acknowledgement mail within 24 hours. After that, we will give a detailed response about the subsequent process within 48 hours. Please do not submit security vulnerabilities directly as Github Issues. + +If you want to, you can choose to use the PGP public key provided by us to encrypt the content of the mail. The public key is provided at the end of this document. + +## Disclosure policy + +For known public security vulnerabilities, we will disclose the disclosure as soon as possible after receiving the report. Vulnerabilities discovered for the first time will be disclosed in accordance with the following process: +1. The received security vulnerability report shall be handed over to the security team for follow-up coordination and repair work. +2. After the vulnerability is confirmed, we will create a draft Security Advisory on Github that lists the details of the vulnerability. +3. Invite related personnel to discuss about the fix +4. Fork the temporary private repository on Github, and collaborate to fix the vulnerability +5. After the fix code is merged into all supported versions, the vulnerability will be publicly posted in the GitHub Advisory Database + +## PGP Public Key + +``` +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +ulx+VF4Lf9n3ydf593Nha9bMJ/rnSp01 +=XbYK +-----END PGP PUBLIC KEY BLOCK----- +``` \ No newline at end of file diff --git a/images/tikv-logo.png b/images/tikv-logo.png index b7678a3cbf2d758fb63daa4f2f9396ca9c1c4159..790425865d6cead9bfbd5e407b2c9af069d08ad0 100644 GIT binary patch literal 14180 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 26 \ No newline at end of file + \ No newline at end of file