GLEP:14
Title:security updates based on GLSA
Version:1.1
Last-Modified:2003/08/22 15:00:55
Author:Marius Mauch <genone at genone.de>,
Status:Draft
Type:Standards Track
Content-Type:text/x-rst
Created:18 Aug 2003
Post-History:22-Aug-2003

Contents

Abstract

There is currently no automatic way to check a Gentoo system for identified security holes or auto-apply security fixes. This GLEP proposes a way to deal with this issue

Motivation

Automatic checking for security updates is a often requested feature for Gentoo. Implementing it will enable users to fix security holes without reading every security announcement. It's also a feature that is often required in enterprise environments.

Proposed change

Update tool

The coding part of this GLEP is a update tool that reads a GLSA, checks if the system is affected by it and executes one of the following actions, depending on user preferences:

  • run all steps necessary to fix the security hole, including package updates and daemon restarts.
  • instruct the user how to fix the security hole.
  • print the GLSA so the user can get more information if desired.

Once this tool is implemented and well tested it can be integrated into portage. A prototype implementation for this tool exists.

GLSA format

The GLSA format needs to be specified, I suggest using XML for that to simplify parsing and later extensions. See implementation for a sample DTD. The format has to be compatible with the update tool of course. If necessary a converter tool or an editor could be written for people not comfortable with XML.

GLSA release process

Additional to sending the GLSA to the gentoo-announce mailing list it has to be stored on a HTTP/FTP server and in the portage tree. I'd suggest a script should be used to release a GLSA that will:

  • check the GLSA for correctness
  • send a mail to gentoo-announce with the XML GLSA and a plaintext version attached
  • upload it to www.gentoo.org/glsa (or wherever they should be uploaded)
  • put it on the rsync server
  • notify the moderators on the forums to make an announcement

Portage changes

Until the update tool is integrated into portage there will be no code changes to portage. The update tool might require a few new configuration options, these could be placed in make.conf or another config file in /etc/portage.

Rationale

The lack of automated security updates for Gentoo is one of the most often requested features for portage as it is one of the standard features of other distributions. As Gentoo already provides GLSAs for important security bugs it is only natural to use these to implement this feature.

To parse a GLSA in a program the format needs to be specified and a parser has to be written. I suggest the use of XML for future GLSAs for the following reasons:

Putting the GLSAs in the portage tree allows all users to check their systems for security updates without taking more actions and simplifies later integration of the update tool into portage. For security minded persons the GLSAs are available on a HTTP server to ease the load of the rsync servers.

Implementation

A prototype implementation (including the update tool, a DTD and a sample XMLified GLSA) exists at http://gentoo.devel-net.org/glsa/ . This GLEP is based on that implementation, though it can be changed or rewritten if necessary. According to portage developers there is also already some support for this in portage.

Backwards compatibility

The current GLSA release process needs to be replaced with this proposal. It would be nice if old GLSAs would be transformed into XML as well, but that is not a requirement for this GLEP.