The Update Framework (TUF)
The Update Framework (TUF) is a software framework designed to protect mechanisms that automatically identify and download updates to software.[1] TUF uses a series of roles and keys to provide a means to retain security, even when some keys or servers are compromised. It does this with a stated goal of requiring minimal changes and effort from repository administrators, software developers, and end users.[2] In this way, it protects software repositories, which are an increasingly desirable target for hackers.[3][4][5][6][7]
A software update, sometimes referred to as a patch, can add functionalities and address flaws in existing code.[8] Unfortunately, in delivering updates to neutralize flaws, these systems can unintentionally introduce vulnerabilities that, in turn, can be exploited by attackers.[9][10][11]
The design of TUF acknowledges that all software repositories will likely be compromised at some point, so any security strategy must be prepared for that scenario. TUF-enabled systems focus on limiting the impact of attacks and providing a mechanism for recovery. This strategy of “compromise-resilience” improves on existing methods based on keysigning [12][13] by incorporating techniques, such as separation of signing duties and setting a threshold number of required signatures. Dividing the responsibility for authenticating a file or image ensures no single hacker can compromise the system. It also helps to ensure that keys used to perform a sensitive action can be stored in a secure, offline manner. Even if one party—or the repository itself—is compromised, the number of projects affected will be limited. [14]
To date, the list of tech companies and organizations using TUF include IBM,[15] VMware,[16] Digital Ocean,[17] Microsoft,[18] Google,[19] Amazon,[20] Leap,[21] Kolide,[22] Docker,[23] and Cloudflare.[24]
The technology that evolved into TUF was first developed at the University of Washington in 2009 by Justin Samuel and Justin Cappos, and its principles were first discussed in a paper Samuel and Cappos coauthored with Nick Mathewson and Roger Dingledine, researchers from The Tor Project, Inc..[25] Since 2011, TUF has been based at New York University Tandon School of Engineering, where Cappos continues to work with a team of graduate students and programmers in the Secure Systems Lab to supervise its maturation, development and integration into production use across different communities.
One of the more significant earlier adoptions of TUF in the open-source community was by Docker Content Trust,[26][27] an implementation of the Notary project from Docker that deploys Linux containers.[28] Notary, which is built on TUF, can both certify the validity of the sources of Docker images, and encrypt the contents of those images.[29][30] Through Notary Content Trust, TUF also secures operations for Microsoft Azure.[31]
Since 2017, both Notary and TUF have been hosted by the Linux Foundation under the Cloud Native Computing Foundation.[32][33] Cappos remains with the project as consensus builder. In December 2019, TUF was awarded “graduate” status within the organization, signifying that it has completed a series of steps needed to move the project to the highest level of maturity in the CNCF.[34] These steps included completing an independent third party security audit, adopting the CNCF Code of Conduct, and explicitly defining a project governance and committer process. TUF became both the first security project and the first project led by an academic researcher to graduate within CNCF.[35]
Because it was designed for easy adaptation, versions of TUF have been created in a number of programming languages. It has been independently implemented in the Go language by Flynn, an open-source platform as a service (PaaS) for running applications in production.[36][37][38] Implementations of TUF have also been written in Haskell,[39] Ruby[40] and Rust.[41] A Rust version called Tough[42] was created by Amazon Web Services Labs for use with on-demand cloud computing platforms and APIs . Google has also implemented a version of TUF to secure its open source operating system, Fuchsia.[43]
In 2017, an adaptation of this technology called Uptane, designed to protect computing units on automobiles, was named one of the top security inventions for 2017 by Popular Science.[44]
References
- Diaz, Vladimir; et al. "The Update Framework Specification". V.1.0. SSL NYU Tandon. Retrieved 14 February 2018.
- "The Update Framework: A framework for securing software update systems". SSL NYU Tandon. Retrieved 13 April 2020.
- "The Cracking of Kernel.org". The Linux Foundation. 31 August 2011. Retrieved 1 February 2018.
- "Debian Investigation Report after Server Compromise". Debian.org. 2 December 2003. Retrieved 1 February 2018.
- "Infrastructure report,2008-08-22 UTC 1200". Redhat.com. 22 August 2008. Retrieved 1 February 2018.
- Bradbury, Danny (30 October 2018). "Snakes in the grass! Malicious code slithers into Python PyPI repository". Naked Security.com. Retrieved 13 April 2020.
- Claburn, Thomas (26 November 2018). "Check your repos...Crypto-coin-stealing code sneaks into fairly popular NPM lib". The Register. Retrieved 13 April 2020.
- Software Update as a Mechanism for Resilience and Security: Proceedings of a Workshop. National Academies Press. February 2017. pp. 53–58. Retrieved 12 February 2018.
- Redmiles, Elissa (16 May 2017). "Installing Software Updates Makes us WannaCry". Scientific American. Retrieved 13 November 2017.
- Zetter, Kim (25 March 2019). "Hackers Hijacked ASUS Software Updates to Install Backdoors on Thousands of Computers". Vice.com. Retrieved 13 April 2020.
- Cimpanu, Catalin (10 May 2019). "Software update crashes police ankle monitors in the Netherlands". ZDNet.com. Retrieved 13 April 2020.
- Spring, Tom (7 November 2017). "Assessing Weaknesses in Public Key Infrastructure". Threatpost.com. Retrieved 13 February 2018.
- Chandra, Sourabh; Paira, Smita; Alam, Sk Safikul; Sanyal, Goutam (November 2014). A Comparative Survey of Symmetric and Asymmetric Key Cryptography. ICECCE. pp. 83–93.
- Kuppusamy, Trishank Karthik; Torres-Arias, Santiago; Diaz, Vladimir; Cappos, Justin (March 2016). Diplomat: Using Delegations to Protect Community Repositories. Usenix. pp. 567–581.
- "Signing images for trusted content". IBM Cloud Docs. 13 February 2020. Retrieved 13 April 2020.
- . VMware https://www.vmware.com/. Retrieved 13 April 2020. Missing or empty
|title=
(help) - . Digital Ocean https://www.digitalocean.com/. Retrieved 13 April 2020. Missing or empty
|title=
(help) - "Content trust in Azure Container Registry". Microsoft. 6 September 2019. Retrieved 13 April 2020.
- "Fuchsia Project". Google. 2 April 2020. Retrieved 13 April 2020.
- "AWS Tough Repository". Amazon. 9 April 2020. Retrieved 13 April 2020.
- "New releases for a new year". Leap Encryption Action Project. 23 December 2014. Retrieved 13 April 2020.
- "Kolide Updater". Kolide. 1 November 2014. Retrieved 13 April 2020.
- "Docker Trusted Registry". Mirantis.com. Retrieved 13 April 2020.
- Sullivan, Nick (16 March 2018). "A container identity bootstrapping tool". Cloudflare Blog. Retrieved 13 April 2020.
- Samuel, Justin; Mathewson, Nick; Cappos, Justin; Dingledine, Roger. Survivable Key Compromise in Software Update Systems (PDF). ACM. pp. 61–72 – via CCS 2010.
- Monica, Diogo (12 August 2015). "Introducing Docker Content Trust – Docker Blog". Blog.Docker.com. Docker. Retrieved 2 October 2016.
- "Docker Content Trust Protects Integrity of Dockerized Content". www.CIOReview.com. CIO Review. Retrieved 2 October 2016.
- Fulton III, Scott M. (12 August 2015). "Docker: With Content Trust, You Can Run Containers on Untrusted Networks – The New Stack". TheNewStack.io. The New Stack. Retrieved 3 October 2016.
- Vaughan-Nichols, Steven J. "Docker 1.8 adds serious container security ZDNet". ZDNet. CBS Interactive. Retrieved 3 October 2016.
- Myers, Astasia (13 February 2018). "Docker's Head of Security David Lawrence: on TUF, Notary, and the importance of software security". Medium. Retrieved 13 April 2020.
- "Content trust in Azure Container Registry". Microsoft. 6 September 2019. Retrieved 13 April 2020.
- Jackson, Joab (24 October 2017). "CNCF Brings Security to the Cloud Native Stack with Notary, TUF Adoption". The New Stack.
- Ferguson, Scott (24 October 2017). "Cloud Native Computing Foundation Adopts 2 Security Projects". Enterprise Cloud News.
- "Cloud Native Computing Foundation Announces TUF Graduation". CNCF. 18 December 2019. Retrieved 13 April 2020.
- {{cite web|url=https://lwn.net/Articles/807777/%7Ctitle=Cloud Native Computing Foundation Announces TUF Graduation|publisher=LWN.net|date=19 December 2019|accessdate=13 April 2020}
- Yegulalp, Serdar. "Open source Flynn takes the headaches out of app deployment". www.Infoworld.com. IDG. Retrieved 3 October 2016.
- "Security – Flynn". flynn.io. Retrieved 3 October 2016.
- "flynn/go-tuf". www.github.com. GitHub, Inc. Retrieved 3 October 2016.
- "Hackable Security Alpha Release". Well-Typed.com. 8 July 2015. Retrieved 13 April 2020.
- Shay, Xavier (6 December 2013). "Securing RubyGems with TUF, Part 1". Medium.com. Retrieved 6 April 2018.
- "Rust implementation of The Update Framework (TUF)". Retrieved 13 April 2020.
- "AWSlabs/Tough". 5 November 2019. Retrieved 13 April 2020.
- "Fuchsia Project". Google. 2 April 2020. Retrieved 13 April 2020.
- Atherton, Kelsey D.; Feltman, Rachel (17 October 2017). "The Year's Most Important Innovations in Security". Popular Science.
External links
Selected publications
- 17th ACM Computer and Communications Security Conference (4-8 October 2010) Samuel, J., Mathewson, N., Cappos, J., and Dingledine, R., Survivable Key Compromise in Software Update Systems
- 13th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’16)(16-18 March 2016) Kuppusamy,T.K., Torres-Arias, S., Diaz, V. and Cappos, J. Diplomat: Using Delegations to Protect Community Repositories
- The 2017 USENIX Annual Technical Conference (USENIX ATC 2017) (16–18 March 20167) Kuppusamy,T.K., Diaz, V. and Cappos, J. Mercury: Bandwidth-Effective Prevention of Rollback Attacks Against Community Repositories