Least Privilege

The principle of least privilege requires that every process, user account, service, and system component be granted only the permissions and access rights necessary to perform its defined function, with no additional privileges retained beyond what the assigned task requires. Applied to spacecraft and ground systems, this means that processes executing on flight computers, operating system services, ground system applications, and inter-system communication handlers are each confined to the minimum privilege level needed for their specific function, preventing a compromised or malfunctioning component from leveraging excess permissions to affect other system resources or functions. Separate execution domains should be used where supported to reinforce least privilege and contain process failures or compromise. Process isolation does not replace explicit access controls, because authorized communication and shared resources may still cross execution-domain boundaries. Least privilege is a foundational design principle that reduces the consequence of any individual component compromise by limiting what an adversary can accomplish within that component's execution context.

ID: CM0039
Tier: I
Onboard SV CM 
Created: 2022/10/19
Last Modified: 2026/08/06

Pre-Operations Government

Acquisition requirements should mandate the principle of least privilege as a system-wide design requirement, with specifications requiring that each process, service, and user role in delivered spacecraft and ground systems be assigned the minimum privilege set necessary for its defined function, documented in a privilege assignment matrix subject to government review. Requirements should specify that process isolation through separate execution domains be implemented wherever the target platform supports it, with the isolation mechanism identified for each class of process and any deviations from per-process isolation requiring documented justification. Contract language should require that privilege assignments be formally analyzed and documented before system integration, that any process requiring elevated privilege be explicitly justified, and that the justification be reviewed and approved by government technical authorities before the privilege is granted in the delivered system. Evaluation criteria should assess offerors' proposed privilege architecture, their experience implementing least-privilege designs in resource-constrained flight environments, and their proposed verification methodology for confirming that privilege assignments in the delivered system match the approved design. Verification should include testing that attempts to use the permissions of representative processes and accounts to access resources or perform functions outside their authorized scope, confirming that unauthorized actions are blocked and that applicable execution-domain boundaries operate as designed.

Pre-Operations Developer/Supplier

Least-privilege architecture must be designed at the system level before software component development begins, establishing the privilege requirements of each planned process and service as an explicit design parameter rather than allowing privilege levels to accumulate organically during development as components request access they find convenient. A privilege assignment matrix should be developed and maintained as a controlled design artifact, enumerating every process, service, and user role in the system alongside the specific permissions granted and the functional justification for each, providing a structured basis for review and audit of privilege assignments throughout the development lifecycle. Process isolation mechanisms should be selected based on the target platform, required assurance, and consequences of boundary failure. Hardware-enforced memory protection, operating-system process isolation, separation kernels, dedicated processing resources, or other mechanisms may be used individually or in combination to provide the required isolation. Privilege escalation pathways must be identified and minimized. Any retained mechanism for acquiring elevated privileges must be explicitly authorized, limited in scope and duration, and subject to appropriate authentication, access control, and audit logging. Development toolchains, build environments, and test systems should also be governed by least-privilege principles, as over-privileged development infrastructure represents a supply chain risk that can introduce compromise during software production rather than only during operations.