IP Library › Granted Patent US 12,327,110
Granted Patent B2
US 12,327,110 · App. 17/898,949 · Granted Jun 10, 2025

Software bill of materials handshake for cloud-based code execution

Inventor: Nadhem Al-Fardan (Budaia, BH)
Assignee: CISCO TECHNOLOGY, INC.
G06F8/71
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,327,110
App. No.
17/898,949
Filed
Aug 30, 2022
Granted
Jun 10, 2025
Kind
B2
Art Unit
2193
USPC
717/121
Abstract

A method, computer system, and computer program product are provided for cloud-based code execution. A computing service receives a request from a client to provide to the client a software bill of materials corresponding to the computing service. The software bill of materials is provided to the client. Executable code is received from the client, wherein the client provides the executable code based on the client analyzing the software bill of materials. In response to receiving an execution instruction, the computing service executes the executable code.

Claims (42)

1. A computer-implemented method comprising:

receiving, by a computing service, a request from a client to provide to the client a software bill of materials describing one or more software components that are stored on the computing service;

providing, to the client, the software bill of materials;

receiving, from the client, a software configuration request based on the client analyzing the software bill of materials;

replacing, by the computing service, an untrustworthy software component of the one or more software components with an alternative trustworthy software component based on the software configuration request;

receiving, from the client, executable code, wherein the client provides the executable code based on the one or more software components; and

in response to receiving an execution instruction, executing the executable code using the one or more software components.

2. The computer-implemented method of claim 1 , wherein the computing service is a serverless computing environment.

3. The computer-implemented method of claim 1 , wherein the client selects the computing service from a plurality of computing services based on the computing service being configured to provide the software bill of materials to the client.

4. The computer-implemented method of claim 1 , wherein the software bill of materials includes a digital signature to authenticate that the software bill of materials corresponds to the computing service.

5. The computer-implemented method of claim 1 , wherein the software bill of materials includes a nonce.

6. The computer-implemented method of claim 1 , wherein the execution instruction causes the computing service to automatically perform a subsequently requested computing task that is requested by the client within a predetermined duration of time after the execution instruction is received by the computing service.

7. The computer-implemented method of claim 1 , wherein the request from the client indicates a particular format for the software bill of materials.

8. The computer-implemented method of claim 1 , wherein the client is configured to analyze the software bill of materials to determine the untrustworthy software component.

9. The computer-implemented method of claim 1 , wherein the client is configured to scan the software bill of materials to determine the computing service contains a cryptographic component or an antimalware component.

10. A computer system comprising:

one or more computer processors;

one or more computer readable storage media; and

program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising instructions to:

receive, by a computing service, a request from a client to provide to the client a software bill of materials describing one or more software components that are stored on the computing service;

provide, to the client, the software bill of materials;

receive, from the client, a software configuration request based on the client analyzing the software bill of materials;

replace, by the computing service, an untrustworthy software component of the one or more software components with an alternative trustworthy software component based on the software configuration request;

receive, from the client, executable code, wherein the client provides the executable code based on the one or more software components; and

in response to receiving an execution instruction, execute the executable code using the one or more software components.

11. The computer system of claim 10 , wherein the computing service is a serverless computing environment.

12. The computer system of claim 10 , wherein the client selects the computing service from a plurality of computing services based on the computing service being configured to provide the software bill of materials to the client.

13. The computer system of claim 10 , wherein the software bill of materials includes a digital signature to authenticate that the software bill of materials corresponds to the computing service.

14. The computer system of claim 10 , wherein the software bill of materials includes a nonce.

15. The computer system of claim 10 , wherein the execution instruction causes the computing service to automatically perform a subsequently requested computing task that is requested by the client within a predetermined duration of time after the execution instruction is received by the computing service.

16. The computer system of claim 10 , wherein the request from the client indicates a particular format for the software bill of materials.

17. A computer-implemented method comprising:

providing a request, by a client, to a computing service to provide to the client a software bill of materials describing one or more software components that are stored on the computing service;

receiving the software bill of materials;

analyzing the software bill of materials to determine a software configuration request;

providing the software configuration request to the computing service to cause the computing service to replace an untrustworthy software component of the one or more software components with an alternative trustworthy software component; and

