Git Product home page Git Product logo

servicenow-guardium-vulnerability-assessment's Introduction

Table of contents

Overview

This repository holds the IBM Guardium Data Protection ServiceNow module code for integration with ServiceNow Vulnerability Response module. This code will synchronize CMDB and VA data between ServiceNow and IBM Guardium providing centralized management of vulnerability data in ServiceNow.

Requirements

IBM Guardium

  • IBM Guardium 11.5 + Patch 525. You can also use 11.4 + Patch 441 (available in August 2022), Patch 460 will add CVSS Attack Vector. Patch 525 contains several performance fixes.
  • IBM Guardium user with Guardium vulnerability-access role (or Guardium admin role)
  • (Optional) Add vulnerability-access role to all existing Guardium data sources to permit the ServiceNow plug-in the ability to update and delete existing data sources which result from changes to ServiceNow CMDB

ServiceNow

Install This Application

  • Be sure to install Vulnerabilty Reponse module first!
  • You can install this application in one of three ways:
    1. From ServiceNow Store as a certified app
    2. Import from source control (this entire github project)
    3. Update Set: follow instructions in Installation and Test document

Technical Documentation

Design

Licensing

Project License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Issues

  • List of all open and closed issues
  • If you wish to do a full synchronization of data, you can delete all Integrations Runs then click Execute Now and the data for this integration will be fully synchronized. Otherwise, the integration does a partial synchronization based on the date of the last successful Integration Run.

servicenow-guardium-vulnerability-assessment's People

Contributors

ibm-open-source-bot avatar imgbotapp avatar meithom avatar spiderman5000 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

servicenow-guardium-vulnerability-assessment's Issues

Bug: large number of test results causing a HI ticket

Summary

  • Guardium app is attempting to aggregate all test results and then import into ServiceNow
  • If there are many managed units, each with a lot of data, this causes an enormous JavaScript object to be built in memory

Solution

  • Use a unique ServiceNow process (sn_vul_integration_process) to import and process results for each managed unit

Guardium App should use CI Lookup Rules to discover matched CMDB entry

Describe the bug
Currently the Guardium app uses hard-coded rules to match a Guardium Data Source to a ServiceNow Database Instance or Database Catalog entry. As a good citizen, the app should run CI Lookup Rule to determine the match.

Steps to Reproduce

  1. Go to IBM Guardium > Configuration > Integrations
  2. Execute the IBM Guardium - Data Sources integration (scheduled job)
  3. Go to Discovered Items
  4. Notice any linked CMDB_CI entry happened due to hard-coded rules

Expected behavior
I can write or modify a CI Lookup Rule to link a Guardium Data Source with any ServiceNow CMDB entry

Replace old UUID and old scope with new values to start a new certification process

Describe the bug

  • Original UUID 912d85fd87940110387c64280cbb35dc was linked to a change in sn_vul_app_vul_scan_summary table which caused an issue with app certification scan
  • Fix is to replace UUID with a new value 400d30552fa0111049572f2ef699b65a to break the link with sn_vul_app_vul_scan_summary
  • Cannot resubmit app with new UUID using old scope
  • Fix is to replace scope x_ibmrt_guard with new scope
  • Close (withdraw) application for certification
  • Create a brand new application for certification
  • Receive credit for withdrawn application

Bug: "Test Result Detail" is truncated if greater than 4000 characters

Describe the bug

  • Guardium Security Assessment Detail contains Test Result Details column which can contain more than 4000 characters.
  • The data is copied into a ServiceNow field that has a maximum of 4000 characters

Recommendation

  • If the data is greater than 4000 chars, put the entire data into an attachment

Feature request: DB Catalog can be "related" to DB Instance

Summary

  • In some environments, DB Instance "Contains" DB Catalog
  • DB Catalog has a reference to the parent DB Instance but it may be empty, use cmdb_rel_ci relationship when reference is empty
Parent (db instance) > Contains:Contained-by > Child (db catalog)

Feature request: Use Guardium-12345 notation for non-CVE test definitions

Request

  • Do not use full test description as the third-party test id. Instead, use a short notation like: Guardium-12345 where 12345 is the TEST_ID from Guardium.

Rationale

  • The third-party test id is limited to 255 characters (in VR)
  • The third-party test name field is limited to 512 characters
  • Customer prefers to quickly see Guardium test definitions with a short ID

Feature request: Run CI Lookup rule if name contains "Guardium"

Current behavior:

On new data source import into ServiceNow:

  • Create Discovered Item
  • Create Unmatched Item
  • Run CI Lookup Rules that are active and have source = IBM Guardium Integration

