Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

In HDF->SARIF, include HDF's "controls.descriptions[label=check/fix]" as SARIF "help" #2633

Open
candrews opened this issue Mar 3, 2023 · 0 comments

Comments

@candrews
Copy link
Collaborator

candrews commented Mar 3, 2023

HDF includes check and fix information, per https://saf.mitre.org/#/normalize

Test Audit, aka ‘check text’ – the validation actions we are asking of the end user
Test Remediation, aka ‘fix text’ – the remediation actions we are asking of the end user

Example HDF including this information:

{
  "platform": {
    "name": "ubuntu",
    "release": "16.04"
  },
  "profiles": [
    {
      "name": "Canonical Ubuntu 16.04 LTS Security Technical Implementation Guide",
      "version": "0.2.0",
      "sha256": "b5d892ca3aeef2a34bbb1621ca1aa3837c056b41dc04f1ba39a522ee1b9ac31d",
      "title": "Canonical Ubuntu 16.04 LTS Security Technical Implementation Guide",
      "maintainer": "The Authors",
      "summary": "This Security Technical Implementation Guide is published as a tool to improve the security of Department of Defense (DoD) information systems. The requirements are derived from the National Institute of Standards and Technology (NIST) 800-53 and related documents. Comments or proposed revisions to this document should be sent via email to the following address: [email protected].",
      "license": "Apache-2.0",
      "copyright": "The Authors",
      "copyright_email": "[email protected]",
      "supports": [
        {
          "platform-name": "ubuntu",
          "release": "16.04"
        }
      ],
      "attributes": [],
      "groups": [
        {
          "id": "controls/V-75443.rb",
          "controls": [
            "V-75443"
          ]
        }
      ],
      "controls": [
        {
          "id": "V-75443",
          "title": "The Ubuntu operating system must limit the number of concurrent\nsessions to ten for all accounts and/or account types.",
          "desc": "Ubuntu operating system management includes the ability to control the\nnumber of users and user sessions that utilize an Ubuntu operating system.\nLimiting the number of allowed users and sessions per user is helpful in\nreducing the risks related to DoS attacks.\n\n    This requirement addresses concurrent sessions for information system\naccounts and does not address concurrent sessions by single users via multiple\nsystem accounts. The maximum number of concurrent sessions should be defined\nbased upon mission needs and the operational environment for each system.",
          "descriptions": [
            {
              "label": "default",
              "data": "Ubuntu operating system management includes the ability to control the\nnumber of users and user sessions that utilize an Ubuntu operating system.\nLimiting the number of allowed users and sessions per user is helpful in\nreducing the risks related to DoS attacks.\n\n    This requirement addresses concurrent sessions for information system\naccounts and does not address concurrent sessions by single users via multiple\nsystem accounts. The maximum number of concurrent sessions should be defined\nbased upon mission needs and the operational environment for each system."
            },
            {
              "label": "check",
              "data": "Verify that the Ubuntu operating system limits the number of\nconcurrent sessions to \"10\" for all accounts and/or account types by running\nthe following command:\n\n# grep maxlogins /etc/security/limits.conf\n\nThe result must contain the following line:\n\n* hard maxlogins 10\n\nIf the \"maxlogins\" item is missing or the value is not set to \"10\" or less,\nor is commented out,  this is a finding."
            },
            {
              "label": "fix",
              "data": "Configure the Ubuntu operating system to limit the number of\nconcurrent sessions to ten for all accounts and/or account types.\n\nAdd the following line to the top of the /etc/security/limits.conf:\n\n* hard maxlogins 10"
            }
          ],
          "impact": 0.3,
          "refs": [],
          "tags": {
            "gtitle": "SRG-OS-000027-GPOS-00008",
            "gid": "V-75443",
            "rid": "SV-90123r2_rule",
            "stig_id": "UBTU-16-010070",
            "fix_id": "F-82071r1_fix",
            "cci": [
              "CCI-000054"
            ],
            "nist": [
              "AC-10",
              "Rev_4"
            ],
            "false_negatives": null,
            "false_positives": null,
            "documentable": false,
            "mitigations": null,
            "severity_override_guidance": false,
            "potential_impacts": null,
            "third_party_tools": null,
            "mitigation_controls": null,
            "responsibility": null,
            "ia_controls": null
          },
          "code": "control 'V-75443' do\n  title \"The Ubuntu operating system must limit the number of concurrent\nsessions to ten for all accounts and/or account types.\"\n  desc  \"Ubuntu operating system management includes the ability to control the\nnumber of users and user sessions that utilize an Ubuntu operating system.\nLimiting the number of allowed users and sessions per user is helpful in\nreducing the risks related to DoS attacks.\n\n    This requirement addresses concurrent sessions for information system\naccounts and does not address concurrent sessions by single users via multiple\nsystem accounts. The maximum number of concurrent sessions should be defined\nbased upon mission needs and the operational environment for each system.\n  \"\n  impact 0.3\n  tag \"gtitle\": 'SRG-OS-000027-GPOS-00008'\n  tag \"gid\": 'V-75443'\n  tag \"rid\": 'SV-90123r2_rule'\n  tag \"stig_id\": 'UBTU-16-010070'\n  tag \"fix_id\": 'F-82071r1_fix'\n  tag \"cci\": ['CCI-000054']\n  tag \"nist\": %w[AC-10 Rev_4]\n  tag \"false_negatives\": nil\n  tag \"false_positives\": nil\n  tag \"documentable\": false\n  tag \"mitigations\": nil\n  tag \"severity_override_guidance\": false\n  tag \"potential_impacts\": nil\n  tag \"third_party_tools\": nil\n  tag \"mitigation_controls\": nil\n  tag \"responsibility\": nil\n  tag \"ia_controls\": nil\n  desc 'check', \"Verify that the Ubuntu operating system limits the number of\nconcurrent sessions to \\\"10\\\" for all accounts and/or account types by running\nthe following command:\n\n# grep maxlogins /etc/security/limits.conf\n\nThe result must contain the following line:\n\n* hard maxlogins 10\n\nIf the \\\"maxlogins\\\" item is missing or the value is not set to \\\"10\\\" or less,\nor is commented out,  this is a finding.\"\n  desc 'fix', \"Configure the Ubuntu operating system to limit the number of\nconcurrent sessions to ten for all accounts and/or account types.\n\nAdd the following line to the top of the /etc/security/limits.conf:\n\n* hard maxlogins 10\"\n\n  describe limits_conf do\n    its('*') { should include ['hard', 'maxlogins', input('maxlogins').to_s] }\n  end\nend\n",
          "source_location": {
            "line": 3,
            "ref": "canonical-ubuntu-16.04-lts-stig-baseline-master/controls/V-75443.rb"
          },
          "waiver_data": {},
          "results": [
            {
              "status": "failed",
              "code_desc": "limits.conf * is expected to include [\"hard\", \"maxlogins\", \"10\"]",
              "run_time": 0.000519,
              "start_time": "2020-05-14T17:47:39-04:00",
              "message": "expected [[\"hard\", \"core\", \"0\"]] to include [\"hard\", \"maxlogins\", \"10\"]"
            }
          ]
        }
      ],
      "status": "loaded"
    }
  ],
  "statistics": {
    "duration": 23.865506
  },
  "version": "4.18.100"
}

