Skip to content

Commit fddafc0

Browse files
committed
[shadowserver] Fix report types and add report names config
1 parent 957357b commit fddafc0

File tree

7 files changed

+22
-1
lines changed

7 files changed

+22
-1
lines changed

external-import/shadowserver/.env.sample

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@ SHADOWSERVER_INCIDENT_SEVERITY=low
1717
SHADOWSERVER_INCIDENT_PRIORITY=P4
1818
SHADOWSERVER_MAX_THREADS=8
1919
SHADOWSERVER_REPORT_TYPES=
20+
SHADOWSERVER_REPORT_NAMES=
2021
SHADOWSERVER_INITIAL_LOOKBACK=30
2122
SHADOWSERVER_LOOKBACK=3

external-import/shadowserver/__metadata__/CONNECTOR_CONFIG_DOC.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Below is an exhaustive enumeration of all configurable parameters available, eac
2020
| SHADOWSERVER_INCIDENT_SEVERITY | `string` | | string | | `"low"` | Default incident severity. |
2121
| SHADOWSERVER_INCIDENT_PRIORITY | `string` | | string | | `"P4"` | Default incident priority. |
2222
| SHADOWSERVER_REPORT_TYPES | `array` | | string | | `[]` | List of report types to retrieve. If empty, all report types will be retrieved. |
23+
| SHADOWSERVER_REPORT_NAMES | `array` | | string | | `[]` | List of report names to retrieve. If empty, all report names will be retrieved. |
2324
| SHADOWSERVER_INITIAL_LOOKBACK | `integer` | | `0 <= x ` | | `30` | Number of days to look back for reports during the first run. |
2425
| SHADOWSERVER_LOOKBACK | `integer` | | `0 <= x ` | | `3` | Number of days to look back for reports during subsequent runs. |
2526
| SHADOWSERVER_MAX_THREADS | `integer` | | `1 <= x <= 32` | | `8` | Maximum number of threads used to download and transform reports in parallel. |

external-import/shadowserver/__metadata__/connector_config_schema.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,14 @@
106106
},
107107
"type": "array"
108108
},
109+
"SHADOWSERVER_REPORT_NAMES": {
110+
"default": [],
111+
"description": "List of report names to retrieve. If empty, all report names will be retrieved.",
112+
"items": {
113+
"type": "string"
114+
},
115+
"type": "array"
116+
},
109117
"SHADOWSERVER_INITIAL_LOOKBACK": {
110118
"default": 30,
111119
"description": "Number of days to look back for reports during the first run.",

external-import/shadowserver/config.yml.sample

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,6 @@ shadowserver:
1919
incident_priority: 'P4'
2020
max_threads: 8
2121
report_types: ''
22+
report_names: ''
2223
initial_lookback: 30
2324
lookback: 3

external-import/shadowserver/docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ services:
2121
- SHADOWSERVER_INCIDENT_PRIORITY=P2
2222
- SHADOWSERVER_MAX_THREADS=8
2323
- SHADOWSERVER_REPORT_TYPES=
24+
- SHADOWSERVER_REPORT_NAMES=
2425
- SHADOWSERVER_INITIAL_LOOKBACK=30
2526
- SHADOWSERVER_LOOKBACK=3
2627
restart: always

external-import/shadowserver/src/shadowserver/connector.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,23 @@ def _collect_intelligence(self) -> Generator[tuple[list, str], None, None]:
5555
marking_refs=marking_refs,
5656
)
5757
report_types = self.config.shadowserver.report_types
58+
report_names = self.config.shadowserver.report_names
5859
if report_types:
5960
self.helper.connector_logger.info(
6061
f"Report types to retrieve: {', '.join(report_types)}."
6162
)
63+
if report_names:
64+
self.helper.connector_logger.info(
65+
f"Report names to retrieve: {', '.join(report_names)}."
66+
)
6267

6368
for days_lookback in range(self.lookback, -1, -1):
6469
stix_objects = []
6570
date = self.start_time - timedelta(days=days_lookback)
6671
date_str = date.strftime("%Y-%m-%d")
6772
self.helper.connector_logger.info(f"Getting reports for {date_str}.")
6873
report_list = shadowserver_api.get_report_list(
69-
date=date_str, reports=report_types
74+
date=date_str, reports=report_names, type=report_types
7075
)
7176
if not report_list:
7277
self.helper.connector_logger.info(f"No reports found for {date_str}.")

external-import/shadowserver/src/shadowserver/settings.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ class ShadowserverConfig(BaseConfigModel):
8585
description="List of report types to retrieve. If empty, all report types will be retrieved.",
8686
default=[],
8787
)
88+
report_names: ListFromString = Field(
89+
description="List of report names to retrieve. If empty, all report names will be retrieved.",
90+
default=[],
91+
)
8892
initial_lookback: int = Field(
8993
description="Number of days to look back for reports during the first run.",
9094
default=30,

0 commit comments

Comments
 (0)