From 03554a879434acde993ba50fb9469b6a6ca443f9 Mon Sep 17 00:00:00 2001 From: Paulo Garcia Date: Mon, 5 Jun 2023 16:24:02 -0300 Subject: [PATCH 01/23] Implemented Axur ioc's analyzer --- analyzers/Axur/axur_analyzer.json | 19 +++++++++++++++++ analyzers/Axur/axur_analyzer.py | 34 +++++++++++++++++++++++++++++++ analyzers/Axur/requirements.txt | 2 ++ 3 files changed, 55 insertions(+) create mode 100644 analyzers/Axur/axur_analyzer.json create mode 100644 analyzers/Axur/axur_analyzer.py create mode 100644 analyzers/Axur/requirements.txt diff --git a/analyzers/Axur/axur_analyzer.json b/analyzers/Axur/axur_analyzer.json new file mode 100644 index 000000000..e7d1f973c --- /dev/null +++ b/analyzers/Axur/axur_analyzer.json @@ -0,0 +1,19 @@ +{ + "name": "Axur", + "author": "Axur", + "version": "1.0.", + "license": "AGPL-V3", + "description": "Search IPs, domains, hashes or URLs on axur.com", + "dataTypeList": ["domain", "fqdn", "ip", "url", "hash"], + "command": "Axur/axur_analyzer.py", + "baseConfig": "Axur", + "configurationItems": [ + { + "name": "api_key", + "description": "Define the API key", + "type": "string", + "multi": false, + "required": true + } + ] +} \ No newline at end of file diff --git a/analyzers/Axur/axur_analyzer.py b/analyzers/Axur/axur_analyzer.py new file mode 100644 index 000000000..74a1aefc7 --- /dev/null +++ b/analyzers/Axur/axur_analyzer.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 +# encoding: utf-8 + +from cortexutils.analyzer import Analyzer +import requests + + +class AxurAnalyzer(Analyzer): + + def __init__(self): + Analyzer.__init__(self) + self.api_key = self.get_param( + 'config.api_key', None, 'Missing API key' + ) + + def run(self): + if self.data_type not in ['domain', 'fqdn', 'ip', 'url', 'hash']: + self.error('Wrong data type') + + url = f'https://api.axur.com/gateway/1.0/ioc/{self.data_type}/{self.get_data()}' + + try: + self.report(requests.get(url, headers={'api_key': self.api_key}).json()) + except Exception as e: + self.error(e) + + def summary(self, raw): + value = raw.get('Score', 0) + level = ['safe', 'suspicious', 'malicious'][value] + return {'taxonomies': [self.build_taxonomy(level, 'Axur', 'Score', value)]} + + +if __name__ == '__main__': + AxurAnalyzer().run() diff --git a/analyzers/Axur/requirements.txt b/analyzers/Axur/requirements.txt new file mode 100644 index 000000000..4a21dbf63 --- /dev/null +++ b/analyzers/Axur/requirements.txt @@ -0,0 +1,2 @@ +cortexutils +requests \ No newline at end of file From d681c91afd5ea990a86035cd191e60fe2c2da24c Mon Sep 17 00:00:00 2001 From: Paulo Garcia Date: Fri, 9 Jun 2023 12:46:23 -0300 Subject: [PATCH 02/23] Refactored Axur ioc's analyzer and added templates --- analyzers/Axur/axur_analyzer.json | 1 + analyzers/Axur/axur_analyzer.py | 25 +++++++--- thehive-templates/Axur_1.0/long.html | 71 +++++++++++++++++++++++++++ thehive-templates/Axur_1.0/short.html | 3 ++ 4 files changed, 93 insertions(+), 7 deletions(-) create mode 100644 thehive-templates/Axur_1.0/long.html create mode 100644 thehive-templates/Axur_1.0/short.html diff --git a/analyzers/Axur/axur_analyzer.json b/analyzers/Axur/axur_analyzer.json index e7d1f973c..50270a5a6 100644 --- a/analyzers/Axur/axur_analyzer.json +++ b/analyzers/Axur/axur_analyzer.json @@ -3,6 +3,7 @@ "author": "Axur", "version": "1.0.", "license": "AGPL-V3", + "url": "https://github.com/TheHive-Project/Cortex-Analyzers", "description": "Search IPs, domains, hashes or URLs on axur.com", "dataTypeList": ["domain", "fqdn", "ip", "url", "hash"], "command": "Axur/axur_analyzer.py", diff --git a/analyzers/Axur/axur_analyzer.py b/analyzers/Axur/axur_analyzer.py index 74a1aefc7..6b0cbeba9 100644 --- a/analyzers/Axur/axur_analyzer.py +++ b/analyzers/Axur/axur_analyzer.py @@ -17,17 +17,28 @@ def run(self): if self.data_type not in ['domain', 'fqdn', 'ip', 'url', 'hash']: self.error('Wrong data type') - url = f'https://api.axur.com/gateway/1.0/ioc/{self.data_type}/{self.get_data()}' + url = f'https://api.axur.com/gateway/1.0/ioc-search/{self.data_type}/{self.get_data()}' try: - self.report(requests.get(url, headers={'api_key': self.api_key}).json()) - except Exception as e: - self.error(e) + response = requests.get(url, headers={'api_key': self.api_key}) + response.raise_for_status() + self.report(response.json()) + except requests.HTTPError as http_err: + self.error('HTTP error occurred: {}'.format(http_err)) + except Exception as err: + self.error('Error occurred: {}'.format(err)) def summary(self, raw): - value = raw.get('Score', 0) - level = ['safe', 'suspicious', 'malicious'][value] - return {'taxonomies': [self.build_taxonomy(level, 'Axur', 'Score', value)]} + taxonomies = [] + levels = ['info', 'safe', 'suspicious', 'malicious'] + + for data in raw: + level = levels[data.get('score', 0)] + taxonomies.append( + self.build_taxonomy(level, 'Axur', data['source'], data.get('hits', 0)) + ) + + return {'taxonomies': taxonomies} if __name__ == '__main__': diff --git a/thehive-templates/Axur_1.0/long.html b/thehive-templates/Axur_1.0/long.html new file mode 100644 index 000000000..616858389 --- /dev/null +++ b/thehive-templates/Axur_1.0/long.html @@ -0,0 +1,71 @@ +
+
+ Axur IOC Search Results +
+
+
+
+ {{result.source}} +
+
+
+
Source
+
{{result.source || "-"}}
+ +
Hits
+
{{result.hits || "-"}}
+ +
Score
+
{{result.score || "-"}}
+
+ +
+
+ +
+
+
Tags
+
{{context.tags.join(', ') || "-"}}
+ +
Detection
+
{{context.detection || "-"}}
+
+
+ +
+
+
Content
+
{{context.content || "-"}}
+ +
Detection
+
{{context.detection || "-"}}
+
+
+ +
+
+
Risk Level
+
{{context.riskLevel || "-"}}
+ +
Collector Name
+
{{context['collector-name'] || "-"}}
+ +
Detection
+
{{context.detection || "-"}}
+
+
+
+
+
+
+
+ + +
+
+ Error +
+
+ {{content.errorMessage}} +
+
diff --git a/thehive-templates/Axur_1.0/short.html b/thehive-templates/Axur_1.0/short.html new file mode 100644 index 000000000..9fd48f9fa --- /dev/null +++ b/thehive-templates/Axur_1.0/short.html @@ -0,0 +1,3 @@ + + {{t.namespace}}:{{t.predicate}}="{{t.value}}" + \ No newline at end of file From 58f88b979095d27bdf005fcd0d8cc1a5a9cfec21 Mon Sep 17 00:00:00 2001 From: Paulo Garcia Date: Mon, 19 Jun 2023 20:01:41 -0300 Subject: [PATCH 03/23] Improvement Axur ioc's analyzer --- analyzers/Axur/README.md | 18 ++++++++++++++++++ analyzers/Axur/axur_analyzer.py | 10 ++++++---- analyzers/Axur/requirements.txt | 3 ++- 3 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 analyzers/Axur/README.md diff --git a/analyzers/Axur/README.md b/analyzers/Axur/README.md new file mode 100644 index 000000000..76fc6254a --- /dev/null +++ b/analyzers/Axur/README.md @@ -0,0 +1,18 @@ +### Axur Ioc's analyzer + +The Axur IOC Analyzer is a tool for identifying and value potential threats in your data. It uses Axur's services and databases to perform analysis on a variety of data types. + +The Analyzer provides an efficient solution to evaluate potential threats by examining various data types including: + +* _domain_ +* _url_ +* _ip_ +* _fqdn_ +* _hash_ + +With the Axur IOC Analyzer, Axur clients have an easy way to make their data environment safer and more secure. + +#### Requirements +You need a valid Axur API key to use the analyzer. Available exclusively to our Axur clients. + +- Provide your API key as values for the `api_key` header. \ No newline at end of file diff --git a/analyzers/Axur/axur_analyzer.py b/analyzers/Axur/axur_analyzer.py index 6b0cbeba9..f1f4160f5 100644 --- a/analyzers/Axur/axur_analyzer.py +++ b/analyzers/Axur/axur_analyzer.py @@ -2,6 +2,7 @@ # encoding: utf-8 from cortexutils.analyzer import Analyzer +from urllib.parse import quote_plus import requests @@ -10,17 +11,18 @@ class AxurAnalyzer(Analyzer): def __init__(self): Analyzer.__init__(self) self.api_key = self.get_param( - 'config.api_key', None, 'Missing API key' + 'config.api_key', None, 'Missing Axur API key' ) def run(self): if self.data_type not in ['domain', 'fqdn', 'ip', 'url', 'hash']: self.error('Wrong data type') - url = f'https://api.axur.com/gateway/1.0/ioc-search/{self.data_type}/{self.get_data()}' + encoded_data = quote_plus(self.get_data()) + url = f'https://api.axur.com/gateway/1.0/api/ioc-search/search/{self.data_type}/{encoded_data}' try: - response = requests.get(url, headers={'api_key': self.api_key}) + response = requests.get(url, headers={'Authorization': f'Bearer {self.api_key}'}) response.raise_for_status() self.report(response.json()) except requests.HTTPError as http_err: @@ -32,7 +34,7 @@ def summary(self, raw): taxonomies = [] levels = ['info', 'safe', 'suspicious', 'malicious'] - for data in raw: + for data in raw['results']: level = levels[data.get('score', 0)] taxonomies.append( self.build_taxonomy(level, 'Axur', data['source'], data.get('hits', 0)) diff --git a/analyzers/Axur/requirements.txt b/analyzers/Axur/requirements.txt index 4a21dbf63..24c10f722 100644 --- a/analyzers/Axur/requirements.txt +++ b/analyzers/Axur/requirements.txt @@ -1,2 +1,3 @@ cortexutils -requests \ No newline at end of file +requests +urllib \ No newline at end of file From 19ef8347c13819d7bb9a98c657cfba73d952e7d8 Mon Sep 17 00:00:00 2001 From: Paulo Garcia Date: Wed, 21 Jun 2023 19:40:31 -0300 Subject: [PATCH 04/23] Added only results in report --- analyzers/Axur/axur_analyzer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analyzers/Axur/axur_analyzer.py b/analyzers/Axur/axur_analyzer.py index f1f4160f5..1f0786fe5 100644 --- a/analyzers/Axur/axur_analyzer.py +++ b/analyzers/Axur/axur_analyzer.py @@ -24,7 +24,7 @@ def run(self): try: response = requests.get(url, headers={'Authorization': f'Bearer {self.api_key}'}) response.raise_for_status() - self.report(response.json()) + self.report(response.json()["results"]) except requests.HTTPError as http_err: self.error('HTTP error occurred: {}'.format(http_err)) except Exception as err: From fbb7bc62f2dfc69eaea9085719139dbaaca797bf Mon Sep 17 00:00:00 2001 From: Paulo Garcia Date: Fri, 21 Jul 2023 13:28:31 -0300 Subject: [PATCH 05/23] Refactored results in report --- analyzers/Axur/axur_analyzer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analyzers/Axur/axur_analyzer.py b/analyzers/Axur/axur_analyzer.py index 1f0786fe5..f1f4160f5 100644 --- a/analyzers/Axur/axur_analyzer.py +++ b/analyzers/Axur/axur_analyzer.py @@ -24,7 +24,7 @@ def run(self): try: response = requests.get(url, headers={'Authorization': f'Bearer {self.api_key}'}) response.raise_for_status() - self.report(response.json()["results"]) + self.report(response.json()) except requests.HTTPError as http_err: self.error('HTTP error occurred: {}'.format(http_err)) except Exception as err: From 4dc8a711d9702696768905e5b5a192e9436be750 Mon Sep 17 00:00:00 2001 From: brunotoresan-axur Date: Wed, 16 Aug 2023 16:58:03 -0300 Subject: [PATCH 06/23] adding return example in README --- analyzers/Axur/README.md | 88 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 87 insertions(+), 1 deletion(-) diff --git a/analyzers/Axur/README.md b/analyzers/Axur/README.md index 76fc6254a..70a01833d 100644 --- a/analyzers/Axur/README.md +++ b/analyzers/Axur/README.md @@ -15,4 +15,90 @@ With the Axur IOC Analyzer, Axur clients have an easy way to make their data env #### Requirements You need a valid Axur API key to use the analyzer. Available exclusively to our Axur clients. -- Provide your API key as values for the `api_key` header. \ No newline at end of file +- Provide your API key as values for the `api_key` header. + +### Return example + +``` +{ + "success": true, + "summary": { + "taxonomies": [ + { + "level": "suspicious", + "namespace": "Axur", + "predicate": "IOC_FEED", + "value": 2 + }, + { + "level": "suspicious", + "namespace": "Axur", + "predicate": "EXPLORE", + "value": 1 + }, + { + "level": "suspicious", + "namespace": "Axur", + "predicate": "MALICIOUS_URL", + "value": 1 + } + ] + }, + "artifacts": [], + "operations": [], + "full": { + "type": "URL", + "value": "https://sso.ecometrica.com/accounts/login", + "results": [ + { + "source": "IOC_FEED", + "score": 2, + "hits": 2, + "context": [ + { + "tags": [ + "phishing" + ], + "detection": 1683945464000, + "risk": "UNDEFINED", + "platform": "AXUR" + }, + { + "tags": [], + "detection": 1642009957000, + "risk": "MEDIUM", + "platform": "AXUR" + } + ] + }, + { + "source": "EXPLORE", + "score": 2, + "hits": 1, + "context": [ + { + "content": "texto", + "detection": 1687187006704, + "platform": "AXUR" + } + ] + }, + { + "source": "MALICIOUS_URL", + "score": 2, + "hits": 1, + "context": [ + { + "riskLevel": 0.49, + "collectorName": "urlscan", + "detection": 1687187006704, + "ticketStatus": "open", + "platform": "AXUR" + } + ] + } + ], + "searchDate": 1687292305787 + } +} +``` From b18f25df044fb08522a24e9f1833a4c04f68be80 Mon Sep 17 00:00:00 2001 From: Milo Date: Fri, 22 Dec 2023 11:28:48 +0100 Subject: [PATCH 07/23] feat: adds cluster25's cortex analyzer and relative thehive's long template. --- .../C25CortexAnalyzer_investigate.json | 53 +++ analyzers/Cluster25/Dockerfile | 7 + analyzers/Cluster25/README.md | 101 +++++ analyzers/Cluster25/assets/cluster25_logo.png | Bin 0 -> 3697 bytes .../Cluster25/assets/long_report_sample.png | Bin 0 -> 193398 bytes .../Cluster25/assets/short_report_sample.png | Bin 0 -> 29739 bytes analyzers/Cluster25/c25_cortex_analyzer.py | 97 +++++ analyzers/Cluster25/requirements.txt | 2 + thehive-templates/Cluster25_1_0/long.html | 402 ++++++++++++++++++ 9 files changed, 662 insertions(+) create mode 100644 analyzers/Cluster25/C25CortexAnalyzer_investigate.json create mode 100644 analyzers/Cluster25/Dockerfile create mode 100644 analyzers/Cluster25/README.md create mode 100644 analyzers/Cluster25/assets/cluster25_logo.png create mode 100644 analyzers/Cluster25/assets/long_report_sample.png create mode 100644 analyzers/Cluster25/assets/short_report_sample.png create mode 100644 analyzers/Cluster25/c25_cortex_analyzer.py create mode 100644 analyzers/Cluster25/requirements.txt create mode 100644 thehive-templates/Cluster25_1_0/long.html diff --git a/analyzers/Cluster25/C25CortexAnalyzer_investigate.json b/analyzers/Cluster25/C25CortexAnalyzer_investigate.json new file mode 100644 index 000000000..a15327c54 --- /dev/null +++ b/analyzers/Cluster25/C25CortexAnalyzer_investigate.json @@ -0,0 +1,53 @@ + { + "name": "C25CortexAnalyzer_Investigate", + "version": "1.0", + "author": "Cluster25", + "url": "https://github.com/TheHive-Project/Cortex-Analyzers", + "license": "AGPL-V3", + "description": "Use Cluster25's CTI API to investigate an observable.", + "dataTypeList": ["domain", "file", "hash", "ip", "mail", "url"], + "command": "c25-cortex-analyzer/c25_cortex_analyzer.py", + "baseConfig": "c25-cortex-analyzer", + "config": { + "check_tlp": false, + "check_pap": false, + "auto_extract_artifacts": true, + "service": "investigate" + }, + "configurationItems": [ + { + "name": "client_id", + "description": "Cluster25 CTI API credentials", + "type": "string", + "multi": false, + "required": true + }, + { + "name": "client_key", + "description": "Cluster25 CTI API credentials", + "type": "string", + "multi": false, + "required": true + }, + { + "name": "base_url", + "description": "Cluster25 CTI API base url", + "type": "string", + "multi": false, + "required": true + } + ], + "registration_required": true, + "subscription_required": true, + "free_subscription": false, + "service_homepage": "https://www.duskrise.com/cluster25_platform", + "service_logo": {"path":"assets/cluster25_logo.png", "caption": "logo"}, + "screenshots": [ + {"path":"assets/short_report_sample.png", + "caption":"report sample" + }, + { + "path": "assets/long_report_sample.png", + "caption:":"report sample" + }] +} \ No newline at end of file diff --git a/analyzers/Cluster25/Dockerfile b/analyzers/Cluster25/Dockerfile new file mode 100644 index 000000000..0da2f5866 --- /dev/null +++ b/analyzers/Cluster25/Dockerfile @@ -0,0 +1,7 @@ +FROM python:3.11 + +WORKDIR /worker +COPY . c25_analyzer + +RUN pip install --no-cache-dir -r c25_analyzer/requirements.txt +ENTRYPOINT c25_analyzer/c25_cortex_analyzer.py \ No newline at end of file diff --git a/analyzers/Cluster25/README.md b/analyzers/Cluster25/README.md new file mode 100644 index 000000000..41711ad69 --- /dev/null +++ b/analyzers/Cluster25/README.md @@ -0,0 +1,101 @@ +# Cluster25 Cortex Analyzer + +Allows to query Cluster25's CTI API investigation service. +Running the analyzer will return a short report with taxonomies, +as well as a long report and extracted artefacts. + +## Requirements: +* C25 API KEY +* C25 CLIENT ID +* C25 BASE URL + +Raw investigate result query example: +```json +{ + "indicator": "211.56.98.146", + "indicator_type": "ipv4", + "whitelisted": false, + "tags": [], + "score": 70, + "is_known": false, + "actors": [], + "related_indicators": { + "by_file": [], + "by_content": [] + }, + "related_contexts": [], + "created_dt": null, + "modified_dt": null, + "attacker_activities": [], + "targeted_sectors": [], + "targeted_countries": [], + "file_info": null, + "cve_info": null, + "asn_info": null, + "btcaddress_info": null, + "family_info": null, + "stats": { + "harmless": 61, + "malicious": 5, + "suspicious": 0, + "undetected": 23 + }, + "communicating_files": [], + "contacted_ips": [], + "contacted_domains": [], + "contacted_urls": [], + "dropped_files": [], + "passive_dns": { + "resolutions": [ + { + "record_name": "c3kr.simonxu.cc", + "record_value": "211.56.98.146", + "record_type": "A", + "first_seen": "2021-03-26T14:16:15", + "last_seen": "2021-03-26T14:16:55", + "country_name": "South Korea", + "$$hashKey": "object:64" + }, + { + "record_name": "counter.yadro.ru", + "record_value": "211.56.98.146", + "record_type": "A", + "first_seen": "2018-10-19T22:00:00", + "last_seen": "2018-10-19T22:00:00", + "country_name": "South Korea", + "$$hashKey": "object:65" + } + ] + }, + "whois": { + "ip": null, + "created_date": null, + "updated_date": "hostmaster@nic.or.kr", + "expires_date": null, + "registrant": { + "name": "IP Manager", + "organization": "Korea Telecom", + "street1": "Gyeonggi-do Bundang-gu, Seongnam-si Buljeong-ro 90", + "street2": null, + "city": null, + "state": null, + "country": null, + "country_code": null, + "postal_code": "13606", + "raw_text": null, + "unparsable": null + }, + "registrar_name": null, + "name_servers_hostnames": null, + "name_servers_ips": null, + "email_provider": null, + "email_registrant": null, + "status": null + }, + "guessed_types": [], + "intelligence": null, + "first_seen": null, + "last_seen": null, + "dns_resolutions": null +} +``` diff --git a/analyzers/Cluster25/assets/cluster25_logo.png b/analyzers/Cluster25/assets/cluster25_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e201ca3d80edbc27abe96f8d7ff1eca68e53e46c GIT binary patch literal 3697 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 DS)#z8 literal 0 HcmV?d00001 diff --git a/analyzers/Cluster25/assets/long_report_sample.png b/analyzers/Cluster25/assets/long_report_sample.png new file mode 100644 index 0000000000000000000000000000000000000000..ca2783f586ec948894a2c91ea93c2ec099a284dd GIT binary patch literal 193398 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ⅅK9FbgU6#+dmVpm8-E5K<&&$pc^dqbvFAIR&EaH-5_3$ML1df6KpG8p% zq}tzKUj49_?KqU*rW}(`F`sR(IOH8-2!_^FUYU;3XV_BEr2cSG=k*i&Xx*qZVxrDV zZ`bQpKBTxtnyQv5m~C8_XM4tD?73}VX?D!i%yOc9n9(0bd6u0m6TE$`PqyDI(kltu zJ2Z2BxKi;$*yO32-Ro0C@P7}=BZ&A)+{gR+)q|#0Uyf|@@*%%)A@D{T|4Z2q2jw56 z4$4TKNqFf)hQ|zKmHi}xRVZ-c4&O%0DG7NK1KJltAgum{S#lf%@nqkj!wJka+&D&l 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

