IP Library Granted Patent US 10,511,624
Granted Patent B2
US 10,511,624 · App. 16/188,247 · Granted Dec 17, 2019

Mitigating a denial-of-service attack in a cloud-based proxy service

Inventors: Lee Hahn Holloway (Santa Cruz, CA); Srikanth N. Rao (San Francisco, CA); Matthew Browning Prince (San Francisco, CA); Matthieu Philippe François Tourne (San Francisco, CA); Ian Gerald Pye (Santa Cruz, CA); Ray Raymond Bejjani (San Francisco, CA); Terry Paul Rodery, Jr. (Millbrae, CA)
Assignee: CLOUDFLARE, INC.
H04L63/1458G06F21/552G06F21/577H04L63/0281H04L63/1408H04L63/1416H04L63/1425H04L63/1433H04L63/1466H04L63/20
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 10,511,624
App. No.
16/188,247
Granted
Dec 17, 2019
Kind
B2
Abstract

A proxy server in a cloud-based proxy service receives a message that indicates that a domain, whose traffic passes through the proxy server, may be under a denial-of-service (DoS) attack. The proxy server enables a rule for the domain that specifies that future requests for resources at that domain are subject to at least initially passing a set of one or more challenges. In response to receiving a request for a resource of that domain from a visitor, the proxy server presents the set of challenges that, if not passed, are an indication that that the visitor is part of the DoS attack. If the set of challenges are passed, the request may be processed. If the set of challenges are not passed, the request may be dropped.

Claims (85)

1. A method in a proxy server in a cloud-based proxy service, comprising:

receiving, at the proxy server from a first visitor, a first request for a first resource of a domain whose traffic passes through the proxy server;

determining that a rule has been enabled for a domain as a result of a suspected denial of service (DoS) attack against the domain, the rule specifying that requests for resources at that domain are subject to at least initially passing a set of one or more challenges; and

responsive to the determining, transmitting a first page to the first visitor that includes an embedded client-side script that, when executed by a client network application that supports client-side script execution, solves a math or other computationally expensive problem and causes a message to be transmitted to the proxy server with a solution to the math or other computationally expensive problem to allow the proxy server to determine whether the first visitor passed at least one of the set of one or more challenges, wherein the first page is not the requested first resource.

2. The method of claim 1 , further comprising:

determining that the first request did not originate from a web browser as a result of not receiving the message in a certain period of time; and

dropping the first request without transmitting a corresponding request to an origin server corresponding to the domain.

3. The method of claim 1 , further comprising:

receiving the message; and

responsive to receiving the message, performing the following:

determining that the message has an expected value,

setting a cookie that indicates that the first visitor has passed the at least one of the set of one or more challenges, and

causing the requested first resource to be transmitted to the first visitor.

4. The method of claim 3 , wherein causing the requested resource to be transmitted to the first visitor includes performing the following:

transmitting a response to the first visitor that includes the cookie and causes the first visitor to re-submit the first request;

receiving the resubmitted request from the visitor, the resubmitted request including the cookie;

retrieving the requested first resource; and

transmitting the requested first resource to the first visitor.

5. The method of claim 1 , wherein traffic for the domain is received at the proxy server as a result of the domain resolving to the proxy server instead of an origin server corresponding to the domain.

6. The method of claim 1 , wherein prior to transmitting the first page, further performing the following responsive to determining that the rule has been enabled for the domain: determining that the first request does not include a cookie that indicates that the visitor has passed the set of challenges.

7. The method of claim 1 , further comprising:

receiving a second request for a second resource of the domain from a second visitor, wherein the second request includes a cookie that indicates that the second visitor has passed the one or more challenges;

retrieving the requested second resource; and

transmitting the requested second resource to the second visitor without presenting the one or more challenges to the second visitor.

8. The method of claim 1 , further comprising:

receiving a second request for a second resource of the domain from a second visitor;

responsive to determining that the second request does not include a cookie that indicates that the second visitor has passed the set of challenges, transmitting a second page to the second visitor that includes the embedded client-side script, wherein the second page is not the requested second resource; and

responsive to determining that a correct solution to the client-side script was not received from the second visitor, transmitting another page to the second visitor that includes one or more challenges that require input, wherein the one or more challenges that require input are selected from the group consisting of an image Completely Automated Public Turing test to tell Computers and Humans Apart (CAPTCHA), an audio CAPTCHA, a math question, and a trivia question.

9. A non-transitory computer-readable storage medium that provides instructions that, if executed by a processor of a proxy server, will cause said processor to perform operations comprising:

receiving, at the proxy server from a first visitor, a first request for a first resource of a domain whose traffic passes through the proxy server;

determining that a rule has been enabled for a domain as a result of a suspected denial of service (DoS) attack against the domain, the rule specifying that requests for resources at that domain are subject to at least initially passing a set of one or more challenges; and

responsive to the determining, transmitting a first page to the first visitor that includes an embedded client-side script that, when executed by a client network application that supports client-side script execution, solves a math or other computationally expensive problem and causes a message to be transmitted to the proxy server with a solution to the math or other computationally expensive problem to allow the proxy server to determine whether the first visitor passed at least one of the set of one or more challenges, wherein the first page is not the requested first resource.

10. The non-transitory computer-readable storage medium of claim 9 , the operations further comprising:

determining that the first request did not originate from a web browser as a result of not receiving the message in a certain period of time; and

dropping the first request without transmitting a corresponding request to an origin server corresponding to the domain.

11. The non-transitory computer-readable storage medium of claim 9 , the operations further comprising:

