# Best Practices for Resilient Applications

IEEE Standard Glossary of Software Engineering Terminology, IEEE Std 610.12-1990 defines robustness as:

> _"The degree to which a system or component can function correctly in the presence of invalid inputs or stressful environmental conditions"_

1. Apply Defense in Depth.
2. Use a Positive Security Model.
3. Fail Securely.
4. Run with Least Privilege.
5. Avoid Security by Obscurity.
6. Keep Security Simple.
7. Detect Intrusions.
   1. Log All Security-Relevant Information.
   2. Ensure That the Logs Are Monitored Regularly.
   3. Respond to Intrusions.
8. Don't Trust Infrastructure.
9. Don't Trust Services.
10. Establish Secure Defaults.
