security-misc: Enhance Miscellaneous Security Settings
From Whonix
Stable Features[edit]
Testing Features[edit]
Reduce Kernel Information Leaks[edit]
- Security Impact: There are many of hardware, kernel, debug information, etc. in
/sys
, which is especially problematic and has been the cause of many infoleaks such as kernel pointer leaks. - Privacy/Anonymity Impact: Details about your hardware can be used for identification.
- Threat: This information is per Debian (and probably most popular Linux distributions) available to attackers with local code execution privileges which includes,
- malicious applications collecting such information and submitting it to data collectors,
- as well as both, compromised non-privileged users and the privileged root user.
- Non-Threat: This information does not randomly leak to third parties on clean (non-compromised) machines through use of legitimate applications such as the APT package manager.
- Goal: This information should by default be unavailable to non-privileged users and untrusted root.
- Solution: Therefore security-misc includes the
hide-hardware-info.service
systemd unit.- Restricts access to
/sys
,/proc/cpuinfo
,/proc/bus
, and/proc/scsi
to the root user only. - This also hides most hardware identifiers.
- Restricts access to
- Status: This setting is disabled by default because it might break many applications. Testers-only! Call for testers and forum discussion: Restrict Hardware Information to Root - Testers Wanted! [archive]
- Enable: It can optionally be enabled by running the following command.
-
sudo systemctl enable hide-hardware-info.service
- Reboot required.
- A whitelist that allows specific applications to access
/sys
and/proc/cpuinfo
is enabled by default to maintain basic functionality. [1] For example, this allows the launching of applications like XFCE.
-
- Limitations of Solution:
- Possible Future Enhancements: untrusted root
Whitelisting Applications[edit]
To whitelist applications, they must be run under the sysfs
group (if allowing access to /sys
) and/or the cpuinfo
group (if allowing access to /proc/cpuinfo
).
Remember that any whitelisted applications add to the attack surface. An attacker can attempt to exploit a vulnerability in the whitelisted application(s) to gain access to hardware information.
addgroup method[edit]
For example, to add user user
to group cpuinfo
, run the following command. (Note, this is weakening protections.)
sudo addgroup user cpuinfo
For example, to add user user
to group sysfs
, run the following command. (Note, this is weakening protections.)
sudo addgroup user sysfs
Re-login required after changing groups. Easiest: reboot. [3] [4]
For example, after reboot it would be possible to run the cpu-info
utility (from Debian package cpuinfo
).
cpu-info
systemd[edit]
For example, to run a systemd service as the sysfs
group, create a drop-in directory and add the following.
[Service] SupplementaryGroups=sysfs
setgid method[edit]
To run a specific binary as the sysfs
group, the binary must be owned by the sysfs
group and be made setgid. To achieve this, change the ownership of the binary by running the following.
sudo chgrp sysfs /path/to/binary
Then make the binary setgid.
sudo chmod g+s /path/to/binary
The binary will now run with the permissions of the sysfs
group and have access to /sys
.
All of these steps can also be applied to the cpuinfo
group.
Disable the Whitelist[edit]
In order to reduce the attack surface as much as possible, optionally the whitelist can be disabled entirely.
Note that this setting will break many applications; for example, the desktop environment will not even start. Do not perform this action unless you understand the implications and can reverse the change.
1. Open file /etc/hide-hardware-info.d/50_user.conf
in an editor with root rights.
This box uses sudoedit
for better security [archive]. This is an example and other tools can also achieve the same goal. If this example does not work for you or if you are not using Whonix ™, please refer to this link.
sudoedit /etc/hide-hardware-info.d/50_user.conf
2. Add.
sysfs_whitelist=0 cpuinfo_whitelist=0
3. Save.
4. Done.
SUID Disabler and Permission Hardener[edit]
See SUID Disabler and Permission Hardener.
hidepid[edit]
TODO: document
sudo systemctl enable proc-hidepid.service
Experimental Features[edit]
Unreleased. (Developers only.) Will flow into other repositories as per usual.
Remount Secure[edit]
Feature not ready!
- https://forums.whonix.org/t/re-mount-home-and-other-with-noexec-and-nosuid-among-other-useful-mount-options-for-better-security/7707/27 [archive]
- https://github.com/Whonix/security-misc/blob/master/lib/systemd/system/remount-secure.service [archive]
- https://github.com/Whonix/security-misc/blob/master/usr/lib/security-misc/remount-secure [archive]
- Dev/remount-secure
sudo touch /etc/noexec
Installation of security-misc[edit]
This chapter is only required for users which aren't users of Whonix ™ or Kicksecure. That is because security-misc is installed by default in Whonix ™ and Kicksecure.
Prerequisites:
1. Confirm prerequisites are met.
- Debian
bullseye
is installed. - User account
user
exists.
su -
3. Install sudo
and adduser
packages.
1. Update the package lists.
apt update
2. Upgrade the system.
apt full-upgrade
3. Install sudo
and adduser
packages.
apt install --no-install-recommends sudo adduser
4. Set user rights.
The following commands must be run either by root or using sudo
.
Create group console
.
addgroup --system console
Add user user
to group console
.
adduser user console
Add user user
to group sudo
.
adduser user sudo
5. Reboot. [7]
reboot
1. Download the Signing Key.
wget https://www.whonix.org/derivative.asc
2. Optional: Check the Signing Key for better security.
3. Add Whonix ™ signing key.
sudo cp derivative.asc /usr/share/keyrings/derivative.asc
4. Whonix ™ APT repository choices.
Optional: See Whonix ™ Packages for Debian Hosts and Whonix ™ Host Enhancements instead of the next step for more secure and complex options.
5. Add Whonix ™ APT repository.
echo "deb [signed-by=/usr/share/keyrings/derivative.asc] https://deb.whonix.org bullseye main contrib non-free" | sudo tee /etc/apt/sources.list.d/derivative.list
Install security-misc
.
Install security-misc
.
1. Update the package lists.
sudo apt update
2. Upgrade the system.
sudo apt full-upgrade
3. Install the security-misc
package.
Using apt
command line parameter --no-install-recommends
is in most cases optional.
sudo apt install --no-install-recommends security-misc
4. Done.
The procedure of installing security-misc
is complete.
selinux[edit]
Community Support Only!: | |
---|---|
|
- https://github.com/Whonix/security-misc/pull/100 [archive]
- https://forums.whonix.org/t/restrict-hardware-information-to-root/7329/88 [archive]
References[edit]
- ↑ https://gitlab.com/whonix/security-misc/-/blob/master/lib/systemd/system/user@.service.d/sysfs.conf [archive]
- ↑
- ↑
No reboot required: Use the execute command as different group ID command line utility
sg
to execute thecpu-info
(from Debian packagecpuinfo
) application under groupcpuinfo
.sg cpuinfo cpu-info
- ↑
Also no reboot required:
sudo -u user bash
cpu-info
Or.
sudo -u user cpu-info
- ↑
Parameter
-
is required to set the correct paths to/usr/sbin
. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833256 [archive] - ↑ Other methods are possible.
- ↑ Usability. Otherwise after installation is complete, user might not be able to login. Needs further testing if still required. Can be avoided for remote servers.
Whonix ™ is Supported by Evolution Host DDoS Protected VPS. Stay private and get your VPS with Bitcoin or Monero.
100px | |
Fosshost | About Advertisements |
Search engines: YaCy | Qwant | ecosia | MetaGer | peekier | Whonix ™ Wiki
Subscribe to Whonix ™ Newsletter.
Priority Support | Investors | Professional Support
Whonix ™ | © ENCRYPTED SUPPORT LP | Freedom Software / Open Source (Why?)
The personal opinions of moderators or contributors to the Whonix ™ project do not represent the project as a whole.