in response to determining that the untrustworthy software component is replaced with the alternative trustworthy software component, providing, to the computing service, executable code for execution by the computing service using the one or more software components of the computing service.

18. The computer-implemented method of claim 17 , further comprising:

providing an execution instruction to the computing service to cause the computing service to execute the executable code.

19. The computer-implemented method of claim 17 , wherein the untrustworthy software component is identified from a plurality of unapproved software components.

20. The computer-implemented method of claim 17 , wherein the software bill of materials includes a digital signature to authenticate that the software bill of materials corresponds to the computing service.

21. The computer-implemented method of claim 17 , wherein the request indicates a particular format for the software bill of materials.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2022
From: AL-FARDAN, NADHEM
To: CISCO TECHNOLOGY, INC.
Reel/Frame 060957/0564 →
Continuity (1)
Related Publication 20240069909A1 · Feb 29, 2024
References Cited (35)
US 7874008B2 · Chang · 2011 [cited by examiner]
US 7971182B1 · Vlaovic · 2011 [cited by examiner]
US 8307362B1 · Gong · 2012 [cited by examiner]
US 8352941B1 · Protopopov · 2013 [cited by examiner]
US 8819106B1 · Sirota · 2014 [cited by examiner]
US 9792429B2 · Milner · 2017 [cited by examiner]
US 9979780B1 · Faibish · 2018 [cited by examiner]
US 10229276B2 · Lester · 2019 [cited by examiner]
US 10324701B1 · Stickle · 2019 [cited by examiner]
US 10491603B1 · Robinson · 2019 [cited by examiner]
US 11349670B1 · Miller · 2022 [cited by applicant]
US 12107896B2 · Schutt · 2024 [cited by examiner]
US 20040181790A1 · Herrick · 2004 [cited by examiner]
US 20130111584A1 · Coppock · 2013 [cited by examiner]
US 20130159972A1 · Dudek · 2013 [cited by examiner]
US 20160378558A1 · LaMantia · 2016 [cited by examiner]
US 20170169229A1 · Brucker · 2017 [cited by examiner]
US 20180088999A1 · Matsumoto · 2018 [cited by examiner]
US 20180115585A1 · Rubakha · 2018 [cited by applicant]
US 20180276404A1 · Dotan-Cohen · 2018 [cited by examiner]
US 20190014013A1 · Poort · 2019 [cited by examiner]
US 20190087161A1 · Sathe · 2019 [cited by examiner]
US 20200007418A1 · Greenstein · 2020 [cited by examiner]
US 20200082336A1 · Vuppala et al. · 2020 [cited by applicant]
US 20210144013A1 · Chen · 2021 [cited by applicant]
US 20210165874A1 · Li · 2021 [cited by examiner]
US 20230289451A1 · Mackenbach · 2023 [cited by examiner]
US 20230367883A1 · Bussell · 2023 [cited by examiner]
CA 3093080A1 · 2019 [cited by examiner]
Kerner, Sean Michael, “Generating a Software Bill of Materials Is Becoming Essential”, https://www.itprotoday.com/devops-and-software-development/generating-software-bill-materials-becoming-essential, Jul. 2, 2021, 11 p… [cited by applicant]
Jenkins, “Carbonetes Serverless Container Scanning and Policy Compliance”, https://plugins.jenkins.io/carbonetes-serverless-container-scanning-and-policy-compliance/3/, downloaded Jul. 13, 2022, 3 pages. [cited by applicant]
Wikipedia, “Software supply chain”, https://en.wikipedia.org/wiki/Software_supply_chain, Aug. 24, 2022, 2 pages. [cited by applicant]
National Telecommunications and Information Administration, “Software Bill of Materials”, https://www.ntia.gov/SBOM, downloaded Aug. 30, 2022, 3 pages. [cited by applicant]
Wikipedia, “Function as a service”, https://en.wikipedia.org/wiki/Function_as_a_service, May 4, 2022, 2 pages. [cited by applicant]
Wikipedia, “Serverless computing”, https://en.wikipedia.org/wiki/Serverless_computing, Aug. 29, 2022, 5 pages. [cited by applicant]
Cited By (1)
US 12,688,036