IP Library Granted Patent US 11,240,045
Granted Patent B2
US 11,240,045 · App. 16/669,015 · Granted Feb 1, 2022

Detection and prevention of unauthorized execution of severless functions

Inventors: Huamin Chen (Westborough, MA); Michael Hingston McLaughlin Bursell (Great Yeldham, GB)
Assignee: Red Hat, Inc.
H04L9/3268H04L9/30H04L9/3242
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,240,045
App. No.
16/669,015
Granted
Feb 1, 2022
Kind
B2
Abstract

Methods and systems for detecting and responding to fabricated or unauthorized events received by serverless computing environments are provided. In one embodiment the method is provided that includes receiving an event from an event source external to the serverless computing environment for execution by function. The method may then include creating a message that includes the events and signing the message with an identifier of the event source. The message may then be received at the function and the identifier of the event source may be validated. The event may then be executed with the function of the serverless computing environment if the identifier of the event sources successfully validated. However, if the identifier of the event source is not successfully validated, execution of the event with the function may be prevented.

Claims (57)

1. A method comprising:

receiving, at a controller of a serverless computing environment, an event from an event source external to the serverless computing environment for execution by a function of the serverless computing environment;

creating, by the controller, a message that includes the event;

signing, by the controller, the message with an identifier of the event source;

receiving the message at the function of the serverless computing environment;

validating the identifier of the event source;

executing the event with the function of the serverless computing environment;

detecting that the function of the serverless computing environment is created within a first container of the serverless computing environment;

determining that a label corresponding to the function indicates that verification is required for events intended for execution by the function; and

creating a second container within the serverless computing device implementing a proxy for the function of the serverless computing environment, wherein receiving the message at the function of the serverless computing environment and validating the identifier of the event source is performed by the proxy for the function of the serverless computing environment.

2. The method of claim 1 , wherein signing the message with the identifier of the event source further comprises generating, as the identifier of the event source, a hash based on at least one of (i) contents of the message and (ii) a private key corresponding to the controller.

3. The method of claim 2 , wherein validating the identifier of the event source further comprises decrypting the hash using a public key of the controller.

4. The method of claim 1 , wherein signing the message with the identifier of the event source further comprises adding, to the message, a certificate authenticating the controller issued by the function.

5. The method of claim 4 , wherein validating the identifier of the event source further comprises:

requesting a certificate corresponding to the controller from a database storing certificates issued by the function;

comparing the certificate corresponding to the controller with the certificate included in the message; and

determining that the certificate corresponding to the controller matches the certificate included in the message.

6. The method of claim 1 , wherein the function of the serverless computing environment is one of multiple functions of the serverless computing environment, and wherein the method further comprises:

identifying, responsive to receiving the event, a type for the event, wherein the type specifies one or more types of tasks for execution in response to the event; and

identifying, as corresponding to the type for the event, the function of the serverless computing environment from among the multiple functions of the serverless computing environment.

7. The method of claim 1 , wherein the second container is a sidecar container of the first container.

8. The method of claim 1 , wherein the event source is one of multiple event sources of the serverless computing environment, wherein the controller is one of multiple controllers of the serverless computing environment, and wherein each of the multiple event sources has a corresponding controller from among the multiple controllers.

9. A system comprising:

a processor; and

a memory storing instructions which, when executed by the processor, cause the processor to:

detect that a function of a serverless computing environment is created within a first container of the serverless computing environment;

determine that a label corresponding to the function indicates that verification is required for events intended for execution by the function;

create a second container within the serverless computing environment implementing a proxy for the function;

receive, at the proxy, a message that includes an event for execution by the function, wherein the message is signed with an identifier of an event source corresponding to the event;

validate, with the proxy, the identifier of the event source;

execute the event with the functions;

receive, at a controller of the serverless computing environment, an event from the event source for execution by the function of the serverless computing environment;

create, by the controller, the message to include the event; and

sign, by the controller, the message with the identifier of the event source,

wherein receiving the message and validating the identifier of the event source is performed by the proxy for the function of the serverless computing environment.

10. The system of claim 9 , wherein the identifier of the event source includes a hash generated based on at least one of (i) contents of the message and (ii) a private key corresponding to the controller.

11. The system of claim 10 , wherein the memory stores further instructions which, when executed by the processor while validating the identifier of the event source, cause the processor to decrypt the hash using a public key of the controller.

12. The system of claim 9 , wherein the identifier of the event source includes a certificate authenticating the controller issued by the function.

13. The system of claim 12 , wherein the memory stores further instructions which, when executed by the processor while validating the identifier of the event source, cause the processor to:

request a certificate corresponding to the controller from a database storing certificates issued by the function;

compare the certificate corresponding to the controller with the certificate included in the message; and

determine that the certificate corresponding to the controller matches the certificate included in the message.

14. The system of claim 9 , wherein the second container is a sidecar container of the first container.

15. The system of claim 9 , wherein the function of the serverless computing environment is one of multiple functions of the serverless computing environment, and wherein the memory stores further instructions which, when executed by the processor while receiving the event from an event source, cause the processor to:

identify a type for the event, wherein the type specifies one or more types of tasks for execution in response to the event; and

identify, as corresponding to the type for the event, the function of the serverless computing environment from among the multiple functions of the serverless computing environment.

16. A non-transitory, computer-readable medium storing instructions which, when executed by a processor, cause the processor to:

detect that a function of a serverless computing environment is created within a first container of the serverless computing environment;

determine that a label corresponding to the function indicates that verification is required for events intended for execution by the function;

create a second container within the serverless computing environment implementing a proxy for the function;

receive, at the proxy, a message that includes an event for execution by the function, wherein the message is signed with an identifier of an event source corresponding to the event;

validate, with the proxy, the identifier of the event source;

execute the event with the function;

receive, at a controller of the serverless computing environment, an event from the event source for execution by the function of the serverless computing environment;

create, by the controller, the message to include the event; and

sign, by the controller, the message with the identifier of the event source,

wherein receiving the message and validating the identifier of the event source is performed by the proxy for the function of the serverless computing environment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2019
From: CHEN, HUAMIN; BURSELL, MICHAEL
To: RED HAT, INC.
Reel/Frame 050878/0292 →
Continuity (1)
Related Publication 20210135883A1 · May 6, 2021