Sixgill_Darkfeed_Enrichment
Sixgill Darkfeed Enrichment – powered by the broadest automated collection from the deep and dark web – is the most comprehensive IOC enrichment solution on the market. By enriching Palo Alto Networks Cortex XSOAR IOCs with Darkfeed, customers gain unparalleled context and essential explanations in order to accelerate their incident prevention and response and stay ahead of the threat curve. Automatically enrich Cortex XSOAR IOCs (machine to machine) via Darkfeed. Block threats and enrich endpoint protection in real-time from the Cortex XSOAR dashboard, gain contextual and actionable insights with essential explanations of Cortex XSOAR IOCs.
Data Enrichment & Threat Intelligence · Sixgill Darkfeed - Annual Subscription
Details
| ID | Sixgill_Darkfeed_Enrichment |
|---|---|
| Provider | Bitsight |
| Category | Data Enrichment & Threat Intelligence |
| From Version | 5.5.0 |
| Docker Image | demisto/sixgill:1.0.0.10120494 |
| Supported Modules | Agentix XSIAM |
README
Leverage the power of Sixgill to supercharge Cortex XSOAR with real-time Threat Intelligence indicators. Enrich IOCs such as domains, URLs, hashes, and IP addresses straight from XSOAR platform.
This integration was integrated and tested with sixgill-clients
Configure Sixgill_Darkfeed_Enrichment in Cortex
| Parameter | Description | Required |
|---|---|---|
| client_id | Sixgill API client ID | True |
| client_secret | Sixgill API client secret | True |
| insecure | Trust any certificate (not secure) | False |
| proxy | Use system proxy settings | False |
Commands
You can execute these commands from the 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.
ip
Returns information and a reputation for each IP in the input list.
Base Command
ip
Input
| Argument Name | Description | Required |
|---|---|---|
| ip | A comma-separated list of IPs to check. | Required |
| skip | The number of outputs per indicator to be skipped when returning the result set. Default is 0. Default is 0. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| DBotScore.Indicator | String | The indicator that was tested. |
| DBotScore.Score | Number | The score of the indicator. |
| DBotScore.Type | String | Indicator type. |
| DBotScore.Vendor | String | The vendor used to calculate the score. |
| SixgillDarkfeed.IP.created | Date | The timestamp when the indicator was created. |
| SixgillDarkfeed.IP.id | String | The unique ID of the indicator. |
| SixgillDarkfeed.IP.description | String | The description of the indicator. |
| SixgillDarkfeed.IP.lang | String | The language of the original post in the Sixgill portal. |
| SixgillDarkfeed.IP.modified | Date | The timestamp when the indicator was last modified. |
| SixgillDarkfeed.IP.pattern | String | The indicator IP address. |
| SixgillDarkfeed.IP.sixgill_actor | String | The actor of the original post on the dark web. |
| SixgillDarkfeed.IP.sixgill_confidence | Number | The indicator confidence score. |
| SixgillDarkfeed.IP.sixgill_feedid | String | The indicator subfeed ID. |
| SixgillDarkfeed.IP.sixgill_feedname | String | The indicator subfeed name. |
| SixgillDarkfeed.IP.sixgill_postid | String | The ID of the post in the Sixgill portal. |
| SixgillDarkfeed.IP.sixgill_posttitle | String | The title of the post in the Sixgill portal. |
| SixgillDarkfeed.IP.sixgill_severity | Number | The indicator severity score. |
| SixgillDarkfeed.IP.sixgill_source | String | The source of the post in the Sixgill portal. |
| SixgillDarkfeed.IP.spec_version | String | The STIX specification version. |
| SixgillDarkfeed.IP.type | String | The STIX object type. |
| SixgillDarkfeed.IP.valid_from | Date | The creation date of the post in the Sixgill portal. |
| SixgillDarkfeed.IP.labels | Unknown | The indicative labels of the indicator. |
| SixgillDarkfeed.IP.external_reference | Unknown | Link to the IOC on VirusTotal and an abstraction of the number of detections; MITRE ATT&CK tactics and techniques. |
| IP.Address | String | The indicator IP address. |
Command Example
#### Human Readable Output
### domain
***
Returns information and a reputation for each domain name in the input list.
Notice: Submitting indicators using this command might make the indicator data publicly available. See the vendor’s documentation for more details.
#### Base Command
`domain`
#### Input
| **Argument Name** | **Description** | **Required** |
| --- | --- | --- |
| domain | A comma-separated list of domain names to check. | Required |
| skip | The number of outputs per indicator to be skipped when returning the result set. Default is 0. Default is 0. | Optional |
#### Context Output
| **Path** | **Type** | **Description** |
| --- | --- | --- |
| DBotScore.Indicator | String | The indicator that was tested. |
| DBotScore.Score | Number | The score of the indicator. |
| DBotScore.Type | String | The indicator type. |
| DBotScore.Vendor | String | The vendor used to calculate the score. |
| SixgillDarkfeed.Domain.created | Date | The timestamp when the indicator was created. |
| SixgillDarkfeed.Domain.id | String | The unique ID of the indicator. |
| SixgillDarkfeed.Domain.description | String | The description of the indicator. |
| SixgillDarkfeed.Domain.lang | String | The language of the original post in the Sixgill portal. |
| SixgillDarkfeed.Domain.modified | Date | The timestamp when the indicator was last modified. |
| SixgillDarkfeed.Domain.pattern | String | The indicator domain name. |
| SixgillDarkfeed.Domain.sixgill_actor | String | The actor of the original post on the dark web. |
| SixgillDarkfeed.Domain.sixgill_confidence | Number | The indicator confidence score. |
| SixgillDarkfeed.Domain.sixgill_feedid | String | The indicator subfeed ID. |
| SixgillDarkfeed.Domain.sixgill_feedname | String | The indicator subfeed name. |
| SixgillDarkfeed.Domain.sixgill_postid | String | The ID of the post in the Sixgill portal. |
| SixgillDarkfeed.Domain.sixgill_posttitle | String | The title of the post in the Sixgill portal. |
| SixgillDarkfeed.Domain.sixgill_severity | Number | The indicator severity score. |
| SixgillDarkfeed.Domain.sixgill_source | String | The source of the post in the Sixgill portal. |
| SixgillDarkfeed.Domain.spec_version | String | The STIX specification version. |
| SixgillDarkfeed.Domain.type | String | The STIX object type. |
| SixgillDarkfeed.Domain.valid_from | Date | The creation date of the post in the Sixgill portal. |
| SixgillDarkfeed.Domain.labels | Unknown | The indicative labels of the indicator. |
| SixgillDarkfeed.Domain.external_reference | Unknown | Link to the IOC on Virustotal and an abstraction of the number of detections; MITRE ATT&CK tactics and techniques. |
| Domain.Name | String | The indicator domain name. |
#### Command Example
Human Readable Output
url
Returns information and a reputation for each URL in the input list.
Notice: Submitting indicators using this command might make the indicator data publicly available. See the vendor’s documentation for more details.
Base Command
url
Input
| Argument Name | Description | Required |
|---|---|---|
| url | A comma-separated list of URLs to check. | Required |
| skip | The number of outputs per indicator to be skipped when returning the result set. Default is 0. Default is 0. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| DBotScore.Indicator | String | The indicator that was tested. |
| DBotScore.Score | Number | The score of the indicator. |
| DBotScore.Type | String | Indicator type. |
| DBotScore.Vendor | String | The vendor used to calculate the score. |
| SixgillDarkfeed.URL.created | Date | The timestamp when the indicator was created. |
| SixgillDarkfeed.URL.id | String | The unique ID of the indicator. |
| SixgillDarkfeed.URL.description | String | The description of the indicator. |
| SixgillDarkfeed.URL.lang | String | The language of the original post in the Sixgill portal. |
| SixgillDarkfeed.URL.modified | Date | The timestamp when the indicator was last modified. |
| SixgillDarkfeed.URL.pattern | String | The indicator URL. |
| SixgillDarkfeed.URL.sixgill_actor | String | The actor of the original post on the dark web. |
| SixgillDarkfeed.URL.sixgill_confidence | Number | The indicator confidence score. |
| SixgillDarkfeed.URL.sixgill_feedid | String | The indicator subfeed ID. |
| SixgillDarkfeed.URL.sixgill_feedname | String | The indicator subfeed name. |
| SixgillDarkfeed.URL.sixgill_postid | String | The ID of the post in the Sixgill portal. |
| SixgillDarkfeed.URL.sixgill_posttitle | String | The title of the post in the Sixgill portal. |
| SixgillDarkfeed.URL.sixgill_severity | Number | The indicator severity score. |
| SixgillDarkfeed.URL.sixgill_source | String | The source of the post in the Sixgill portal. |
| SixgillDarkfeed.URL.spec_version | String | The STIX specification version. |
| SixgillDarkfeed.URL.type | String | The STIX object type. |
| SixgillDarkfeed.URL.valid_from | Date | The creation date of the post in the Sixgill portal. |
| SixgillDarkfeed.URL.labels | Unknown | The indicative labels of the indicator. |
| URL.Data | string | The indicator URL. |
| SixgillDarkfeed.URL.external_reference | Unknown | Link to the IOC on Virustotal and an abstraction of the number of detections; MITRE ATT&CK tactics and techniques. |
Command Example
#### Human Readable Output
### file
***
Returns information and a reputation for each file hash in the input list.
#### Base Command
`file`
#### Input
| **Argument Name** | **Description** | **Required** |
| --- | --- | --- |
| file | A comma-separated list of file hashes to check. | Required |
| skip | The number of outputs per indicator to be skipped when returning the result set. Default is 0. Default is 0. | Optional |
#### Context Output
| **Path** | **Type** | **Description** |
| --- | --- | --- |
| DBotScore.Indicator | String | The indicator that was tested. |
| DBotScore.Score | Number | The score of the indicator. |
| DBotScore.Type | String | Indicator type. |
| DBotScore.Vendor | String | The vendor used to calculate the score. |
| SixgillDarkfeed.File.created | Date | The timestamp when the indicator was created. |
| SixgillDarkfeed.File.id | String | The unique ID of the indicator. |
| SixgillDarkfeed.File.description | String | The description of the indicator. |
| SixgillDarkfeed.File.lang | String | The language of the original post in the Sixgill portal. |
| SixgillDarkfeed.File.modified | Date | The timestamp when the indicator was last modified. |
| SixgillDarkfeed.File.pattern | String | The indicator file hash \(hashes include MD5, SHA-1 and SHA-256 when possible\). |
| SixgillDarkfeed.File.sixgill_actor | String | The actor of the original post on the dark web. |
| SixgillDarkfeed.File.sixgill_confidence | Number | The indicator confidence score. |
| SixgillDarkfeed.File.sixgill_feedid | String | The indicator subfeed ID. |
| SixgillDarkfeed.File.sixgill_feedname | String | The indicator subfeed name. |
| SixgillDarkfeed.File.sixgill_postid | String | The ID of the post in the Sixgill portal. |
| SixgillDarkfeed.File.sixgill_posttitle | String | The title of the post in the Sixgill portal. |
| SixgillDarkfeed.File.sixgill_severity | Number | The indicator severity score. |
| SixgillDarkfeed.File.sixgill_source | String | The source of the post in the Sixgill portal. |
| SixgillDarkfeed.File.spec_version | String | The STIX specification version. |
| SixgillDarkfeed.File.type | String | The STIX object type. |
| SixgillDarkfeed.File.valid_from | Date | The creation date of the post in the Sixgill portal. |
| SixgillDarkfeed.File.labels | Unknown | The indicative labels of the indicator. |
| SixgillDarkfeed.File.external_reference | Unknown | Link to the IOC on Virustotal and an abstraction of the number of detections; MITRE ATT&CK tactics and techniques. |
| File.SHA256 | string | The SHA256 file hash. |
| File.SHA512 | string | The SHA512 file hash. |
| File.SHA1 | string | The SHA1 file hash. |
| File.MD5 | string | The MD5 file hash. |
#### Command Example
Human Readable Output
sixgill-get-actor
Returns information and a reputation for each actor in the input list.
Base Command
sixgill-get-actor
Input
| Argument Name | Description | Required |
|---|---|---|
| actor | A comma-separated list of actors to check. | Required |
| skip | The number of outputs per actor to be skipped when returning the result set. Default is 0. Default is 0. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| SixgillDarkfeed.Actor.created | Date | The timestamp when the actor shared their first IOC. |
| SixgillDarkfeed.Actor.id | String | The unique ID of the actor. |
| SixgillDarkfeed.Actor.description | String | The description of the actor. |
| SixgillDarkfeed.Actor.lang | String | The language of the original post in the Sixgill portal. |
| SixgillDarkfeed.Actor.modified | Date | The timestamp when the actor was last modified. |
| SixgillDarkfeed.Actor.pattern | String | A list of the IOCs shared by the actor. |
| SixgillDarkfeed.Actor.sixgill_actor | String | The actor of the original post on the dark web. |
| SixgillDarkfeed.Actor.sixgill_confidence | Number | The confidence score of the actor. |
| SixgillDarkfeed.Actor.sixgill_feedid | String | The Subfeed ID of the actor. |
| SixgillDarkfeed.Actor.sixgill_feedname | String | The Subfeed name of the actor. |
| SixgillDarkfeed.Actor.sixgill_postid | String | The ID of the post in the Sixgill portal. |
| SixgillDarkfeed.Actor.sixgill_posttitle | String | The title of the post in the Sixgill portal. |
| SixgillDarkfeed.Actor.sixgill_severity | Number | The severity score of the actor. |
| SixgillDarkfeed.Actor.sixgill_source | String | The source of the post in the Sixgill portal. |
| SixgillDarkfeed.Actor.spec_version | String | The STIX specification version. |
| SixgillDarkfeed.Actor.type | String | The STIX object type. |
| SixgillDarkfeed.Actor.valid_from | Date | The creation date of the post in the Sixgill portal. |
| SixgillDarkfeed.Actor.labels | Unknown | The indicative labels of the actor. |
| SixgillDarkfeed.Actor.external_reference | Unknown | Link to the IOC on Virustotal and an abstraction of the number of detections; MITRE ATT&CK tactics and techniques. |
Command Example
#### Human Readable Output
### sixgill-get-post-id
***
Returns information and a reputation for each post ID in the input list.
#### Base Command
`sixgill-get-post-id`
#### Input
| **Argument Name** | **Description** | **Required** |
| --- | --- | --- |
| post_id | A comma-separated list of post IDs to check. | Required |
| skip | The number of outputs per post ID to be skipped when returning the result set. Default is 0. Default is 0. | Optional |
#### Context Output
| **Path** | **Type** | **Description** |
| --- | --- | --- |
| SixgillDarkfeed.Postid.created | Date | The timestamp when an IOC was first included in the post. |
| SixgillDarkfeed.Postid.id | String | The unique ID of the post. |
| SixgillDarkfeed.Postid.description | String | The description of the post ID. |
| SixgillDarkfeed.Postid.lang | String | The language of the original post in the Sixgill portal. |
| SixgillDarkfeed.Postid.modified | Date | The timestamp when the post ID information was last modified. |
| SixgillDarkfeed.Postid.pattern | String | A list of the IOCs included in the post. |
| SixgillDarkfeed.Postid.sixgill_actor | String | The actor of the original post on the dark web. |
| SixgillDarkfeed.Postid.sixgill_confidence | Number | The confidence score of the post ID. |
| SixgillDarkfeed.Postid.sixgill_feedid | String | The Subfeed ID of the post ID. |
| SixgillDarkfeed.Postid.sixgill_feedname | String | The Subfeed name of the post ID. |
| SixgillDarkfeed.Postid.sixgill_postid | String | The ID of the post in the Sixgill portal. |
| SixgillDarkfeed.Postid.sixgill_posttitle | String | The title of the post in the Sixgill portal. |
| SixgillDarkfeed.Postid.sixgill_severity | Number | The severity score of the post ID. |
| SixgillDarkfeed.Postid.sixgill_source | String | The source of the post in the Sixgill portal. |
| SixgillDarkfeed.Postid.spec_version | String | The STIX specification version. |
| SixgillDarkfeed.Postid.type | String | The STIX object type. |
| SixgillDarkfeed.Postid.valid_from | Date | The creation date of the post in the Sixgill portal. |
| SixgillDarkfeed.Postid.labels | Unknown | The indicative labels of the post ID. |
| SixgillDarkfeed.Postid.external_reference | Unknown | Link to the IOC on Virustotal and an abstraction of the number of detections; MITRE ATT&CK tactics and techniques. |
#### Command Example
Human Readable Output
Configuration parameters
client_id— Sixgill API client ID (required)client_secret— Sixgill API client secret (required)insecure— Trust any certificate (not secure)proxy— Use system proxy settingsintegrationReliability— Source ReliabilityfeedExpirationPolicy—feedExpirationInterval—
Commands (6)
-
domainReturns information and a reputation for each domain name in the input list.
-
fileReturns information and a reputation for each file hash in the input list.
-
ipReturns information and a reputation for each IP in the input list.
-
sixgill-get-actorReturns information and a reputation for each actor in the input list.
-
sixgill-get-post-idReturns information and a reputation for each post ID in the input list.
-
urlReturns information and a reputation for each URL in the input list.
import demistomock as demisto # noqa: F401 import urllib3 from CommonServerPython import * # noqa: F401 from CommonServerUserPython import * """ IMPORTS """ import traceback from typing import Any import requests from sixgill.sixgill_enrich_client import SixgillEnrichClient from sixgill.sixgill_request_classes.sixgill_auth_request import SixgillAuthRequest # Disable insecure warnings urllib3.disable_warnings() hashes: dict[str, Any] = {} def to_demisto_score(feed_id: str, revoked: bool): suspicious_feed_ids = ["darkfeed_003"] if revoked: return Common.DBotScore.NONE # unknown if feed_id in suspicious_feed_ids: return Common.DBotScore.SUSPICIOUS # suspicious return Common.DBotScore.BAD # bad """ COMMANDS + REQUESTS FUNCTIONS """ def test_module_command(client_id, client_secret, channel_code, session, verify): """ Performs basic Auth request """ response = session.send( request=SixgillAuthRequest(client_id, client_secret, channel_code).prepare(), verify=verify, ) if not response.ok: raise Exception("Auth request failed - please verify client_id, and client_secret.") return "ok" def get_score(indicator): return to_demisto_score(indicator.get("sixgill_feedid"), indicator.get("revoke", False)) def get_file_hashes(indicators: list = []): for indicator in indicators: process_file_hashes(indicator, demisto) return hashes def process_file_hashes(stix2obj: dict[str, Any], log): """ Get the file hashes from indicator """ pattern = stix2obj.get("pattern", "") hash_mapping = { "hashes.md5": "md5", "hashes.'sha-1'": "sha1", "hashes.'sha-256'": "sha256", "hashes.'sha-512'": "sha512", "hashes.ssdeep": "ssdeep", } stix_regex_parser = re.compile(r"([\w-]+?):(\w.+?) (?:[!><]?=|IN|MATCHES|LIKE) '(.*?)' *[OR|AND|FOLLOWEDBY]?") for match in stix_regex_parser.findall(pattern): try: _, sub_type, value = match if hash_mapping[sub_type.lower()] not in hashes: hashes[hash_mapping[sub_type.lower()]] = value except Exception as e: log.error(f"failed to get file hashes from: {e}, STIX object: {stix2obj}") continue return hashes def ip_reputation_command(client: SixgillEnrichClient, args) -> list[CommandResults]: ips = argToList(args.get("ip")) skip = int(args.get("skip")) if len(ips) == 0: raise ValueError("IP(s) not specified") command_results: list[CommandResults] = [] for ip in ips: ip_data = client.enrich_ioc("ip", ip, skip) score = 0 if len(ip_data) != 0: score = max(list(map(get_score, ip_data))) dbot_score = Common.DBotScore( indicator=ip, indicator_type=DBotScoreType.IP, integration_name="SixgillDarkfeedEnrichment", score=score, malicious_description="; ".join({ioc.get("description") for ioc in ip_data}), reliability=demisto.params().get("integrationReliability"), ) ip_standard_context = Common.IP(ip=ip, dbot_score=dbot_score) readable_output = tableToMarkdown("IP", ip_data) command_results.append( CommandResults( readable_output=readable_output, outputs_prefix="Sixgill.IP", outputs_key_field="ip", outputs=ip_data, indicator=ip_standard_context, ) ) return command_results def domain_reputation_command(client: SixgillEnrichClient, args) -> list[CommandResults]: domains = argToList(args.get("domain")) skip = int(args.get("skip")) if len(domains) == 0: raise ValueError("DOMAIN(s) not specified") command_results: list[CommandResults] = [] for domain in domains: domain_data = client.enrich_ioc("domain", domain, skip) score = 0 if len(domain_data) != 0: score = max(list(map(get_score, domain_data))) dbot_score = Common.DBotScore( indicator=domain, indicator_type=DBotScoreType.DOMAIN, integration_name="SixgillDarkfeedEnrichment", score=score, malicious_description="; ".join({ioc.get("description") for ioc in domain_data}), reliability=demisto.params().get("integrationReliability"), ) domain_standard_context = Common.Domain(domain=domain, dbot_score=dbot_score) readable_output = tableToMarkdown("Domain", domain_data) command_results.append( CommandResults( readable_output=readable_output, outputs_prefix="Sixgill.Domain", outputs_key_field="domain", outputs=domain_data, indicator=domain_standard_context, ) ) return command_results def url_reputation_command(client: SixgillEnrichClient, args) -> list[CommandResults]: urls = argToList(args.get("url")) skip = int(args.get("skip")) if len(urls) == 0: raise ValueError("URL(s) not specified") command_results: list[CommandResults] = [] for url in urls: url_data = client.enrich_ioc("url", url, skip) score = 0 if len(url_data) != 0: score = max(list(map(get_score, url_data))) dbot_score = Common.DBotScore( indicator=url, indicator_type=DBotScoreType.URL, integration_name="SixgillDarkfeedEnrichment", score=score, malicious_description="; ".join({ioc.get("description") for ioc in url_data}), reliability=demisto.params().get("integrationReliability"), ) url_standard_context = Common.URL(url=url, dbot_score=dbot_score) readable_output = tableToMarkdown("URL", url_data) command_results.append( CommandResults( readable_output=readable_output, outputs_prefix="Sixgill.URL", outputs_key_field="url", outputs=url_data, indicator=url_standard_context, ) ) return command_results def file_reputation_command(client: SixgillEnrichClient, args) -> list[CommandResults]: files = argToList(args.get("file")) skip = int(args.get("skip")) if len(files) == 0: raise ValueError("HASH(s) not specified") command_results: list[CommandResults] = [] for file_hash in files: file_data = client.enrich_ioc("hash", file_hash, skip) score = 0 if len(file_data) != 0: score = max(list(map(get_score, file_data))) file_hash_types = get_file_hashes(file_data) dbot_score = Common.DBotScore( indicator=file_hash, indicator_type=DBotScoreType.FILE, integration_name="SixgillDarkfeedEnrichment", score=score, malicious_description="; ".join({ioc.get("description") for ioc in file_data}), reliability=demisto.params().get("integrationReliability"), ) file_standard_context = Common.File( md5=file_hash_types.get("md5"), sha256=file_hash_types.get("sha256"), sha1=file_hash_types.get("sha1"), sha512=file_hash_types.get("sha512"), ssdeep=file_hash_types.get("ssdeep"), dbot_score=dbot_score, ) readable_output = tableToMarkdown("File", file_data) command_results.append( CommandResults( readable_output=readable_output, outputs_prefix="Sixgill.File", outputs_key_field="file", outputs=file_data, indicator=file_standard_context, ) ) return command_results def actor_reputation_command(client: SixgillEnrichClient, args) -> list[CommandResults]: actors = argToList(args.get("actor")) skip = int(args.get("skip")) if len(actors) == 0: raise ValueError("ACTOR(s) not specified") command_results: list[CommandResults] = [] for actor in actors: actor_data = client.enrich_actor(actor, skip) readable_output = tableToMarkdown("Actor", actor_data) command_results.append( CommandResults( readable_output=readable_output, outputs_prefix="Sixgill.Actor", outputs_key_field="actor", outputs=actor_data, ) ) return command_results def postid_reputation_command(client: SixgillEnrichClient, args) -> list[CommandResults]: postids = argToList(args.get("post_id")) skip = int(args.get("skip")) if len(postids) == 0: raise ValueError("POSTID(s) not specified") command_results: list[CommandResults] = [] for post_id in postids: post_id_data = client.enrich_postid(post_id, skip) readable_output = tableToMarkdown("Postid", post_id_data) command_results.append( CommandResults( readable_output=readable_output, outputs_prefix="Sixgill.Postid", outputs_key_field="postid", outputs=post_id_data, ) ) return command_results """ COMMANDS MANAGER / SWITCH PANEL """ def main(): channel_code = "7457a04d972fceb8e0cc2192ba4abc66" if is_xsiam() else "7698e8287dfde53dcd13082be750a85a" verify = not demisto.params().get("insecure", True) session = requests.Session() session.proxies = handle_proxy() client = SixgillEnrichClient( demisto.params()["client_id"], demisto.params()["client_secret"], channel_code, demisto, session, verify ) command = demisto.command() demisto.info(f"Command being called is {command}") try: if command == "ip": return_results(ip_reputation_command(client, demisto.args())) elif command == "test-module": return_results( test_module_command( demisto.params()["client_id"], demisto.params()["client_secret"], channel_code, session, verify ) ) elif command == "domain": return_results(domain_reputation_command(client, demisto.args())) elif command == "url": return_results(url_reputation_command(client, demisto.args())) elif command == "file": return_results(file_reputation_command(client, demisto.args())) elif command == "sixgill-get-actor": return_results(actor_reputation_command(client, demisto.args())) elif command == "sixgill-get-post-id": return_results(postid_reputation_command(client, demisto.args())) except Exception as e: demisto.error(traceback.format_exc()) return_error(f"Error failed to execute {demisto.command()}, error: [{e}]") if __name__ == "__builtin__" or __name__ == "builtins": main()