On Mon, Dec 17, 2007 at 11:22:37PM +0000, Andrew Beverley wrote:
> I am currently working within the UK Ministry of Defence, and am trying to get
> Apache web server accredited as software able to be installed on one of our
> defence networks. However, one of the barriers I am coming up against is the
> argument that, because it is open source, that someone could contribute a 
> Trojan
> horse to the code and that the code could be included in the official product.

This is true - they could, but the same is true of any software
development methodology. 

> What I would like to know, so that I can dispel this, is what procedures are 
> in
> place to prevent this happening? 

Imo it boils down to;

        0. Committers are only granted commit status after a period of peer
           review and demonstrated period of competency and trustworthiness.
           Noone is given commit access merely because they were employed
           yesterday.

        1. All committed code changes are mailed to a public list which many
           people actively monitor and read.

        2. A smaller number, but still enough, committers - likely including
           the eventual release manager - regularly update their local copy of
           the source tree and each have reasonable potential to notice a
           change which was not mailed to the list (e.g. an attacker may
           manage to commit to the source tree, and disable the mails about
           commits - but this would probably still be noticed).

> I know that all downloads are digitally signed,
> but what other procedures are in place? For example, how is code signed-off 
> for
> inclusion in production releases?

In the case of modifications to released versions of Apache; at least 3
committers must review the changes and agree to their inclusion,
unreviewed commits to these versions of Apache are virtually guaranteed
to be noticed. At the time of release - once the release manager
nominates a release candidate it is subjected to even wider review and
testing by the Apache community and must be reviewed by at least 3
members of the Project Management Committee.

In the case of pre-release or versions of Apache still in development;
the code is subject to general peer review and there is typically a
period of months to years between time of commit and time of release
during which problems may be noticed.

-- 
Colm MacCárthaigh                        Public Key: [EMAIL PROTECTED]

Reply via email to