NixOS must prevent all software from executing at higher privilege levels than users executing the software.
Overview
| Finding ID | Version | Rule ID | IA Controls | Severity |
| V-268148 | ANIX-00-001280 | SV-268148r1131097_rule | CCI-002233 | medium |
| Description | ||||
| In certain situations, software applications/programs need to execute with elevated privileges to perform required functions. However, if the privileges required for execution are at a higher level than the privileges assigned to organizational users invoking such applications/programs, those users are indirectly provided with greater privileges than assigned by the organizations. Some programs and processes are required to operate at a higher privilege level and therefore should be excluded from the organization-defined software list after review. | ||||
| STIG | Date | |||
| Anduril NixOS Security Technical Implementation Guide | 2025-08-19 | |||
Details
Check Text (C-268148r1131097_chk)
Verify NixOS audits and provides alerts of audit failures by running the following command:
$grep A -15 security.auditd /etc/nixos/configuration.nix
/etc/nixos/configuration.nix:
security.auditd.enable = true;
security.audit.enable = true;
security.audit.rules = [
''
<audit_rules>
''
]; security.audit.rules = [
"-a always,exit -F arch=b32 -S execve -C uid!=euid -F euid=0 -k execpriv"
"-a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k execpriv"
"-a always,exit -F arch=b32 -S execve -C gid!=egid -F egid=0 -k execpriv"
"-a always,exit -F arch=b64 -S execve -C gid!=egid -F egid=0 -k execpriv"
];
If "security.auditd", "security.audit" and the additional modifications do not equal true, are missing, or are commented out, this is a finding.
Fix Text (F-71975r1131096_fix)
Configure the audit service to produce audit records.
Add the following Nix code to the NixOS Configuration, usually located in /etc/nixos/configuration.nix or /etc/nixos/flake.nix:
security.auditd.enable = true;
security.audit.enable = true;
Add the following audit rules:
security.audit.rules = [
"-a always,exit -F arch=b32 -S execve -C uid!=euid -F euid=0 -k execpriv"
"-a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k execpriv"
"-a always,exit -F arch=b32 -S execve -C gid!=egid -F egid=0 -k execpriv"
"-a always,exit -F arch=b64 -S execve -C gid!=egid -F egid=0 -k execpriv"
];
Rebuild and switch to the new NixOS configuration:
$ sudo nixos-rebuild switch