receiving the message; and

responsive to receiving the message, performing the following:

determining that the message has an expected value,

setting a cookie that indicates that the first visitor has passed the at least one of the set of one or more challenges, and

causing the requested first resource to be transmitted to the first visitor.

12. The non-transitory computer-readable storage medium of claim 11 , wherein causing the requested resource to be transmitted to the first visitor includes performing the following:

transmitting a response to the first visitor that includes the cookie and causes the first visitor to re-submit the first request;

receiving the resubmitted request from the visitor, the resubmitted request including the cookie;

retrieving the requested first resource; and

transmitting the requested first resource to the first visitor.

13. The non-transitory computer-readable storage medium of claim 9 , wherein traffic for the domain is received at the proxy server as a result of the domain resolving to the proxy server instead of an origin server corresponding to the domain.

14. The non-transitory computer-readable storage medium of claim 9 , wherein prior to transmitting the first page, further performing the following responsive to determining that the rule has been enabled for the domain: determining that the first request does not include a cookie that indicates that the visitor has passed the set of challenges.

15. The non-transitory computer-readable storage medium of claim 9 , the operations further comprising:

receiving a second request for a second resource of the domain from a second visitor, wherein the second request includes a cookie that indicates that the second visitor has passed the one or more challenges;

retrieving the requested second resource; and

transmitting the requested second resource to the second visitor without presenting the one or more challenges to the second visitor.

16. The non-transitory computer-readable storage medium of claim 9 , the operations further comprising:

receiving a second request for a second resource of the domain from a second visitor;

responsive to determining that the second request does not include a cookie that indicates that the second visitor has passed the set of challenges, transmitting a second page to the second visitor that includes the embedded client-side script, wherein the second page is not the requested second resource; and

responsive to determining that a correct solution to the client-side script was not received from the second visitor, transmitting another page to the second visitor that includes one or more challenges that require input, wherein the one or more challenges that require input are selected from the group consisting of an image Completely Automated Public Turing test to tell Computers and Humans Apart (CAPTCHA), an audio CAPTCHA, a math question, and a trivia question.

17. An apparatus, comprising:

a proxy server that includes a set of one or more processors and a set of one or more non-transitory computer-readable storage mediums storing instructions that, when executed by the set of processors, cause the set of processors to perform the following operations:

receive, at the proxy server from a first visitor, a first request for a first resource of a domain whose traffic passes through the proxy server;

determine that a rule has been enabled for a domain as a result of a suspected denial of service (DoS) attack against the domain, the rule specifying that requests for resources at that domain are subject to at least initially passing a set of one or more challenges; and

responsive to the determination, transmit a first page to the first visitor that includes an embedded client-side script that, when executed by a client network application that supports client-side script execution, solves a math or other computationally expensive problem and causes a message to be transmitted to the proxy server with a solution to the math or other computationally expensive problem to allow the proxy server to determine whether the first visitor passed at least one of the set of one or more challenges, wherein the first page is not the requested first resource.

18. The apparatus of claim 17 , the operations further comprising:

determine that the first request did not originate from a web browser as a result of not receiving the message in a certain period of time; and

drop the first request without transmitting a corresponding request to an origin server corresponding to the domain.

19. The apparatus of claim 17 , the operations further comprising:

receive the message; and

responsive to receipt of the message, perform the following:

determine that the message has an expected value,

set a cookie that indicates that the first visitor has passed the at least one of the set of one or more challenges, and

cause the requested first resource to be transmitted to the first visitor.

20. The apparatus of claim 19 , wherein causing the requested resource to be transmitted to the first visitor includes the following to be performed:

transmit a response to the first visitor that includes the cookie and causes the first visitor to re-submit the first request;

receive the resubmitted request from the visitor, the resubmitted request including the cookie;

retrieve the requested first resource; and

transmit the requested first resource to the first visitor.

21. The apparatus of claim 17 , wherein traffic for the domain is received at the proxy server as a result of the domain resolving to the proxy server instead of an origin server corresponding to the domain.

22. The apparatus of claim 17 , wherein prior to transmission of the first page, the proxy server is further to perform the following responsive to the determination that the rule has been enabled for the domain: determine that the first request does not include a cookie that indicates that the visitor has passed the set of challenges.

23. The apparatus of claim 17 , the operations further comprising:

receive a second request for a second resource of the domain from a second visitor, wherein the second request is to include a cookie that indicates that the second visitor has passed the one or more challenges;

retrieve the requested second resource; and

transmit the requested second resource to the second visitor without presenting the one or more challenges to the second visitor.

24. The apparatus of claim 17 , the operations further comprising:

receive a second request for a second resource of the domain from a second visitor;

responsive to a determination that the second request does not include a cookie that indicates that the second visitor has passed the set of challenges, transmit a second page to the second visitor that includes the embedded client-side script, wherein the second page is not the requested second resource; and

responsive to a determination that a correct solution to the client-side script was not received from the second visitor, transmit another page to the second visitor that includes one or more challenges that require input, wherein the one or more challenges that require input are selected from the group consisting of an image Completely Automated Public Turing test to tell Computers and Humans Apart (CAPTCHA), an audio CAPTCHA, a math question, and a trivia question.

Assignments (1)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
Continuity (6)
Continuation 15603256 · May 23, 2017
Continuation 14509010 · Oct 7, 2014
Continuation 13665811 · Oct 31, 2012
Provisional Application 61719116 · Oct 26, 2012
Provisional Application 61680684 · Aug 7, 2012
Related Publication 20190158533A1 · May 23, 2019