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

Update API rules endpoints to support HIPAA and NIST-800-53 #397

Merged
merged 10 commits into from
May 30, 2019

Conversation

davidjiglesias
Copy link
Member

Hi team, this PR is related to #386.

Best regards,

David J. Iglesias

Mocha tests results:

  Rules
    GET/rules
       Request (283ms)
       Pagination (264ms)
       Retrieve all elements with limit=0 (265ms)
       Sort (271ms)
       Search (352ms)Filters: Invalid filterFilters: Invalid filter - Extra fieldFilters: status (270ms)Filters: group (289ms)Filters: level (1) (276ms)Filters: level (2) (376ms)Filters: path (275ms)Filters: file (270ms)Filters: pci (338ms)Filters: gdpr (269ms)Filters: hipaa (259ms)Filters: nist-800-53 (259ms)Filters: gpg13 (273ms)
    GET/rules/groups
       Request (266ms)
       Pagination (262ms)
       Retrieve all elements with limit=0 (264ms)
       Sort (263ms)
       Search (265ms)Filters: Invalid filter
    GET/rules/pci
       Request (266ms)
       Pagination (265ms)
       Retrieve all elements with limit=0 (266ms)
       Sort (265ms)
       Search (265ms)Filters: Invalid filter
    GET/rules/gdpr
       Request (265ms)
       Pagination (266ms)
       Retrieve all elements with limit=0 (265ms)
       Sort (266ms)
       Search (265ms)Filters: Invalid filter
    GET/rules/gpg13
       Request (265ms)
       Pagination (269ms)
       Retrieve all elements with limit=0 (276ms)
       Sort (266ms)
       Search (266ms)Filters: Invalid filter
    GET/rules/hipaa
       Request (266ms)
       Pagination (266ms)
       Retrieve all elements with limit=0 (267ms)
       Sort (266ms)
       Search (267ms)Filters: Invalid filter
    GET/rules/nist-800-53
       Request (266ms)
       Pagination (266ms)
       Retrieve all elements with limit=0 (267ms)
       Sort (266ms)
       Search (265ms)Filters: Invalid filter
    GET/rules/files
       Request (164ms)
       Pagination (165ms)
       Retrieve all elements with limit=0 (165ms)
       Sort (163ms)
       Search (163ms)Filters: Invalid filterFilters: Invalid filter - Extra fieldFilters: status (163ms)Filters: download (164ms)
    GET/rules/:rule_id
       Request (261ms)
       Pagination (262ms)
       Retrieve all elements with limit=0 (263ms)
       Sort (260ms)
       Search (260ms)Filters: Invalid filterParams: Bad rule idParams: No rule (262ms)


  71 passing (15s)

@davidjiglesias davidjiglesias requested a review from crd1985 May 29, 2019 15:04
@davidjiglesias davidjiglesias self-assigned this May 29, 2019
@davidjiglesias
Copy link
Member Author

Hi team, I have done further testing on the new HIPAA and NIST-800-53 endpoints and rules filters now that the ruleset has been updated to support HIPAA and NIST-800-53.

  • GET /rules/hipaa
root@fb66da1b7193:/# curl -u foo:bar "http://localhost:55000/rules/hipaa?pretty"
{
   "error": 0,
   "data": {
      "items": [
         "164.312.a.1",
         "164.312.a.2.I",
         "164.312.a.2.II",
         "164.312.a.2.III",
         "164.312.a.2.IV",
         "164.312.b",
         "164.312.c.1",
         "164.312.c.2",
         "164.312.d",
         "164.312.e.1",
         "164.312.e.2.I",
         "164.312.e.2.II"
      ],
      "totalItems": 12
   }
}
  • GET /rules/nist-800-53
root@fb66da1b7193:/# curl -u foo:bar "http://localhost:55000/rules/nist-800-53?pretty"
{
   "error": 0,
   "data": {
      "items": [
         "AC.12",
         "AC.2",
         "AC.7",
         "AU.1",
         "AU.3.1",
         "AU.6",
         "AU.8",
         "AU.9",
         "CA.3",
         "CM.1",
         "CM.3",
         "IA.10",
         "IA.4",
         "IA.5",
         "MA.2",
         "SA.11",
         "SC.2",
         "SC.7",
         "SC.8",
         "SI.10",
         "SI.11",
         "SI.15",
         "SI.16",
         "SI.5",
         "SI.7"
      ],
      "totalItems": 25
   }
}
  • Filters
    • GET /rules?hipaa=164.312.a.1
root@fb66da1b7193:/# curl -u foo:bar "http://localhost:55000/rules?hipaa=164.312.a.1&pretty&limit=1"
{
   "error": 0,
   "data": {
      "items": [
         {
            "file": "0055-courier_rules.xml",
            "path": "ruleset/rules",
            "id": 3903,
            "description": "Courier logout/timeout.",
            "level": 0,
            "status": "enabled",
            "groups": [
               "syslog",
               "courier"
            ],
            "pci": [
               "8.1.5"
            ],
            "gdpr": [],
            "hipaa": [
               "164.312.a.1"
            ],
            "nist-800-53": [
               "AC.2"
            ],
            "gpg13": [
               "7.1"
            ],
            "details": {
               "if_sid": "3900",
               "match": "^LOGOUT,|^DISCONNECTED"
            }
         }
      ],
      "totalItems": 58
   }
}
  • Filters
    • GET /rules?nist-800-53=AC.12