Desired behavior:

On new data source import into ServiceNow:

  • Create Discovered Item
  • Create Unmatched Item
  • Run CI Lookup Rules that are active and name contains "Guardium"

Feature request: additional information from Guardium test results

Test results from Security Assessment Export report needs to append these additional fields:

  • Test Result > Test Id
  • Test Result > Result Details
  • Test Result > Threshold String
  • VA Summary > First Fail Datetime

Where the data will be inserted into Vulnerable Item and Configuration Compliance test results.

  • Test Id > used to find the corresponding sn_vul_third_party_entry and sn_vulc_test
  • Result Details > sn_vul_detection.proof (HTML), sn_vulc_result.actual_values
  • Threshold String >sn_vul_detection.proof (HTML), sn_vulc_result.expected_values
  • First Fail Datetime > sn_vul_detection.first_found, sn_vulc_result.first_seen

Bug: database import and export should handle multiple tcp_port values

Summary

The ServiceNow attribute TCP port(s) supports more than one value for the database instance.

Details

  • Database import (CI Lookup Rules) only match if tcp_port has one value.
if (oQuery.query.tcp_port == gr_cm.getValue('tcp_port')) {
  • Database export (to Guardium) does not expect multiple values and fails if there are invalid chars in the tcp_port field
"port": gr_ds.getValue('tcp_port') || '',

Limited access to ServiceNow Application Log

Describe the bug

  • Not everyone has access to ServiceNow Application Log to view information on import and export data. The request is to duplicate the logs in a table scoped to this application.

Wrong ServiceNow scope. Must be x_ibmrt_

Describe the bug
Cannot publish due to incorrect scope.

Steps to Reproduce

  1. Go to My Company Applications
  2. Click on IBM Guardium Vulnerability Assessment
  3. Click Publish To ServiceNow Store
  4. Notice error you cannot

This is due to incorrect prefix. It must be x_ibmrt_

Feature request: Run "Test Result Details" for each managed-unit in parallel

Current behavior of "Daily" integration

  • Run each integration in parallel
  • For those integrations that also reach out to managed units, run serially
  • Some integrations have dependencies on other integrations (for instance, test details depends on database and test definition entries). Currently defined as ServiceNow documents.

Proposed behavior of "Daily" integration

  • Run each integration in parallel
  • For those integrations that also reach out to managed units, run those in parallel
  • Create an in-memory map of integrations with dependencies and information about whether needed for partial sync and if it calls managed units

Feature request: Create Guardium test exception after ServiceNow approval

Yosef requests a way to sign-off on Test Exception (Approval Process)

Customer’s flow is for DBA to request VA exception , provide justification , end date (and other necessary fields for VA exception to be created) and once approved, exception is created in Guardium to make sure rerun of the test doesn’t fail until approved end-date. As customer may be running VA on thousands of servers, it has to be automated to be sustainable.

Summary

  • Vulnerable Item has an existing Request Exception button
  • An approval process is created from this button
  • Once this is approved, create a Guardium Test Exception for the test and CMDB

Details

  • Create a business rule to listen for change on table: sn_vul_change_approval
  • When approval_state=1 then create Guardium Test Exception
  • The approval record has a reference to the Vulnerable Item
  • The Vulnerable Item has a reference to the test and CMDB records

Feature request: additional information on test definitions

Summary

  • Guardium 11.5 has a new "User defined" table where additional information can be added to any Guardium test definition
  • The Guardium report Available VA tests - detailed will be amended with these 3 new fields for a patch in v11.5 and v12.0

Request

  • User defined reference one > IF value == severity THEN sn_vul_third_party_entry.severity, sn_vulc_test.source_severity
  • User defined reference one > sn_vul_third_party_entry.solution, sn_vulc_test.description
  • User defined reference two > sn_vul_third_party_entry.solution, sn_vulc_test.description
  • User defined notes > sn_vul_third_party_entry.solution, sn_vulc_test.description

Feature request: Fetch data from NIST on all CVE test definitions

Feature request: Run associated Guardium assessment scan from Vulnerable Item "Rescan" button

Summary

  • Vulnerable Item has a button Rescan
  • It is expected that this will kick off the Guardium assessment test associated with the Vulnerable Item

Details

  • Create a new table to link sn_vul_detection with Guardium test result
  • Guardium test result should also be linked to Guardium assessment test
  • Listen to Rescan event
  • Lookup most recent sn_vul_detection linked to the VIT
  • Lookup test result and assessment test
  • Kick off assessment job

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.