In the HDF->SARIF converter, the value of HDF's "controls.descriptions[label=check/fix]" should be used as SARIF's help: https://github.com/microsoft/sarif-sdk/blob/v4.0.0/src/Sarif.Converters/HdfConverter.cs#L102

The definition of SARIF's help from https://docs.oasis-open.org/sarif/sarif/v2.1.0/os/sarif-v2.1.0-os.html#_Toc34317849

A reportingDescriptor object MAY contain a property named help whose value is a localizable multiformatMessageString object (§3.12, §3.12.2) which provides the primary documentation for the reporting item.

candrews added a commit that referenced this issue Jul 24, 2023
candrews added a commit that referenced this issue Jul 24, 2023
candrews added a commit that referenced this issue Jul 24, 2023
candrews added a commit that referenced this issue Jul 25, 2023
candrews added a commit that referenced this issue Jul 25, 2023
michaelcfanning pushed a commit that referenced this issue Jul 27, 2023
* HdfConverter: Add location, address GitHub validation error (#2694)

Per https://sarifweb.azurewebsites.net/Validation
> Each result location must provide the property 'physicalLocation.artifactLocation.uri'.
> GitHub Advanced Security code scanning will not display a result whose location does not provide the URI of the artifact that contains the result.

Signed-off-by: Craig Andrews <[email protected]>

* HdfConvert: Use HDF "control.descriptions" for "help" (#2633)

Signed-off-by: Craig Andrews <[email protected]>

* HdfConverter: Use HDF title as SARIF shortDescription

* HdfConverter: make name a Pascal case identifier

See: https://docs.oasis-open.org/sarif/sarif/v2.1.0/os/sarif-v2.1.0-os.html#_Toc34317843
Signed-off-by: Craig Andrews <[email protected]>

* HdfConverter: Set Enabled to true if and only if all results have status skipped

See: https://docs.oasis-open.org/sarif/sarif/v2.1.0/os/sarif-v2.1.0-os.html#_Toc34317854
Signed-off-by: Craig Andrews <[email protected]>

---------

Signed-off-by: Craig Andrews <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant