Skip to main content

Kenna v2

This Integration is part of the Kenna Pack.#

Use the Kenna v2 integration to search and update vulnerabilities, schedule a run connector, and manage tags and attributes. This integration was integrated and tested with version 1.0 of Kenna.

Configure Kenna v2 on Cortex XSOAR#

  1. Navigate to Settings > Integrations > Instances.

  2. Search for Kenna v2.

  3. Click Add instance to create and configure a new integration instance.

    ParameterRequired
    Server URL (e.g. https://api.kennasecurity.com)False
    Kenna API keyFalse
    Use system proxy settingsFalse
    Trust any certificate (not secure)False
  4. Click Test to validate the URLs, token, and connection.

Commands#

You can execute these commands from the Cortex XSOAR CLI, as part of an automation, or in a playbook. After you successfully execute a command, a DBot message appears in the War Room with the command details.

kenna-search-vulnerabilities#


Searches for vulnerabilities in Kenna.

Base Command#

kenna-search-vulnerabilities

Input#

Argument NameDescriptionRequired
idThe vulnerability ID for which to search.Optional
top-priorityWhether to return vulnerabilities that Kenna deems a top priority to fix. Possible values are: true, false.Optional
min-scoreThe minimum vulnerability score for which to return vulnerabilities.Optional
statusThe status of the vulnerability. Possible values are: open, closed, risk_accepted, false_positive.Optional
limitThe maximum number of vulnerabilities to return. Default is 500.Optional
to_contextWhether to flush to context. Possible values are: True, False. Default is True.Optional

Context Output#

PathTypeDescription
Kenna.Vulnerabilities.AssetIDNumberThe asset ID related to the vulnerability.
Kenna.Vulnerabilities.Connectors.DefinitionNameStringThe connector definition name related to the vulnerability.
Kenna.Vulnerabilities.Connectors.IDNumberThe connector ID related to the vulnerability.
Kenna.Vulnerabilities.Connectors.NameStringThe connector name related to the vulnerability.
Kenna.Vulnerabilities.Connectors.VendorStringThe connector vendor related to the vulnerability.
Kenna.Vulnerabilities.CveIDStringThe CVE ID related to the vulnerability.
Kenna.Vulnerabilities.FixIDStringThe fix ID related to the vulnerability.
Kenna.Vulnerabilities.PatchBooleanWhether there is a patch related to the vulnerability.
Kenna.Vulnerabilities.ScannerVulnerabilities.ExternalIDStringThe vulnerability scanner external ID.
Kenna.Vulnerabilities.ScannerVulnerabilities.OpenBooleanWhether the vulnerability scanner is open.
Kenna.Vulnerabilities.ScannerVulnerabilities.PortNumberThe vulnerability scanner port.
Kenna.Vulnerabilities.ScoreNumberThe vulnerability score.
Kenna.Vulnerabilities.ServiceTicket.DueDateDateThe service ticket due date.
Kenna.Vulnerabilities.ServiceTicket.ExternalIdentifierStringThe service ticket external identifier.
Kenna.Vulnerabilities.ServiceTicket.StatusStringThe service ticket status.
Kenna.Vulnerabilities.ServiceTicket.TicketTypeStringThe service ticket type.
Kenna.Vulnerabilities.SeverityNumberThe vulnerability severity.
Kenna.Vulnerabilities.StatusStringThe vulnerability status.
Kenna.Vulnerabilities.ThreatNumberThe vulnerability threat.
Kenna.Vulnerabilities.TopPriorityNumberThe vulnerability priority.
Kenna.Vulnerabilities.IDNumberThe vulnerability ID.

Command example#

!kenna-search-vulnerabilities id=dummy limit=1 to_context=True

Context Example#

{
"Kenna": {
"Vulnerabilities": {
"AssetID": "dummy",
"Connectors": [
{
"DefinitionName": "Dummy XML",
"ID": 0,
"Name": "Dummy XML",
"Vendor": "Dummy"
},
{
"DefinitionName": "Kenna Data",
"ID": 1,
"Name": "Generic",
"Vendor": "Dummy"
}
],
"CveID": "CVE-2015-0000",
"FixID": 00000,
"ID": 00000,
"Patch": true,
"ScannerVulnerabilities": [
{
"ExternalID": "generic scanner-id CVE-2015-0000",
"Open": true,
"Port": null
},
{
"ExternalID": "dummy-external-id CVE-2015-0000 0000-0000-0000-0000-0000",
"Open": true,
"Port": null
}
],
"Score": 100,
"Severity": 10,
"Status": "open",
"Threat": 10,
"TopPriority": true
}
}
}

Human Readable Output#

Kenna Vulnerabilities#

NameScoreid
CVE-2015-000010000000

kenna-run-connector#


Executes a run of the specified connector. If file based, it will use the most recently uploaded data file.

Base Command#

kenna-run-connector

Input#

Argument NameDescriptionRequired
idThe connector ID to run.Required

Context Output#

There is no context output for this command.

Command example#

!kenna-run-connector id=dummy

Human Readable Output#

Connector dummy ran successfully.

kenna-search-fixes#


Filters fixes by a given set of vulnerability and asset parameters and returns the filtered fixes.

Base Command#

kenna-search-fixes

Input#

Argument NameDescriptionRequired
idThe vulnerability ID for which to search.Optional
top-priorityWhether to return vulnerabilities that Kenna deems a top priority to fix. Possible values are: true, false.Optional
min-scoreThe minimum vulnerability score for which to return vulnerabilities.Optional
statusThe status of the vulnerability. Possible values are: open, closed, risk_accepted, false_positive.Optional
limitThe maximum number of vulnerabilities to return. Default is 500.Optional
to_contextWhether to flush to context. Possible values are: True, False. Default is True.Optional

Context Output#

PathTypeDescription
Kenna.Fixes.IDNumberThe fix ID.
Kenna.Fixes.TitleStringThe fix title.
Kenna.Fixes.Assets.IDNumberThe asset ID related to the current fix.
Kenna.Fixes.Assets.LocatorStringThe asset locator related to the current fix.
Kenna.Fixes.Assets.PrimaryLocatorStringThe asset primary locator related to the current fix.
Kenna.Fixes.Assets.DisplayLocatorStringThe asset display locator related to the current fix.
Kenna.Fixes.Vulnerabilities.IDNumberThe vulnerability ID related to the current fix.
Kenna.Fixes.Vulnerabilities.ServiceTicketStatusStringThe vulnerability service ticket status related to the current fix.
Kenna.Fixes.Vulnerabilities.ScannerIDsNumberThe vulnerability scanner IDs related to the current fix.
Kenna.Fixes.CveIDStringThe CVE-ID list related to the current fix.
Kenna.Fixes.LastUpdatedAtStringThe timestamp when the current fix was last updated.
Kenna.Fixes.CategoryStringThe category of fix.
Kenna.Fixes.VulnerabilityCountNumberThe vulnerability count of the fix.
Kenna.Fixes.MaxScoreNumberThe maximum score of the fix.

Command example#

!kenna-search-fixes limit=2 id=dummy to_context=True

Context Example#

{
"Kenna": {
"Fixes": {
"Assets": [
{
"DisplayLocator": "0.0.0",
"ID": 0,
"Locator": "0.0.0",
"PrimaryLocator": "ip_address"
}
],
"Category": null,
"CveID": [
"CVE-2015-0000"
],
"ID": 0,
"LastUpdatedAt": "2019-10-24T19:13:29.000Z",
"MaxScore": 100,
"Title": "CVE-2015-0000",
"VulnerabilityCount": 1
}
}
}

Human Readable Output#

CVE-2015-0000

ID: 0#

1 vulnerabilities affected

Diagnosis:#

Related CVE IDs: CVE-2015-0000

kenna-update-asset#


Updates the attributes of a single asset.

Base Command#

kenna-update-asset

Input#

Argument NameDescriptionRequired
idThe ID of the asset to update.Required
notesNotes about the asset.Required
inactiveWhether to deactivate the asset. Possible values are: true, false.Optional

Context Output#

There is no context output for this command.

Command example#

!kenna-update-asset id=dummy notes="New asset info"

Human Readable Output#

Asset with ID dummy was successfully updated.

kenna-update-vulnerability#


Updates the attributes of a single vulnerability.

Base Command#

kenna-update-vulnerability

Input#

Argument NameDescriptionRequired
idThe ID of the vulnerability to update.Required
statusThe status of the vulnerability. Possible values are: open, closed, risk_accepted, false_positive.Optional
notesNotes about the vulnerability.Optional

Context Output#

There is no context output for this command.

Command example#

!kenna-update-vulnerability id=dummy status=open notes="Test"

Human Readable Output#

Asset dummy was updated

kenna-get-connectors#


Returns all connectors.

Base Command#

kenna-get-connectors

Input#

There are no input arguments for this command.

Context Output#

PathTypeDescription
Kenna.ConnectorsList.IDNumberThe connector ID.
Kenna.ConnectorsList.NameStringThe connector name.
Kenna.ConnectorsList.RunningBooleanThe running connector.
Kenna.ConnectorsList.HostStringThe connector host.

Command example#

!kenna-get-connectors

Context Example#

{
"Kenna": {
"ConnectorsList": [
{
"Host": null,
"ID": 0,
"Name": "XML",
"Running": false
},
{
"Host": null,
"ID": 1,
"Name": "Generic",
"Running": false
}
]
}
}

Human Readable Output#

Kenna Connectors#

HostIDNameRunning
0XMLfalse
1Genericfalse

kenna-search-assets#


Searches for assets.

Base Command#

kenna-search-assets

Input#

Argument NameDescriptionRequired
idThe asset ID to search for.Optional
hostnameThe hostname of the asset to search for.Optional
min-scoreThe minimum vulnerability score for which to return vulnerabilities.Optional
tagsThe tags by which to search.Optional
limitThe maximum number of vulnerabilities to return. Default is 500.Optional
to_contextWhether to print output to context. Possible values are: True, False. Default is True.Optional

Context Output#

PathTypeDescription
Kenna.Assets.IDNumberThe asset ID.
Kenna.Assets.ExternalIDStringThe asset external ID.
Kenna.Assets.HostnameStringThe hostname of the asset.
Kenna.Assets.IpAddressStringThe asset IP address.
Kenna.Assets.ScoreNumberThe asset risk score.
Kenna.Assets.VulnerabilitiesCountNumberThe number of vulnerabilities associated with the asset.
Kenna.Assets.OperatingSystemStringThe asset operating system.
Kenna.Assets.TagsStringA list of the asset's tags.
Kenna.Assets.FqdnStringThe asset FQDN.
Kenna.Assets.StatusStringThe asset status.
Kenna.Assets.OwnerStringThe asset owner.
Kenna.Assets.PriorityNumberThe asset priority.
Kenna.Assets.NotesStringNotes of current asset.
Kenna.Assets.OperatingSystemStringOperating system of the asset.

Command example#

!kenna-search-assets limit=2 to_context=True

Context Example#

{
"Kenna": {
"Assets": [
{
"Fqdn": null,
"Hostname": null,
"ID": 0,
"IpAddress": "0.0.0",
"Notes": "New asset info",
"OperatingSystem": "Windows",
"Owner": null,
"Priority": 10,
"Score": 1000,
"Status": "active",
"Tags": [
"Dummy"
],
"VulnerabilitiesCount": 10
},
{
"Fqdn": null,
"Hostname": null,
"ID": 1,
"IpAddress": "0.0.0",
"Notes": null,
"OperatingSystem": "Windows",
"Owner": null,
"Priority": 10,
"Score": 1000,
"Status": "active",
"Tags": [
"Category"
],
"VulnerabilitiesCount": 10
}
]
}
}

Human Readable Output#

Kenna Assets#

IP-addressOperating SystemScoreid
0.0.0Windows10000
0.0.0Windows10001

kenna-get-asset-vulnerabilities#


Gets vulnerabilities of the specified asset.

Base Command#

kenna-get-asset-vulnerabilities

Input#

Argument NameDescriptionRequired
idThe asset ID for which to get vulnerabilities.Required
limitThe maximum number of vulnerabilities to return. Default is 500.Optional
to_contextWhether to print output to context. Possible values are: True, False. Default is True.Optional

Context Output#

PathTypeDescription
Kenna.VulnerabilitiesOfAsset.AssetIDNumberThe ID of the asset that this vulnerability is associated with.
Kenna.VulnerabilitiesOfAsset.CveIDStringThe CVE ID of the vulnerability associated with the asset.
Kenna.VulnerabilitiesOfAsset.IDNumberThe ID of the vulnerability associated withe the asset.
Kenna.VulnerabilitiesOfAsset.PatchBooleanWhether there is a patch for the vulnerability associated with the asset.
Kenna.VulnerabilitiesOfAsset.StatusStringThe status of the vulnerability associated with the asset.
Kenna.VulnerabilitiesOfAsset.TopPriorityBooleanWhether the vulnerability associated with the asset is a top priority.
Kenna.VulnerabilitiesOfAsset.ScoreNumberThe score of the vulnerability associated with the asset.

Command example#

!kenna-get-asset-vulnerabilities id=dummy limit=2 to_context=True

Context Example#

{
"Kenna": {
"VulnerabilitiesOfAsset": [
{
"AssetID": "dummy",
"CveID": "CVE-2015-0000",
"ID": 0,
"Patch": true,
"Score": 100,
"Status": "open",
"TopPriority": true
},
{
"AssetID": "dummy",
"CveID": "CVE-2015-0001",
"ID": 1,
"Patch": true,
"Score": 100,
"Status": "open",
"TopPriority": true
}
]
}
}

Human Readable Output#

Kenna Vulnerabilities#

NameScoreid
CVE-2015-00001000
CVE-2015-00011001

kenna-add-tag#


Adds a tag to the specified asset.

Base Command#

kenna-add-tag

Input#

Argument NameDescriptionRequired
tagA comma-separated list of tags to add to the asset.Required
idThe asset ID to which to add the tag.Required

Context Output#

There is no context output for this command.

Command example#

!kenna-add-tag tag="Test tag" id=dummy

Human Readable Output#

Tag Test tag was added to asset dummy

kenna-delete-tag#


Deletes tags from the specified asset.

Base Command#

kenna-delete-tag

Input#

Argument NameDescriptionRequired
idThe asset ID from which to delete the tag.Required
tagThe tag to delete.Required

Context Output#

There is no context output for this command.

Command example#

!kenna-delete-tag id=dummy tag="Test tag"

Human Readable Output#

Tag Test tag was successfully removed from asset.

kenna-get-connector-runs#


Returns JSON data on all the runs of a given connector.

Base Command#

kenna-get-connector-runs

Input#

Argument NameDescriptionRequired
connector_idUnique numerical ID of the connector.Required

Context Output#

PathTypeDescription
Kenna.ConnectorRunsList.IDNumberConnector Run ID.
Kenna.ConnectorRunsList.StartTimeNumberConnector Run Start Time.
Kenna.ConnectorRunsList.EndTimestringConnector Run End Time.
Kenna.ConnectorRunsList.SuccessbooleanBoolean value showing connector success.
Kenna.ConnectorRunsList.TotalPayloadNumberTotal connector payloads.
Kenna.ConnectorRunsList.ProcessedPayloadNumberTotal payloads processed the connector.
Kenna.ConnectorRunsList.FailedPayloadNumberTotal failed payloads.
Kenna.ConnectorRunsList.ProcessedAssetsNumberAmount of processed assets.
Kenna.ConnectorRunsList.AssetsWithTagsResetNumberAmount of assets with reset tags.
Kenna.ConnectorRunsList.ProcessedScannerVulnerabilitiesNumberAmount of processed scanners with vulnerabilities.
Kenna.ConnectorRunsList.UpdatedScannerVulnerabilitiesNumberAmount of updated scanners with vulnerabilities.
Kenna.ConnectorRunsList.CreatedScannerVulnerabilitiesNumberAmount of created scanners with vulnerabilities.
Kenna.ConnectorRunsList.ClosedScannerVulnerabilitiesNumberAmount of closed scanners with vulnerabilities.
Kenna.ConnectorRunsList.AutoclosedScannerVulnerabilitiesNumberAmount of auto-closed scanners with vulnerabilities.
Kenna.ConnectorRunsList.ReopenedScannerVulnerabilitiesnumberAmount of reopened scanners with vulnerabilities.
Kenna.ConnectorRunsList.ClosedVulnerabilitiesNumberAmount of closed vulnerabilities.
Kenna.ConnectorRunsList.AutoclosedVulnerabilitiesNumberAmount of auto-closed vulnerabilities.
Kenna.ConnectorRunsList.ReopenedVulnerabilitiesNumberAmount of re-opened vulnerabilities.

Command example#

!kenna-get-connector-runs connector_id=dummy

Context Example#

{
"Kenna": {
"ConnectorRunsList": {
"AssetsWithTagsReset": 0,
"AutoclosedScannerVulnerabilities": 0,
"AutoclosedVulnerabilities": 0,
"ClosedScannerVulnerabilities": 0,
"ClosedVulnerabilities": 0,
"CreatedScannerVulnerabilities": 0,
"EndTime": "2019-10-24T19:13:36.000Z",
"FailedPayload": 0,
"ID": 0,
"ProcessedAssets": 0,
"ProcessedPayload": null,
"ProcessedScannerVulnerabilities": 0,
"ReopenedScannerVulnerabilities": 0,
"ReopenedVulnerabilities": 0,
"StartTime": "2019-10-24T19:02:02.000Z",
"Success": true,
"TotalPayload": 0,
"UpdatedScannerVulnerabilities": 0
}
}
}

Human Readable Output#

Kenna Connector Runs#

AssetsWithTagsResetAutoclosedScannerVulnerabilitiesAutoclosedVulnerabilitiesClosedScannerVulnerabilitiesClosedVulnerabilitiesCreatedScannerVulnerabilitiesEndTimeFailedPayloadIDProcessedAssetsProcessedPayloadProcessedScannerVulnerabilitiesReopenedScannerVulnerabilitiesReopenedVulnerabilitiesStartTimeSuccessTotalPayloadUpdatedScannerVulnerabilities
0000002019-10-24T19:13:36.000Z00000002019-10-24T19:02:02.000Ztrue00

kenna-search-assets-by-external-id#


Search assets by external ID.

Base Command#

kenna-search-assets-by-external-id

Input#

Argument NameDescriptionRequired
external_idThe external ID of the asset.Required
to_contextWhether to put data in context. Possible values are: true, false.Optional
limitThe maximum number of assets to return. Default is 500.Optional

Context Output#

PathTypeDescription
Kenna.Assets.IDNumberThe asset ID.
Kenna.Assets.NotesStringNotes of current asset.
Kenna.Assets.VulnerabilitiesCountNumberCount of vulnerabilities of current asset.
Kenna.Assets.HostnameStringHostname of current asset.
Kenna.Assets.ScoreNumberScore of current asset.
Kenna.Assets.IpAddressStringIP of current asset.
Kenna.Assets.OperatingSystemStringOperating system of current asset.

Command example#

!kenna-search-assets-by-external-id external_id=dummy limit=2 to_context=true

Context Example#

{
"Kenna": {
"Assets": [
{
"Fqdn": null,
"Hostname": null,
"ID": 0,
"IpAddress": "0.0.0",
"Notes": "New asset info",
"OperatingSystem": "Windows",
"Owner": null,
"Priority": 10,
"Score": 1000,
"Status": "active",
"Tags": [
"Category10",
"Category9"
],
"VulnerabilitiesCount": 10
},
{
"Fqdn": null,
"Hostname": null,
"ID": 1,
"IpAddress": "0.0.0",
"Notes": null,
"OperatingSystem": "Windows",
"Owner": null,
"Priority": 10,
"Score": 1000,
"Status": "active",
"Tags": [
"Category5",
"Category7"
],
"VulnerabilitiesCount": 10
}
]
}
}

Human Readable Output#

Kenna Assets#

IP-addressOperating SystemScoreid
0.0.0Windows10000
0.0.0Windows10000