Why me?
OSS contributor & maintainer since ~2008
Helped write the DoD's 2022 open source policy
Wrote the 2023 DHS open source policy
SW engineer, split time between private industry and public sector, joined USDS 2017
NOTE: these views are 100% my own and not that of the federal government
Why Open Source?
The Challenges
The Policy
The Reality
The Possibilities
This is our agenda -- MENTION which areas may be shorter (OSS is good?)
Questions at the end of the preso, also manmy links throughout
Open Source is good. [citation needed]
Reusability
build once, use anywhere... but also requires a lot of the other aspects of OSS
Collaboration and Contribution
"group mindset" to catch issues a solo dev might not
critical for having a secure ecosystem
Security
OSS is secure, and often more secure than closed source projects
most important is that collaboration mentioned a moment ago
there are challenges in gov that we'll talk about later
Transparency
without this, we don't get collaboration and we don't get security
one of the areas that gov general agrees is good about OSS
Cost *
Asterisk here because while TCO may be lower, it is not zero-cost
gov and private orgs must spend money (time) to participate in the process
Reference Harvard study (and OS Summit Keynote) on value of open source
For the people...
the people's taxes pay for all gov systems, so that code is for you
https://www.flickr.com/photos/thepreiserproject/
most common argument against OSS from gov, but mostly because we don't consume it well
also applies to our code being published: "if we open it, bad actors will know our vulns!"
"It's illegal"
https://undraw.co
Not a joke, some people in gov think both using AND publishing is illegal
for publishing, it's about contractor IP
http://disney.wikia.com/wiki/Seagulls_(Finding_Nemo)
inane argument... the people paid for it, code belongs to them
Lack of Techincal Knowledge
http://www.doncio.navy.mil/CHIPS/ArticleDetails.aspx?ID=7076
Grace Hopper was an exceptional computer scientist, but we've lost that tech knowledge
no longer have enough people in gov to call out bad things and develop/approve good processes
Stagnation
https://commons.wikimedia.org/wiki/File:III-A-12.jpg
both in the code and the people
Code: we wall off our systems, then never touch them again
People: don't always stay up to date on latest industry developments (remember lack of tech knowledge)
"M" for memo (from OMB), "16" for 2016, "21" sequential identifier
Open source has been happening in gov for decades, but this policy really started the current movement
Focused a lot on build vs buy (preferring COTS and existing solutions)
Section 5: Open Source Software
Pilot program to release 20% of gov code as OSS (ended in 2019)
Participation in the community
Open development practices
Community engagement
Accepting code contributions
Focus on documentation
What does 20% mean here? LoC? Projects? Files?
Section 4: Goverment-Wide Code Reuse
Data rights to share code
Code inventory
Data rights were critical for gov to open source its code
Inventory was of ALL custom developed code, not just OSS
Code.gov
Liaison for OSS in fed gov, tracked progress of all agencies
Did not host code, but established guidance and best practices
Code.gov
Digital.gov
Most guidance still exists on digital.gov, but no more agency tracking or liaising
SHARE IT Act
congress.gov/bill/118th-congress/house-bill/9566
Data rights to share code
Goverment-wide code access and reuse
Code inventory
There's executive policy, but then there's law; passed in 2024
Note similarities to M-16-21! (on purpose)
This is important because the exec branch can't get rid of it, but also more accountability mechanisms
{
"agency" : "DHS" ,
"releases" : [
{
"name" : "trustymail" ,
"contact" : { ... },
"description" : "Scan domains and return data based on trustworthy email best practices" ,
"homepageURL" : "https://github.com/cisagov/trustymail" ,
"repositoryURL" : "https://github.com/cisagov/trustymail.git" ,
"languages" : [ "Python" , "Shell" , "Dockerfile" ],
"organization" : "Cybersecurity and Infrastructure Security Agency" ,
"permissions" : {
"licenses" : [{ "name" : "CC0-1.0" }]
},
"status" : "Development" ,
"tags" : [ ... ],
...
},
{ ... }
]
}
One example of a project, note that this one is OSS which you can see from license
Many agencies have an inventory and top level (.gov domain), but most not complete
EO 14144 (January 2025)
Section 2(c) (was 2(e)):
CISA must create "recommendations to agencies on the use of security assessments and patching of
open source software and best practices for contributing to open source software projects ."
"EO" is executive order, this one was revised recently, but still in effect
Contributing to upstream projects is essential for a secure ecosystem
Agency Open Source Policies & Guidance
Unfortunately, most of these are focused only on publication and not consumption
Not a complete list, but many agency policies and guidance are only internally published
Is anyone actually sharing code?
This site (government.github.com) has a ton of world-wide public sector entities publishing OSS now
Is anyone actually sharing code?
"US Federal" is just one section, but with 164 orgs!
The reality is that many agencies are publishing OSS, and ALL OF THEM are consuming it
Some Examples
SE Linux: developed by NSA, open sourced in 2000
USWDS: biggest cross-gov project, used by all agencies, contributions from all over
Open MCT: mission control framework
Most recently, the IRS open sourced Direct File, a free way to file your taxes online
What about upstream OSS?
Government is (arguably) the largest consumer of OSS ...
... and might be the worst consumer of open source.
Fed Gov spends over $100 billion on IT & cyber systems
DHS alone operates thousands of systems, hundreds of which are considered mission essential
It's not just about publishing, it's about how we consume AND support ecosystem
What's the process for using OSS in gov?
1. Selection
How we decide to use a piece of OSS, what are the criteria?
Devs typically know what they want and need functionally, but what about docs, tests, CI, security, etc?
1. Selection
No standardized process, frequently ignore warning signs (stale repos, no velocity, single contributor, etc)
2. Consumption
How do we pull dependencies into our build process? How do we ensure we do so safely?
2. Consumption
No standardized process, limited use of mirrors, often a "one and done" situation
3. Contribution
When we find bugs or vulns in OSS, what do we do? What about when we need new features?
3. Contribution
No standardized process, blockers from legal, security, privacy (remember "Challenges")
This one often comes down to poor software contracts... more in a min
The Possibilities
Reminder: these views are my own!
Goal: Increase Open Source Publication
Clear guidance on the process
Build modular, reusable components
Make it a contract requirement
Enforce secure coding practices
Contracts: forcing a company to START from an open source approach will force them to think twice about their bad practices
Secure Coding: "Secure by Design" from CISA and the Secure Software Development Framework from NIST
Goal: Secure Government Systems
Baseline OSS selection process
Automate OSS scanning & approval
Use mirrors
Guidance on OSS updating
guidance needs to be cross-agency! CISA will be doing some of this based on EO 14144
Goal: Support a Secure Ecosystem
Contribute all security fixes upstream
Cotnributions to OSS we rely on
Grants for critical OSS infrastructure
Be an active participant in the community
Upstream security fixes need to be required in gov contracts
Being an active participant isn't hard: XML parsing library efficiency config option example
If we do this right, we can inject hundreds of thousands of developers into the OSS ecosystem!
What can you do?
As a contractor...
Do better. Do this on your own. You don't need specific contract terms to do it!
As a federal employee...
push for open-by-default practices and better IT contracts!
As a private indivudal...
contribute to gov OSS!
comment on proposed new regulations that affect IT systems: regulations.gov
State of Open Sourcein the Federal Government
Jordan Kasper
@jakerella.bsky.social