IP Library Granted Patent US 10,965,716
Granted Patent B2
US 10,965,716 · App. 16/669,256 · Granted Mar 30, 2021

Hostname validation and policy evasion prevention

Inventors: Martin Walter (Livermore, CA); Charles Bransi (San Jose, CA); Suiqiang Deng (Fremont, CA)
Assignee: Palo Alto Networks, Inc.
H04L63/20G06F16/24539H04L61/1511H04L63/0263H04L63/10H04L63/166H04L67/02H04L67/14
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,965,716
App. No.
16/669,256
Granted
Mar 30, 2021
Kind
B2
Abstract

A request to establish a session with a first server is received from a client device. The first server is associated with a first hostname, and the request includes information identifying a second hostname purported to correspond to the first server. A Domain Name System (DNS) lookup using the second hostname is performed. A determination that the second hostname was spoofed by the client device is determined based on a response to the DNS lookup. In response to the determination being made that the request received from the client device includes the spoofed second hostname, a determination that the client device has injected or overridden at least one of an HTTP Host header and a Server Name Indicator in the request is made, and an action to take with respect to the client device is determined.

Claims (40)

1. A system, comprising:

a processor configured to:

receive, from a client device, a request to establish a session with a first server, wherein the first server is associated with a first hostname, and wherein the request includes information identifying a second hostname purported to correspond to the first server;

perform a Domain Name System (DNS) lookup using the second hostname, and determine that the second hostname was spoofed by the client device based on a response to the DNS lookup, wherein the response indicates that the first server is not associated with the second hostname; and

in response to determining that the request received from the client device includes the spoofed second hostname, determine that the client device has injected or overridden at least one of an HTTP Host header and a Server Name Indicator in the request, and determine an action to take with respect to the client device; and

a memory coupled to the processor and configured to provide the processor with instructions.

2. The system of claim 1 wherein the processor is further configured to determine that the client device has been compromised.

3. The system of claim 2 wherein the compromise includes mimicking a connection to a trusted service to evade at least one of a decryption and an inspection.

4. The system of claim 2 wherein the compromise includes concealing a connection to a command and control channel.

5. The system of claim 1 wherein the second hostname is included by the client device in the HTTP Host header in a client GET request.

6. The system of claim 1 wherein the second hostname is included by the client device in a Server Name Indicator in a TLS client hello.

7. The system of claim 1 wherein performing the DNS lookup includes querying a cache.

8. The system of claim 1 wherein determining that the second hostname was spoofed by the client device includes comparing a result of the DNS lookup to a destination IP address of a session between the client device and the first server.

9. The system of claim 1 wherein the DNS lookup is performed out of band from the client device establishing the session with the first server.

10. The system of claim 1 wherein, in response to determining that the request received from the client device includes the spoofed second hostname, the client device is prevented from accessing the first server.

11. The system of claim 10 wherein the client device is prevented from accessing the first server by resetting an established session between the client device and the first server.

12. The system of claim 1 wherein, in response to determining that the request received from the client device includes the spoofed second hostname, an alert is generated.

13. The system of claim 1 wherein, in response to determining that the request received from the client device includes the spoofed second hostname, a log entry is generated.

14. The system of claim 1 wherein the processor is further configured to cache a result of the DNS lookup.

15. A method, comprising:

receiving, from a client device, a request to establish a session with a first server, wherein the first server is associated with a first hostname, and wherein the request includes information identifying a second hostname purported to correspond to the first server;

performing a Domain Name System (DNS) lookup using the second hostname, and determining that the second hostname was spoofed by the client device based on a response to the DNS lookup, wherein the response indicates that the first server is not associated with the second hostname; and

in response to determining that the request received from the client device includes the spoofed second hostname, determining that the client device has injected or overridden at least one of an HTTP Host header and a Server Name Indicator in the request, and determining an action to take with respect to the client device.

16. The method of claim 15 further comprising determining that the client device has been compromised.

17. The method of claim 16 wherein the compromise includes mimicking a connection to a trusted service to evade at least one of a decryption and an inspection.

18. The method of claim 16 wherein the compromise includes concealing a connection to a command and control channel.

19. The method of claim 15 wherein the second hostname is included by the client device in an HTTP Host header of a client GET request.

20. The method of claim 15 wherein the second hostname is included by the client device in a Server Name Indicator in a TLS client hello.

21. The method of claim 15 wherein performing the DNS lookup includes querying a cache.

22. The method of claim 15 wherein determining that the second hostname was spoofed by the client device includes comparing a result of the DNS lookup to a destination IP address of a session between the client device and the first server.

23. The method of claim 15 wherein the DNS lookup is performed out of band from the client device establishing the session with the first server.

24. The method of claim 15 wherein, in response to determining that the request received from the client device includes the spoofed second hostname, the client device is prevented from accessing the first server.

25. The method of claim 24 wherein the client device is prevented from accessing the first server by resetting an established session between the client device and the first server.

26. The method of claim 15 wherein, in response to determining that the request received from the client device includes the spoofed second hostname, an alert is generated.

27. The method of claim 15 wherein, in response to determining that the request received from the client device includes the spoofed second hostname, a log entry is generated.

28. The method of claim 15 further comprising caching a result of the DNS lookup.

29. A computer program product embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:

receiving, from a client device, a request to establish a session with a first server, wherein the first server is associated with a first hostname, and wherein the request includes information identifying a second hostname purported to correspond to the first server;

performing a Domain Name System (DNS) lookup using the second hostname, and determining that the second hostname was spoofed by the client device based on a response to the DNS lookup, wherein the response indicates that the first server is not associated with the second hostname; and

in response to determining that the request received from the client device includes the spoofed second hostname, determining that the client device has injected or overridden at least one of an HTTP Host header and a Server Name Indicator in the request, and determining an action to take with respect to the client device.

Continuity (3)
Continuation 15486204 · Apr 12, 2017
Provisional Application 62322183 · Apr 13, 2016
Related Publication 20200067989A1 · Feb 27, 2020
Cited By (1)
US 12,563,097