lu&pP 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 literal 0 HcmV?d00001 diff --git a/analyzers/Cluster25/c25_cortex_analyzer.py b/analyzers/Cluster25/c25_cortex_analyzer.py new file mode 100644 index 000000000..237cf0528 --- /dev/null +++ b/analyzers/Cluster25/c25_cortex_analyzer.py @@ -0,0 +1,97 @@ +#!/usr/bin/env python3 +# encoding: utf-8 +from typing import Optional, List + +import requests +from cortexutils.analyzer import Analyzer + + +class Cluster25Client: + def __init__( + self, + customer_id: Optional[str] = None, + customer_key: Optional[str] = None, + base_url: Optional[str] = None + ): + self.client_id = customer_id + self.client_secret = customer_key + self.base_url = base_url + self.current_token = self._get_cluster25_token() + self.headers = {"Authorization": f"Bearer {self.current_token}"} + + def _get_cluster25_token( + self + ) -> List[dict]: + payload = {"client_id": self.client_id, "client_secret": self.client_secret} + r = requests.post(url=f"{self.base_url}/token", json=payload, headers={"Content-Type": "application/json"}) + if r.status_code != 200: + raise Exception(f"Unable to retrieve the token from C25 platform, status {r.status_code}") + return r.json()["data"]["token"] + + def investigate( + self, + indicator + ) -> dict: + params = {'indicator': indicator.get('value')} + r = requests.get(url=f"{self.base_url}/investigate", params=params, headers=self.headers) + if r.status_code != 200: + return {'error': f"Unable to retrieve investigate result for indicator '{indicator.get('value')}' " + f"from C25 platform, status {r.status_code}"} + return r.json()["data"] + + +class C25CortexAnalyzer(Analyzer): + def __init__( + self + ): + Analyzer.__init__(self) + self.c25_api_key = self.get_param("config.client_key", None, "Missing Cluster25 api key") + self.c25_client_id = self.get_param("config.client_id", None, "Missing Cluster25 client id") + self.c25_base_url = self.get_param("config.base_url", None, "Missing Cluster25 base url") + self.c25_api_client = Cluster25Client(self.c25_client_id, self.c25_api_key, self.c25_base_url) + + def investigate( + self, + indicator: str + ) -> dict: + return self.c25_api_client.investigate({'value': indicator}) + + def summary( + self, + indicator_data: dict + ) -> dict: + taxonomies = [] + namespace = "C25" + level = 'info' + if indicator_data.get('indicator'): + taxonomies.append(self.build_taxonomy(level, namespace, "Indicator", indicator_data.get('indicator'))) + if indicator_data.get('indicator_type'): + taxonomies.append( + self.build_taxonomy(level, namespace, "Indicator Type", indicator_data.get('indicator_type'))) + if indicator_data.get('score'): + if indicator_data.get('score') < 50: + level = 'safe' + elif 50 <= indicator_data.get('score') < 80: + level = 'suspicious' + else: + level = 'malicious' + taxonomies.append(self.build_taxonomy(level, namespace, "Score", indicator_data.get('score'))) + if len(taxonomies) == 0: + taxonomies.append(self.build_taxonomy(level, namespace, 'Threat', 'Not found')) + + return {"taxonomies": taxonomies} + + def run( + self + ): + try: + indicator = self.get_param('data', None, 'Data is missing') + indicator_data = self.investigate(indicator) + if indicator_data: + self.report(indicator_data) + except Exception as e: + self.error(e) + + +if __name__ == '__main__': + C25CortexAnalyzer().run() diff --git a/analyzers/Cluster25/requirements.txt b/analyzers/Cluster25/requirements.txt new file mode 100644 index 000000000..0e5dd6b1b --- /dev/null +++ b/analyzers/Cluster25/requirements.txt @@ -0,0 +1,2 @@ +requests~=2.31.0 +cortexutils~=2.2.0 \ No newline at end of file diff --git a/thehive-templates/Cluster25_1_0/long.html b/thehive-templates/Cluster25_1_0/long.html new file mode 100644 index 000000000..78883bfae --- /dev/null +++ b/thehive-templates/Cluster25_1_0/long.html @@ -0,0 +1,402 @@ +
+
+ General Info +
+
+
Indicator:
+
{{content.indicator}}
+
Indicator Type:
+
{{content.indicator_type}}
+
First Seen:
+
{{content.first_seen}}
+
Last Seen:
+
{{content.last_seen}}
+
Whitelisted:
+
{{content.whitelisted}}
+
Score:
+
{{content.score}}/100
+
Harmless:
+
{{content.stats.harmless}}/100
+
Malicious:
+
{{content.stats.malicious}}/100
+
Suspicious:
+
{{content.stats.suspicious}}/100
+
Undetected:
+
{{content.stats.undetected}}/100
+
Is Known:
+
{{content.is_known}}
+
Actors:
+
{{actor.name}}
+
Tags:
+
{{tag.name}}
+
Related Indicators By File:
+
{{indicator.value}} +
+
Related Indicators By Content:
+
{{indicator.value}} +
+
Related Indicators Contexts:
+
{{contex.title}}
+
Created:
+
{{content.created_dt}}
+
Modified:
+
{{content.modified_dt}}
+
Attacker Activities:
+
{{activity.actorip}}
+
Targeted Sectors:
+
{{sector}}
+
Targeted Countries:
+
{{country}}
+
Guessed Types:
+
{{type}}
+
+
+
+
+ File Info +
+
+
Md5:
+
{{content.file_info.md5}}
+
Sha1:
+
{{content.file_info.sha1}}
+
Sha256:
+
{{content.file_info.md5}}
+
Ssdeep:
+
{{content.file_info.ssdeep}}
+
Type Description:
+
{{content.file_info.type_description}}
+
Names:
+
{{name}} +
+
Size:
+
{{content.file_info.size}}
+
+
+ Cve Info +
+
+
Id:
+
{{content.cve_info.md5}}
+
Published Date:
+
{{content.cve_info.published_date}}
+
Last Modified Date:
+
{{content.cve_info.last_modified_date}}
+
Description:
+
{{content.cve_info.description}}
+
References:
+
{{reference}}
+
+
+ Asn Info +
+
+
Organization:
+
{{content.asn_info.organization}}
+
Name:
+
{{content.asn_info.name}}
+
Registry:
+
{{content.asn_info.registry}}
+
Registered Country:
+
{{content.asn_info.registered_country}}
+
Registered Country Name:
+
{{content.asn_info.registered_country_name}}
+
Registration Date
+
{{content.asn_info.registration_dt}}
+
Registration Last Change
+
{{content.asn_info.registration_dt}}
+
Total Ipv4:
+
{{content.asn_info.total_ipv4}}
+
+
+ Bitcoin Address Info +
+
+
Total Received:
+
{{content.btcaddress_info.total_received}}
+
Total Sent:
+
{{content.btcaddress_info.total_sent}}
+
Balance:
+
{{content.btcaddress_info.balance}}
+
Transaction Number:
+
{{content.btcaddress_info.transation_number}}
+
Report Count:
+
{{content.btcaddress_info.report_count}}
+
Report First Seen
+
{{content.btcaddress_info.report_first_seen}}
+
Report Last Seen
+
{{content.btcaddress_info.report_last_seen}}
+
Recent:
+
Abuse type: {{recent.abuse_type}} Description: {{recent.description}} +
+
+
+ Family Info +
+
+
Family Name:
+
{{content.family_info.family_name}}
+
Hits:
+
On {{hit.seen_dt}} there were: {{hit.hits}} hits +
+
+
+ Communicating Files +
+
+ +
Communicating File {{$index}}
+
Md5:
{{file.md5}}
+
Sha1:
{{file.sha1}}
+
Sha256:
{{file.md5}}
+
Ssdeep:
{{file.ssdeep}}
+
Type Description:
{{file.type_description}}
+
Names:
{{name}}
+
Size:
{{file.size}}
+
+
+
+ Contacted Ips +
+
+ +
Contacted Ip {{$index}}
+
Asn:
{{ip.asn}}
+
As Owner:
{{ip.as_owner}}
+
country:
{{ip.country}}
+
+
+
+ Contacted Domains +
+
+ +
Contacted Domain {{$index}}
+
Registrar:
{{domain.registrar}}
+
+
+ +
+ Contacted Urls +
+
+ +
Contacted Url {{$index}}
+
Value:
{{url.value}}
+
+
+
+ Dropped Files +
+
+ +
Communicating File {{$index}}
+
Md5:
{{file.md5}}
+
Sha1:
{{file.sha1}}
+
Sha256:
{{file.md5}}
+
Ssdeep:
{{file.ssdeep}}
+
Type Description:
{{file.type_description}}
+
Names:
{{name}}
+
Size:
{{file.size}}
+
+
+
+ Passive Dns +
+
+ +
Resolution {{$index}}
+
Record Name:
{{res.record_name}}
+
Record Value:
{{res.record_value}}
+
Record Type:
{{res.record_type}}
+
First Seen:
{{res.first_seen}}
+
Last Seen:
{{res.last_seen}}
+
Country Name:
{{res.country_name}}
+
+
+
+ Who Is +
+
+
Ip:
+
{{content.whois.ip}}
+
Created Date:
+
{{content.whois.created_date}}
+
Updated Date:
+
{{content.whois.updated_date}}
+
Expires Date:
+
{{content.whois.expires_date}}
+
Registrant Name:
+
{{content.whois.registrant.name}}
+
Registrant Organization:
+
{{content.whois.registrant.organization}}
+
Registrant Street1:
+
{{content.whois.registrant.street1}}
+
Registrant Street2:
+
{{content.whois.registrant.street2}}
+
Registrant City:
+
{{content.whois.registrant.city}}
+
Registrant State:
+
{{content.whois.registrant.state}}
+
Registrant Country:
+
{{content.whois.registrant.country}}
+
Registrant Postal Code:
+
{{content.whois.registrant.postal_code}}
+
Registrant Raw Text:
+
{{content.whois.registrant.raw_text}}
+
Registrar Name:
+
{{content.whois.registrar_name}}
+
Name Servers Hostnames:
+
{{hostname}}
+
Name Servers Ips:
+
{{ip}}
+
Email Provider:
+
{{content.whois.email_provider}}
+
Email Registrant:
+
{{content.whois.email_registrant}}
+
Status:
+
{{content.whois.status}}
+ +
+
+ Botnets +
+
+
Total:
+
{{content.intelligence.botnets.total}}
+
Events:
+ +
Event {{$index}}
+
Name:
{{event.name}}
+
Country:
{{event.country}}
+
Date Collect:
{{event.date_collect}}
+
Created:
{{event.created_dt}}
+
Domain:
{{event.domain}}
+
GeoIp:
{{event.geoip.ip}}
+
Ip:
{{event.ip}}
+
Isp:
{{event.isp}}
+
Source:
{{event.source}}
+
System:
{{event.system}}
+
Password:
{{event.password}}
+
Prefix:
{{event.prefix}}
+
Solved:
{{event.solved}}
+
Username:
{{event.username}}
+
Country Name:
{{res.country_name}}
+
+
+
+ Darknet Bots +
+
+ +
Bot {{$index}}
+
Bot Name:
{{bot.bot_name}}
+
Bot Country:
{{bot.bot_country}}
+
Bot Installed:
{{bot.bot_installed}}
+
Bot OS:
{{bot.bot_os}}
+
Forum Name:
{{bot.forum_name}}
+
Resource Name:
{{thread.resource_name}}
+
Created:
{{bot.created_dt}}
+
Keyword
: +
{{bot.keyword}}
+
Solved:
{{thread.solved}}
+
Type:
{{thread.type}}
+
Url:
{{thread.url}}
+
+
+
+ Darknet Threads +
+
+ +
Thread {{$index}}
+
Name:
{{thread.name}}
+
Author:
{{thread.author}}
+
Created:
{{thread.created_dt}}
+
Forum Name:
{{thread.forum_name}}
+
Keyword:
{{thread.keyword}}
+
Post Content:
{{thread.post_content}}
+
Resource Name:
{{thread.resource_name}}
+
Solved:
{{thread.solved}}
+
Type:
{{thread.type}}
+
Url:
{{thread.url}}
+
+
+
+ Darknet Sellers +
+
+ +
Seller {{$index}}
+
Account Country:
{{seller.account_country}}
+
Account Description:
{{seller.account_description}}
+
Account Resource:
{{seller.account_resource}}
+
Account Seller:
{{seller.account_seller}}
+
Created
{{seller.created_dt}}
+
Forum Name:
{{seller.forum_name}}
+
Keyword:
{{seller.keyword}}
+
Resource Name:
{{seller.resource_name}}
+
Solved:
{{thread.solved}}
+
Type:
{{thread.type}}
+
+
+
+ Credentials +
+
+ +
Total:
+
{{content.intelligence.botnets.total}}
+
Events:
+ +
Credential {{$index}}
+
Url:
{{credential.url}}
+
Fqdn:
{{credential.fqdn}}
+
Source:
{{credential.source}}
+
Username:
{{credential.username}}
+
Password
: +
{{credential.password}}
+
Dumpdate:
{{credential.dumpdate}}
+
Created
{{credential.created_dt}}
+
Keyword:
{{credential.keyword}}
+
File Path:
{{credential.file_path}}
+
Ip
{{credential.ip}}
+
Solved
{{credential.solved}}
+
+
+
+ Dns Resolutions +
+
+ +
Resolution {{$index}}
+
Domain:
{{res.domain}}
+
Country Code:
{{res.country_code}}
+
QType:
{{res.qtype}}
+
Timestamp:
{{res.timestamp}}
+
+
+ +
\ No newline at end of file From fc0fef2785f2958a3d7d8980a62c89dd39aa349d Mon Sep 17 00:00:00 2001 From: "Fabien B." <15647296+nusantara-self@users.noreply.github.com> Date: Wed, 23 Oct 2024 02:39:59 +0900 Subject: [PATCH 08/23] Update axur_analyzer.json - Fix version number & registration requirements --- analyzers/Axur/axur_analyzer.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/analyzers/Axur/axur_analyzer.json b/analyzers/Axur/axur_analyzer.json index 50270a5a6..b8da62c08 100644 --- a/analyzers/Axur/axur_analyzer.json +++ b/analyzers/Axur/axur_analyzer.json @@ -1,7 +1,7 @@ { "name": "Axur", "author": "Axur", - "version": "1.0.", + "version": "1.0", "license": "AGPL-V3", "url": "https://github.com/TheHive-Project/Cortex-Analyzers", "description": "Search IPs, domains, hashes or URLs on axur.com", @@ -16,5 +16,9 @@ "multi": false, "required": true } - ] -} \ No newline at end of file + ], + "registration_required": true, + "subscription_required": true, + "free_subscription": false, + "service_homepage": "https://www.axur.com" +} From 227560168e7a8dc64c87c8e5c784524868cefcca Mon Sep 17 00:00:00 2001 From: Fabien Bloume <15647296+nusantara-self@users.noreply.github.com> Date: Wed, 18 Dec 2024 23:46:43 +0100 Subject: [PATCH 09/23] Update C25CortexAnalyzer_investigate.json --- analyzers/Cluster25/C25CortexAnalyzer_investigate.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/analyzers/Cluster25/C25CortexAnalyzer_investigate.json b/analyzers/Cluster25/C25CortexAnalyzer_investigate.json index a15327c54..98735d32f 100644 --- a/analyzers/Cluster25/C25CortexAnalyzer_investigate.json +++ b/analyzers/Cluster25/C25CortexAnalyzer_investigate.json @@ -40,7 +40,7 @@ "registration_required": true, "subscription_required": true, "free_subscription": false, - "service_homepage": "https://www.duskrise.com/cluster25_platform", + "service_homepage": "https://www.duskrise.com/the-c25-intelligence/", "service_logo": {"path":"assets/cluster25_logo.png", "caption": "logo"}, "screenshots": [ {"path":"assets/short_report_sample.png", @@ -50,4 +50,4 @@ "path": "assets/long_report_sample.png", "caption:":"report sample" }] -} \ No newline at end of file +} From 0f99e9c88e7756430521f69656b24d311cc26022 Mon Sep 17 00:00:00 2001 From: Fabien Bloume <15647296+nusantara-self@users.noreply.github.com> Date: Wed, 18 Dec 2024 23:55:37 +0100 Subject: [PATCH 10/23] Fix folder name --- thehive-templates/{Axur_1.0 => Axur_1_0}/long.html | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename thehive-templates/{Axur_1.0 => Axur_1_0}/long.html (100%) diff --git a/thehive-templates/Axur_1.0/long.html b/thehive-templates/Axur_1_0/long.html similarity index 100% rename from thehive-templates/Axur_1.0/long.html rename to thehive-templates/Axur_1_0/long.html From 183986dc2d9edd0bfa28b6d6e2d2201156c53b2b Mon Sep 17 00:00:00 2001 From: Fabien Bloume <15647296+nusantara-self@users.noreply.github.com> Date: Wed, 18 Dec 2024 23:56:11 +0100 Subject: [PATCH 11/23] Fix folder name --- thehive-templates/{Axur_1.0 => Axur_1_0}/short.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename thehive-templates/{Axur_1.0 => Axur_1_0}/short.html (96%) diff --git a/thehive-templates/Axur_1.0/short.html b/thehive-templates/Axur_1_0/short.html similarity index 96% rename from thehive-templates/Axur_1.0/short.html rename to thehive-templates/Axur_1_0/short.html index 9fd48f9fa..5fc0dabfb 100644 --- a/thehive-templates/Axur_1.0/short.html +++ b/thehive-templates/Axur_1_0/short.html @@ -1,3 +1,3 @@ {{t.namespace}}:{{t.predicate}}="{{t.value}}" - \ No newline at end of file + From c4f38e8183fb702345949c399128001e08b60e43 Mon Sep 17 00:00:00 2001 From: Fabien Bloume <15647296+nusantara-self@users.noreply.github.com> Date: Thu, 19 Dec 2024 14:42:16 +0900 Subject: [PATCH 12/23] Update requirements.txt --- analyzers/Axur/requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/analyzers/Axur/requirements.txt b/analyzers/Axur/requirements.txt index 24c10f722..6aabc3cfa 100644 --- a/analyzers/Axur/requirements.txt +++ b/analyzers/Axur/requirements.txt @@ -1,3 +1,2 @@ cortexutils requests -urllib \ No newline at end of file From d0c4042c40c0711a62119b6c4d5c7520f98d315c Mon Sep 17 00:00:00 2001 From: Fabien Bloume <15647296+nusantara-self@users.noreply.github.com> Date: Mon, 23 Dec 2024 17:47:07 +0100 Subject: [PATCH 13/23] Implement TheHive custom user-agent --- .../CrowdstrikeFalcon_GetDeviceVulnerabilities.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_GetDeviceVulnerabilities.py b/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_GetDeviceVulnerabilities.py index 9c4325a36..bffe8c154 100755 --- a/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_GetDeviceVulnerabilities.py +++ b/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_GetDeviceVulnerabilities.py @@ -19,8 +19,12 @@ def run(self): Analyzer.run(self) if self.data_type == 'hostname': try: + # Define the custom header + extra_headers = { + "User-Agent": "strangebee-thehive/1.0" + } auth = OAuth2(client_id=self.client_id, client_secret=self.client_secret) - hosts = Hosts(auth_object=auth) + hosts = Hosts(auth_object=auth, ext_headers=extra_headers) hostname = self.get_data() # Search for the device ID using the hostname @@ -35,7 +39,7 @@ def run(self): if device_ids: device_id = device_ids[0] # Get detailed asset information using the device ID - spotlight = SpotlightVulnerabilities(auth_object=auth) + spotlight = SpotlightVulnerabilities(auth_object=auth, ext_headers=extra_headers) host_vulns = spotlight.query_vulnerabilities_combined(parameters={"filter": f"aid:'{device_id}'+status:!'closed'"}) host_vulns = host_vulns["body"]["resources"] #print(host_vulns) From 5aa7a6c89550d6c896934822348a436ad46e2d11 Mon Sep 17 00:00:00 2001 From: Fabien Bloume <15647296+nusantara-self@users.noreply.github.com> Date: Tue, 24 Dec 2024 00:21:12 +0100 Subject: [PATCH 14/23] Implement TheHive custom user-agent --- analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_Sandbox.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_Sandbox.py b/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_Sandbox.py index a76c8f9b2..54412b012 100755 --- a/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_Sandbox.py +++ b/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_Sandbox.py @@ -49,8 +49,12 @@ def run(self): with open(filepath, "rb") as sample: auth = OAuth2(client_id=self.client_id, client_secret=self.client_secret) - samples = SampleUploads(auth_object=auth) - sandbox = FalconXSandbox(auth_object=auth) + # Define the custom header + extra_headers = { + "User-Agent": "strangebee-thehive/1.0" + } + samples = SampleUploads(auth_object=auth, ext_headers=extra_headers) + sandbox = FalconXSandbox(auth_object=auth, ext_headers=extra_headers) response = samples.upload_sample(file_data=sample.read(), file_name=filename, comment=comment, From fa3cac20443484940a542eee19ff676882594fea Mon Sep 17 00:00:00 2001 From: Fabien Bloume <15647296+nusantara-self@users.noreply.github.com> Date: Tue, 24 Dec 2024 00:22:21 +0100 Subject: [PATCH 15/23] Implement TheHive custom user-agent --- .../CrowdstrikeFalcon/CrowdstrikeFalcon_getDeviceAlerts.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_getDeviceAlerts.py b/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_getDeviceAlerts.py index cbaf8b7f6..219008f1d 100755 --- a/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_getDeviceAlerts.py +++ b/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_getDeviceAlerts.py @@ -18,7 +18,11 @@ def run(self): if self.data_type == 'hostname': try: auth = OAuth2(client_id=self.client_id, client_secret=self.client_secret) - alerts = Alerts(auth_object=auth) + # Define the custom header + extra_headers = { + "User-Agent": "strangebee-thehive/1.0" + } + alerts = Alerts(auth_object=auth, ext_headers=extra_headers) hostname = self.get_data() message = "No alerts found." filtered_alert_list = [] From d8a8b631eb0c9056ce062892f1088d77ab22ab9a Mon Sep 17 00:00:00 2001 From: Fabien Bloume <15647296+nusantara-self@users.noreply.github.com> Date: Tue, 24 Dec 2024 00:23:08 +0100 Subject: [PATCH 16/23] Implement TheHive custom user-agent --- .../CrowdstrikeFalcon/CrowdstrikeFalcon_getDeviceDetails.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_getDeviceDetails.py b/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_getDeviceDetails.py index 322dd73de..f18c63875 100755 --- a/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_getDeviceDetails.py +++ b/analyzers/CrowdstrikeFalcon/CrowdstrikeFalcon_getDeviceDetails.py @@ -17,7 +17,11 @@ def run(self): if self.data_type == 'hostname': try: auth = OAuth2(client_id=self.client_id, client_secret=self.client_secret) - hosts = Hosts(auth_object=auth) + # Define the custom header + extra_headers = { + "User-Agent": "strangebee-thehive/1.0" + } + hosts = Hosts(auth_object=auth, ext_headers=extra_headers) hostname = self.get_data() # Search for the device ID using the hostname From d9d0c8026fd20e262983fbe3c409eb1b8657f06c Mon Sep 17 00:00:00 2001 From: Fabien Bloume <15647296+nusantara-self@users.noreply.github.com> Date: Tue, 24 Dec 2024 00:31:11 +0100 Subject: [PATCH 17/23] Implement TheHive custom user-agent --- .../CrowdstrikeFalcon/CrowdstrikeFalconSync.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/responders/CrowdstrikeFalcon/CrowdstrikeFalconSync.py b/responders/CrowdstrikeFalcon/CrowdstrikeFalconSync.py index 6dcc2cea2..83e5d111b 100755 --- a/responders/CrowdstrikeFalcon/CrowdstrikeFalconSync.py +++ b/responders/CrowdstrikeFalcon/CrowdstrikeFalconSync.py @@ -11,11 +11,13 @@ def __init__(self): self.service = self.get_param("config.service", None) self.custom_field_name_alert_id = self.get_param("config.custom_field_name_alert_id") self.custom_field_name_incident_id = self.get_param("config.custom_field_name_incident_id") - self.alert_client = Alerts(client_id=self.client_id, client_secret=self.client_secret) - self.incident_client = Incidents(client_id=self.client_id, client_secret=self.client_secret) def run(self): if self.service == "sync": + # Define the custom headers + extra_headers = { + "User-Agent": "strangebee-thehive/1.0" + } #data = self.get_param("data", None, "Can't get case ID") current_stage = self.get_param("data.stage", None, "Can't get case or alert stage") detection_id = self.get_param(f"data.customFieldValues.{self.custom_field_name_alert_id}", None) @@ -48,6 +50,7 @@ def run(self): # Update the CrowdStrike alert status if detection_id: + alert_client = Alerts(client_id=self.client_id, client_secret=self.client_secret, ext_headers=extra_headers) # Determine the corresponding CrowdStrike alert status cs_status_alert = status_mapping_alert[current_stage] if isinstance(detection_id,str): @@ -62,11 +65,12 @@ def run(self): } ] } - alert_response = self.alert_client.update_alerts_v3(body=alert_body) + alert_response = alert_client.update_alerts_v3(body=alert_body) alert_status_code = alert_response.get('status_code', None) if incident_id: + incident_client = Incidents(client_id=self.client_id, client_secret=self.client_secret, ext_headers=extra_headers) # Determine the corresponding CrowdStrike incident status cs_status_incident = status_mapping_incident[current_stage] if isinstance(incident_id,str): @@ -82,7 +86,7 @@ def run(self): ] } - incident_response = self.incident_client.perform_incident_action(body=incident_body) + incident_response = incident_client.perform_incident_action(body=incident_body) incident_status_code = incident_response.get('status_code', None) @@ -110,4 +114,4 @@ def run(self): self.report({"message": final_message}) if __name__ == '__main__': - CrowdstrikeFalconSync().run() \ No newline at end of file + CrowdstrikeFalconSync().run() From 6b40e15629f4b3232d77a7a61ab15d469b18c134 Mon Sep 17 00:00:00 2001 From: Fabien Bloume <15647296+nusantara-self@users.noreply.github.com> Date: Tue, 24 Dec 2024 00:34:52 +0100 Subject: [PATCH 18/23] Implement TheHive custom user-agent --- .../CrowdstrikeFalcon/CrowdstrikeFalconIOC.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/responders/CrowdstrikeFalcon/CrowdstrikeFalconIOC.py b/responders/CrowdstrikeFalcon/CrowdstrikeFalconIOC.py index 0566fbe57..174a978da 100755 --- a/responders/CrowdstrikeFalcon/CrowdstrikeFalconIOC.py +++ b/responders/CrowdstrikeFalcon/CrowdstrikeFalconIOC.py @@ -78,8 +78,12 @@ def run(self): case_id = self.get_param("data.case.id", None, "Can't get case ID") description = f"Pushed from TheHive - {case_title} - {case_id}" + # Define the custom headers + extra_headers = { + "User-Agent": "strangebee-thehive/1.0" + } # Create the IOC service object - ioc = IOC(client_id=self.client_id, client_secret=self.client_secret) + ioc = IOC(client_id=self.client_id, client_secret=self.client_secret, ext_headers=extra_headers) # Determine if the IOC applies globally or to specific host groups ioc_kwargs = { @@ -117,7 +121,13 @@ def run(self): filter = f"_all:~'{ioc_value}'" - ioc = IOC(client_id=self.client_id, client_secret=self.client_secret) + + # Define the custom headers + extra_headers = { + "User-Agent": "strangebee-thehive/1.0" + } + # Create the IOC service object + ioc = IOC(client_id=self.client_id, client_secret=self.client_secret, ext_headers=extra_headers) # Search for the IOC by value response = ioc.indicator_search(filter=filter,offset=0, limit=200) @@ -143,4 +153,4 @@ def run(self): if __name__ == '__main__': - CrowdstrikeFalconIOC().run() \ No newline at end of file + CrowdstrikeFalconIOC().run() From b8f8fe6ec82064b05cba23050d2169825f691020 Mon Sep 17 00:00:00 2001 From: Fabien Bloume <15647296+nusantara-self@users.noreply.github.com> Date: Tue, 24 Dec 2024 00:37:00 +0100 Subject: [PATCH 19/23] Implement TheHive custom user-agent --- responders/CrowdstrikeFalcon/CrowdstrikeFalconHosts.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/responders/CrowdstrikeFalcon/CrowdstrikeFalconHosts.py b/responders/CrowdstrikeFalcon/CrowdstrikeFalconHosts.py index cf0a6b4ae..9e751ca37 100755 --- a/responders/CrowdstrikeFalcon/CrowdstrikeFalconHosts.py +++ b/responders/CrowdstrikeFalcon/CrowdstrikeFalconHosts.py @@ -14,8 +14,12 @@ def run(self): Responder.run(self) hostname = self.get_param("data.data", None) #self.report({'message': f"Host {device_name}"}) + # Define the custom headers + extra_headers = { + "User-Agent": "strangebee-thehive/1.0" + } auth = OAuth2(client_id=self.client_id, client_secret=self.client_secret) - hosts = Hosts(auth_object=auth) + hosts = Hosts(auth_object=auth, ext_headers=extra_headers) # Search for the device ID using the hostname if self.service == "unhide_host": @@ -44,4 +48,4 @@ def operations(self, raw): return operations_list if __name__ == '__main__': - CrowdstrikeFalconHosts().run() \ No newline at end of file + CrowdstrikeFalconHosts().run() From 72fb095b9705bc88da15441ca531b1e47fa83aad Mon Sep 17 00:00:00 2001 From: nusantara-self <15647296+nusantara-self@users.noreply.github.com> Date: Tue, 24 Dec 2024 16:39:16 +0100 Subject: [PATCH 20/23] Add ValidateObservable analyzer --- .../ValidateObservable.json | 18 + .../ValidateObservable/ValidateObservable.py | 384 ++++++++++++++++++ analyzers/ValidateObservable/requirements.txt | 3 + 3 files changed, 405 insertions(+) create mode 100644 analyzers/ValidateObservable/ValidateObservable.json create mode 100755 analyzers/ValidateObservable/ValidateObservable.py create mode 100644 analyzers/ValidateObservable/requirements.txt diff --git a/analyzers/ValidateObservable/ValidateObservable.json b/analyzers/ValidateObservable/ValidateObservable.json new file mode 100644 index 000000000..c4ef5a08e --- /dev/null +++ b/analyzers/ValidateObservable/ValidateObservable.json @@ -0,0 +1,18 @@ +{ + "name": "ValidateObservable", + "version": "1.0", + "author": "nusantara-self, StrangeBee", + "url": "https://github.com/TheHive-Project/Cortex-Analyzers", + "license": "AGPL-V3", + "description": "Use regexes and libraries to indicate if observable is valid", + "dataTypeList": ["ip", "domain", "url", "fqdn", "mail", "hash", "filename", "uri_path", "user-agent"], + "baseConfig": "ValidateObservable", + "command": "ValidateObservable/ValidateObservable.py", + "config": { + "service": "validateObservable" + }, + "configurationItems": [], + "registration_required": false, + "subscription_required": false, + "free_subscription": false +} diff --git a/analyzers/ValidateObservable/ValidateObservable.py b/analyzers/ValidateObservable/ValidateObservable.py new file mode 100755 index 000000000..929c5ae3d --- /dev/null +++ b/analyzers/ValidateObservable/ValidateObservable.py @@ -0,0 +1,384 @@ +#!/usr/bin/env python3 +# encoding: utf-8 + +from cortexutils.analyzer import Analyzer +import re +import ipaddress +from validators import url as validate_url_lib +from urllib.parse import urlparse +import idna + +class ValidateObservable(Analyzer): + def __init__(self): + Analyzer.__init__(self) + + def run(self): + # Validate based on data type + if self.data_type == 'ip': + result = self.validate_ip(self.get_data()) + elif self.data_type == 'domain': + result = self.validate_domain(self.get_data()) + elif self.data_type == 'url': + result = self.validate_url(self.get_data()) + elif self.data_type == 'fqdn': + result = self.validate_fqdn(self.get_data()) + elif self.data_type == 'mail': + result = self.validate_email(self.get_data()) + elif self.data_type == 'hash': + result = self.validate_hash(self.get_data()) + elif self.data_type == 'filename': + result = self.validate_filename(self.get_data()) + elif self.data_type == 'uri_path': + result = self.validate_uri_path(self.get_data()) + elif self.data_type == 'user-agent': + result = self.validate_user_agent(self.get_data()) + else: + self.error(f"Unsupported data type: {self.data_type}") + + self.report(result) + + def contains_bidi_override(self, value): + bidi_override_chars = ["\u202E", "\u202D", "\u200E", "\u200F", "\u2066", "\u2067"] + for char in bidi_override_chars: + if char in value: + return f"Contains Unicode bidirectional override character U+{ord(char):04X}" + return None + + def validate_ip(self, ip): + try: + + if "/" in ip: # CIDR range + ipaddress.ip_network(ip, strict=False) + return { + "status": "valid", + "type": "IP range", + "value": ip + } + else: # Single IP + ip_obj = ipaddress.ip_address(ip) + if ip_obj.is_loopback: + return { + "status": "valid", + "type": "IP address", + "value": ip, + "note": "Loopback IP address" + } + elif ip_obj.is_private: + return { + "status": "valid", + "type": "IP address", + "value": ip, + "note": "Private IP address" + } + elif ip_obj.is_reserved: + return { + "status": "valid", + "type": "IP address", + "value": ip, + "note": "Reserved IP address" + } + else: + return { + "status": "valid", + "type": "IP address", + "value": ip + } + except ValueError: + return { + "status": "invalid", + "type": "IP address", + "value": ip + } + + def validate_domain(self, domain): + try: + # Convert non-ASCII domains to Punycode + punycode_domain = idna.encode(domain).decode() + + # Check for Punycode (IDN) and unusual characters + if domain.startswith("xn--"): + return { + "status": "suspicious", + "type": "Domain", + "value": domain, + "reason": "Domain uses Punycode, which may indicate an internationalized domain name (IDN)" + } + + # Validate the domain structure + domain_regex = r'^(?!-)([A-Za-z0-9-]{1,63}(? 255: + return { + "status": "invalid", + "type": "Domain", + "value": domain, + "reason": "Exceeds maximum length of 255 characters" + } + if re.match(domain_regex, punycode_domain): + if re.search(r"[^a-zA-Z0-9.-]", domain): + return { + "status": "suspicious", + "type": "Domain", + "value": domain, + "reason": "Domain is valid but contains IDN or unusual characters" + } + return { + "status": "valid", + "type": "Domain", + "value": domain + } + else: + return { + "status": "invalid", + "type": "Domain", + "value": domain + } + except idna.IDNAError: + return { + "status": "invalid", + "type": "Domain", + "value": domain, + "reason": "Invalid internationalized domain name" + } + + + + def validate_url(self, url): + bidi_check = self.contains_bidi_override(url) + if bidi_check: + return { + "status": "suspicious", + "type": "URL", + "value": url, + "reason": bidi_check + } + + parsed = urlparse(url) + if not parsed.scheme and not parsed.netloc: + # Validate as a domain if scheme and netloc are missing + return self.validate_domain(url) + + if all([parsed.scheme, parsed.netloc]): + if parsed.netloc.startswith("xn--"): + return { + "status": "suspicious", + "type": "URL", + "value": url, + "reason": "URL contains a Punycode domain, which may indicate an internationalized domain name (IDN)" + } + + if re.search(r"[^a-zA-Z0-9:/?&=._-]", url): + return { + "status": "suspicious", + "type": "URL", + "value": url, + "reason": "Contains unusual characters" + } + return { + "status": "valid", + "type": "URL", + "value": url + } + return { + "status": "invalid", + "type": "URL", + "value": url, + "reason": "Malformed or missing scheme/netloc" + } + + def validate_fqdn(self, fqdn): + fqdn_regex = ( + r'^(?!-)([A-Za-z0-9-]{1,63}(? 255: + return { + "status": "invalid", + "type": "FQDN", + "value": fqdn, + "reason": "Exceeds maximum length of 255 characters" + } + if fqdn.startswith("xn--"): + return { + "status": "suspicious", + "type": "FQDN", + "value": fqdn, + "reason": "FQDN uses Punycode, which may indicate an internationalized domain name (IDN)" + } + if re.match(fqdn_regex, fqdn): + if re.search(r"[^a-zA-Z0-9.-]", fqdn): + return { + "status": "suspicious", + "type": "FQDN", + "value": fqdn, + "reason": "Contains unusual characters" + } + return { + "status": "valid", + "type": "FQDN", + "value": fqdn + } + else: + return { + "status": "invalid", + "type": "FQDN", + "value": fqdn + } + + def validate_email(self, email): + bidi_check = self.contains_bidi_override(email) + if bidi_check: + return { + "status": "suspicious", + "type": "Email", + "value": email, + "reason": bidi_check + } + + email_regex = ( + r'^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$' + ) + if len(email) > 254: + return { + "status": "invalid", + "type": "Email", + "value": email, + "reason": "Exceeds maximum length of 254 characters" + } + if re.match(email_regex, email): + if re.search(r"[^a-zA-Z0-9@._%+-]", email): + return { + "status": "suspicious", + "type": "Email", + "value": email, + "reason": "Contains unusual characters" + } + return { + "status": "valid", + "type": "Email", + "value": email + } + else: + return { + "status": "invalid", + "type": "Email", + "value": email + } + + def validate_hash(self, hash_value): + hash_regex = { + "MD5": r"^[a-fA-F0-9]{32}$", + "SHA1": r"^[a-fA-F0-9]{40}$", + "SHA256": r"^[a-fA-F0-9]{64}$", + "SHA512": r"^[a-fA-F0-9]{128}$" + } + for hash_type, regex in hash_regex.items(): + if re.match(regex, hash_value): + return { + "status": "valid", + "type": f"{hash_type} Hash", + "value": hash_value + } + return { + "status": "invalid", + "type": "Hash", + "value": hash_value, + "reason": "Does not match known hash formats (supported types: MD5, SHA1, SHA256, SHA512)" + } + + def validate_filename(self, filename): + bidi_check = self.contains_bidi_override(filename) + if bidi_check: + return { + "status": "suspicious", + "type": "Filename", + "value": filename, + "reason": bidi_check + } + + invalid_chars = r"[<>:\"/\\|?*]" + if len(filename) > 255: + return { + "status": "invalid", + "type": "Filename", + "value": filename, + "reason": "Exceeds maximum length of 255 characters" + } + if re.search(invalid_chars, filename): + return { + "status": "invalid", + "type": "Filename", + "value": filename, + "reason": "Contains invalid characters" + } + if re.search(r"\.\w{2,4}(\.\w{2,4})", filename): + return { + "status": "suspicious", + "type": "Filename", + "value": filename, + "reason": "Contains multiple extensions that may confuse users" + } + return { + "status": "valid", + "type": "Filename", + "value": filename + } + + + def validate_uri_path(self, uri_path): + parsed = urlparse(uri_path) + if parsed.path and parsed.path.startswith("/"): + return { + "status": "valid", + "type": "URI Path", + "value": uri_path + } + return { + "status": "invalid", + "type": "URI Path", + "value": uri_path, + "reason": "Does not start with '/' or is malformed" + } + + def validate_user_agent(self, user_agent): + if len(user_agent) > 512: + return { + "status": "invalid", + "type": "User-Agent", + "value": user_agent, + "reason": "Exceeds maximum length of 512 characters" + } + if re.search(r"[\x00-\x1F\x7F]", user_agent): + return { + "status": "invalid", + "type": "User-Agent", + "value": user_agent, + "reason": "Contains control characters" + } + return { + "status": "valid", + "type": "User-Agent", + "value": user_agent + } + + def summary(self, raw): + taxonomies = [] + namespace = "ValidateObs" + predicate = self.data_type + + # Determine level based on status + status = raw.get("status") + if status == "valid": + level = "info" + elif status == "suspicious": + level = "suspicious" + else: + level = "suspicious" + + # Build taxonomy based on validation result + taxonomies.append( + self.build_taxonomy( + level, namespace, predicate, status) + ) + return {"taxonomies": taxonomies} + +if __name__ == "__main__": + ValidateObservable().run() diff --git a/analyzers/ValidateObservable/requirements.txt b/analyzers/ValidateObservable/requirements.txt new file mode 100644 index 000000000..dd8e4afa9 --- /dev/null +++ b/analyzers/ValidateObservable/requirements.txt @@ -0,0 +1,3 @@ +cortexutils +validators +idna \ No newline at end of file From 7c19108edac38c16e3c128ba97e950b4d8b475a0 Mon Sep 17 00:00:00 2001 From: nusantara-self <15647296+nusantara-self@users.noreply.github.com> Date: Tue, 24 Dec 2024 16:39:44 +0100 Subject: [PATCH 21/23] Add README.md --- analyzers/ValidateObservable/README.md | 70 ++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 analyzers/ValidateObservable/README.md diff --git a/analyzers/ValidateObservable/README.md b/analyzers/ValidateObservable/README.md new file mode 100644 index 000000000..7eccc3ac0 --- /dev/null +++ b/analyzers/ValidateObservable/README.md @@ -0,0 +1,70 @@ +The **ValidateObservable** analyzer is designed to validate multiple observable datatypes. + +* _ip_ +* _domain_ +* _url_ +* _fqdn_ +* _mail_ +* _hash_ +* _filename_ +* _uri_path_ +* _user-agent_ + +## Supported Data Types / Features +1. **IP Addresses** + +- Validates individual IPs and CIDR ranges. +- Flags reserved, private, and loopback IPs with appropriate notes. + +2. **Domains** + +- Detects valid domain names. +- Flags domains using Punycode (e.g., xn--) as suspicious. +- Identifies unusual characters in domain names. + +3. **URLs** + +- Validates URLs with or without schemes. +- Flags URLs containing Punycode domains or unusual characters as suspicious. +- Detects malformed URLs. + +4. **Fully Qualified Domain Names (FQDNs)** + +- Validates FQDNs for proper structure and length. +- Flags FQDNs using Punycode and unusual characters as suspicious. + +5. **Emails** + +- Checks email structure for validity. +- Detects unusual characters in email addresses. +- Validates against length constraints. + +6. **File Hashes** + +- Validates MD5, SHA1, SHA256, and SHA512 hash formats. + +7. **Filenames** + +- Flags invalid characters in filenames (<, >, :, |, etc.). +- Detects multiple extensions (for example, .txt.exe) as suspicious. +- Identifies Unicode bidirectional override characters (U+202E, etc.) to prevent obfuscated extensions. + +8. **URI Paths** + +- Ensures paths start with / and are well-formed. + +9. **User Agents** + +- Checks for excessive length and control characters. + +## Special Features + +- **Unicode Detection**: + - Identifies Unicode bidirectional override characters (for example, U+202E) across domains, URLs, emails, filenames, and more. + - Flags their usage as suspicious to prevent obfuscation attacks. +- **Punycode Detection**: + - Flags internationalized domain names (IDNs) using xn-- prefix or uncommon characters. +- **Structured Output**: + - Returns valid, invalid, or suspicious statuses with detailed reasons. +- **Short reports**: + - Generates short reports to indicate the validation status and risk level : info (blue) or invalid / suspicious (orange). \ No newline at end of file From 073dff4b98f639a7595b9cfd2777911d4c519606 Mon Sep 17 00:00:00 2001 From: nusantara-self <15647296+nusantara-self@users.noreply.github.com> Date: Tue, 24 Dec 2024 16:44:11 +0100 Subject: [PATCH 22/23] Add analyzer template for ValidateObservable --- .../ValidateObservable_1_0/long.html | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 thehive-templates/ValidateObservable_1_0/long.html diff --git a/thehive-templates/ValidateObservable_1_0/long.html b/thehive-templates/ValidateObservable_1_0/long.html new file mode 100644 index 000000000..49671cab2 --- /dev/null +++ b/thehive-templates/ValidateObservable_1_0/long.html @@ -0,0 +1,55 @@ + +
+
+ ValidateObservable Result +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Type{{ content["type"] }}
Value{{ content["value"] }}
Status + + {{ content["status"] | uppercase }} + +
Reason{{ content["reason"] }}
Note{{ content["note"] }}
+
+
+ + +
+
+ No Result +
+
+

