IP Library Granted Patent US 11,063,910
Granted Patent B2
US 11,063,910 · App. 16/050,673 · Granted Jul 13, 2021

Web application firewall for an online service

Inventors: Artur Bergman (San Francisco, CA); Sean Leach (Castle Pines, CO); Tyler McMullen (San Francisco, CA); Christian Peron (San Francisco, CA); Federico Schwindt (San Francisco, CA); Eric Hodel (San Francisco, CA)
Assignee: Fastly, Inc.
H04L63/0263H04L63/0245H04L63/1466H04L67/02H04L67/1065H04L67/2814H04L67/2842H04L67/327
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,063,910
App. No.
16/050,673
Granted
Jul 13, 2021
Kind
B2
Abstract

Disclosed herein are enhancements for operating a web application firewall to reduce load. In one implementation, a method of operating a content server for a web application comprising running a web accelerator with a plurality of threads on the content server. The method further provides receiving a request for content which will be provided to a web application, filtering the request and determining that the content will be requested from a second server. After determining that the content will be requested from a second server, reviewing the request with a web application firewall operating at a network layer 7, forwarding the request, receiving the content, and providing the content. Further, the web application firewall is controlled by a plurality of sets of rules, which can be updated without restarting the web accelerator.

Claims (50)

1. A method of updating a web application firewall running on a content server, comprising:

running a web accelerator configured to utilize scripts with a plurality of threads on the content server;

operating the web application firewall within the web accelerator, wherein the web application firewall is controlled by a plurality of rules, comprising:

a set of operating system rules;

a set of standard rules; and

a set of custom rules;

receiving, from a user, a rule update to at least one of the set of operating system rules, the set of standard rules, and the set of custom rules; and

updating the plurality of rules based at least in part on the rule update without restarting the web accelerator.

2. The method of claim 1 , wherein at least one of the set of operating system rules, the set of standard rules and the set of custom rules comprises a subset of an overall set of rules provided to the user.

3. The method of claim 1 , wherein at least one of the set of operating system rules, the set of standard rules and the set of custom rules includes a new rule provided by the user.

4. The method of claim 1 , wherein at least one of the set of operating system rules, the set of standard rules and the set of custom rules limits content provided to the user in response to a request for content.

5. The method of claim 1 , further comprising:

receiving, at the content server, a request for content;

the content comprising data to be provided to a web application;

processing the request for the content on at least one of the threads, including:

filtering, at a network level 3 or 4, the request for the content;

determining that the content will be requested from a second server;

after determining that the content will be requested from the second server, reviewing the request for the content with the web application firewall (WAF);

forwarding the request for the content to the second server;

receiving the content from the second server; and

providing the content.

6. The method of claim 5 , wherein the second server is an origin server.

7. The method of claim 5 , wherein the second server is a second content server within an infrastructure service.

8. The method of claim 5 , wherein the filtering step comprises comparing an address of a sender of the request for the content to a list of addresses.

9. The method of claim 5 , wherein the step of determining comprises using a hash table to determine whether the content is present in a cache in the content server.

10. The method of claim 5 , wherein the step of determining comprises using a hash table to determine whether the content is current in a cache in the content server.

11. The method of claim 5 , wherein at least one of the set of operating system rules, the set of standard rules and the set of custom rules comprises a subset of an overall set of rules provided to the user.

12. The method of claim 5 , wherein at least one of the set of operating system rules, the set of standard rules and the set of custom rules limits content provided to the user in response to a request for content.

13. A content server, comprising:

a processor, comprising processing circuitry and a memory device, configured to run a web accelerator; the web accelerator configured to:

utilize scripts with a plurality of threads; and

operate a web application firewall controlled by a plurality of rules, comprising a set of operating system rules, a set of standard rules and a set of custom rules; and

a communication interface configured to receive, from a user, a rule update to at least one of the set of operating system rules, the set of standard rules and the set of custom rules;

the processor further configured to update the plurality of rules based at least in part on the rule update without restarting the web accelerator.

14. The content server of claim 13 , wherein at least one of the set of operating system rules, the set of standard rules and the set of custom rules comprises a subset of an overall set of rules provided to the user.

15. The content server of claim 13 , wherein at least one of the set of operating system rules, the set of standard rules and the set of custom rules includes a new rule provided by the user.

16. The content server of claim 13 , wherein at least one of the set of operating system rules, the set of standard rules and the set of custom rules limits content provided to the user in response to a request for content.

17. A computer apparatus in a content server within an infrastructure service, the computer apparatus comprising:

at least one non-transitory computer readable media; and

processing instructions stored on the at least one non-transitory computer readable media that, when executed by a processing system, direct the processing system to:

run a web accelerator configured to utilize scripts with a plurality of threads on the content server;

operate a web application firewall within the web accelerator, wherein the web application firewall is controlled by a plurality of rules, comprising:

a set of operating system rules;

a set of standard rules; and

a set of custom rules;

receive, from a user, a rule update to at least one of the set of operating system rules, the set of standard rules, and the set of custom rules; and

update the plurality of rules based at least in part on the rule update without restarting the web accelerator.

18. The computer apparatus of claim 17 , wherein at least one of the set of operating system rules, the set of standard rules and the set of custom rules comprises a subset of an overall set of rules provided to the user.

19. The computer apparatus of claim 17 , wherein at least one of the set of operating system rules, the set of standard rules and the set of custom rules includes a new rule provided by the user.

20. The computer apparatus of claim 17 , wherein at least one of the set of operating system rules, the set of standard rules and the set of custom rules limits content provided to the user in response to a request for content.

Assignments (2)
SECURITY INTEREST Recorded Feb 17, 2021
From: FASTLY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AND COLLATERAL AGENT
Reel/Frame 055316/0616 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2018
From: BERGMAN, ARTUR; LEACH, SEAN; MCMULLEN, TYLER; PERON, CHRISTIAN; SCHWINDT, FEDERICO; HODEL, ERIC
To: FASTLY, INC.
Reel/Frame 047426/0796 →
Continuity (3)
Provisional Application 62539130 · Jul 31, 2017
Provisional Application 62556012 · Sep 8, 2017
Related Publication 20190036883A1 · Jan 31, 2019