Configuration Persistence Service (CPS)

Les projets qui suivent les meilleures pratiques ci-dessous peuvent s'auto-certifier et montrer qu'ils ont obtenu le badge de la Open Source Security Foundation (OpenSSF).

Si c'est votre projet, veuillez indiquer votre statut de badge sur votre page de projet ! Le statut du badge ressemble à ceci : Le niveau de badge pour le projet 4398 est gold Voici comment l'intégrer :

Ce sont les critères du niveau Or. Vous pouvez également afficher les critères des niveaux Basique ou Argent.

        

 Notions de base 5/5

  • Dépôt source public sous contrôle de version


    Le dépôt source du projet DOIT utiliser un logiciel courant de contrôle de version distribué (par exemple, git ou mercurial). [repo_distributed]

    Github is used as the projects source repository. Repo links as shared below: • https://github.com/onap/cpshttps://github.com/onap/cps-cps-temporalhttps://github.com/onap/cps-ncmp-dmi-pluginhttps://github.com/onap/cps-cps-tbdmt



    Le projet DOIT identifier clairement les petites tâches qui peuvent être effectuées par des contributeurs nouveaux ou occasionnels. (URL requise) [small_tasks]

    Le projet DOIT exiger l'authentification à deux facteurs (2FA) des développeurs pour changer un dépôt central ou accéder à des données sensibles (telles que des signalements de vulnérabilités privés). Ce mécanisme 2FA PEUT utiliser des mécanismes sans mécanismes cryptographiques tels que SMS, mais cela n'est pas recommandé. [require_2FA]

    2FA Authentication is enabled for merging in GERRIT for all ONAP



    L'authentification à deux facteurs du projet (2FA) DOIT utiliser des mécanismes cryptographiques pour empêcher l'emprunt d'identité. Une 2FA basée sur un service de messages courts (SMS), par elle-même, ne satisfait PAS à ce critère, car elle n'est pas chiffrée. [secure_2FA]

    2FA Authentication is enabled for merging in GERRIT for all ONAP


  • Normes de codage


    Le projet DOIT documenter ses exigences en matière de revue de code, y compris la façon dont la revue de code est menée, ce qui doit être vérifié et ce qui est requis pour être acceptable. (URL requise) [code_review_standards]

    The Onap specifications for code review is used in CPS . It is ensured that there are atleast 2 +1s from unassociated significant contributors and committers before the code is merged. • https://wiki.onap.org/display/DW/Committer+Best+Practices#CommitterBestPractices-BestPractices



    Le projet DOIT avoir au moins 50% de toutes les modifications proposées revues avant la sortie par une personne autre que l'auteur, afin de déterminer s'il s'agit d'une modification valable et sans problèmes connus qui risqueraient de s'opposer à son inclusion. [two_person_review]

    The Onap specifications for code review is used in CPS . It is ensured that there are atleast 2 +1s from unassociated significant contributors and committers other that the person who has raised the review before the code is merged. • https://wiki.onap.org/display/DW/Committer+Best+Practices#CommitterBestPractices-BestPractices


  • Système de construction opérationnel


    Le projet DOIT avoir une construction reproductible. Si aucune construction ne se produit (par exemple, les langages de script où le code source est utilisé directement au lieu d'être compilé), sélectionnez « non applicable » (N/A). (URL requise) [build_reproducible]
  • Suite de tests automatisée


    Une suite de tests DOIT être invocable d'une manière standard pour ce langage. (URL requise) [test_invocation]

    Unit testing is covered using Groovy and spock tests. These can be executed using mvn test. CSIT tests are included in the application for Integration testing. These tests are using ROBOT framework. • https://github.com/onap/cps/tree/master/csit



    Le projet DOIT utiliser une intégration continue, où le code nouveau ou modifié est fréquemment intégré dans un dépôt de code central et des tests automatisés sont exécutés sur le résultat. (URL requise) [test_continuous_integration]

    CI-CD jobs are incorporated to ensure that all the jobs are executed including verification, SONAR and merge. This link will list all the jobs included for CPS projects. • https://jenkins.onap.org/view/cps/



    Le projet DOIT avoir une ou des suites de tests automatisées FLOSS qui fournissent une couverture d'instructions d'au moins 90% s'il existe au moins un outil FLOSS qui peut mesurer ce critère dans le langage sélectionné. [test_statement_coverage90]

    CSIT Integration test suite is included to test all the REST apis that are developed in CPS . Example : • https://github.com/onap/cps/tree/master/csit The coverage check is tested reported using Jacoco coverage in the sonar • https://sonarcloud.io/component_measures?id=onap_cps&metric=coverage&view=listhttps://sonarcloud.io/component_measures?id=onap_cps-cps-temporal&metric=coverage&view=list



    Le projet DOIT avoir une ou des suites de tests automatisées FLOSS qui fournissent une couverture de branche d'au moins 80% s'il existe au moins un outil FLOSS qui peut mesurer ce critère dans le langage sélectionné. [test_branch_coverage80]

    Test suites covers the entire code in the branch except for the Unit tests and CSIT Integration tests.


  • Utiliser de bonnes pratiques de base de cryptographie

    Notez que certains logiciels n'ont pas besoin d'utiliser des mécanismes cryptographiques. Si votre projet produit un logiciel qui (1) inclut ou active la fonctionnalité de chiffrement, et (2) peut être publié des États-Unis (US) vers l'extérieur des États-Unis ou vers un citoyen autre qu'américain, vous pouvez être légalement obligé à faire quelques étapes supplémentaires. En règle générale, cela implique simplement l'envoi d'un email. Pour plus d'informations, consultez la section sur le chiffrement de Comprendre la technologie Open Source et les contrôles à l'exportation américains .

    Le logiciel produit par le projet DOIT supporter des protocoles sécurisés pour toutes ses communications réseau, tels que SSHv2 ou ultérieur, TLS1.2 ou ultérieur (HTTPS), IPsec, SFTP et SNMPv3. Les protocoles non sûrs tels que FTP, HTTP, telnet, SSLv3 ou antérieur, et SSHv1 DOIVENT être désactivés par défaut et uniquement activés si l'utilisateur le configure spécifiquement. Si le logiciel produit par le projet ne prend pas en charge les communications réseau, sélectionnez « non applicable » (N/A). [crypto_used_network]


    Le logiciel produit par le projet DOIT, s'il prend en charge ou utilise TLS, prendre en charge au moins TLS version 1.2. Notez que le prédécesseur de TLS s'appelait SSL. Si le logiciel n'utilise pas TLS, sélectionnez « non applicable » (N/A). [crypto_tls12]

  • Livraison sécurisée contre les attaques man-in-the-middle (MITM)


    Le site Web du projet, le dépôt (s'il est accessible via le Web) et le site de téléchargement (si séparé) DOIVENT inclure des en-têtes clés de durcissement avec des valeurs non admises. (URL requise) [hardened_site]

    CPS uses Github as the central repository. Verified CPS(https://github.com/onap?q=cps) using the site specified : https://securityheaders.com/ Found all required security hardening headers. // All headers set with non permissive values HTTP Strict Transport Security (HSTS) : max-age=31536000; includeSubdomains; preload X-Content-Type-Options : nosniff X-Frame-Options : deny


  • Autres problèmes de sécurité


    Le projet DOIT avoir effectué une évaluation de la sécurité au cours des 5 dernières années. Cette revue DOIT prendre en considération les exigences de sécurité et les limites de sécurité. [security_review]

    ONAP runs nexus IQ report once every release to ensure the security requirements are met https://jenkins.onap.org/view/cps/job/cps-maven-clm-master/

    CPS has finalized the security review questionnaire and has been reviewed by the SECCOM committee. See https://wiki.onap.org/display/DW/CPS+-+ONAP+Security+Review+Questionnaire



    Des mécanismes de durcissement DOIVENT être utilisés dans le logiciel produit par le projet afin que les défauts du logiciel soient moins susceptibles d'entraîner des vulnérabilités de sécurité. (URL requise) [hardening]

    CPS exposes restful APIs to be used by other services and does not own a GUI. All services are required to authenticate themselves while using the CPS apis. CPS includes security fixes in the software lifecycle. CPS does not have a UI and does not use javascript The application uses Swagger for RESTful API, wherein it is set that Authorization headers are required for accessing API documentation. When CPS is run with docker, the services use usernames and passwords that are stored as environment variables. CPS uses K8s secrets which are generated and stored as the application is deployed. CPS is compliant and compatible with the ongoing service mesh implementation (see https://gerrit.onap.org/r/c/oom/+/124287) for ONAP.

    see https://wiki.onap.org/display/DW/CPS+-+ONAP+Security+Review+Questionnaire#CPSONAPSecurityReviewQuestionnaire-Hardening


  • Analyse dynamique de code


    Le projet DOIT appliquer au moins un outil d'analyse dynamique à tout candidat pour une version majeure du logiciel produit par le projet avant sa sortie. [dynamic_analysis]

    CPS has a project set up with ONAP Sonarcloud for analysis, see https://sonarcloud.io/component_measures?metric=coverage&view=treemap&id=onap_cps wherein a minimum of 97% code coverage is always maintained by the team. CPS also uses the SonarQube Scanner for Maven which uses the JaCoCo plugin to generate code coverage reports during the build process and track code coverage during run-time.



    Le projet DEVRAIT inclure de nombreuses assertions à l'exécution dans le logiciel qu'il produit, et vérifier ces assertions lors d'une analyse dynamique. [dynamic_analysis_enable_assertions]

    Instead of run-time assertions, pre-run assertions are included where all the tests including the Integration tests are executed. Only after the successful pre-run tests, the projects are released and deployed on production. CPS uses Groovy for all unit and integration testing which is compiled and executed at runtime. CPS uses its capability to perform runtime assertions, see the following example https://gerrit.onap.org/r/gitweb?p=cps.git;a=blob;f=cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/operations/DmiDataOperationsSpec.groovy;h=03825c2bbf34398df77a0028ee0825e96f5a5fbb;hb=3d97a963ce51c4f0ecdb656a3b25bcabf2f6f8b7



Ces données sont disponibles sous une licence Creative Commons Attribution version 3.0 ou ultérieure (CC-BY-3.0+). Chacun peut librement partager et adapter les données, à condition de créditer leur origine. Veuillez créditer mrsjackson76 et les contributeurs du badge des meilleures pratiques de la OpenSSF.

Soumission du badge du projet appartenant à : mrsjackson76.
Soumission créée le 2020-11-06 15:16:30 UTC, dernière mise à jour le 2023-11-06 20:25:48 UTC. Le dernier badge perdu l'a été le 2021-07-15 11:20:34 UTC. Le dernier badge obtenu l'a été le 2021-07-26 15:12:53 UTC.

Retour