Add Hardening
parent
37e7cd21e5
commit
584d8d4cb3
74
Hardening.md
Normal file
74
Hardening.md
Normal file
@ -0,0 +1,74 @@
|
||||
# System Hardening
|
||||
|
||||
A number of different methods are employed to make HalogenOS more resistant to exploits and tampering, and are explained below.
|
||||
|
||||
## Build Settings
|
||||
|
||||
These are configurations performed during the compilation stage. All the settings here apply strictly to binaries which ship within the HalogenOS image, not to binaries downloaded via Flatpak or Distrobox.
|
||||
|
||||
- Gentoo hardened compiler & flags
|
||||
- SELinux support included
|
||||
- X11 and systemd support disabled
|
||||
|
||||
## Kernel
|
||||
|
||||
The kernel has been configured to utilize several security features that limit what APIs processes can use and which side channels might be available to leak information.
|
||||
|
||||
- Kernel Self Protection Project enabled
|
||||
- Signed kernel module loading only
|
||||
- Quiet boot parameter
|
||||
- Common CPU vulnerabilities mitigated
|
||||
- Lockdown mode set to confidentiality
|
||||
- SELinux enabled
|
||||
- Unnecessary modules blacklisted
|
||||
|
||||
## Full Verified Boot
|
||||
|
||||
If the hardware running HalogenOS is properly manufactured and configured, it should provide a reasonably strong guarantee that software on the system is in a known good state.
|
||||
|
||||
- Checks & reports on hardware/firmware security
|
||||
- Unified Kernel Image boot
|
||||
- Secure Boot with locally generated keys
|
||||
- dm-verity enabled for system partition
|
||||
- squashfs based system images
|
||||
- LUKS encryption enabled for user partition
|
||||
- TPM2 based automatic unlocking
|
||||
- Automatic repair in case of tampering
|
||||
- User alerted if hardware security baseline changes
|
||||
|
||||
## Configuration
|
||||
|
||||
Various controls on the kernel's networking stack, filesystem stack, and on some userland components like malloc further reduce attack surface.
|
||||
|
||||
- Hardened sysctl values
|
||||
- hardened_malloc used by default
|
||||
- `nosuid` set for non-system partitions
|
||||
- `noexec` set for `/tmp`
|
||||
- Root logon disabled
|
||||
- No superuser access on production builds
|
||||
- sshd disabled
|
||||
|
||||
## Updates
|
||||
|
||||
System updates are fully verified as well. In a secure build, signatures are required and the system will not install an unsigned or improperly signed update or overlay.
|
||||
|
||||
- Signed image updates
|
||||
- Signed system overlays
|
||||
- Updates performed over HTTPS
|
||||
|
||||
## Sandboxing
|
||||
|
||||
Applications are run in sandboxes by default so they do not make undesired modifications or read files without authorization.
|
||||
|
||||
- Flatpak centered package management
|
||||
- Distrobox with gvisor for container work
|
||||
- Hardened Docker configuration
|
||||
- BubbleWrap for arbitrary binary sandboxing
|
||||
|
||||
## Applications
|
||||
|
||||
The default applications have been selected with security as a first priority.
|
||||
|
||||
- GNOME desktop environment
|
||||
- Wayland display compositor
|
||||
- Trivalent browser
|
Loading…
Reference in New Issue
Block a user