IP Library Granted Patent US 12,250,232
Granted Patent B2
US 12,250,232 · App. 18/402,196 · Granted Mar 11, 2025

Management of bot detection in a content delivery network

Inventor: Christian Peron (San Francisco, CA)
Assignee: Fastly, Inc.
H04L63/1408H04L63/10H04L67/568H04L67/5651H04L67/5683H04L2463/144
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 12,250,232
App. No.
18/402,196
Granted
Mar 11, 2025
Kind
B2
Abstract

Disclosed herein are systems, methods, and software for managing bot detection in a content delivery network (CDN). In one implementation, a cache node in a CDN may obtain a content request without a valid token for content not cached on the cache node and, in response to the content request, generate a synthetic response for the content request, wherein the synthetic response comprises a request for additional information from the end user device associated with the content request. The cache node further may obtain a response from the end user device and determine whether to satisfy the request based on whether the response from the end user device indicates that it is a bot.

Claims (73)

1. A method of operating a cache node in a content delivery network comprising:

identifying a content request without a valid token for content not cached on the cache node;

determining that bot detection services are enabled for the requested content;

in response to the content request, and at least in part in response to the determination that bot detection services are enabled for the requested content, generating a challenge for an end user device that generated the content request;

communicating the challenge to the end user device;

obtaining a response from the end user device to the challenge;

determining that the content request is associated with a bot based, at least in part, on the response; and

in response to determining that the content request is associated with a bot, preventing a further content request to an origin server to obtain the content;

identifying a second content request without a valid token for second content not cached on the cache node;

in response to the second content request, generating a second challenge for a second end user device that generated the second content request;

communicating the second challenge to the second end user device;

obtaining a second response from the second end user device to the second challenge;

determining that the second content request is not associated with a bot based on the second response; and

in response to determining that the second content request is not associated with a bot:

generating a token for the second end user device; and

providing the token to the second end user device.

2. The method of claim 1 , wherein the challenge comprises a synthetic response for the content request, wherein the synthetic response includes at least a problem to be solved by the end user device and fingerprinting attributes associated with the end user device.

3. The method of claim 1 , wherein determining that bot detection services are enabled for the requested content comprises determining that a customer correlated with the requested content is subscribed to the bot detection services.

4. The method of claim 1 , wherein the challenge comprises a problem to be solved by the end user device.

5. The method of claim 4 , wherein the challenge further comprises a request for fingerprinting attributes.

6. The method of claim 5 , wherein determining that the content request is associated with a bot based on the response comprises:

providing at least one of the fingerprinting attributes to at least one service,

obtaining an indication from the at least one service that the end user device comprises a bot; and

determining that the content request is associated with a bot based on the indication.

7. The method of claim 5 , wherein the fingerprinting attributes comprise a browser version, an IP address associated with the end user device, or an operating system version.

8. The method of claim 1 , wherein determining that the content request is associated with a bot based on the response comprises:

generating a score based on the response to the challenge;

determining that the content request is associated with a bot based on the score satisfying at least one criterion.

9. A computing apparatus comprising:

a storage system;

a processing system operatively coupled to the storage system; and

program instructions stored on the storage system to provide bot detection in a content delivery network that, when executed by the processing system, direct the processing system to:

identify a content request without a valid token for content not cached on the cache node;

determine that bot detection services are enabled for the requested content;

in response to the content request, and at least in part in response to the determination that bot detection services are enabled for the requested content, generate a challenge for an end user device that generated the content request;

communicate the challenge to the end user device;

obtain a response from the end user device to the challenge;

determine that the content request is associated with a bot based, at least in part, on the response; and

in response to determining that the content request is associated with a bot, prevent a further content request to an origin server to obtain the content;

identifying a second content request without a valid token for second content not cached on the cache node;

in response to the second content request, generating a second challenge for a second end user device that generated the second content request;

communicating the second challenge to the second end user device;

obtaining a second response from the second end user device to the second challenge;

determining that the second content request is not associated with a bot based on the second response; and

in response to determining that the second content request is not associated with a bot:

generating a token for the second end user device; and

providing the token to the second end user device.

10. The computing apparatus of claim 9 , wherein the challenge comprises a synthetic response for the content request, wherein the synthetic response includes at least a problem to be solved by the end user device and fingerprinting attributes associated with the end user device.

