Operating System Hardening
Debian Security Announcements
Since Whonix ™ is based on Debian, it takes advantage of all the hard work done by their security team: 
Debian takes security very seriously. We handle all security problems brought to our attention and ensure that they are corrected within a reasonable timeframe. Many advisories are coordinated with other free software vendors and are published the same day a vulnerability is made public and we also have a Security Audit team that reviews the archive looking for new or unfixed security bugs. Experience has shown that "security through obscurity" does not work. Public disclosure allows for more rapid and better solutions to security problems. In that vein, this page addresses Debian's status with respect to various known security holes, which could potentially affect Debian.
Most hardening steps cannot be easily added to Whonix ™ by default. Any major changes require careful research and significant developer/tester effort, otherwise system errors or breakage may occur. This is an open topic and Whonix ™ developers are amenable to suggestions - improving operating system security will always be a primary design goal.
Before attempting additional hardening measures below, be sure to fully understand them and apply the steps carefully:
- Debian Hardening Walkthrough [archive]
- Debian Security Information [archive]
- Securing Debian Manual [archive]
Readers are welcome to add any additional hardening resources to this list.
The upstream Kernel Self Protection Project (KSPP)  was established in 2015 with the goal of introducing more hardening features into mainline Linux. This includes many features found in the Grsecurity patchset, which was publicly available until early 2017 [archive]. One advantage of KSPP is that users will no longer need to compile and tweak settings to create a secure kernel. Instead, many hardening features will become the default over time in various distributions. Up-to-date information on available hardening features can be viewed here [archive].
The Hardened Kernel Project is a collaborative effort between Arch and Gentoo developers who handled Grsecurity packaging in their respective distributions with the goal of accelerating mainlining of the patchset.  
While kernel hardening is important, it only addresses a subset of security risks. It cannot protect against backdoors or security issues related to design, policy or yet unknown exploit classes.
Restricting module loading can protect the kernel.
Chapter "Module Loading" is for advanced users only since it could break various things. This is still under development. See Whonix development discussion: allow loading signed kernel modules by default / disallow kernel module loading by default [archive]
ipt_REJECT ip6t_REJECT nft_chain_nat_ipv4 nft_chain_route_ipv4 nft_chain_route_ipv6 nft_compat nft_counter xt_conntrack xt_state xt_tcpudp
snd_intel8x0 ## Platform specific? ## is autoloaded by snd_intel8x0 #snd evdev drm ## works without too #binfmt_misc
Whonix-Workstation ™ only:
vboxguest vboxsf vboxvideo
Disable module loading by creating this file:
After reboot, test if module loading is really disabled. Try to load any module, for example
sudo modprobe apanel
modprobe: ERROR: could not insert 'apanel': Operation not permitted
Harden Software Repositories
Many operating systems provide multiple repositories. Since the Whonix ™ implementation is based on Debian, these resources provide a suitable introduction for interested readers:
- Debian Policy Manual Chapter 2 - The Debian Archive [archive].
- Ubuntu Repositories (similar to Debian) [archive].
In summary, these resources confirm the main repository receives the most developer attention and security updates. This suggests a degree of hardening might involve editing /etc/apt/sources.list to strictly limit software to the main repository, while only installing security fixes and no other updates.
Whonix ™ has not implemented this design by default and it is an open research question whether this will actually improve security.
Vulnerabilities at Install Time
Various installation media expose users to vulnerabilities, including:
- Importable VM images: Whonix ™ and other images [archive].
- Installer DVDs: Debian [archive] and other major platforms.
- Live DVDs: Tails [archive] and similar platforms.
- VM Images built with frozen sources: Platforms without current sources.
The threat arises because the latest stable releases sometimes contain vulnerable, remotely exploitable applications. These applications are very likely to be used over untrusted networks  which are in a position to run Man-in-the-Middle Attacks.
One recent example is the January, 2019 apt-get vulnerability (CVE-2019-3462 [archive]) which allowed content injection by a MiTM attacker, thereby enabling remote code execution on the affected Linux machine. Specifically, improper sanitization of parameters in HTTP redirects allowed malicious content (altered packages) to be installed via a harmful mirror or direct injection into the network traffic.  For another example, see CVE-2014-6273 [archive] which affected apt-get in 2014.
Readers are welcome to help research this issue further and document sane and effective solutions.  For example, users who solely rely on Debian and Whonix ™ onion services for updates may have had (partial) protection against the 2019 apt-get bug, but this requires investigation.
Always Up-to-date Builds
If Whonix ™ regularly released up-to-date builds, this would be an optimal solution for end users. However, the maintenance effort -- building, testing and uploading -- is resource-intensive and not currently feasible for the Whonix ™ team.
Greater community support is needed for testing proposed Whonix ™ package updates and major new releases, alongside an automated test suite for Whonix ™.
When using virtual machines, Whonix-Gateway ™ could be configured to use the host apt-cache. Physically-isolated Whonix-Gateway ™ could use an apt-cache running on a separate machine. apt-cacher-ng [archive] is an example implementation of such an apt-cache.
This configuration does not anonymize operating system updates by default, which is a big disadvantage.  It would be first necessary to determine how to configure apt-cacher-ng on the host to force downloads through Tor.
Eventually Whonix-Workstation ™ could use an apt-cache that is running on Whonix-Gateway ™. Unfortunately, this would increase the Whonix-Gateway ™ attack surface if/when Whonix-Workstation ™ is compromised. On the other hand, it would decrease the Whonix-Workstation ™ attack surface if/when a vulnerable apt-get is used for downloads over untrusted Tor exit relays.
Building from Source Code using Current Sources
Self-created Whonix ™ builds from source code use current sources, thereby solving this problem. Although frozen sources have been deprecated for reasons outlined in the Build documentation, using current sources comes with its own issues.
- https://security.debian.org/ [archive]
- https://www.openwall.com/lists/kernel-hardening [archive]
- https://github.com/AndroidHardeningArchive/linux-hardened/wiki [archive]
- https://github.com/anthraxx/linux-hardened [archive]
- Such as Tor exit relays.
- https://thehackernews.com/2019/01/linux-apt-http-hacking.html [archive]
- Forum discussion [archive].
- This leaks a list of installed packages to ISP-level adversaries and update servers. For example, if a user installed a webserver that is likely to be used to host a hidden web service, then this information would leak.
This is a wiki. Want to improve this page? Help is welcome and volunteer contributions are happily considered! Read, understand and agree to Conditions for Contributions to Whonix ™, then Edit! Edits are held for moderation. Policy of Whonix Website and Whonix Chat and Policy On Nonfreedom Software applies.
Copyright (C) 2012 - 2020 ENCRYPTED SUPPORT LP. Whonix ™ is a trademark. Whonix ™ is a licensee [archive] of the Open Invention Network [archive]. Unless otherwise noted, the content of this page is copyrighted and licensed under the same Freedom Software license as Whonix ™ itself. (Why?)