IP Library Granted Patent US 9,853,996
Granted Patent B2
US 9,853,996 · App. 15/098,263 · Granted Dec 26, 2017

System and method for identifying and preventing malicious API attacks

Inventors: Roey Eliyahu (Yavne, IL); Omer Sadika (Yad Binyamin, IL)
Assignee: SECFUL, INC.
H04L63/1441G06F21/552H04L63/1416H04L63/1425H04L67/36H04L67/42
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 9,853,996
App. No.
15/098,263
Granted
Dec 26, 2017
Kind
B2
Abstract

A system and method for identifying and preventing malicious application programming interface attacks is configured to, during a learning stage: monitor all requests sent to and from the server API; identify one or more first characteristic data points of each request and response sent during the learning stage; and determine, based at least in part on the identified one or more first characteristic data points, one or more characteristic data models, wherein a characteristic data model represents at least one of an expected input to the API and an expected output of the API; and during a protection stage: monitor all requests sent to and from the server API; identify one or more second characteristic data points of each request and response sent during the protection stage; and one of validate and invalidate the identified one or more second characteristic data points against the one or more characteristic data models.

Claims (101)

1. A method for identifying and preventing malicious server-side application programming interface (API) attacks over a network in a client-server architecture, performed on a computer having a processor, a memory, and one or more code sets stored in the memory and executed by the processor, the method comprising:

during a learning stage:

monitoring, by the processor, all requests sent to a server-side API over the network and all responses sent from the server-side API over the network;

identifying, by the processor, one or more first characteristic data points of each request and response sent during the learning stage; and

determining, by the processor, based at least in part on the identified one or more first characteristic data points, one or more characteristic data models, wherein a characteristic data model represents at least one of an expected input to the API and an expected output of the API; and

during a protection stage:

monitoring, by the processor, all requests sent to the server-side API and all responses sent from the server-side API;

identifying, by the processor, one or more second characteristic data points of each request and response sent during the protection stage;

one of validating and invalidating, by the processor, the identified one or more second characteristic data points against the one or more characteristic data models;

generating, by the processor, one or more attacker profiles based at least in part on the validating step;

determining, by the processor, one or more suspicion scores for each attacker profile; and

identifying, by the processor, one or more suspicious profiles based at least in part on respective suspicion scores, wherein all future requests and responses related to an identified suspicious profile are flagged with an alert irrespective of validity.

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

passing to the server, by the processor, requests having no invalidated one or more second characteristic data points; and

passing from the server, by the processor, responses having no invalidated one or more second characteristic data points.

3. The method as in claim 1 , further comprising:

blocking to the server, by the processor, requests having invalidated one or more second characteristic data points; and

blocking from the server, by the processor, responses having invalidated one or more second characteristic data points.

4. The method as in claim 1 , further comprising:

generating, by the processor, an alert for each request having invalidated one or more second characteristic data points; and

generating, by the processor, an alert for each response having invalidated one or more second characteristic data points.

5. The method as in claim 4 , further comprising:

generating, by the processor, an alert timeline, wherein the alert timeline represents a selection of one or more aggregations of alerts, the alerts in each of the one or more aggregations having a predefined similarity, the one or more aggregations being organized in a predefined order; and

displaying, by the processor, the alert timeline on a visual display.

6. The method of claim 1 , further comprising: updating, by the processor, the one or more characteristic data models based at least in part on the identified one or more second characteristic data points of each request and response sent during the protection stage.

7. The method as in claim 1 , wherein the server-side API is one of a RESTful API, a SOAP API, an XML-RPC API, and a WSDL API.

8. The method as in claim 1 , further comprising generating, by the processor, documentation comprising information reflecting a complete structure of the server-side API.

9. A system for identifying and preventing malicious server-side application programming interface (API) attacks over a network in a client-server architecture, comprising:

a computer having a processor and a memory; and

one or more code sets stored in the memory and executed by the processor, which configure the processor to:

during a learning stage:

monitor all requests sent to a server-side API over the network and all responses sent from the server-side API over the network;

identify one or more first characteristic data points of each request and response sent during the learning stage; and

determine based at least in part on the identified one or more first characteristic data points, one or more characteristic data models, wherein a characteristic data model represents at least one of an expected input to the API and an expected output of the API; and

during a protection stage:

monitor all requests sent to the server-side API and all responses sent from the server-side API;

identify one or more second characteristic data points of each request and response sent during the protection stage;

one of validate and invalidate the identified one or more second characteristic data points against the one or more characteristic data models;

generate one or more attacker profiles based at least in part on the validating step;

determine one or more suspicion scores for each attacker profile; and

identify one or more suspicious profiles based at least in part on respective suspicion scores, wherein all future requests and responses related to an identified suspicious profile are flagged with an alert irrespective of validity.

10. The system as in claim 9 , the processor further configured to:

pass to the server requests having no invalidated one or more second characteristic data points; and

pass from the server responses having no invalidated one or more second characteristic data points.

11. The system as in claim 9 , the processor further configured to:

block to the server requests having invalidated one or more second characteristic data points; and

block from the server responses having invalidated one or more second characteristic data points.

12. The system as in claim 9 , the processor further configured to:

generate an alert for each request having invalidated one or more second characteristic data points; and

generate an alert for each response having invalidated one or more second characteristic data points.

