Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[SOAR-18090] Trendmicro Deep Security - Snyk Vulnerabilities and SDK …
Browse files Browse the repository at this point in the history
…Bump (#2923)

* snyk and sdk - trendmicro

* removing requests

* adding timeout
rmurray-r7 committed Nov 5, 2024
1 parent 32116a6 commit e7f10ec
Showing 30 changed files with 356 additions and 287 deletions.
18 changes: 9 additions & 9 deletions plugins/trendmicro_deepsecurity/.CHECKSUM
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
{
"spec": "87df02f543c20dbd826f7b2f50c1a40a",
"manifest": "a2b7ef210c31ec64898d6dbeba7c56fe",
"setup": "f8c03ed81b7496550e9ac4b44ca81bbc",
"spec": "c24b11137bc6c86ba10296dd19d2a409",
"manifest": "a87fb2d79f552a29d4b6d6e698fa52eb",
"setup": "139cf33ec232a2888bb62b92b08ed651",
"schemas": [
{
"identifier": "deploy_rules/schema.py",
"hash": "8674123f170310085c72627eb16cb103"
"hash": "ac52aeab22921a006441d8cd14819b7b"
},
{
"identifier": "get_rule_details/schema.py",
"hash": "0eb15d3e0354f05e7d24fa53a5c48888"
"hash": "12022e88fc85aa2aa0ba67c553ba3728"
},
{
"identifier": "list_rules/schema.py",
"hash": "234d239b2226033398e195fe476e255b"
"hash": "ec8407791e5814ec61d60b2e3129b7d3"
},
{
"identifier": "search_computers/schema.py",
"hash": "dbbbb50f7f5c3fe3fb2a5ad1bff0558b"
"hash": "1c12b4aac599e5d8cb1f3382a17e5282"
},
{
"identifier": "search_rules/schema.py",
"hash": "cadb6a7fecb480b49bab55a55f48382f"
"hash": "701bc13aee0460e1579ee0dba473f94f"
},
{
"identifier": "connection/schema.py",
"hash": "39722fd7c5ae424e3941b7a534a713df"
"hash": "c9dca0c588f6c8129395f5db3f96fa28"
}
]
}
16 changes: 5 additions & 11 deletions plugins/trendmicro_deepsecurity/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,23 +1,17 @@
FROM komand/python-3-37-slim-plugin
# Refer to the following documentation for available SDK parent images: https://docs.rapid7.com/insightconnect/sdk-guide/#sdk-guide
FROM --platform=linux/amd64 rapid7/insightconnect-python-3-slim-plugin:6.1.4

LABEL organization=rapid7
LABEL sdk=python

# Add any custom package dependencies here
# NOTE: Add pip packages to requirements.txt

# End package dependencies

# Add source code
WORKDIR /python/src

ADD ./plugin.spec.yaml /plugin.spec.yaml
ADD . /python/src
ADD ./requirements.txt /python/src/requirements.txt

# Install pip dependencies
RUN if [ -f requirements.txt ]; then pip install -r requirements.txt; fi

# Install plugin
ADD . /python/src

RUN python setup.py build && python setup.py install

# User to run plugin code. The two supported users are: root, nobody
26 changes: 13 additions & 13 deletions plugins/trendmicro_deepsecurity/bin/icon_trendmicro_deepsecurity
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
#!/usr/bin/env python
# GENERATED BY KOMAND SDK - DO NOT EDIT
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
import os
import json
from sys import argv

Name = "Trend Micro Deep Security"
Vendor = "rapid7"
Version = "2.2.2"
Version = "2.2.3"
Description = "Utilize the Deep Security IPS engine to protect against vulnerabilities without installing a patch (virtual patching)"


@@ -22,10 +22,10 @@ def main():
from gevent import monkey
monkey.patch_all()

import komand
from icon_trendmicro_deepsecurity import connection, actions, triggers
import insightconnect_plugin_runtime
from icon_trendmicro_deepsecurity import connection, actions, triggers, tasks

class ICONTrendmicroDeepsecurity(komand.Plugin):
class ICONTrendmicroDeepsecurity(insightconnect_plugin_runtime.Plugin):
def __init__(self):
super(self.__class__, self).__init__(
name=Name,
@@ -34,19 +34,19 @@ def main():
description=Description,
connection=connection.Connection()
)
self.add_action(actions.SearchRules())

self.add_action(actions.DeployRules())

self.add_action(actions.GetRuleDetails())


self.add_action(actions.ListRules())


self.add_action(actions.GetRuleDetails())

self.add_action(actions.SearchComputers())

self.add_action(actions.SearchRules())



"""Run plugin"""
cli = komand.CLI(ICONTrendmicroDeepsecurity())
cli = insightconnect_plugin_runtime.CLI(ICONTrendmicroDeepsecurity())
cli.run()


322 changes: 166 additions & 156 deletions plugins/trendmicro_deepsecurity/help.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT

from .search_rules.action import SearchRules

from .deploy_rules.action import DeployRules
from .get_rule_details.action import GetRuleDetails

from .list_rules.action import ListRules

from .get_rule_details.action import GetRuleDetails

from .search_computers.action import SearchComputers
from .search_rules.action import SearchRules

Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
from .action import DeployRules
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import komand
import insightconnect_plugin_runtime
from .schema import DeployRulesInput, DeployRulesOutput, Input, Output, Component

# Custom imports below
@@ -9,7 +9,7 @@
from icon_trendmicro_deepsecurity.util.shared import checkResponse


class DeployRules(komand.Action):
class DeployRules(insightconnect_plugin_runtime.Action):
def __init__(self):
super(self.__class__, self).__init__(
name="deploy_rules",
@@ -42,7 +42,11 @@ def run(self, params={}):

# Set rules
response = requests.post(
url, data=json.dumps(data), verify=self.connection.dsm_verify_ssl, headers=self.connection.headers
url,
data=json.dumps(data),
verify=self.connection.dsm_verify_ssl,
headers=self.connection.headers,
timeout=60,
)

self.logger.info(f"url: {response.url}")
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
import komand
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
import insightconnect_plugin_runtime
import json


@@ -11,15 +11,15 @@ class Input:
COMPUTER_OR_POLICY = "computer_or_policy"
ID = "id"
RULES = "rules"


class Output:
RULES_ASSIGNED = "rules_assigned"
RULES_NOT_ASSIGNED = "rules_not_assigned"


class DeployRulesInput(komand.Input):
schema = json.loads("""

class DeployRulesInput(insightconnect_plugin_runtime.Input):
schema = json.loads(r"""
{
"type": "object",
"title": "Variables",
@@ -54,16 +54,17 @@ class DeployRulesInput(komand.Input):
"computer_or_policy",
"id",
"rules"
]
],
"definitions": {}
}
""")

def __init__(self):
super(self.__class__, self).__init__(self.schema)


class DeployRulesOutput(komand.Output):
schema = json.loads("""
class DeployRulesOutput(insightconnect_plugin_runtime.Output):
schema = json.loads(r"""
{
"type": "object",
"title": "Variables",
@@ -86,7 +87,8 @@ class DeployRulesOutput(komand.Output):
},
"order": 2
}
}
},
"definitions": {}
}
""")

Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
from .action import GetRuleDetails
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import komand
import insightconnect_plugin_runtime
from .schema import GetRuleDetailsInput, GetRuleDetailsOutput, Input, Output, Component

# Custom imports below
@@ -8,7 +8,7 @@
import requests


class GetRuleDetails(komand.Action):
class GetRuleDetails(insightconnect_plugin_runtime.Action):
def __init__(self):
super(self.__class__, self).__init__(
name="get_rule_details",
@@ -31,7 +31,7 @@ def run(self, params={}):
url = f"{self.connection.dsm_url}/api/intrusionpreventionrules/{self.id}"

# Send request
response = requests.get(url, verify=self.connection.dsm_verify_ssl, headers=self.connection.headers)
response = requests.get(url, verify=self.connection.dsm_verify_ssl, headers=self.connection.headers, timeout=60)

self.logger.info(f"url: {response.url}")
self.logger.info(f"status: {response.status_code}")
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
import komand
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
import insightconnect_plugin_runtime
import json


@@ -9,7 +9,7 @@ class Component:

class Input:
ID = "id"


class Output:
CVES = "cves"
@@ -19,10 +19,10 @@ class Output:
RESPONSE_JSON = "response_json"
SEVERITY = "severity"
TYPE = "type"


class GetRuleDetailsInput(komand.Input):
schema = json.loads("""

class GetRuleDetailsInput(insightconnect_plugin_runtime.Input):
schema = json.loads(r"""
{
"type": "object",
"title": "Variables",
@@ -36,16 +36,17 @@ class GetRuleDetailsInput(komand.Input):
},
"required": [
"id"
]
],
"definitions": {}
}
""")

def __init__(self):
super(self.__class__, self).__init__(self.schema)


class GetRuleDetailsOutput(komand.Output):
schema = json.loads("""
class GetRuleDetailsOutput(insightconnect_plugin_runtime.Output):
schema = json.loads(r"""
{
"type": "object",
"title": "Variables",
@@ -95,7 +96,8 @@ class GetRuleDetailsOutput(komand.Output):
"description": "Rule type",
"order": 4
}
}
},
"definitions": {}
}
""")

Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
from .action import ListRules
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import komand
import insightconnect_plugin_runtime
from .schema import ListRulesInput, ListRulesOutput, Input, Output, Component

# Custom imports below
@@ -8,7 +8,7 @@
import requests


class ListRules(komand.Action):
class ListRules(insightconnect_plugin_runtime.Action):
def __init__(self):
super(self.__class__, self).__init__(
name="list_rules",
@@ -40,7 +40,7 @@ def run(self, params={}):
url = f"{self.connection.dsm_url}/api/policies/{self.id}/intrusionprevention/rules"

# Send request
response = requests.get(url, verify=self.connection.dsm_verify_ssl, headers=self.connection.headers)
response = requests.get(url, verify=self.connection.dsm_verify_ssl, headers=self.connection.headers, timeout=60)

self.logger.info(f"url: {response.url}")
self.logger.info(f"status: {response.status_code}")
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
import komand
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
import insightconnect_plugin_runtime
import json


@@ -10,16 +10,16 @@ class Component:
class Input:
ID = "id"
SCOPE = "scope"


class Output:
COVERED_CVES = "covered_cves"
RESPONSE_JSON = "response_json"
RULES_ASSIGNED = "rules_assigned"


class ListRulesInput(komand.Input):
schema = json.loads("""

class ListRulesInput(insightconnect_plugin_runtime.Input):
schema = json.loads(r"""
{
"type": "object",
"title": "Variables",
@@ -44,16 +44,17 @@ class ListRulesInput(komand.Input):
"required": [
"id",
"scope"
]
],
"definitions": {}
}
""")

def __init__(self):
super(self.__class__, self).__init__(self.schema)


class ListRulesOutput(komand.Output):
schema = json.loads("""
class ListRulesOutput(insightconnect_plugin_runtime.Output):
schema = json.loads(r"""
{
"type": "object",
"title": "Variables",
@@ -82,7 +83,8 @@ class ListRulesOutput(komand.Output):
},
"order": 1
}
}
},
"definitions": {}
}
""")

Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
from .action import SearchComputers
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import komand
import insightconnect_plugin_runtime
from .schema import SearchComputersInput, SearchComputersOutput, Input, Output, Component

# Custom imports below

import json
import requests
from komand.exceptions import PluginException
from insightconnect_plugin_runtime.exceptions import PluginException
from icon_trendmicro_deepsecurity.util.shared import tryJSON
from icon_trendmicro_deepsecurity.util.shared import checkResponse


class SearchComputers(komand.Action):
class SearchComputers(insightconnect_plugin_runtime.Action):
def __init__(self):
super(self.__class__, self).__init__(
name="search_computers",
@@ -73,7 +73,11 @@ def run(self, params={}):

# Send request
response = requests.post(
url, data=json.dumps(data), verify=self.connection.dsm_verify_ssl, headers=self.connection.headers
url,
data=json.dumps(data),
verify=self.connection.dsm_verify_ssl,
headers=self.connection.headers,
timeout=60,
)

self.logger.info(f"url: {response.url}")
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
import komand
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
import insightconnect_plugin_runtime
import json


@@ -14,15 +14,15 @@ class Input:
NUMBER_VALUE = "number_value"
SEARCH_TYPE = "search_type"
STRING_VALUE = "string_value"


class Output:
COMPUTER_IDS = "computer_ids"
RESPONSE_JSON = "response_json"


class SearchComputersInput(komand.Input):
schema = json.loads("""

class SearchComputersInput(insightconnect_plugin_runtime.Input):
schema = json.loads(r"""
{
"type": "object",
"title": "Variables",
@@ -106,16 +106,17 @@ class SearchComputersInput(komand.Input):
"required": [
"information",
"max_items"
]
],
"definitions": {}
}
""")

def __init__(self):
super(self.__class__, self).__init__(self.schema)


class SearchComputersOutput(komand.Output):
schema = json.loads("""
class SearchComputersOutput(insightconnect_plugin_runtime.Output):
schema = json.loads(r"""
{
"type": "object",
"title": "Variables",
@@ -135,7 +136,8 @@ class SearchComputersOutput(komand.Output):
"description": "Full response in JSON format",
"order": 2
}
}
},
"definitions": {}
}
""")

Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
from .action import SearchRules
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from typing import Tuple
import komand
import insightconnect_plugin_runtime
import requests
from .schema import SearchRulesInput, SearchRulesOutput, Input, Output, Component

@@ -10,7 +10,7 @@
from icon_trendmicro_deepsecurity.util.shared import checkResponse


class SearchRules(komand.Action):
class SearchRules(insightconnect_plugin_runtime.Action):
def __init__(self):
super(self.__class__, self).__init__(
name="search_rules",
@@ -39,7 +39,11 @@ def search_rule_by_cve(self, cve: str) -> Tuple[set, set, set]:

# Search for IPS rules
response = requests.post(
url, data=json.dumps(data), verify=self.connection.dsm_verify_ssl, headers=self.connection.headers
url,
data=json.dumps(data),
verify=self.connection.dsm_verify_ssl,
headers=self.connection.headers,
timeout=60,
)

# Check response errors
@@ -80,7 +84,11 @@ def collect_all_ips_rules(self) -> list:
# Send Request
url = f"{self.connection.dsm_url}/api/intrusionpreventionrules/search"
response = requests.post(
url, data=json.dumps(data), verify=self.connection.dsm_verify_ssl, headers=self.connection.headers
url,
data=json.dumps(data),
verify=self.connection.dsm_verify_ssl,
headers=self.connection.headers,
timeout=60,
)

# Check response errors
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
import komand
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
import insightconnect_plugin_runtime
import json


@@ -9,16 +9,16 @@ class Component:

class Input:
VULNERABILITIES = "vulnerabilities"


class Output:
IPS_RULES = "ips_rules"
MATCHED_CVES = "matched_cves"
MISSED_CVES = "missed_cves"


class SearchRulesInput(komand.Input):
schema = json.loads("""

class SearchRulesInput(insightconnect_plugin_runtime.Input):
schema = json.loads(r"""
{
"type": "object",
"title": "Variables",
@@ -35,16 +35,17 @@ class SearchRulesInput(komand.Input):
},
"required": [
"vulnerabilities"
]
],
"definitions": {}
}
""")

def __init__(self):
super(self.__class__, self).__init__(self.schema)


class SearchRulesOutput(komand.Output):
schema = json.loads("""
class SearchRulesOutput(insightconnect_plugin_runtime.Output):
schema = json.loads(r"""
{
"type": "object",
"title": "Variables",
@@ -76,7 +77,8 @@ class SearchRulesOutput(komand.Output):
},
"order": 3
}
}
},
"definitions": {}
}
""")

Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
from .connection import Connection
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import komand
from .schema import ConnectionSchema, Input
import insightconnect_plugin_runtime

# Custom imports below

@@ -8,7 +8,7 @@
from icon_trendmicro_deepsecurity.util.shared import checkResponse


class Connection(komand.Connection):
class Connection(insightconnect_plugin_runtime.Connection):
def __init__(self):
super(self.__class__, self).__init__(input=ConnectionSchema())

@@ -35,7 +35,7 @@ def test(self):
url = f"{self.dsm_url}/api/policies"

# Get list of policies
response = requests.get(url, verify=self.dsm_verify_ssl, headers=self.headers)
response = requests.get(url, verify=self.dsm_verify_ssl, headers=self.headers, timeout=60)

# Try to convert the response data to JSON
response_data = tryJSON(response)
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
import komand
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
import insightconnect_plugin_runtime
import json


class Input:
DSM_API_KEY = "dsm_api_key"
DSM_URL = "dsm_url"
DSM_VERIFY_SSL = "dsm_verify_ssl"


class ConnectionSchema(komand.Input):
schema = json.loads("""

class ConnectionSchema(insightconnect_plugin_runtime.Input):
schema = json.loads(r"""
{
"type": "object",
"title": "Variables",
@@ -47,18 +47,18 @@ class ConnectionSchema(komand.Input):
"type": "object",
"title": "Credential: Secret Key",
"description": "A shared secret key",
"required": [
"secretKey"
],
"properties": {
"secretKey": {
"type": "string",
"title": "Secret Key",
"displayType": "password",
"description": "The shared secret key",
"format": "password"
"format": "password",
"displayType": "password"
}
},
"required": [
"secretKey"
]
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT

Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from komand.exceptions import PluginException
from insightconnect_plugin_runtime.exceptions import PluginException
from requests.models import Response

import json
@@ -33,7 +33,7 @@ def checkResponse(response: Response) -> None:
message = f"{response.status_code}, {response.text}"

raise PluginException(
cause="Received HTTP %d status code. The request was not successful." % response.status_code,
cause=f"Received HTTP {response.status_code} status code. The request was not successful.",
assistance=f"[{response.url}]",
data=message,
)
29 changes: 28 additions & 1 deletion plugins/trendmicro_deepsecurity/plugin.spec.yaml
Original file line number Diff line number Diff line change
@@ -4,9 +4,19 @@ products: [insightconnect]
name: trendmicro_deepsecurity
title: Trend Micro Deep Security
description: Utilize the Deep Security IPS engine to protect against vulnerabilities without installing a patch (virtual patching)
version: 2.2.2
version: 2.2.3
connection_version: 2
vendor: rapid7
supported_versions: ["2024-11-1"]
support: community
sdk:
type: slim
version: 6.1.4
user: nobody
key_features:
- "Utilize the Deep Security IPS engine to protect against vulnerabilities without installing a patch (virtual patching)"
requirements:
- "Trend Micro Deep Security"
status: []
enable_cache: false
resources:
@@ -22,6 +32,18 @@ tags:
- remediation
- trend_micro
- deep_security
references:
- "[Trend Micro Deep Security](https://help.deepsecurity.trendmicro.com/10/0/rest-api.html)"
links:
- "[Trend Micro Deep Security](https://www.trendmicro.com/en_gb/business/products/hybrid-cloud/deep-security.html)"
version_history:
- "2.2.3 - Bumping requirements.txt | SDK bump to 6.1.4"
- "2.2.2 - Fixed memory leak"
- "2.2.1 - Improve the search for IPS rules"
- "2.2.0 - Add new action Search Computers to receive a list and details of computers matching the search criteria"
- "2.1.0 - Add new actions Get Details and List to receive assigned IPS rules from computers and policies"
- "2.0.0 - Add an option to toggle DSM certificate verification in the connection"
- "1.0.0 - Initial plugin"
hub_tags:
use_cases: [vulnerability_management, cloud_security, remediation_management, threat_detection_and_response ]
keywords: [vulnerability scanning, vulnerability management, remediation, virtual patching, intrusion, detection, prevention, response, trend micro, deep security, trendmicro, deepsecurity]
@@ -161,26 +183,31 @@ actions:
description: Name of the rule
type: string
required: false
example: Identified Suspicious OpenSSL TLS/DTLS Heartbeat Request (ATT\u0026CK T1032)
description:
title: Description
description: Description of the rule
type: string
required: false
example: The TLS and DTLS implementations in OpenSSL do not properly handle Heartbeat Extension packets, which allow remote attackers to obtain sensitive information from process memory via crafted packets. This is a heuristic based rule to identify such suspicious Heartbeat requests.
severity:
title: Severity
description: Severity level of the IPS rule
type: string
required: false
example: medium
type:
title: Type
description: Rule type
type: string
required: false
example: smart
cvss_score:
title: CVSS Score
description: CVSS score
type: string
required: false
example: 5.00
cves:
title: CVEs
description: List of related CVEs
1 change: 0 additions & 1 deletion plugins/trendmicro_deepsecurity/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# List third-party dependencies here, separated by newlines.
# All dependencies must be version-pinned, eg. requests==1.2.0
# See: https://pip.pypa.io/en/stable/user_guide/#requirements-files
requests==2.26.0
6 changes: 3 additions & 3 deletions plugins/trendmicro_deepsecurity/setup.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# GENERATED BY KOMAND SDK - DO NOT EDIT
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
from setuptools import setup, find_packages


setup(name="trendmicro_deepsecurity-rapid7-plugin",
version="2.2.2",
version="2.2.3",
description="Utilize the Deep Security IPS engine to protect against vulnerabilities without installing a patch (virtual patching)",
author="rapid7",
author_email="",
url="",
packages=find_packages(),
install_requires=['komand'], # Add third-party dependencies to requirements.txt, not here!
install_requires=['insightconnect-plugin-runtime'], # Add third-party dependencies to requirements.txt, not here!
scripts=['bin/icon_trendmicro_deepsecurity']
)
4 changes: 4 additions & 0 deletions plugins/trendmicro_deepsecurity/unit_test/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# GENERATED BY INSIGHT-PLUGIN - DO NOT EDIT
import sys

sys.path.append("../")

0 comments on commit e7f10ec

Please sign in to comment.