...
Cloak |
---|
This requires understanding the secure design principles, including the 8 principles from Saltzer and Schroeder:
This document highlights a core set of high-level secure software development practices: https://outlook.office365.com/mail/inbox/id/AAQkADg3NmY0NTkwLTgzYWYtNGQyYy1iN2JjLTJjZDc2YmQyMTFmYwAQAHzgQwaOjkWovDr0XZgjQOk%3D#:~:text=https%3A//nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800%2D218.pdf%20%2B%20https%3A//csrc.nist.gov/publications/detail/sp/800%2D218800-218/final%C2%A0 For example, for their
|
Your Answers-Please Explain |
---|
...
Cloak |
---|
The project must implement secure design principles (from 'know secure design'). For example, the project results should have fail-safe defaults (access decisions should deny by default, and projects' installation should be secure by default). They should also have complete mediation (every access that might be limited must be checked for authority and be non-bypassable). Note that in some cases principles will conflict, in which case a choice must be made (e.g., many mechanisms can make things more complex, contravening 'economy of mechanism' / keep it simple). Implement secure design builds on the question above of "know secure design". For ONAP, the committers must all know the secure design principles and reviewing the code must always includes looking at it from the point of review of the security principles. It's crucial to document the secure design practices and software design/coding standards and code review. This NIST SSDF document provides additional details: |
Your Answer-Please Explain |
---|
...
Cloak |
---|
A software architecture explains a program's fundamental structures, i.e., the program's major components, the relationships among them, and the key properties of these components and relationships. The architecture would often be part of the documents that describe what the software does and its interfaces. |
Your Answer-Please describeDescribe |
---|
Documentation Security
Does your project have a description of what a user of your project can and cannot expect in terms of security from the software produced by the project, (In other words, what are its 'security requirements'?)
...
Cloak |
---|
These are the security requirements that the software is intended to meet. There needs to be:
|
Your Answer-Please describeDescribe |
---|
Assurance Case
Does your project actually meet its documented security requirements?
...
Cloak |
---|
For ONAP, somewhere in the project's description, there needs to be (as indicated above):
This may be combined with the "documentation security" document. |
Your Answer-Please ExplainDescribe |
---|
Vulnerability Mitigation
Vulnerabilities Critical Fixed
...
Cloak |
---|
If you compile code into binary executables, do you use
If your project provides a web user interface:
If your project generates email:
If your project uses a database:
|
Your Answer-Please Explain |
---|
Cryptographic-specific Software Questions
...
Cloak |
---|
If the software produced by the project is an application or library, and its primary purpose is not to implement cryptography, then it SHOULD only call on software specifically designed to implement cryptographic functions; it SHOULD NOT re-implement its own. |
Your Answer-Please Explain |
---|
Crypto Random - Generic
Does your software use random information? If so, does it use a cryptographically secure random number generator?
...
Cloak |
---|
The security mechanisms within the software produced by the project MUST generate all cryptographic keys and nonces using a cryptographically secure random number generator, and MUST NOT do so using generators that are cryptographically insecure. A cryptographically secure random number generator may be a hardware random number generator ( For additional guidance and examples about what kind of specifications to rate a random bit generator (RBG) please review: https://csrc.nist.gov/publications/detail/sp/800-90c/draft |
Your Answers-Please Explain |
---|
Crypto Weaknesses
Does your software depend on any cryptographic algorithms or modes that have known serious weaknesses?
...
Cloak |
---|
The default security mechanisms within the software produced by the project SHOULD NOT depend on cryptographic algorithms or modes with known serious weaknesses (e.g., the SHA-1 cryptographic hash algorithms, or the CBC mode in SSH). |
Your Answer-Please Explain |
---|
Crypto Working
Does your software depend on any cryptographic algorithms that are known to be broken?
...
Cloak |
---|
The default security mechanisms within the software produced by the project MUST NOT depend on broken cryptographic algorithms (e.g., MD4, MD5, single DES, RC4, Dual_EC_DRBG), or use cipher modes that are inappropriate to the context, unless they are necessary to implement an interoperable protocol (where the protocol implemented is the most recent version of that standard broadly supported by the network ecosystem, that ecosystem requires the use of such an algorithm or mode, and that ecosystem does not offer any more secure alternative). The documentation MUST describe any relevant security risks and any known mitigations if these broken algorithms or modes are necessary for an interoperable protocol. |
Your Answer-Please Explain |
---|
Crypto Keylength
Does your software generate any keys? If so, do they use any default key-lengths that are considered insecure?
...
Cloak |
---|
The security mechanisms within the software produced by the project MUST use default key-lengths that at least meet the NIST minimum requirements through the year 2030 (as stated in 2012). It MUST be possible to configure the software so that smaller key-lengths are completely disabled. |
Your Answers-Please Explain |
---|
Crypto Algorithm Agility
Does your software use cryptographic algorithms? If so, can a user of ONAP switch the algorithm if one is found to be broken?
...
Cloak |
---|
The project SHOULD support multiple cryptographic algorithms, so users can quickly switch if one is broken. Common symmetric key algorithms include AES, Twofish, and Serpent. Common cryptographic hash algorithm alternatives include SHA-2 (including SHA-224, SHA-256, SHA-384 AND SHA-512) and SHA-3. |
Your Answers-Please Explain |
---|
Crypto Certificate Verification
...