Oops, I committed this at the same time you sent your message.  Thanks
for agreeing (in IRC) to send it as a patch tomorrow.

On Tue, Jan 6, 2015 at 3:21 PM, Flavio Leitner <f...@redhat.com> wrote:
> On Tuesday, January 06, 2015 10:22:10 AM Ben Pfaff wrote:
>> Open vSwitch needs some kind of process for handling vulnerabilities.  So
>> far, we've been pretty lucky that way, but it can't last forever, and I
>> think we'll be better off if we have at least the outline of an established
>> process whenever a significant vulnerability comes along.  Here's my draft
>> of a process based on the documentation of the OpenStack process at
>> https://wiki.openstack.org/wiki/Vulnerability_Management.
>>
>> I don't have a lot of experience with this kind of thing myself, so I'd
>> appreciate critical review from anyone who does.
>>
>> Signed-off-by: Ben Pfaff <b...@nicira.com>
>> Reviewed-by: Flavio Leitner <f...@redhat.com>
>> ---
>> v1->v2:
>>    - Suggest GPG signing and encryption.
>>    - Mention coordination with Linux kernel security process.
>>    - "ovs-users" is actually "ovs-discuss".
>>    - Mention SECURITY.md from REPORTING-BUGS.md.
>>    - Add examples.
>> ---
>>  Makefile.am       |   3 +-
>>  REPORTING-BUGS.md |   2 +
>>  SECURITY.md       | 154 
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>  3 files changed, 158 insertions(+), 1 deletion(-)
>>  create mode 100644 SECURITY.md
>>
>> diff --git a/Makefile.am b/Makefile.am
>> index 46e8610..26528d9 100644
>> --- a/Makefile.am
>> +++ b/Makefile.am
>> @@ -1,4 +1,4 @@
>> -# Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc.
>> +# Copyright (C) 2007-2015 Nicira, Inc.
>>  #
>>  # Copying and distribution of this file, with or without modification,
>>  # are permitted in any medium without royalty provided the copyright
>> @@ -89,6 +89,7 @@ docs = \
>>       README-lisp.md \
>>       README-native-tunneling.md \
>>       REPORTING-BUGS.md \
>> +     SECURITY.md \
>>       TODO.md \
>>       WHY-OVS.md
>>  EXTRA_DIST = \
>> diff --git a/REPORTING-BUGS.md b/REPORTING-BUGS.md
>> index 4e08cb1..c046af9 100644
>> --- a/REPORTING-BUGS.md
>> +++ b/REPORTING-BUGS.md
>> @@ -7,6 +7,8 @@ bugs so as to ensure that they can be fixed as quickly as 
>> possible.
>>
>>  Please report bugs by sending email to b...@openvswitch.org.
>>
>> +For reporting security vulnerabilities, please read SECURITY.md.
>> +
>>  The most important parts of your bug report are the following:
>>
>>    * What you did that make the problem appear.
>> diff --git a/SECURITY.md b/SECURITY.md
>> new file mode 100644
>> index 0000000..e1db4cb
>> --- /dev/null
>> +++ b/SECURITY.md
>> @@ -0,0 +1,154 @@
>> +Security Process
>> +================
>> +
>> +This is a proposed security vulnerability reporting and handling
>> +process for Open vSwitch.  It is based on the OpenStack vulnerability
>> +management process described at
>> +https://wiki.openstack.org/wiki/Vulnerability_Management.
>> +
>> +The OVS security team coordinates vulnerability management using the
>> +ovs-security mailing list.  Membership in the security team and
>> +subscription to its mailing list consists of a small number of
>> +trustworthy people, as determined by rough consensus of the Open
>> +vSwitch committers on the ovs-committers mailing list.  The Open
>> +vSwitch security team should include Open vSwitch committers, to
>> +ensure prompt and accurate vulnerability assessments and patch review.
>> +
>> +We encourage everyone involved in the security process to GPG-sign
>> +their emails.  We additionally encourage GPG-encrypting one-on-one
>> +conversations as part of the security process.
>> +
>> +
>> +What is a vulnerability?
>> +------------------------
>> +
>> +All vulnerabilities are bugs, but not every bug is a vulnerability.
>> +Here are some examples of vulnerabilities to which one would expect to
>> +apply this process:
>> +
>> +    * A crafted packet that causes a kernel or userspace crash.
>> +
>> +    * A flow translation bug that misforwards traffic in a way likely
>> +      to hop over security boundaries.
>> +
>> +    * An OpenFlow protocol bug that allows a controller to read
>> +      arbitrary files from the file system.
>> +
>> +    * Misuse of the OpenSSL library that allows bypassing certificate
>> +      checks.
>> +
>> +    * A bug (memory corruption, overflow, ...) that allows one to
>> +      modify the behaviour of OVS through external configuration
>> +      interfaces such as OVSDB.
>> +
>> +    * Privileged information is exposed to unprivileged users.
>> +
>> +If in doubt, please do use the vulnerability management process.  At
>> +worst, the response will be to report the bug through the usual
>> +channels.
>> +
>> +
>> +Step 1: Reception
>> +-----------------
>> +
>> +To report an Open vSwitch vulnerability, send an email to the
>> +ovs-security mailing list (see "Contact" at the end of this document).
>> +A security team member should reply to the reporter acknowledging that
>> +the report has been received.
>> +
>> +Please consider reporting the information mentioned in
>> +REPORTING-BUGS.md, where relevant.
>> +
>> +The Linux kernel has its own vulnerability management process:
>> +https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/SecurityBugs
>> +Handling of vulnerabilities that affect both the Open vSwitch tree and
>> +the upstream Linux kernel should be reported through both processes.
>> +Please send your report as a single email to both the kernel and OVS
>> +security teams to allow those teams to most easily coordinate among
>> +themselves.
>> +
>> +
>> +Step 2: Assessment
>> +------------------
>> +
>> +The security team should discuss the vulnerability.  The reporter
>> +should be included in the discussion (via "CC") to an appropriate
>> +degree.
>> +
>> +The assessment should determine which Open vSwitch versions are
>> +affected (e.g. every version, only the latest release, only unreleased
>> +versions), the privilege required to take advantage of the
>> +vulnerability (e.g. any network user, any local L2 network user, any
>> +local system user, connected OpenFlow controllers), the severity of
>> +the vulnerability, and how the vulnerability may be mitigated (e.g. by
>> +disabling a feature).
>> +
>> +The treatment of the vulnerability could end here if the team
>> +determines that it is not a realistic vulnerability.
>> +
>> +
>> +Step 3a: Document
>> +----------------
>> +
>> +The security team develops a security advisory document.  The document
>> +credits the reporter and describes the vulnerability, including all of
>> +the relevant information from the assessment in step 2.  The security
>> +team may, at its discretion, include the reporter (via "CC") in
>> +developing the security advisory document, but in any case should
>> +accept feedback from the reporter before finalizing the document.
>> +
>> +When the document is final, the security team should obtain a CVE for
>> +the vulnerability from a CNA (https://cve.mitre.org/cve/cna.html).
>> +
>> +
>> +Step 3b: Fix
>> +------------
>> +
>> +Steps 3a and 3b may proceed in parallel.
>> +
>> +The security team develops and obtains (private) reviews for patches
>> +that fix the vulnerability.  If necessary, the security team pulls in
>> +additional developers, who should be asked to maintain
>> +confidentiality.
>
> Contributors must agree to respect the confidentiality.
> s/should be asked/must agree to/
>
>> +
>> +Step 4: Embargoed Disclosure
>> +----------------------------
>> +
>> +The security advisory and patches are sent to downstream stakeholders,
>> +with an embargo date and time set to 3 to 5 business days from the
>> +time sent.  Downstream stakeholders are expected not to deploy or
>> +disclose patches until the embargo is passed.
>
> Maybe we could follow the kernel security doc saying that the embargo
> date and time is negotiated.
> """
> A disclosure date is negotiated by the security team working with the
> bug submitter as well as vendors.  However, the Open vSwitch security
> team holds the final say when setting a disclosure date.  The timeframe for
> disclosure is from immediate (esp. if it's already publicly known)
> to a few weeks.  As a basic default policy, we expect report date to
> disclosure date to be on the order of 3~5 business days.
> """
>
> I.e.: if the fix is for the kernel, our QA takes more than a few days
> to complete.
>
>> +
>> +Operating system vendors are obvious downstream stakeholders.  It may
>> +not be necessary to be too choosy about who to include: any major Open
>> +vSwitch user who is interested and can be considered trustworthy
>> +enough could be included.  To become a downstream stakeholder, email
>> +the ovs-security mailing list.
>> +
>> +If the vulnerability is public, skip this step.
>> +
>> +
>> +Step 5: Full Disclosure
>> +-----------------------
>> +
>> +When the embargo expires, push the (reviewed) patches to appropriate
>> +branches, post the patches to the ovs-dev mailing list (noting that
>> +they have already been reviewed and applied), post the security
>> +advisory to appropriate mailing lists (ovs-announce, ovs-discuss), and
>> +post the security advisory on the Open vSwitch webpage.
>> +
>> +The security advisory should be GPG-signed by a security team member
>> +with a key that is in a public web of trust.
>
> The problem I see here is with new users/developer coming to OVS. What
> happens is that OVS releases stable version 1.1.1, after that there is a
> couple security issues and the advisories are released. Some new
> user/developer gets the latest stable 1.1.1 release and run the
> vulnerable code.  Maybe, for stable branches at least, a minor release
> should be done.
>
>
>> +
>> +Contact
>> +=======
>> +
>> +Report security vulnerabilities to the ovs-security mailing list:
>> +secur...@openvswitch.org
>> +
>> +Report problems with this document to the ovs-bugs mailing list:
>> +b...@openvswitch.org
>> +
>> +Visit http://openvswitch.org/ to learn more about Open vSwitch.
>>
>
> One thing that comes to mind is the history of vendor-sec[1].  Because
> the value of the information, the server was compromised and the list is
> no longer alive.  Perhaps ovs security list should be maintained separated
> from everything else, just in case...
>
> [1] http://en.wikipedia.org/wiki/Vendor-sec
>
> Thanks!
> fbl



-- 
"I don't normally do acked-by's.  I think it's my way of avoiding
getting blamed when it all blows up."               Andrew Morton
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to