No output is available for the "ValidateObservable" analyzer.

+
+
\ No newline at end of file From 844984c37a6390f6395b200672a9ba76405a274e Mon Sep 17 00:00:00 2001 From: nusantara-self <15647296+nusantara-self@users.noreply.github.com> Date: Tue, 24 Dec 2024 16:59:33 +0100 Subject: [PATCH 23/23] Update version to 3.4.2 in CHANGELOG.md --- CHANGELOG.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85679730f..bfd66fa07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,26 @@ # Changelog +## [3.4.2](https://github.com/TheHive-Project/Cortex-Analyzers/tree/3.4.2) (2024-12-24) + +[Full Changelog](https://github.com/TheHive-Project/Cortex-Analyzers/compare/3.4.1...3.4.2) + +**Closed issues:** + +- \[FR\] CrowdStrike Falcon - Implement TheHive custom user-agent [\#1306](https://github.com/TheHive-Project/Cortex-Analyzers/issues/1306) +- \[FR\] Analyzer for observable validation [\#1305](https://github.com/TheHive-Project/Cortex-Analyzers/issues/1305) +- \[FR\] New Analyzer: Axur Ioc's \(WIP\) [\#1190](https://github.com/TheHive-Project/Cortex-Analyzers/issues/1190) + +## [3.4.1](https://github.com/TheHive-Project/Cortex-Analyzers/tree/3.4.1) (2024-12-17) + +[Full Changelog](https://github.com/TheHive-Project/Cortex-Analyzers/compare/3.4.0...3.4.1) + +**Merged pull requests:** + +- Capa Analyzer - auto-download latest capa binary [\#1301](https://github.com/TheHive-Project/Cortex-Analyzers/pull/1301) ([nusantara-self](https://github.com/nusantara-self)) +- Domaintools dependency issues [\#1300](https://github.com/TheHive-Project/Cortex-Analyzers/pull/1300) ([nusantara-self](https://github.com/nusantara-self)) +- Fix anyrun\_analyzer.py for submit file [\#1299](https://github.com/TheHive-Project/Cortex-Analyzers/pull/1299) ([winl0gon](https://github.com/winl0gon)) +- add proxies to phishtank\_checkurl.py [\#1298](https://github.com/TheHive-Project/Cortex-Analyzers/pull/1298) ([Labuiga](https://github.com/Labuiga)) + ## [3.4.0](https://github.com/TheHive-Project/Cortex-Analyzers/tree/3.4.0) (2024-12-09) [Full Changelog](https://github.com/TheHive-Project/Cortex-Analyzers/compare/3.3.8...3.4.0)