创作风格指南

这是一种生活风格指南内容的文档细节椭圆形的库。本文档将被更新为新的决定和问题的回答椭圆形库论坛

请确认所有提交到椭圆形库结合这些指南发布之前提交。这些风格的决定将在可能的情况下为一组Schematron规则

信息提交新椭圆形库和修改内容,请审核提交指南

一般

  • 包括有意义的评论。评论应该是用于定义,定义标准,测试对象,州,和变量。记住,评论可能会显示在用户界面的各种工具和评论在椭圆形库搜索。因为很多项目是跨多个测试和重用定义确保每个评论都有足够的细节来独立。
  • 额外的元数据超出定义的椭圆的定义模式椭圆形库元数据模式是不允许在椭圆形库。
  • 在可能的情况下重用现有的内容。在创建一个新项目时,要小心谨慎,确保任何既存的项目是重用。内容重用项目减少了维护成本,大大减少了所需的努力写一个新的椭圆的定义。
  • 当不以为然的一个项目,确保它不是引用的其他项目也不弃用。
  • 当不以为然的一个项目,也反对任何引用项不引用的其他项目也不弃用。
  • 当使用正则表达式确保表达适当固定(开始结束^和$)。否则,表达可能不受欢迎的字符串匹配。
回到顶部

定义

一般

  • 不设置一个评论的定义标准的根元素。
  • 设置一个评论其他标准,标准,和extend_definition元素。
    • 在标准元素评论应该匹配评论引用的测试。
    • 一个extend_definition元素评论应该匹配扩展定义的标题。
    • 在一个标准元素评论应该总结其内容的评论。
  • 不包括否定属性标准,标准,或extend_definition元素在元素不是否定。设置否定错误只是降低了可读性。
  • 重用其他椭圆形库存定义适用的检测平台。
  • 定义引用应符合以下总体原则:
    • 引用id应该遵守约定特定枚举的标识符。(例如,所有CVE id从“CVE -”)
    • 任何引用url应该开始模式“http (s): / /”。
    • 不应该定义多个引用。

脆弱性的定义

  • 基于脆弱性椭圆定义必须有自己的类属性设置为“漏洞”。
  • 基于脆弱性椭圆定义应该只包括所需的检查确定给定主机上的一个漏洞的存在。
  • 强烈建议基于脆弱性包括一个椭圆的定义CVE参考。此外,non-CVE引用也允许,尽管多个CVE不引用。
  • 基于脆弱性椭圆定义应该有一个一对一的关系与给定CVE的名字。
  • 基于脆弱性椭圆定义必须使用引用的CVE的描述。椭圆形库自动更新的描述椭圆定义与CVE引用匹配的官方描述CVE。

块定义

  • 补丁基于椭圆的定义必须有自己的类属性设置为“补丁”。
  • 补丁基于椭圆的定义应该包括检查补丁包含的所有项目。如果一个补丁包含6文件和设置2注册表键,相应的椭圆的定义应该包括6 file_tests和2 registry_key测试。
  • 补丁基于椭圆的定义应该包括一个参考补丁二进制名称的定义。这意味着可能有很多椭圆定义为一个给定的安全公告。引用的“源”应该是“供应商”。
  • 补丁基于椭圆的定义应该有一个一对一的关系与给定二进制补丁的名字。

存货的定义

  • 库存椭圆定义必须有自己的类属性设置为“库存”。
  • 库存椭圆定义应该只包括所需的检查来确定应用程序或操作系统的存在给定主机上。
  • 库存椭圆的定义应该包括一个且只有一个CPE参考
  • 库存椭圆定义应该有一个一对一的关系与给定CPE的名字。

合规的定义

  • 合规基于椭圆的定义必须有自己的类属性设置为“合规”。
  • 合规基于椭圆的定义应该利用external_variables指定合规值。
  • 合规基于椭圆的定义应该包括一个且只有一个CCE参考。其他可以来源于CCE参考引用。
  • 合规基于椭圆的定义应该有一个一对一的关系与给定CCE的名字。

定义元数据

  • 重用平台和产品名称。在选择受影响的平台和产品,检查平台和产品,已经在椭圆形库和重用或创建新的名字是相似的。这将极大地提高搜索元数据的定义。
  • 只包括一个参考。
  • 不使用操作系统名称的产品。操作系统名称作为平台。
回到顶部

测试

  • 总是在测试包括check_existence属性。check_existence属性被添加到版本5.3椭圆定义的模式,默认值为“at_least_one”。由于这是一个新的属性测试我们已经决定总是包括在椭圆形库,即使所需的值是默认值。

对象

  • 不设置数据类型和操作属性对象的子元素时默认值。这大大提高了可读性。
  • 避免使用正则表达式的对象。正则表达式历来是容易出错,降低可读性,评估数据收集期间可能代价高昂。

  • 国家倾向于上面提到的重用的例外规则。椭圆形的存储库允许复制状态,以适应给定状态的情况下可能会有不同的含义。例如,registry_state 1的值可能意味着“启用”在一个测试中,和“版本1”在另一个测试。不合适在椭圆形库重用的状态可能会使内容维护更加困难。有疑问时,创建一个新的状态。这可能会有助于减少维护成本随着时间的内容。
  • 不设置操作符属性状态元素如果是默认值。设置这个属性并不能提高可读性。
  • 不设置数据类型和操作属性状态的子元素时默认值。设置这些属性并不能提高可读性。

变量

  • 外部变量应该利用possible_value possible_restriction元素严格限制允许的输入值。这将协助工具处理变量和帮助其他内容作者在回顾变量。
回到顶部

页面最后更新:2012年11月28日