<?xml version="1.0"?>
<!DOCTYPE webpage
 PUBLIC "-//NetBSD//DTD Website-based NetBSD Extension//EN"
        "http://www.NetBSD.org/XML/htdocs/lang/share/xml/website-netbsd.dtd">

<webpage id="developers-security">
  <config param="desc" value=""/>
  <config param="cvstag" 
    value="$NetBSD: security.xml,v 1.3 2005/07/16 17:13:56 heinz Exp $"/>
  <config param="rcsdate" value="$Date: 2005/07/16 17:13:56 $"/>
  <head>

    <!-- Copyright (c) 1994-2003
    The NetBSD Foundation, Inc.  ALL RIGHTS RESERVED. -->

    <title>Security Issues</title>
  </head>

  <sect1 id="security-issues" role="toc">

    <sect2 id="handling-security-issues">
      <title>Handling Security Issues</title>

      <sect3 id="Initiating-Contact">
	<title>Initiating Contact</title>
	
	<para>If you find a possible vulnerability, please mail 
	  <email>security-officer@NetBSD.org</email>.
	  For problems with packages, please mail 
	  <email>pkgsrc-security@NetBSD.org</email> instead.</para>
      </sect3>

      <sect3 id="security-requests">
	<title>If the Security Officers contact you</title>
	
	<para>When Security issues are brought to the attention of
	  <email>security-officer@NetBSD.org</email> one of the members 
	  of that group may initiate contact with (a) developer(s) 
	  considered to have expertise in the related area of the 
	  system.</para>
      </sect3>

      <sect3 id="security-correspondence">
	<title>Correspondence</title>

	<para>
	  <itemizedlist>
	    <listitem>Copy the S-O on all related correspondence. If it is
	      necessary to discuss side issues with other persons, ask them to
	      CC:  the S-O as well.  Failure to do this could lead to
	      incomplete/incorrect announcements, if the S-O has not had the
	      benefit of understanding all the related issues.  In the S-Os own
	      words:
	      <blockquote>
		Please CC: *all* communications about a security issue, 
		regardless of how trivial you think they are, 
		to <email>security-officer@NetBSD.org</email>.
	      </blockquote></listitem>
	    <listitem>If you have any question about what's going on with 
	      an advisory, *ask*. Don't assume. People make mistakes. 
	      It's better to tweak the process and people's assumptions 
	      so that other people are more likely to catch 
	      mistakes.</listitem>
	  </itemizedlist>
	</para>
      </sect3>

      <sect3 id="security-advisories">
	<title>Advisories</title>
	
	<para>In general, advisories are not sent out for review until they're
	  almost ready to be distributed, and all relevant fixes in question 
	  are pulled up to all active release branches. If, when reviewing 
	  an advisory, you find something has been missed, message the 
	  S-O ASAP.</para>
      </sect3>

      <sect3 id="security-helpers">
	<title>The security-officer can always use help!</title>

	<para>Doing the security officer job in an even vaguely close 
	  to correct way takes a *LOT* of time. It easily takes four to 
	  eight hours, and sometimes more, to do all the miscellaneous 
	  work needed to send out a given advisory.</para>

	<para>If you find or fix a security issue, please make our 
	  jobs as easy as possible, including:
	  <itemizedlist>
	    <listitem>arranging for pull-ups of the fixes to all active 
	      branches</listitem>
	    <listitem>providing text for the security advisory, or writing 
	      the whole thing if at all possible.</listitem>
	  </itemizedlist>
	</para>
      </sect3>

      <sect3 id="sequence">
	<title>Sequence of events in handling issues</title>

	<para>
	  <itemizedlist>
	    <listitem>Receive notification of a security issue.</listitem>
	    <listitem>Investigate the nature of the issue.</listitem>
	    <listitem>Determine the most appropriate handler(s) for that 
	      piece of the tree.</listitem>
	    <listitem>Contact the handler(s), and get a promised resolution 
	      time. (if at all possible)</listitem>
	    <listitem>Once the fix has been suggested, test it. (handlers 
	      may help, but it
	      should be reviewed by someone other than the coder)</listitem>
	    <listitem>If the issue involves a remote vulnerability, update 
	      the public  NetBSD servers. In particular, this must be done 
	      before any CVS commits!
	      This should happen with 24 hours (preferrably 12 hours or 
	      less) of notification being received. If the fix is not ready, 
	      apply a stopgap (hack!) fix to close the window of 
	      vulnerability.</listitem>
	    <listitem>Prepare the Security Announcement, describing:
	      <itemizedlist>
		<listitem>The affected components</listitem>
		<listitem>The affected releases</listitem>
		<listitem>The nature of the security violation</listitem>
		<listitem>The method used in closing the 
		  vulnerability</listitem>
	      </itemizedlist>
	    </listitem>
	    <listitem>Commit the fix to the CVS repository</listitem>
	    <listitem>Release the SA to NetBSD and appropriate external 
	      mailing-lists.</listitem>
	    <listitem>Submit the SA for the web pages</listitem>
	  </itemizedlist>
	</para>
      </sect3>
    </sect2>
  </sect1>
</webpage>

