O-RAN-SC: Operation and Maintenance (OAM)

遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。

如果这是您的项目,请在您的项目页面上显示您的徽章状态!徽章状态如下所示: 项目4657的徽章级别为passing 这里是如何嵌入它:

这些是通过级别条款。您还可以查看白银黄金级别条款。

        

 基本 13/13

  • 识别

    According to the O-RAN-SC-OAM-Architecture document all ManagedElements (near-real-time-RIC, O-CU-CP, O-CU-UP, O-DU and O-RU) implement the O1-interface.

    The O-RAN-OAM-interface specification defines

    a NetConf-Server for Configuration Management (CM) and a http-client for Fault Management (FM), Performance Management (PM) and other events on each Management-Service-Provider (MnS-Provider) running on the ManagedElement (ME).

    The O-RAN-SC-OAM project provides reference implementation according to the O-RAN OAM (WG1) documents. In addition we provide a common MnS-Consumer for development and module test purposes. The assumption is that the projects for the ManagedElements can concentrate on the more important user-plane.

    Of course each project needs its own OAM repo to address the specific needs of the ManagedElement.

    用什么编程语言实现项目?
  • 基本项目网站内容


    项目网站必须简明扼要地描述软件的作用(它解决了什么问题?)。 [description_good]

    Please see the scope of the O-RAN-SC OAM project: https://wiki.o-ran-sc.org/x/jwI3



    项目网站必须提供有关如何获取和提供反馈(错误报告或增强功能)以及如何贡献的信息。 [interact]

    Please follow the links to LFN tool chain (Meeting, JIra, Confuence, gerrit, docs)



    关于如何贡献的信息必须解释贡献流程(例如,是否使用拉请求?) (需要网址) [contribution]

    关于如何贡献的信息应包括对可接受的贡献的要求(例如,引用任何所需的编码标准)。 (需要网址) [contribution_requirements]
  • FLOSS许可证

    项目使用什么许可证发布?



    项目生产的软件必须作为FLOSS发布。 [floss_license]

    The Apache-2.0 license is approved by the Open Source Initiative (OSI).



    建议由项目生成的软件的任何必需的许可证是由开放源码促进会(OSI)批准的许可证(英文)[floss_license_osi]

    The Apache-2.0 license is approved by the Open Source Initiative (OSI).



    项目必须将其许可证在其源代码存储库中的标准位置发布。 (需要网址) [license_location]

    https://gerrit.o-ran-sc.org/r/admin/repos/oam available in root of the repos.


  • 文档


    项目必须为项目生成的软件提供基本文档。 [documentation_basics]

    项目必须提供描述项目生成的软件的外部接口(输入和输出)的参考文档。 [documentation_interface]

    External interfaces are derived from yang models and "learned" on-the-fly.

    Please see O-RAN and 3GPP and IETF and ONF modeling pages.


  • 其他


    项目网站(网站,存储库和下载URL)必须使用TLS支持HTTPS。 [sites_https]

    Given only https: URLs.



    该项目必须有一个或多个讨论机制(包括建议的更改和问题),可搜索,允许通过URL访问消息和主题,使新人能够参与一些讨论,并且不需要客户端安装专有软件。 [discussion]

    Discussions are possible by Confluence, O-RAN meetings, O-RAN-SC meetings and email.



    项目应该提供英文文档,并能够接受英文的代码的错误报告和评论。 [english]


    必须维护该项目。 [maintained]


(高级)哪些用户还有额外权限编辑此徽章条目?目前:[9774]



  • 公开的版本控制的源代码存储库


    该项目必须有一个版本控制的源代码存储库。它必须是公开可读的并可通过URL访问。 [repo_public]

    项目的源代码存储库必须跟踪所做的更改,谁进行了更改,何时进行了更改。 [repo_track]

    为了实现协作检视,项目的源代码存储库必须包括临时版本,以便检视版本之间的变化;它不得仅包括最终版本。 [repo_interim]


    建议使用通用分布式版本控制软件(例如,git)作为项目的源代码存储库。 [repo_distributed]
  • 唯一版本编号


    项目生成的用于每个用户使用的版本必须具有唯一版本标识符。 [version_unique]


    建议使用语义版本控制(SemVer)格式进行发布。 [version_semver]


    建议项目识别其版本控制系统中的每个版本。例如,建议使用git的项目,使用git标签识别每个版本。 [version_tags]

  • 发行说明


    该项目必须在每个版本中提供发布说明,这是该版本中主要变化的可读的摘要,以帮助用户确定是否应升级,升级影响将如何。发行说明不能是版本控制日志的原始输出(例如,“git log”命令结果不是发行说明)。其产出不适用于多个地点的项目(如单个网站或服务的软件),并采用持续交付,可以选择“N/A”。 (需要网址) [release_notes]

    发行说明必须列出每个新版本中修复的每个公开的漏洞。如果没有发行说明或者没有公开的漏洞,选择“不适用”。 [release_notes_vulns]

    None identified so far.


  • 错误报告流程


    项目必须为用户提交错误报告(例如,使用问题跟踪器或邮件列表)提供相关流程。 (需要网址) [report_process]

    Please see

    JIra: jira.o-ran-sc.org/projects/OAM/issues OSC Guidelines: https://wiki.o-ran-sc.org/display/ORAN/Reporting+Bugs



    项目必须使用问题跟踪器来跟踪每个问题。 [report_tracker]

    Please see

    jira.o-ran-sc.org/projects/OAM/issues



    该项目必须响应过去2-12个月内(含)提交的大多数错误报告;响应不需要包括修复。 [report_responses]

    As can be seen on:

    Email List: OSC "discuss" mailing list: https://lists.o-ran-sc.org/g/discuss: discuss@lists.o-ran-sc.org Please use hashtag #oam JIRA: jira.o-ran-sc.org/projects/OAM/issues



    该项目应该对过去2-12个月内(包括)的大部分(> 50%)的增强请求作出回应。 [enhancement_responses]

    As can be seen on:

    Email List: OSC "discuss" mailing list: https://lists.o-ran-sc.org/g/discuss: discuss@lists.o-ran-sc.org Please use hashtag #oam JIRA: jira.o-ran-sc.org/projects/OAM/issues



    该项目必须有一个公开的报告和回复的档案供后续搜索。 (需要网址) [report_archive]
  • 漏洞报告流程


    项目必须在项目网站上发布报告漏洞的流程。 (需要网址) [vulnerability_report_process]

    如果支持私有漏洞报告,项目必须包括如何以保密的方式发送信息。 (需要网址) [vulnerability_report_private]

    该项目在过去6个月收到的任何漏洞报告的初始响应时间必须小于或等于14天。 [vulnerability_report_response]

  • 可工作的构建系统


    如果项目生成的软件需要构建使用,项目必须提供可以从源代码自动重新构建软件的可工作的构建系统。 [build]

    Docker



    建议使用通用工具来构建软件。 [build_common_tools]

    Docker



    该项目应该仅使用FLOSS工具来构建。 [build_floss_tools]

    Docker


  • 自动测试套件


    该项目必须使用至少一个作为FLOSS公开发布的自动测试套件(该测试套件可以作为单独的FLOSS项目维护)。 [test]

    Project uses jUnit to run automated unit tests. The unit tests can be found in sub-directories ./test

    Example: - https://gerrit.o-ran-sc.org/r/gitweb?p=oam/tr069-adapter.git;a=tree;f=mapper/src/test



    测试套件应该以该语言的标准方式进行调用。 [test_invocation]

    maven scope test



    建议测试套件覆盖大部分(或理想情况下所有)代码分支,输入字段和功能。 [test_most]

    All versions are tested in autotest suite (above)



    建议项目实施持续集成,将新的或更改的代码经常集成到中央代码库中,并对结果进行自动化测试。 [test_continuous_integration]

    Multiple tests triggered automatically and periodically as Jenkins jobs at numerous phases of CI/CD pipeline - https://jenkins.o-ran-sc.org/view/oam-tr069-adapter/job/oam-tr069-adapter-maven-docker-verify-master-mvn36-openjdk8/


  • 新功能测试


    该项目必须有通用的策略(正式或非正式),当主要的新功能被添加到项目生成的软件中,该功能的测试应该同时添加到自动测试套件。 [test_policy]

    All new functionality, which is not provided by the framework being used, will be added to the automated test. Code Style: https://wiki.onap.org/display/DW/Java+code+style



    该项目必须有证据表明,在项目生成的软件的最近重大变化中,已经遵守了添加测试的条款: test_policy [tests_are_added]

    All new and updated functionality is tested in autotest suite (above). New test functionality can be seen in JIRA and Gerrit. Unit test coverage can be verified using Sonar

    https://jenkins.o-ran-sc.org/view/oam-tr069-adapter/job/oam-tr069-adapter-sonar/



    建议您在更改提案的说明文档中添加测试策略要求(请参阅test_policy)。 [tests_documented_added]

    Only informal rule exists, tests are continuously added in practice All contributions should include tests, as described at OAM: Code Style: https://wiki.o-ran-sc.org/display/OAM/Code+Style


  • 警告标志


    该项目必须启用一个或多个编译器警告标志,“安全”语言模式,或者使用单独的“linter”工具查找代码质量错误或常见的简单错误,如果至少有一个FLOSS工具可以在所选择的语言实现此条款。 [warnings]

    Sonar is used in development environment and automatically triggered by Jenkins during CI/CD process

    Jenkins: https://jenkins.o-ran-sc.org/view/oam-tr069-adapter/job/oam-tr069-adapter-sonar/

    CheckStyle & Findbugs are used in development environments



    该项目必须处理警告。 [warnings_fixed]

    Sonar reports are acted upon continuously.



    建议在实际情况下,项目以最严格方式对待项目生成的软件中的告警。 [warnings_strict]

    Taken on a case by case basis.

    All Checkstyle, Findbugs, test failures, notified issues/bugs and Sonar warnings gets addressed.

    Such issues are tracked using Jira.


  • 安全开发知识


    该项目必须至少有一个主要开发人员知道如何设计安全软件。 [know_secure_design]


    该项目的主要开发人员中,至少有一个必须知道导致这类型软件漏洞的常见错误类型,以及至少有一种方法来对付或缓解这些漏洞。 [know_common_errors]

  • 使用基础的良好加密实践

    请注意,某些软件不需要使用加密机制。

    项目生成的软件默认情况下,只能使用由专家公开发布和审查的加密协议和算法(如果使用加密协议和算法)。 [crypto_published]


    如果项目生成的软件是应用程序或库,其主要目的不是实现加密,那么它应该只调用专门设计实现加密功能的软件,而不应该重新实现自己的。 [crypto_call]

    Existing open-source cryptographic libraries are used.



    项目所产生的软件中,所有依赖于密码学的功能必须使用FLOSS实现。 [crypto_floss]

    Existing open-source cryptographic libraries are used.



    项目生成的软件中的安全机制使用的默认密钥长度必须至少达到2030年(如2012年所述)的NIST最低要求。必须提供配置,以使较小的密钥长度被完全禁用。 [crypto_keylength]

    No keys intended for production use are included. Keys needed for TLS needs to be provided at SW installation. There is no inbuilt limitations on key length etc.



    项目产生的软件中的默认安全机制不得取决于已被破解的密码算法(例如,MD4,MD5,单DES,RC4,Dual_EC_DRBG)或使用不适合上下文的密码模式(例如,ECB模式几乎不适当,因为它揭示了密文中相同的块,如 ECB企鹅所示。CTR模式通常是不合适的,因为如果重复输入状态,则它不执行认证并导致重复)。 [crypto_working]

    Sample keys are RSA keys, and stored in a Java keystore file (PKCS12), which is encrypted by a password. It is the responsibility of the production user to ensure their keys are compliant.



    由项目产生的软件中的默认安全机制不应该依赖于具有已知严重弱点的加密算法或模式(例如,SHA-1密码散列算法或SSH中的CBC模式)。 [crypto_weaknesses]

    External cert servers are used - it is the responsibility of the software deployment entity to ensure security in this regards.



    项目产生的软件中的安全机制应该​​对密钥协商协议实施完美的前向保密(PFS),如果长期密钥集合中的一个长期密钥在将来泄露,也不能破坏从一组长期密钥导出的会话密钥。 [crypto_pfs]

    According to O-RAN Alliance and its Security Task Group the protocols TLS/HTTPS, TLS/NETCONF and FTSes are used for all SMO external interfaces.



    如果项目产生的软件存储用于外部用户认证的密码,则必须使用密钥拉伸(迭代)算法(例如,PBKDF2,Bcrypt或Scrypt)将密码存储为每用户盐值不同的迭代散列 。 [crypto_password_storage]

    An external identity server is used - the authentication happens externally to the produced software.



    由项目生成的软件中的安全机制必须使用密码学安全的随机数生成器生成所有加密密钥和随机数,并且不得使用密码学不安全的生成器。 [crypto_random]

    According to O-RAN Alliance and its Security Task Group the protocols TLS/HTTPS, TLS/NETCONF and FTSes are used for all SMO external interfaces.


  • 安全交付防御中间人(MITM)的攻击


    该项目必须使用一种针对MITM攻击的传递机制。使用https或ssh + scp是可以接受的。 [delivery_mitm]

    According to O-RAN Alliance and its Security Task Group the protocols TLS/HTTPS, TLS/NETCONF and FTSes are used for all SMO external interfaces.



    不得通过http协议获取加密散列(例如,sha1sum)并直接使用,而不检查密码学签名。 [delivery_unsigned]

    According to O-RAN Alliance and its Security Task Group the protocols TLS/HTTPS, TLS/NETCONF and FTSes are used - Java, Jetty, Netty, Springboot.


  • 修正公开的漏洞


    被公开了超过60天的中等或更高严重程度的漏洞,必须被修复。 [vulnerabilities_fixed_60_days]

    LF is currently enabling scans across all projects. All high/med vulnerabilities, once identified, are fixed with highest priority (<60 days)



    项目在得到报告后应该迅速修复所有致命漏洞。 [vulnerabilities_critical_fixed]

    All high/med vulnerabilities, once identified, are fixed with highest priority (<60 days)


  • 其他安全问题


    公共存储库不得泄漏旨在限制公众访问的有效私人凭证(例如,工作密码或私钥)。 [no_leaked_credentials]

    All sample/provided credentials are for test/demo purposes only.


  • 静态代码分析


    如果至少有一个FLOSS工具以所选择的语言实现此条款,则至少需要将一个静态代码分析工具应用于软件发布之前任何提议的主要生成版本。 [static_analysis]

    Sonar is used in development environment and automatically triggered by Jenkins during CI/CD process

    Jenkins: https://jenkins.o-ran-sc.org/view/oam-tr069-adapter/job/oam-tr069-adapter-sonar/

    Findbugs and Checkstyle is used in development environment NexusIQ (from Sonatype) is also used - focuses on license scan and performs a CVE scan based on versions used. A per-release license scan based is performed for LF Legal - uses a LF-internal scanning.



    建议至少有一个用于static_analysis标准的静态分析工具包括在分析语言或环境中查找常见漏洞的规则或方法。 [static_analysis_common_vulnerabilities]

    Sonar is used in development environment and automatically triggered by Jenkins during CI/CD process

    Jenkins: https://jenkins.o-ran-sc.org/view/oam/job/oam-sonar/

    Findbugs and Checkstyle is used in development environments NexusIQ (from Sonatype) is also used - focuses on license scan and performs a CVE scan based on versions used. A per-release license scan based is performed for LF Legal - uses a LF-internal scanning.



    使用静态代码分析发现的所有中,高严重性可利用漏洞必须在确认后及时修复。 [static_analysis_fixed]

    All issues detected are converted into the JIRA of the project.



    建议每次提交或至少每天执行静态源代码分析。 [static_analysis_often]

  • 动态代码分析


    建议在发布之前,至少将一个动态分析工具应用于软件任何发布的主要生产版本。 [dynamic_analysis]


    建议如果项目生成的软件包含使用内存不安全语言编写的软件(例如C或C++),则至少有一个动态工具(例如,fuzzer或web应用扫描程序)与检测缓冲区覆盖等内存安全问题的机制例行应用。如果该项目生成的软件没有以内存不安全语言编写,请选择“不适用”(N / A)。 [dynamic_analysis_unsafe]

    Our project is written in memory-safe languages (Java and Python)



    建议由项目生成的软件包括许多运行时断言,在动态分析期间检查。 [dynamic_analysis_enable_assertions]


    通过动态代码分析发现的所有严重性为中,高的可利用漏洞必须在确认后及时修复。 [dynamic_analysis_fixed]

    No exploitable vulnerabilities to our knowledge. Not running dynamic code analysis and thus have not found any vulnerabilities in this way



此数据在知识共享署名3.0或更高版本许可证(CC-BY-3.0 +) 下可用。所有内容都可以自由分享和演绎,但必须给予适当的署名。请署名为Trishan de Lanerolle和OpenSSF最佳实践徽章贡献者。

项目徽章条目拥有者: Trishan de Lanerolle.
最后更新于 2021-02-17 04:28:14 UTC, 最后更新于 2021-05-30 08:13:31 UTC。 最后在 2021-05-30 08:13:31 UTC 获得通过徽章。

后退