root@fb66da1b7193:/# curl -u foo:bar "http://localhost:55000/rules?nist-800-53=AC.12&pretty&limit=1"
{
   "error": 0,
   "data": {
      "items": [
         {
            "file": "0155-dovecot_rules.xml",
            "path": "ruleset/rules",
            "id": 9706,
            "description": "Dovecot Session Disconnected.",
            "level": 3,
            "status": "enabled",
            "groups": [
               "dovecot"
            ],
            "pci": [
               "10.2.5",
               "8.1.5",
               "8.1.8"
            ],
            "gdpr": [
               "IV_35.7.d",
               "IV_32.2"
            ],
            "hipaa": [
               "164.312.b",
               "164.312.a.1",
               "164.312.a.2.III"
            ],
            "nist-800-53": [
               "AU.3.1",
               "IA.10",
               "AC.2",
               "AC.12"
            ],
            "gpg13": [
               "7.1"
            ],
            "details": {
               "if_sid": "9700",
               "match": ": Disconnected: "
            }
         }
      ],
      "totalItems": 1
   }
}
  • Mocha tests results:
Rules
    GET/rules
      ✓ Request (285ms)
      ✓ Pagination (271ms)
      ✓ Retrieve all elements with limit=0 (268ms)
      ✓ Sort (276ms)
      ✓ Search (363ms)
      ✓ Filters: Invalid filter
      ✓ Filters: Invalid filter - Extra field
      ✓ Filters: status (274ms)
      ✓ Filters: group (295ms)
      ✓ Filters: level (1) (279ms)
      ✓ Filters: level (2) (375ms)
      ✓ Filters: path (276ms)
      ✓ Filters: file (276ms)
      ✓ Filters: pci (345ms)
      ✓ Filters: gdpr (268ms)
      ✓ Filters: hipaa (442ms)
      ✓ Filters: nist-800-53 (262ms)
      ✓ Filters: gpg13 (277ms)
    GET/rules/groups
      ✓ Request (269ms)
      ✓ Pagination (264ms)
      ✓ Retrieve all elements with limit=0 (264ms)
      ✓ Sort (268ms)
      ✓ Search (271ms)
      ✓ Filters: Invalid filter
    GET/rules/pci
      ✓ Request (266ms)
      ✓ Pagination (267ms)
      ✓ Retrieve all elements with limit=0 (268ms)
      ✓ Sort (268ms)
      ✓ Search (271ms)
      ✓ Filters: Invalid filter
    GET/rules/gdpr
      ✓ Request (267ms)
      ✓ Pagination (269ms)
      ✓ Retrieve all elements with limit=0 (270ms)
      ✓ Sort (267ms)
      ✓ Search (272ms)
      ✓ Filters: Invalid filter
    GET/rules/gpg13
      ✓ Request (267ms)
      ✓ Pagination (267ms)
      ✓ Retrieve all elements with limit=0 (267ms)
      ✓ Sort (268ms)
      ✓ Search (269ms)
      ✓ Filters: Invalid filter
    GET/rules/hipaa
      ✓ Request (265ms)
      ✓ Pagination (267ms)
      ✓ Retrieve all elements with limit=0 (267ms)
      ✓ Sort (268ms)
      ✓ Search (269ms)
      ✓ Filters: Invalid filter
    GET/rules/nist-800-53
      ✓ Request (269ms)
      ✓ Pagination (268ms)
      ✓ Retrieve all elements with limit=0 (267ms)
      ✓ Sort (267ms)
      ✓ Search (266ms)
      ✓ Filters: Invalid filter
    GET/rules/files
      ✓ Request (164ms)
      ✓ Pagination (160ms)
      ✓ Retrieve all elements with limit=0 (164ms)
      ✓ Sort (161ms)
      ✓ Search (164ms)
      ✓ Filters: Invalid filter
      ✓ Filters: Invalid filter - Extra field
      ✓ Filters: status (165ms)
      ✓ Filters: download (163ms)
    GET/rules/:rule_id
      ✓ Request (263ms)
      ✓ Pagination (262ms)
      ✓ Retrieve all elements with limit=0 (264ms)
      ✓ Sort (266ms)
      ✓ Search (265ms)
      ✓ Filters: Invalid filter
      ✓ Params: Bad rule id
      ✓ Params: No rule (261ms)


  71 passing (16s)

@crd1985 crd1985 merged commit d2993cc into 3.10 May 30, 2019
@crd1985 crd1985 deleted the dev-386-HIPAA-NIST branch May 30, 2019 08:48
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

Successfully merging this pull request may close these issues.

2 participants