Award Abstract # 2054692
SaTC: TTP: Medium: Securing Python's Software Supply Chain

NSF Org: CNS
Division Of Computer and Network Systems
Recipient: NEW YORK UNIVERSITY
Initial Amendment Date: March 17, 2021
Latest Amendment Date: May 21, 2021
Award Number: 2054692
Award Instrument: Standard Grant
Program Manager: Daniel F. Massey
dmassey@nsf.gov
 (703)292-5147
CNS
 Division Of Computer and Network Systems
CSE
 Directorate for Computer and Information Science and Engineering
Start Date: July 1, 2021
End Date: June 30, 2024 (Estimated)
Total Intended Award Amount: $800,000.00
Total Awarded Amount to Date: $800,000.00
Funds Obligated to Date: FY 2021 = $800,000.00
History of Investigator:
  • Justin Cappos (Principal Investigator)
    jcappos@nyu.edu
Recipient Sponsored Research Office: New York University
70 WASHINGTON SQ S
NEW YORK
NY  US  10012-1019
(212)998-2121
Sponsor Congressional District: 10
Primary Place of Performance: New York University
70 Washington Square S
New York
NY  US  10012-1019
Primary Place of Performance
Congressional District:
10
Unique Entity Identifier (UEI): NX9PXMKW5KW8
Parent UEI:
NSF Program(s): Secure &Trustworthy Cyberspace
Primary Program Source: 01002122DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 025Z, 7924
Program Element Code(s): 806000
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

Creating and distributing software written in Python, in a secure manner, is surprisingly difficult. And as many recent incidents demonstrate, the security of this software chain is dramatically vulnerable. Right now, in nearly all Python packaging and distribution tools, there are no mechanisms in place for someone who downloads software to understand whether a malicious party has not inserted or removed code, or if the code was even written by the right developers! This work will for the first time capture metadata about the steps of the Python software supply chain systematically. This project will carry information between the steps of the chain in a way that an external party can verify author signing and repository signing of packages. This project will also be breaking ground for researchers and developers who want to improve how other interpreted languages handle managing dependencies. The project's impacts are particularly strong in academia, science, and industry, where Python is the most widely used programming language; millions of users will be more protected against a variety of attacks.

This project transitions two security mechanisms -- backtracking dependency resolution and The Update Framework (TUF) -- into practical use in the core Python infrastructure. Backtracking dependency resolution ensures that users get understandable package dependency installation, even in the face of attacks or missing metadata. TUF ensures that even a compromise of the major package infrastructure will have severely limited impact on clients. Together, the resolver and TUF work will ensure that important research transitions into substantial security improvements for all Python software, and will positively impact millions of developers and many more users.

This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH

Note:  When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher. Some full text articles may not yet be available without a charge during the embargo (administrative interval).

Some links on this page may take you to non-federal websites. Their policies may differ from this site.

Moore, Marina and Kuppusamy, Trishank Karthik and Cappos, Justin "Artemis: Defanging Software Supply Chain Attacks in Multi-repository Update Systems" , 2023 https://doi.org/10.1145/3627106.3627129 Citation Details

PROJECT OUTCOMES REPORT

Disclaimer

This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.

This project improved the state of security for Python, one of the most widely used programming languages.  Our efforts make certain types of attack on the Python community much harder to launch.  We helped to reduce the likelihood of certain attacks related to dependency confusion.  As a result, this addresses many attacks which involve causing users to install an incorrect or incompatible piece of software.  As a result, developers are more likely to create correct, stable software.

 

Furthermore, we also helped not only the Python community, but several other large communities (such as Ruby and Github) add support for a system called TUF (The Update Framework) which makes a hack of them less harmful to users.  TUF is already used on millions of devices to protect them from software repository hacks.  The deployment in the ecosystems can potentailly reduce the harm to millions of devices in the case of an incident.  

 

All of the work here has been done in an open manner, with participants from other companies and organzations freely contributing.  This means that many efforts had impacts and effects well beyond our core team.  Our work is hosted under open source organizations and have a majority of leadership from outside our core team.  We are confident these communities will continue to thrive and improve software security after the end of this award period.


Last Modified: 07/25/2024
Modified by: Justin Cappos

Please report errors in award information by writing to: awardsearch@nsf.gov.

Print this page

Back to Top of page