11. The computing apparatus of claim 9 , wherein determining that bot detection services are enabled for the requested content comprises determining that a customer correlated with the requested content is subscribed to the bot detection services.

12. The computing apparatus of claim 9 , wherein the challenge comprises a problem to be solved by the end user device.

13. The computing apparatus of claim 12 , wherein the challenge further comprises a request for fingerprinting attributes.

14. The computing apparatus of claim 13 , wherein determining that the content request is associated with a bot based on the response comprises:

providing at least one of the fingerprinting attributes to at least one service,

obtaining an indication from the at least one service that the end user device comprises a bot; and

determining that the content request is associated with a bot based on the indication.

15. The computing apparatus of claim 13 , wherein the fingerprinting attributes comprise a browser version, an IP address associated with the end user device, or an operating system version.

16. The computing apparatus of claim 9 , wherein determining that the content request is associated with a bot based on the response comprises:

generating a score based on the response to the challenge;

determining that the content request is associated with a bot based on the score satisfying at least one criterion.

17. A method of operating a cache node in a content delivery network comprising:

identifying a content request without a valid token for content not cached on the cache node;

in response to the content request, generating a synthetic response for the content request, wherein the synthetic response includes at least a request for a proof of work and fingerprinting attributes associated with an end user device that generated the content request, wherein the request for a proof of work comprises a problem to be solved by the end user device;

communicating the synthetic response to the end user device;

obtaining a response from the end user device to the synthetic response;

determining that the content request is associated with a bot based on the response; and

in response to determining that the content request is associated with a bot, preventing a further content request to an origin server to obtain the content;

identifying a second content request without a valid token for second content not cached on the cache node;

in response to the second content request, generating a second synthetic response for the second content request, wherein the second synthetic response includes at least a second request for a proof of work and fingerprinting attributes associated with a second end user device that generated the second content request, wherein the second request for a proof of work comprises a second problem to be solved by the second end user device;

communicating the second synthetic response to the second end user device;

obtaining a second response from the second end user device to the second synthetic response;

determining that the second content request is associated with a bot based on the second response; and

in response to determining that the second content request is associated with a bot, permitting a second further content request to a second origin server to obtain the second content.

18. The method of claim 17 wherein the proof of work comprises a java script proof of work function.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2024
From: PERON, CHRISTIAN
To: FASTLY, INC.
Reel/Frame 069127/0394 →
SECURITY INTEREST Recorded May 1, 2024
From: FASTLY, INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY, AS ADMINISTRATIVE AGENT
Reel/Frame 067281/0500 →
Continuity (3)
Continuation 17167774 · Feb 4, 2021
Provisional Application 62969871 · Feb 4, 2020
Related Publication 20240214395A1 · Jun 27, 2024
References Cited (21)
US 9049247B2 · Holloway · 2015 [cited by examiner]
US 9361446B1 · Demirjian · 2016 [cited by examiner]
US 9424414B1 · Demirjian · 2016 [cited by examiner]
US 10097583B1 · Demirjian · 2018 [cited by examiner]
US 10313475B2 · Holloway · 2019 [cited by examiner]
US 10835798B2 · Corniel · 2020 [cited by examiner]
US 11245722B1 · Senecal · 2022 [cited by examiner]
US 11329998B1 · Shahidzadeh · 2022 [cited by examiner]
US 11863567B2 · Peron · 2024 [cited by examiner]
US 20110283359A1 · Prince · 2011 [cited by examiner]
US 20120117239A1 · Holloway · 2012 [cited by examiner]
US 20120324113A1 · Prince · 2012 [cited by examiner]
US 20160021210A1 · Holloway · 2016 [cited by examiner]
US 20160119304A1 · Lelcuk · 2016 [cited by examiner]
US 20160344769A1 · Li · 2016 [cited by examiner]
US 20190334940A1 · Bar Noy · 2019 [cited by examiner]
US 20190394298A1 · Holloway · 2019 [cited by examiner]
US 20200151360A1 · Zavesky · 2020 [cited by examiner]
US 20210037048A1 · Kurupati · 2021 [cited by examiner]
US 20210337009A1 · Spång · 2021 [cited by examiner]
CA 3097429A1 · 2019 [cited by examiner]