{{Header}} {{#seo: |description=Overview of Advanced Deanonymization Attacks and their development status in {{project_name_long}}. |image=Advanced_deanonymization1231.jpg }} [[File:Advanced_deanonymization1231.jpg|thumb]] {{intro| Overview of Advanced Deanonymization Attacks and their development status in {{project_name_short}}. }} = Introduction = This page aims to track and document advanced attacks https://phabricator.whonix.org/T540 that also affect virtualized and anonymous systems like {{project_name_short}}. Attacks discussed below tend to have a very high accuracy rate and can easily have devastating impacts upon anonymity. The common thread to these attacks is abuse of the underlying hardware design to undermine isolation barriers imposed by the software stack operating above it. See [https://web.archive.org/web/20220305144901/http://cs.sru.edu/~mullins/cpsc100book/module02_introduction/module02-03_introduction.html Introduction to Computers: Hardware and Software] for a basic description of the difference between hardware, firmware and software. Exploiting buggy software remains the lowest hanging fruit for network adversaries. It is expected they will further expand their toolbox and more regularly utilize these vectors, since the chances of discovery are minimal to none. = Attack Definitions = '''Table:''' ''Common Attack Vectors causing Data Leakage'' {| class="wikitable" |- ! scope="col"| '''Attack Vector''' ! scope="col"| '''Description''' |- ! scope="row"| Biometric Tracking | Behavioral tracking (also called biometric tracking) relies on spying on how users interact with their devices, https://forums.whonix.org/t/biometric-fingerprinting-mass-surveillance-and-you/2236 rather than looking at the unique identifiers of the device, protocol or application levels. |- ! scope="row"| Local Covert Channels | [https://www.techopedia.com/definition/10255/covert-channel Local covert channels] require collaboration between a malicious VM and an infected victim VM to leak confidential data. |- ! scope="row"| Network Covert Channels | [https://en.wikipedia.org/wiki/Covert_channel#Data_hiding_in_OSI_model Network] [https://en.wikipedia.org/wiki/Covert_channel#Data_hiding_in_LAN_environment_by_covert_channels covert] [https://en.wikipedia.org/wiki/Covert_channel#Data_hiding_in_TCP/IP_Protocol_suite_by_covert_channels channels] only require that a compromised VM induce identifiable changes in network traffic that are immediately visible to adversaries that surveil the network. |- ! scope="row"| Side Channels | [https://en.wikipedia.org/wiki/Side-channel_attack Side channel attacks] allow a malicious process to spy on events/data outside the VM. |- |} = Attack Methodology = == Advanced Remote Deanonymization Methods == '''Table:''' ''Advanced Remote Deanonymization Methods'' {| class="wikitable" |- | ! '''CPU-induced Network Latency''' https://phabricator.whonix.org/T530 ! '''TCP ISNs and Temperature-induced Clock Skews''' https://phabricator.whonix.org/T543 ! '''[[Keystroke Deanonymization]]''' https://phabricator.whonix.org/T542 ! '''[[Surfing_Posting_Blogging#Mouse_Fingerprinting|Mouse Fingerprinting]]''' |- ! '''Attack Class''' | Covert Channel (network) | Covert Channel (network) | Behavioral Tracking | Behavioral Tracking |- ! '''Attack Summary''' | CPU load induces a noticeable latency in ICMP network packets. https://lists.torproject.org/pipermail/tor-talk/2016-July/041807.html | CPU load skews the clock crystal frequency; these changes are detectable in the TCP ISN field. | Timing of/between keystrokes creates a unique individual pattern. | Timing of/between mouse movement speed/angles creates a unique individual pattern. |- ! '''Mitigation''' | Add random delays per ICMP packet with tc-netem or block the protocol on host. No mitigation needed for Whonix - Tor is TCP only. Attack doesn't work on TCP and tc-netem causes visible latency for streams when traffic is induced, harming anonymity and performance. https://phabricator.whonix.org/T530#20163 / [[Dev/latency-obfuscator]] | Rewrite TCP ISNs to conceal timer skews. | Abstract keyboard input into a network layer and the injection of random delays. Removing fine-grained timers also helps in this situation. | Abstract mouse input into a network layer and the injection of random delays. |- ! '''{{project_name_short}} [[KVM]] Mitigation''' | style="background-color: {{Blue}}"| Unneeded | style="background-color: {{Green}}"| Production https://forums.whonix.org/t/tcp-isn-cpu-information-leak-protection-tirdad/8552 | style="background-color: {{Green}}"| Production [[kloak]] | style="background-color: {{Green}}"| Production |- ! '''{{project_name_short}} [[VirtualBox]] Mitigation''' | style="background-color: {{Blue}}"| Unneeded | style="background-color: {{Green}}"| Production | style="background-color: {{Green}}"| Production | style="background-color: {{Green}}"| Production |- ! '''[[Qubes|{{q_project_name_long}}]] Mitigation''' | style="background-color: {{Blue}}"| Unneeded | {{No}} [https://forums.whonix.org/t/qubes-whonix-security-disadvantages-help-wanted/8581 Qubes-Whonix Security Disadvantages - Help Wanted!] | {{No}} | {{No}} |- |} == Advanced Local Deanonymization Methods == '''Table:''' ''Advanced Local Deanonymization Methods'' {| class="wikitable" |- | ! '''DRAMA Cross-CPU Attacks''' https://phabricator.whonix.org/T541 ! '''Cross-VM CPU Cache Attacks''' https://phabricator.whonix.org/T539 [https://cmaurice.fr/pdf/ndss17_maurice.pdf Hello from the Other Side: SSH over Robust Cache Covert Channels in the Cloud]: a newer covert channel attack that requires the same condition of a shared CPU cache. |- ! '''Attack Class''' | Covert (local) and Side Channel | Covert (local) and Side Channel |- ! '''Attack Summary''' | Timing of access to the shared memory bank permits data leaks, as well as snooping on keystrokes. | Measurement of the shared CPU cache access latency; this leaks timing data concerning cryptographic processes. |- ! '''Mitigation''' | Block clflush and tsc instructions, as well as removing all timers. Further, avoid the multi-threading of VMs, or alternatively use non-interleaved NUMA with pinned vCPUs. | Pin vCPUs to separate pCPUs. Proper mitigations are added by upstream crypto lib projects when attacks are discovered. |- ! '''{{project_name_short}} [[KVM]] Mitigation''' | {{No}} Measure reverted to enable spectre/meltdown guest mitigations | style="background-color: {{Green}}"| Production |- ! '''{{project_name_short}} [[VirtualBox]] Mitigation''' | {{No}} | {{No}} |- !| '''[[Qubes|{{q_project_name_short}}]] Mitigation''' | {{No}} | {{No}} |- |} == Other Advanced Deanonymization Attacks == There are numerous other advanced attacks which have not been included in the above table. The reason is they have easy fixes, such as avoiding some [[KVM#Unsafe_Features|unsafe hypervisor features]]. = Other Deanonymization Vectors = High-risk users should familiarize themselves with other attack vectors that can lead to deanonymization or other harmful outcomes. * [[Time_Attacks|Time-related Attacks]]: These are in a class of their own. In simple terms, insecure time synchronization and the leaking of time data can result in deanonymization. Although documented separately, time attacks have some overlap with factors outlined here. * [[Speculative_Tor_Attacks|Tor Ecosystem Attacks]]: Advanced adversaries are capable of attacking the Tor client, server and/or [[Warning#Tor_Network_Attacks|network]] (sometimes in combination) to identify users and/or servers in specific situations. = Development = * [[Dev/Advanced Deanonymization Attacks]] * Ticket: [https://phabricator.whonix.org/T540 Covert Channels Meta Ticket] * [https://forums.whonix.org/t/advanced-deanonymization-attacks/2879 forum discussion] = Footnotes = {{reflist|close=1}} {{Footer}} [[Category:Documentation]]