IP Library Granted Patent US 10,102,301
Granted Patent B2
US 10,102,301 · App. 12/939,908 · Granted Oct 16, 2018

Internet-based proxy security services

Inventors: Lee Hahn Holloway (Santa Cruz, CA); Matthew Browning Prince (San Francisco, CA); Michelle Marie Zatlyn (San Francisco, CA)
Assignee: CLOUDFLARE, INC.
G06F17/3089G06F15/16G06F17/2247G06F17/30861G06F21/00G06F21/552G06Q10/107G06Q30/0241G06Q30/0251G06Q30/0277H04L51/22H04L61/1511H04L61/2007H04L63/0236H04L63/0245H04L63/0254H04L63/0281H04L63/083H04L63/0861H04L63/102H04L63/126H04L63/1416H04L63/1433H04L63/1441H04L63/1458H04L63/1466H04L67/02H04L67/146H04L67/28H04L67/2804H04L67/2842H04L69/40H04L29/12066
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,102,301
App. No.
12/939,908
Granted
Oct 16, 2018
Kind
B2
Abstract

A proxy server receives from a client device a request to perform an action on an identified resource that is hosted at an origin server for a domain. The proxy server receives the request as a result of a DNS request for the domain resolving to the proxy server. The origin server is one of multiple origin servers that belong to different domains that resolve to the proxy server and are owned by different entities. The proxy server and the origin servers are owned by different entities. The proxy server analyzes the request to determine whether a visitor belonging to that request poses a threat. If the proxy server determines that the visitor poses a threat, the proxy server blocks the request and transmits a block page to the client device that indicates that the request has been blocked.

Claims (68)

1. A method in a proxy server, comprising:

receiving, from a client device, a request to perform an action on an identified resource that is hosted at an origin server for a domain, wherein the request is received at the proxy server as a result of a DNS (Domain Name System) request for the domain returning an IP address of the proxy server instead of an IP address of the origin server, wherein the origin server is one of a plurality of origin servers that belong to different domains that resolve to the proxy server and are owned by different entities, and wherein the proxy server and the plurality of origin servers are owned by different entities;

analyzing the request to determine whether a visitor belonging to the request poses a threat;

responsive to a determination that the visitor belonging to the request poses a threat, performing the following:

blocking the request, and

transmitting a block page to the client device that indicates that the request has been blocked.

2. The method of claim 1 , further comprising:

customizing the block page based on one or more of: a set of one or more characteristics associated with the request and a set of one or more characteristics associated with the domain.

3. The method of claim 1 , wherein analyzing the request to determine whether the visitor poses a threat includes determining whether an IP address of the request is included on one or more of: a global restricted IP address list that identifies IP addresses that are not allowed to access content of any of the plurality of origin servers, and a local IP restricted address list that identifies IP addresses that are not allowed to access content of the requested origin server.

4. The method of claim 1 , wherein the visitor is determined to pose a threat as a result of determining, based on a set of one or more characteristics associated with the request, that the client device potentially has a software vulnerability, and wherein the block page indicates that the client device potentially has a software vulnerability.

5. The method of claim 4 , further comprising:

including, as part of the block page, instructions to remedy the software vulnerability including one or more of: run an anti-virus software program on the client device, download and run an anti-virus software program on the client device, download and install one or more patches on the client device, and upgrade software on the client device.

6. The method of claim 4 , further comprising:

including, as part of the block page, one or more advertisements for one or more solution providers that offer one or more products to remedy the software vulnerability.

7. The method of claim 1 , wherein the visitor is determined to pose a threat as a result of determining, based on a set of one or more characteristics associated with the request, that the visitor is potentially an automated bot that is part of a botnet.

8. The method of claim 7 , further comprising:

including, as part of the block page, a mechanism to dismiss the block page, wherein the mechanism is selected from the group consisting of: a link to close the block page, a CAPTCHA, and a dismiss code field.

9. The method of claim 8 , further comprising:

determining that the visitor has successfully dismissed the block page;

reconstructing the request; and

transmitting the request to the origin server.

10. A proxy server, comprising:

a memory to store instructions;

a processor coupled with the memory to process the stored instructions to:

receive, from a client device, a request to perform an action on an identified resource that is hosted at an origin server for a domain, wherein the request is received as a result of a DNS (Domain Name System) request for the domain returning an IP address of the proxy server instead of an IP address of the origin server, wherein the origin server is one of a plurality of origin servers that belong to different domains that resolve to the proxy server and are owned by different entities, and wherein the proxy server and the plurality of origin servers are owned by different entities;

analyze the request to determine whether a visitor belonging to the request poses a threat;

responsive to a determination that the visitor belonging to the request poses a threat, perform the following:

block the request, and

transmit a block page to the client device that indicates that the request has been blocked.

11. The proxy server of claim 10 , wherein the processor is further to process the stored instructions to:

customize the block page based on one or more of: a set of one or more characteristics associated with the request and a set of one or more characteristics associated with the domain.

12. The proxy server of claim 10 , wherein analyzing the request to determine whether the visitor poses a threat includes a determination of whether an IP address of the request is included on one or more of: a global restricted IP address list that identifies IP addresses that are not allowed to access content of any of the plurality of origin servers, and a local IP restricted address list that identifies IP addresses that are not allowed to access content of the requested origin server.

13. The proxy server of claim 10 , wherein the visitor is determined to pose a threat as a result of determining, based on a set of one or more characteristics associated with the request, that the client device potentially has a software vulnerability, and wherein the block page indicates that the client device potentially has a software vulnerability.

14. The proxy server of claim 13 , wherein the processor is further to process the stored instructions to:

include, as part of the block page, instructions to remedy the software vulnerability including one or more of: run an anti-virus software program on the client device, download and run an anti-virus software program on the client device, download and install one or more patches on the client device, and upgrade software on the client device.

15. The proxy server of claim 13 , wherein the processor is further to process the stored instructions to:

include, as part of the block page, one or more advertisements for one or more solution providers that offer one or more products to remedy the software vulnerability.

16. The proxy server of claim 10 , wherein the visitor is determined to pose a threat as a result of a determination, based on a set of one or more characteristics associated with the request, that the visitor is potentially an automated bot that is part of a botnet.

17. The proxy server of claim 16 , wherein the processor is further to process the stored instructions to:

include, as part of the block page, a mechanism to dismiss the block page, wherein the mechanism is selected from the group consisting of: a link to close the block page, a CAPTCHA, and a dismiss code field.

18. The proxy server of claim 17 , wherein the processor is further to process the stored instructions to:

determine that the visitor has successfully dismissed the block page;

reconstruct the request; and

transmit the request to the origin server.

19. A non-transitory machine-readable storage medium that provides instructions that, when executed by a processor, cause said processor to perform operations comprising:

receiving, from a client device, a request to perform an action on an identified resource that is hosted at an origin server for a domain, wherein the request is received at the proxy server as a result of a DNS (Domain Name System) request for the domain returning an IP address of the proxy server instead of an IP address of the origin server, wherein the origin server is one of a plurality of origin servers that belong to different domains that resolve to the proxy server and are owned by different entities, and wherein the proxy server and the plurality of origin servers are owned by different entities;

analyzing the request to determine whether a visitor belonging to the request poses a threat;

responsive to a determination that the visitor belonging to the request poses a threat, performing the following:

blocking the request, and

transmitting a block page to the client device that indicates that the request has been blocked.

20. The non-transitory machine-readable storage medium of claim 19 , further comprising:

customizing the block page based on one or more of: a set of one or more characteristics associated with the request and a set of one or more characteristics associated with the domain.

21. The non-transitory machine-readable storage medium of claim 19 , wherein analyzing the request to determine whether the visitor poses a threat includes determining whether an IP address of the request is included on one or more of: a global restricted IP address list that identifies IP addresses that are not allowed to access content of any of the plurality of origin servers, and a local IP restricted address list that identifies IP addresses that are not allowed to access content of the requested origin server.

22. The non-transitory machine-readable storage medium of claim 19 , wherein the visitor is determined to pose a threat as a result of determining, based on a set of one or more characteristics associated with the request, that the client device potentially has a software vulnerability, and wherein the block page indicates that the client device potentially has a software vulnerability.

23. The non-transitory machine-readable storage medium of claim 22 , further comprising:

including, as part of the block page, instructions to remedy the software vulnerability including one or more of: run an anti-virus software program on the client device, download and run an anti-virus software program on the client device, download and install one or more patches on the client device, and upgrade software on the client device.

24. The non-transitory machine-readable storage medium of claim 22 , further comprising:

including, as part of the block page, one or more advertisements for one or more solution providers that offer one or more products to remedy the software vulnerability.

25. The non-transitory machine-readable storage medium of claim 19 , wherein the visitor is determined to pose a threat as a result of determining, based on a set of one or more characteristics associated with the request, that the visitor is potentially an automated bot that is part of a botnet.

26. The non-transitory machine-readable storage medium of claim 25 , further comprising:

including, as part of the block page, a mechanism to dismiss the block page, wherein the mechanism is selected from the group consisting of: a link to close the block page, a CAPTCHA, and a dismiss code field.

27. The non-transitory machine-readable storage medium of claim 26 , further comprising:

determining that the visitor has successfully dismissed the block page;

reconstructing the request; and

transmitting the request to the origin server.

28. The method of claim 1 , wherein blocking the request includes not transmitting the request to the origin server.

29. The proxy server of claim 10 , wherein blocking the request includes not transmitting the request to the origin server.

30. The non-transitory machine-readable storage medium of claim 19 , wherein blocking the request includes not transmitting the request to the origin server.

Assignments (2)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2010
From: HOLLOWAY, LEE HAHN; PRINCE, MATTHEW BROWNING; ZATLYN, MICHELLE MARIE
To: CLOUDFLARE, INC.
Reel/Frame 025328/0222 →
Continuity (3)
Provisional Application 61397721 · Apr 1, 2010
Related Publication 20120117649A1 · May 10, 2012
Related Publication 20150033344A9 · Jan 29, 2015
Cited By (1)
US 12,407,754