...
Jira Legacy | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Follow up Jira for documentation -
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Security Knowledge
Know Secure Design
...
Your Answers-Please Explain | SECCOM Feedback / Recommendations |
---|---|
Yes - the PF team follows the best common practices regarding security and possible vulnerabilities | ✅ |
Implement Secure Design
Do the committers and PTL apply secure design principles when reviewing software for merging?
...
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: [implement_secure_design S] |
Your Answer-Please Explain | SECCOM Feedback / Recommendations |
---|---|
Yes - the PF team/PTL/committers review and look for security issues and recommend fixes before merging. |
Know Common Errors
...
?
|
Know Common Errors
Do the committers and PTL understand commonly found errors (and how to counter or mitigate them)? Do they apply these principles when reviewing software for merging?
...
Your Answers-Please Explain | SECCOM Feedback / Recommendations |
---|---|
Yes - the PF team & PTL are aware of common security risks and how to mitigate them | ✅ |
No Leaked Credentials
Do the committers and PTL verify that there are no non-test credentials and no non-test private keys in code to be merged?
...
Your Answer-Please Explain | SECCOM Feedback / Recommendations |
---|---|
We have public user/password in configuration files, including test files. It's recommended to change it and most of the non-test usage is done with helm charts, which generate secrets. | ✅ |
Security Documentation
Documentation Architecture
...
If so, please provide a URL to the pages on wiki.onap.org or onap.readthedocs.io that have the architecture or high level design. If not, please describe the high level design here using one or more paragraphs.
...
Your Answer-Please Describe | SECCOM Feedback / Recommendations |
---|---|
ONAP documentation - https://docs.onap.org/projects/onap-policy-parent/en/latest/index.html | ✅ |
Documentation Security
Does your project have a description of what an user of 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'?)
If so, please provide a URL to the page(s) on wiki.onap.org or onap.readthedocs.io. If not, please describe the security requirements here using one or more paragraphs.
...
Your Answer-Please Describe | SECCOM Feedback / Recommendations |
---|---|
All the resources that can be accessed in PF require authentication |
Assurance Case
Does your project actually meet its documented security requirements?
If so, please provide a URL to the page(s) on wiki.onap.org or onap.readthedocs.io that describe how the project meets its security goals. If not, please describe here (using one or more paragraphs) how the project meets its security goals.
...
For ONAP, somewhere in the project's description, there needs to be (as indicated above):
...
This may be combined with the "documentation security" document.
[assurance_case S]
...
Test cases are found at https://github.com/onap/policy-docker/tree/master/csit/resources/tests showing that authentication must be done before interacting with any resource.
ONAP docs describring how to run test cases https://docs.onap.org/projects/onap-policy-parent/en/latest/development/devtools/testing/csit.html
Vulnerability Mitigation
Vulnerabilities Critical Fixed
Have you closed all issues filed against your project in sonarcloud that are CRITICAL or BLOCKERs?
...
Cloak |
---|
All critical vulnerabilities should be fixed rapidly after they are reported. [vulnerabilities_critical_fixed P] |
Your Answer-Please Explain | SECCOM Feedback / Recommendations |
---|---|
❌
|
Assurance Case
Does your project actually meet its documented security requirements?
If so, please provide a URL to the page(s) on wiki.onap.org or onap.readthedocs.io that describe how the project meets its security goals. If not, please describe here (using one or more paragraphs) how the project meets its security goals.
Toggle cloak |
---|
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. [assurance_case S] |
Your Answer-Please Describe | SECCOM Feedback / Recommendations |
---|---|
Test cases are found at https://github.com/onap/policy-docker/tree/master/csit/resources/tests showing that authentication must be done before interacting with any resource. ONAP docs describring how to run test cases https://docs.onap.org/projects/onap-policy-parent/en/latest/development/devtools/testing/csit.html | ? Good start
|
Vulnerability Mitigation
Vulnerabilities Critical Fixed
Have you closed all issues filed against your project in sonarcloud that are CRITICAL or BLOCKERs?
Toggle cloak |
---|
Cloak |
---|
All critical vulnerabilities should be fixed rapidly after they are reported. [vulnerabilities_critical_fixed P] |
Your Answer-Please Explain | SECCOM Feedback / Recommendations |
---|---|
Sonarcloud reports can be found at: https://sonarcloud.io/project/overview?id=onap_policy-papapex-pdp https://sonarcloud.io/project/overview?id=onap_policy-xacml-pdp |
Vulnerabilities Fixed 60 Days
Are all vulnerabilities that are reported against your project, either through an OJSI ticket or publicly from CVE reports, fixed within two months of being reported?
...
Cloak |
---|
There MUST be no unpatched vulnerabilities of medium or higher severity that have been publicly known for more than 60 days. [vulnerabilities_fixed_60_days P] |
Your Answer-Please Explain | SECCOM Feedback / Recommendations |
---|---|
We try to keep up to date on fixing vulnerabilities reported on IQ Nexus, except when dependency updates break the current code and a study is necessary to mitigate functionalities not workingapi https://sonarcloud.io/project/overview?id=onap_policy-clamp https://sonarcloud.io/project/overview?id=onap_policy-common https://sonarcloud.io/project/overview?id=onap_policy-distribution https://sonarcloud.io/project/overview?id=onap_policy-drools-applications https://sonarcloud.io/project/overview?id=onap_policy-drools-pdp https://sonarcloud.io/project/overview?id=onap_policy-gui https://sonarcloud.io/project/overview?id=onap_policy-models https://sonarcloud.io/project/overview?id=onap_policy-pap https://sonarcloud.io/project/overview?id=onap_policy-xacml-pdp | ❌ The following have security hotspots policy-common, policy-pap The latter is a high priority item that is >1 year old.
|
Vulnerabilities Fixed 60 Days
Are all vulnerabilities that are reported against your project, either through an OJSI ticket or publicly from CVE reports, fixed within two months of being reported?
Toggle cloak |
---|
Cloak |
---|
There MUST be no unpatched vulnerabilities of medium or higher severity that have been publicly known for more than 60 days. [vulnerabilities_fixed_60_days P] |
Your Answer-Please Explain | SECCOM Feedback / Recommendations |
---|---|
We try to keep up to date on fixing vulnerabilities reported on IQ Nexus, except when dependency updates break the current code and a study is necessary to mitigate functionalities not working. | ? And sonar cloud?
policy-pap has a high severity security item reported in sonarcloud for >1 year
How are OJSIs dealt with?
|
Non-Cryptographic Software Questions
...
Your Answer-Please Explain | SECCOM Feedback / Recommendations |
---|---|
BeanValidation is used for any request coming in, checking if format and type rules are matched. | ✅ |
Hardening
Does your project apply hardening mechanisms so that software defects are less likely to result in security vulnerabilities? Toggle cloak
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:
[hardening SG] |
...
No UI
No encryption, as data processed by PF hasn't been tagged as sensitive.
The application uses Swagger for RESTful API, wherein it is set that Authorization headers are required for accessing API documentation.
When PF runs with docker, the services use usernames and passwords that are stored as environment variables.
...
?
Toggle cloak |
---|
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:
[hardening SG] |
Your Answer-Please Explain | SECCOM Feedback / Recommendations |
---|---|
No UI No encryption, as data processed by PF hasn't been tagged as sensitive. The application uses Swagger for RESTful API, wherein it is set that Authorization headers are required for accessing API documentation. When PF runs with docker, the services use usernames and passwords that are stored as environment variables. For helm deployments PF uses K8s secrets which are generated and stored as the application is deployed. The user has the option to provide a username/password to the helm chart - in this case a kubernetes secret will be generated by the chart and used for authentication. Alternatively, the user can provide a secret to the chart values - in this case, no secret will be generated - the chart will just use the k8s secret provided by the user/deployer | ?
|
Cryptographic-specific Software Questions
...
Your Answer-Please Explain | SECCOM Feedback / Recommendations |
---|---|
N/A | ✅ |
Crypto Random - Generic
Does your software use random information? If so, does it use a cryptographically secure random number generator?
...
Your Answers-Please Explain | SECCOM Feedback / Recommendations |
---|---|
UUID random keys
| ✅ |
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). [crypto_weaknesses PS] |
...
Usernames and passwords are configurable by the clients via passing the environment variables for use in application.yml file.
When PF runs with docker, the services use usernames and passwords that are stored as environment variables.
...
CBC mode in SSH). [crypto_weaknesses PS] |
Your Answer-Please Explain | SECCOM Feedback / Recommendations |
---|---|
All of the authorization/authentication is being managed by service mesh - using the authorizationPolicy implemented into SM. | ? 2023/8/22: move information in "Your Answer" to the security documentation. Please expand on the use of configurable usernames+passwords and what they allow. 2023/8/22: add password use and protection to security documentation. Determine if spring is doing authentication, authorization or both. If PF is storing passwords in order to call APIs, document the secure storage and access of the passwords. 2023/8/22: cryptography provided by K8S using secure algorithms and ciphers. |
Crypto Working
Does your software depend on any cryptographic algorithms that are known to be broken?
...
Your Answer-Please Explain | SECCOM Feedback / Recommendations |
---|---|
Usernames and passwords are configurable by the clients via passing the environment variables for use in application.yml file. When PF runs with docker, the services use username and passwords that are stored as environment variables. For helm deployments, PF uses K8s secrets which are generated and stored as the application is deployed
No crypto being used. | ❌ Doesn't answer the question 2023/8/22: PF to document all uses of cryptographic algorithms within the PF application. UUID generation is not part of cryptography. |
Crypto Keylength
Does your software generate any keys? If so, do they use any default key-lengths that are considered insecure?
...
Your Answers-Please Explain | SECCOM Feedback / Recommendations |
---|---|
No keys being generated for us in OOM
| ✅ Doesn't answer the question |
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?
...
Your Answers-Please Explain | SECCOM Feedback / Recommendations | |
---|---|---|
K8s secrets that are generated and stored as apps are deployed. ACM-Runtime use java.UUID mechanism for generating unique identifiers. | No crypto is being used | ❌ Doesn't answer the question |
Crypto Certificate Verification
...
Your Answers-Please Explain | SECCOM Feedback / Recommendations |
---|---|
PF is compliant and compatible with the ongoing service mesh implementation (https://gerrit.onap.org/r/c/oom/+/128543) for ONAP. | ✅ |
Crypto Credential Agility
...
Your Answers-Please Explain | SECCOM Feedback / Recommendations |
---|---|
Usernames and passwords Credentials are configurable by the clients via passing the environment variables for use in application.yml file.When PF runs with docker, the services use username and passwords that are stored as environment variables. For helm deployments, PF uses K8s secrets which are generated and stored as the application is deployed.managed by k8s secrets. | ❌ Doesn't answer the question |
Crypto TLS1.2
Does your software support HTTPS? If so, is the minimum version allowed TLS1.2?
...
Your Answers-Please Explain | SECCOM Feedback / Recommendations |
---|---|
PF is compliant and compatible with the ongoing service mesh implementation (https://gerrit.onap.org/r/c/oom/+/128543) for ONAP. | ✅ |
Crypto Used Network
Does your software have network communications inbound or outbound? If so, do you support secure protocols for all such network communications?
...
Your Answers-Please Explain | SECCOM Feedback / Recommendations |
---|---|
PF's primary communication is through HTTP. PF uses Kafka or REST api interfaces between PF components and service mesh for other communications.
As mentioned above, we need to add to documentation that PF is supposed to run within OOM deployment. That said, SM is managing all communication. | ? is HTTP protected by mesh and HTTPS?
|
Crypto Verification Private
...
Your Answers-Please Explain | SECCOM Feedback / Recommendations |
---|---|
As mentioned above, we need to add to documentation that PF is supposed to run within OOM deployment. That said, SM is managing all communication. | ❌ Doesn't answer the question |