13. The system as in claim 12 , the processor further configured to:

generate an alert timeline, wherein the alert timeline represents a selection of one or more aggregations of alerts, the alerts in each of the one or more aggregations having a predefined similarity, the one or more aggregations being organized in a predefined order; and

display the alert timeline on a visual display.

14. The system as in claim 9 , the processor further configured to: update the one or more characteristic data models based at least in part on the identified one or more second characteristic data points of each request and response sent during the protection stage.

15. The system as in claim 9 , wherein the server-side API is one of a RESTful API, a SOAP API, an XML-RPC API, and a WSDL API.

16. The system as in claim 9 , the processor further configured to generate documentation comprising information reflecting a complete structure of the server-side API.

17. A method for identifying and preventing malicious server-side application programming interface (API) attacks over a network in a client-server architecture, performed on a computer having a processor, a memory, and one or more code sets stored in the memory and executed by the processor, the method comprising:

during a learning stage:

monitoring, by the processor, all requests sent to a server-side API over the network from a plurality of client devices and all responses sent from the server-side API over the network to each of the plurality of client devices;

identifying, by the processor, one or more first characteristic data points of each request sent by a given client device and each response sent to the given client device during the learning stage; and

determining, by the processor, based at least in part on the identified one or more first characteristic data points, one or more characteristic data models represents at least one of an expected input to the server-side API and an expected output of the server-side API; and

during a protection stage:

monitoring, by the processor, all requests sent to the server-side API and all responses sent from the server-side API;

identifying, by the processor, one or more second characteristic data points of each request and response sent during the protection stage;

one of validating and invalidating, by the processor, the identified one or more second characteristic data points against the one or more characteristic data models;

passing to and from the server, by the processor, requests having no invalidated one or more second characteristic data points;

blocking to and from the server, by the processor, requests having invalidated one or more second characteristic data points;

generating, by the processor, one or more attacker profiles based at least in part on the validating step;

determining, by the processor, one or more suspicion scores for each attacker profile; and

identifying, by the processor, one or more suspicious profiles based at least in part on respective suspicion scores, wherein all future requests and responses related to an identified suspicious profile are flagged with an alert irrespective of validity.

18. The method as in claim 17 , further comprising:

generating, by the processor, an alert for each request having invalidated one or more second characteristic data points; and

generating, by the processor, and alert for each response having invalidated one or more second characteristic data points.

19. A method for identifying and preventing malicious server-side application programming interface (API) attacks over a network in a client-server architecture, performed on a computer having a processor, a memory, and one or more code sets stored in the memory and executed by the processor, the method comprising:

during a learning stage:

monitoring, by the processor, all requests sent to a server-side API over the network and all responses sent from the server-side API over the network;

identifying, by the processor, one or more first characteristic data points of each request and response sent during the learning stage; and

determining, by the processor, based at least in part on the identified one or more first characteristic data points, one or more characteristic data models, wherein a characteristic data model represents at least one of an expected input to the API and an expected output of the API; and

during a protection stage:

monitoring, by the processor, all requests sent to the server-side API and all responses sent from the server-side API;

identifying, by the processor, one or more second characteristic data points of each request and response sent during the protection stage;

one of validating and invalidating, by the processor, the identified one or more second characteristic data points against the one or more characteristic data models;

generating, by the processor, an alert for each request having invalidated one or more second characteristic data points;

generating, by the processor, and alert for each response having invalidated one or more second characteristic data points;

generating, by the processor, an alert timeline, wherein the alert timeline represents a selection of one or more aggregations of alerts, the alerts in each of the one or more aggregations having a predefined similarity, the one or more aggregations being organized in a predefined order; and

displaying, by the processor, the alert timeline on a visual display.

20. A system for identifying and preventing malicious server-side application programming interface (API) attacks over a network in a client-server architecture, comprising:

a computer having a processor and a memory; and

one or more code sets stored in the memory and executed by the processor, which configure the processor to:

during a learning stage:

monitor all requests sent to a server-side API over the network and all responses sent from the server-side API over the network;

identify one or more first characteristic data points of each request and response sent during the learning stage; and

determine, based at least in part on the identified one or more first characteristic data points, one or more characteristic data models, wherein a characteristic data model represents at least one of an expected input to the API and an expected output of the API; and

during a protection stage:

monitor all requests sent to the server-side API and all responses sent from the server-side API;

identify one or more second characteristic data points of each request and response sent during the protection stage;

one of validate and invalidate the identified one or more second characteristic data points against the one or more characteristic data models;

generate an alert for each request having invalidated one or more second characteristic data points;

generate an alert for each response having invalidated one or more second characteristic data points;

generate an alert timeline, wherein the alert timeline represents a selection of one or more aggregations of alerts, the alerts in each of the one or more aggregations having a predefined similarity, the one or more aggregations being organized in a predefined order; and

display the alert timeline on a visual display.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2019
From: ELIYAHU, ROEY; SADIKA, OMER
To: SECFUL, INC.
Reel/Frame 048638/0478 →
CHANGE OF NAME Recorded Mar 19, 2019
From: SECFUL, INC.
To: SALT SECURITY, INC.
Reel/Frame 048639/0581 →
Continuity (2)
Provisional Application 62146470 · Apr 13, 2015
Related Publication 20160308900A1 · Oct 20, 2016