SA-11(5) - Developer Testing and Evaluation | Penetration Testing

Require the developer of the system, system component, or system service to perform penetration testing: (a) At the following level of rigor: [Assignment: organization-defined breadth and depth of testing]; and (b) Under the following constraints: [Assignment: organization-defined constraints].


ID: SA-11(5)
Enhancement of : SA-11

Space Segment Guidance

Penetration testing is best-conducted pre-launch in a dedicated environment that mimics flight hardware and software as closely as possible, including realistic timing, data paths, and nominal constraints like radiation-hardened processors. Testers can probe boundary conditions (e.g., maximum command packet size, invalid parameter sets) to detect vulnerabilities before they become permanent fixtures in orbit. For highly sensitive missions, a mission might adopt a "safe fuzzing" approach, gradually ramping up the intensity of the test vectors while continuously monitoring system stability. If the craft is experimental (e.g., CubeSats), risk tolerance may allow less rigorous pen testing, especially if each spacecraft is cheaply replaced. However, for flagship missions with high-stakes science or defense goals, thorough pre-launch penetration testing is vital to surfacing hidden flaws—like unexpected memory overflows in flight software—that can jeopardize mission longevity and data integrity once the satellite is out of reach.