Read Ahead material for Software Security Meeting pre-call, January, 2022. Context for this meeting: White House national security adviser asks software companies to discuss cybersecurity.

Foundation organization and governance structure (https://www.apache.org/foundation/governance/)

The ASF is an operating US 501(c)3  organization that supports several hundred open source projects.  The operating part of the ASF is managed by the President, supported by the Treasurer, Vice Presidents, committees and third parties.  The ASF board provides oversight for operating functions as well as ASF project communities.  The Legal Affairs, Security, and Treasurer departments report directly to the board, which means, for example that the Security team acts with the authority of the board.

How project oversight works (https://www.apache.org/foundation/how-it-works.html)

ASF projects are run by Project Management Committees (PMCs).  PMC members review and cast binding votes on releases, nominate and vote on  new PMC members and collectively manage community, security, trademarks or other problems.  The PMCs act on behalf of the ASF when they cut releases.  The PMC plays a key role in technical project oversight, but not the only role.  The full project community contributes by working creating and reviewing) patches and contributing to discussion.

All ASF community members, including PMC members, officers and the board, participate in our communities as individuals, not as representatives of companies or other organizations.  Some community members are paid by their employers to contribute to ASF projects but in their ASF work they are expected to act in the best interest of the community, exercising their own best judgement.  Impact on project decisions is based on publicly earned merit which accrues to individuals, based only on their contributions at the ASF.

How development works (https://www.apache.org/dev/pmc.html)

The ASF doesn't pick technologies or set technical direction for our projects.  Projects to have to adhere to various foundation-wide policies including trademarks, release policy, security vulnerability handling policy. There are very few required policies (and there is no SDLC policy). 

We also require that everything happens in the open:

ASF projects differ in how they do things, but most have documented process for working bug reports, introducing new features and planning and executing releases. As new features are developed and bugs are addressed, code changes are made that will go into releases.  Typically, proposed changes are submitted as “pull requests” (PRs) that explicitly describe how the source will change if they are applied.  The original source, the PR and any changes that result from applying it are all publicly visible.  Any interested party can comment on proposed changes and it frequently happens that performance, security or other issues are discovered in the open development process that creates and modifies ASF software.

Although we use the term "volunteer" extensively in our materials, our contributors tend to be seasoned software professionals whose employers include ASF releases in their commercial products.

How releases are versioned, validated and distributed (https://www.apache.org/dev/#releases)

ASF software is meant to be consumed in the form of versioned releases.  ASF PMCs have various ways of packaging software for distribution, but the core asset being released is always source code.  Most projects release only source code and are not producing builds of their releases.  Releases must be voted on by PMCs, who are responsible for validating release candidates (RCs).  Most PMCs also make RCs available to the public prior to or during release votes. Library or infrastructure projects sometimes make backward-incompatible changes as they develop new versions of their software.  Sometimes, a backward-compatible version of the software is added and maintained in parallel, but it often happens that the actively supported version is not backward compatible with an older version.   When library or infrastructure components make backward incompatible changes, downstream users may have to make code changes to upgrade their applications.

How ASF code is incorporated in other software

ASF software is used in running systems in basically 2 ways:

How security reports are handled (https://www.apache.org/security/)

The ASF encourages responsible disclosure of security vulnerabilities discovered in software managed by ASF projects.  The ASF security team sets a common policy, maintains security contacts for PMCs, and provides support for projects responding to security issues. Reporters are encouraged to use the designated security contacts to report vulnerabilities privately.  PMCs are required to respond to security reports promptly, working with reporters to investigate and if necessary develop patches.  

The ASF Security team are a CVE Project Candidate Naming Authority (CNA). CVE names are issued to vulnerabilities regardless if they are found by the project committers, members, PMCs, other ASF members, or third-parties. The ASF Security team and PMCs work from time to time with third parties who wish to perform security functions such as code audits, bug bounties.  

The ASF Security team assist the PMC in publishing a CVE once the vulnerability has been patched and a release containing the patch has been made available.  The security team oversee all reported issues across all ASF projects.  The security team report monthly to the board and produce other public reports:

How end of support works

End of life is an industry standard concept that we apply at the ASF.  End of life means no more patches. Like all software products, ASF code lines go through a lifecycle that terminates in end of support.  Typically, ASF PMCs communicate end of support dates for products or code lines with ample time (one year plus) for users to plan upgrades or find alternatives.  Once communicated end of life dates arrive, the PMC is no longer expected or required to accept or apply patches to the end of life versions. This includes security patches against identified vulnerabilities. Therefore in some cases, when users who are depending on no longer supported versions of ASF software,  a version upgrade will be required to obtain a fix of an identified vulnerability and that may require code changes to integrate.  The ASF security team may still issue CVE names against EOL software to help users quantify the risk. 

End of life software running in critical systems is a systemic risk not unique to open source software or the ASF.

How ASF software makes it into the supply chain


Notes

The content above was developed on the security-discuss@community.apache.org mailing list, and perusing the archives there from late December 2021 to early January 2022 may provide important context.  Everyone is invited to participate there, but be aware that posts to that mailing list are publicly archived.  Background reading used to construct this page: