IP Library Granted Patent US 10,853,443
Granted Patent B2
US 10,853,443 · App. 16/162,167 · Granted Dec 1, 2020

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.
G06F16/958G06F15/16G06F16/95G06F21/00G06F21/552G06F40/14G06Q10/107G06Q30/0241G06Q30/0251G06Q30/0277H04L47/745H04L51/22H04L61/1511H04L61/2007H04L63/0236H04L63/0245H04L63/0254H04L63/0281H04L63/083H04L63/0861H04L63/102H04L63/126H04L63/1416H04L63/1433H04L63/1441H04L63/1458H04L63/1466H04L67/02H04L67/146H04L67/28H04L67/2804H04L67/2842H04L69/40H04L29/12066H04L61/6013
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,853,443
App. No.
16/162,167
Granted
Dec 1, 2020
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 (71)

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,

determining, through analyzing the request, that a visitor belonging to the request poses a threat, and responsive to this determination performing the following:

blocking the request,

customizing a block page based on one or more of: a set of one or more characteristics associated with the identified resource and a set of one or more characteristics associated with the request, and

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

2. 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 a plurality of origin servers, and a local IP restricted address list that identifies IP addresses that are not allowed to access content of the origin server.

3. 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 the software vulnerability.

4. The method of claim 3 , 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.

5. The method of claim 3 , 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.

6. 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.

7. The method of claim 6 , 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.

8. The method of claim 7 , further comprising:

determining that the visitor has successfully dismissed the block page;

reconstructing the request; and

transmitting the request to the origin server.

9. The method of claim 1 , 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.

10. The method of claim 1 , wherein customizing the block page further comprises:

determining a threat level associated with the visitor belonging to the request; and

modifying the block page to include a mechanism to dismiss the block page when the threat level is below a threshold value.

11. 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 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,

determine, through analyzing the request, that a visitor belonging to the request poses a threat, and responsive to this determination perform the following:

block the request, and

customize a block page based on one or more of: a set of one or more characteristics associated with the identified resource and a set of one or more characteristics associated with the request, and

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

12. The proxy server of claim 11 , 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 a plurality of origin servers, and a local IP restricted address list that identifies IP addresses that are not allowed to access content of the origin server.

13. The proxy server of claim 11 , 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 the 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 11 , 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. The proxy server of claim 11 , 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.

20. The proxy server of claim 11 , wherein customizing the block page further comprises:

determining a threat level associated with the visitor belonging to the request; and

modifying the block page to include a mechanism to dismiss the block page when the threat level is below a threshold value.

21. 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 a 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,

determining, through analyzing the request, that a visitor belonging to the request poses a threat, and responsive to this determination performing the following:

blocking the request, and

customizing a block page based on one or more of: a set of one or more characteristics associated with the identified resource and a set of one or more characteristics associated with the request, and

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

22. The non-transitory machine-readable storage medium of claim 21 , 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 a plurality of origin servers, and a local IP restricted address list that identifies IP addresses that are not allowed to access content of the origin server.

23. The non-transitory machine-readable storage medium of claim 21 , 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 the software vulnerability.

24. The non-transitory machine-readable storage medium of claim 23 , 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.

25. The non-transitory machine-readable storage medium of claim 23 , 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.

26. The non-transitory machine-readable storage medium of claim 21 , 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.

27. The non-transitory machine-readable storage medium of claim 26 , 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.

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

determining that the visitor has successfully dismissed the block page;

reconstructing the request; and

transmitting the request to the origin server.

29. The non-transitory machine-readable storage medium of claim 21 , 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.

30. The non-transitory machine-readable storage medium of claim 21 , wherein customizing the block page further causes said processor to perform operations comprising:

determining a threat level associated with the visitor belonging to the request; and

modifying the block page to include a mechanism to dismiss the block page when the threat level is below a threshold value.

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 Oct 15, 2020
From: HOLLOWAY, LEE HAHN; PRINCE, MATTHEW BROWNING; ZATLYN, MICHELLE MARIE
To: CLOUDFLARE, INC.
Reel/Frame 054071/0838 →
Continuity (3)
Continuation 12939908 · Nov 4, 2010
Provisional Application 61397721 · Apr 1, 2010
Related Publication 20190052576A1 · Feb 14, 2019
Cited By (1)
US 12,407,754