IP Library › Granted Patent US 11,615,181
Granted Patent B2
US 11,615,181 · App. 17/217,345 · Granted Mar 28, 2023

Methods for managing verification and validation of third-party code and devices thereof

Inventor: David Slik (British Columbia, CA)
Assignee: NETAPP, INC.
G06F21/51G06F21/57G06F21/64G06F2221/033
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 11,615,181
App. No.
17/217,345
Granted
Mar 28, 2023
Kind
B2
Abstract

The disclosed technology relates to verifying and validating a received executable function to be executed on a function as a service platform (FaaS), by applying one or more verification and validation techniques prior to runtime. The verified and validated executable function is temporarily stored. The temporarily stored verified and validated executable function is executed on the FaaS platform at the runtime.

Claims (50)

1. A method, comprising:

verifying and validating, by a computing device, a received executable function to be executed on a function as a service (FaaS) platform, by applying one or more verification and validation techniques prior to runtime, the one or more verification and validation techniques including analyzing, by the computing device, the received executable function to determine one or more of: a format and a structure of one or more instructions of the received executable function are compliant with a stored software code policy, the received executable function is free of malicious software code, and the received executable function is free of input validation errors;

determining, by the computing device, when the received executable function satisfies the applied one or more verification and validation techniques prior to temporarily storing the received executable function;

rejecting, by the computing device, the received executable function from executing at runtime, when the determination indicates the received executable function fails to satisfy the applied one or more verification and validation techniques prior to temporarily storing the received executable function;

temporarily storing, by the computing device, the verified and validated executable function when the determination indicates the received executable function satisfies the applied one or more verification and validation techniques; and

executing, by the computing device, the temporarily stored verified and validated executable function at the runtime on the FaaS platform.

2. The method as set forth in claim 1 , further comprising:

generating, by the computing device, a signature for the verified and validated executable function; and

temporarily storing, by the computing device, the generated signature and the verified and validated executable function in a client device.

3. The method as set forth in claim 2 , further comprising:

obtaining, by the computing device, the verified and validated executable function from the client device at the runtime;

verifying, by the computing device, a stored signature associated with the obtained verified and validated executable function to determine when there are one or more changes to the obtained verified and validated executable function; and

executing, by the computing device, the obtained verified and validated executable function when the stored signature is verified at the runtime.

4. The method as set forth in claim 1 , further comprising analyzing, by the computing device, the received executable function to determine that the format and the structure of the one or more instructions of the received executable function are compliant with the stored software code policy.

5. The method as set forth in claim 1 , further comprising analyzing, by the computing device, the received executable function to determine that the received executable function is free of malicious software code and input validation errors.

6. A non-transitory machine readable medium having stored thereon instructions comprising machine executable code which when executed by at least one machine causes the machine to:

verify and validate a received executable function to be executed on a function as a service (FaaS) platform, by applying one or more verification and validation techniques prior to runtime, the one or more verification and validation techniques including analyzing the received executable function to determine the received executable function is free of malicious software code and a format and a structure of one or more instructions of the received executable function are compliant with a stored software code policy;

temporarily store the verified and validated executable function; and

execute the temporarily stored verified and validated executable function at the runtime on the FaaS platform.

7. The non-transitory machine readable medium as set forth in claim 6 , wherein the machine executable code, when executed by the machine, further causes the machine to:

determine when the received executable function satisfies the applied one or more verification and validation techniques prior to the temporarily storing; and

reject the received executable function from executing at runtime when the determination indicates that the received executable function fails to satisfy the applied one or more verification and validation techniques prior to the storing.

8. The non-transitory machine readable medium as set forth in claim 7 , wherein the machine executable code, when executed by the machine, further causes the machine to:

generate a signature for the verified and validated executable function; and

temporarily store the generated signature and the verified and validated executable function in a client device.

9. The non-transitory machine readable medium as set forth in claim 8 , wherein the machine executable code, when executed by the machine, further causes the machine to:

obtain the verified and validated executable function from the client device at the runtime;

verify a stored signature associated with the obtained verified and validated executable function to determine when there are one or more changes to the obtained verified and validated executable function; and

execute the obtained verified and validated executable function when the stored signature is verified at the runtime.

10. The non-transitory machine readable medium as set forth in claim 6 , wherein the machine executable code, when executed by the machine, further causes the machine to analyze the received executable function to determine that the received executable function is free of input validation errors.

11. A computing device, comprising:

a memory containing machine readable medium comprising machine executable code having stored thereon instructions for managing workload within a storage system; and

a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:

verify and validate a received executable function to be executed on a function as a service (FaaS) platform, by applying one or more verification and validation techniques prior to runtime, the one or more verification and validation techniques including analyzing the received executable function to determine when the received executable function is free of any input validation error based on an application of one or more data validation rules;

insert input validation code to software code of the executable function to correct the input validation error when the determination indicates the executable function has the input validation error;

temporarily store the executable function; and

execute the temporarily stored executable function at the runtime on the FaaS platform.

12. The computing device as set forth in claim 11 , wherein the processor is further configured to execute the machine executable code to further cause the processor to:

determine when the received executable function satisfies the applied one or more verification and validation techniques prior to the temporarily storing; and

reject the received executable function from executing at runtime when the determination indicates that the received executable function fails to satisfy the applied one or more verification and validation techniques prior to the storing.

13. The computing device as set forth in claim 11 , wherein the processor is further configured to execute the machine executable code to further cause the processor to:

generate a signature for the executable function; and

temporarily store the generated signature and the executable function in a client device.

14. The computing device as set forth in claim 13 , wherein the processor is further configured to execute the machine executable code to further cause the processor to:

obtain the executable function from the client device at the runtime; and

verify a stored signature associated with the obtained executable function to determine when there are one or more changes to the obtained executable function; and

execute the obtained executable function when the stored signature is verified at the runtime.

15. The computing device as set forth in claim 11 , wherein the processor is further configured to execute the machine executable code to further cause the processor to analyze the received executable function to determine that a format and a structure of one or more instructions of the received executable function are compliant with a stored software code policy.

16. The computing device as set forth in claim 11 , wherein the processor is further configured to execute the machine executable code to further cause the processor to analyze the received executable function to determine that the received executable function is free of malicious software code.

17. The computing device as set forth in claim 11 , wherein the processor is further configured to execute the machine executable code to further cause the processor to replace each of one or more data access references in the verified and validated executable function with a location-independent abstraction prior to temporarily storing the executable function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2021
From: SLIK, DAVID
To: NETAPP, INC.
Reel/Frame 055771/0788 →
Continuity (1)
Related Publication 20220318371A1 · Oct 6, 2022