Skip to content

Commit 5094598

Browse files
udpate README
1 parent d87811c commit 5094598

File tree

4 files changed

+55
-72
lines changed

4 files changed

+55
-72
lines changed
201 KB
Loading

.github/img/input_config_index.png

58.6 KB
Loading
186 KB
Loading

README.md

Lines changed: 55 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# TA-opencti-for-splunk-enterprise
1+
# OpenCTI for Splunk Enterprise (TA-opencti-for-splunk-enterprise)
22

33
**Version 1.0.0**
44
**Author:** Filigran
@@ -86,7 +86,11 @@ When configuring a modular input, you have two options for storing intelligence
8686
- Write to a Splunk index, which will then propagate the data to a KV Store using saved searches
8787

8888

89-
### KV Store Data Inputs configuration
89+
### KV Store Ingestion Configuration
90+
91+
The KV Store data input type mode allows pre-defined KV Store to be directly fed with intelligence exposed by the OpenCTI live stream.
92+
93+
![](./.github/img/kvstore_based_ingestion.png "KV Store based ingestion")
9094

9195
Proceed as follows to enable the ingestion of data in pre-defined KV Store:
9296

@@ -129,53 +133,24 @@ You can also consult the "Monitoring Dashboard" which gives you an overview of i
129133

130134
The ingestion process can also be monitored by consulting the log file ```ta-opencti-for-splunk-enterprise_{DATA_INPUT_NAME}.log``` present in the directory ```$SPLUNK_HOME/var/log/splunk/```
131135

132-
### Index Data Inputs configuration
133-
134-
Proceed as follows to enable the ingestion of data in a Splunk index.
135-
136-
1. From the "OpenCTI for Splunk Enterprise Add-on" sub menus, select the "Inputs" sub menu.
137-
2. Click on "Create new input" button.
138-
3. Complete the form with the following settings:
139-
140-
| Parameter | Description |
141-
|---------------|----------------------------------------------------------------------------------------------------------------|
142-
| `Name` | Unique name for the input being configured |
143-
| `Interval` | Time interval of input in seconds. Leave as default (0) to allow continuous execution of the ingestion process |
144-
| `Index` | Select the Splunk Index to feed |
145-
| `Stream Id` | The Live Stream ID of the OpenCTI stream to consume |
146-
| `Import from` | The number of days to go back for the initial data collection (default: 30) (optional) |
147-
| `Input Type` | Select Index entry |
148-
149-
4. Once the Input parameters have been correctly configured click "Add".
150-
151-
![](./.github/img/input_config_index.png "Index Input Configuration")
152-
153-
5. Validate the newly created Input and ensure it's set to "Enabled".
154-
155-
As soon as the input is created, the ingestion of data begins.
156-
157-
You can monitor the import of indicators using the following Splunk SPL query that list all data ingested in the selected Index.
158-
159-
```
160-
index="opencti_data" source="opencti" sourcetype="opencti:indicator"
161-
```
162-
163-
## Index-Based Ingestion Configuration (Required for Saved Searches)
136+
---
137+
### Index-Based Ingestion Configuration (Required for Saved Searches)
164138

165139
When using **Index mode** ingestion, OpenCTI data is first written to a Splunk index and then synchronized into KV Store collections via saved searches.
140+
![](./.github/img/index_based_ingestion.png "Index based ingestion")
141+
166142
This section explains **how to define the index**, **configure macros**, and **enable the required saved searches**.
167143

168-
---
169144

170-
## 1. Choose or Create a Splunk Index
145+
#### 1. Choose or Create a Splunk Index
171146

172-
By default, the add-on **does not assume a fixed index name**.
147+
By default, the add-on **does not assume a fixed Index name**.
173148

174-
### Recommended default index
149+
#### Recommended default index
175150
```
176151
opencti_data
177152
```
178-
### Create a dedicated index (recommended)
153+
#### Create a dedicated index (recommended)
179154

180155
In Splunk Web:
181156

@@ -190,48 +165,56 @@ In Splunk Web:
190165
191166
---
192167

193-
## 2. Configure the OpenCTI Modular Input (Index Mode)
168+
#### 2. Configure the OpenCTI Modular Input (Index Mode)
169+
170+
1. From the "OpenCTI for Splunk Enterprise Add-on" sub menus, select the "Inputs" sub menu.
171+
2. Click on "Create new input" button.
172+
3. Complete the form with the following settings:
173+
174+
| Parameter | Description |
175+
|---------------|----------------------------------------------------------------------------------------------------------------|
176+
| `Name` | Unique name for the input being configured |
177+
| `Interval` | Time interval of input in seconds. Leave as default (0) to allow continuous execution of the ingestion process |
178+
| `Index` | `opencti_data` (or your custom index) |
179+
| `Stream Id` | The Live Stream ID of the OpenCTI stream to consume |
180+
| `Import from` | The number of days to go back for the initial data collection (default: 30) (optional) |
181+
| `Input Type` | Select `Index entry` |
194182

195-
When creating a modular input:
183+
![](./.github/img/input_config_index.png "Index based Input Configuration")
196184

197-
| Field | Value |
198-
|----------------|-------|
199-
| **Input Type** | `Index entry` |
200-
| **Index** | `opencti_data` (or your custom index) |
201-
| **Stream ID** | OpenCTI Live Stream ID |
202-
| **Interval** | `0` (continuous) |
185+
4. Once the Input parameters have been correctly configured click "Add".
203186

204187
Once enabled:
205188
- Each **OpenCTI stream event** is written as a **Splunk event**
206189
- Events are **append-only**
207190
- The same indicator may appear multiple times as it evolves over time
208191

209-
### Event metadata
192+
#### Event metadata
210193

211-
| Field | Value |
212-
|------|------|
213-
| `source` | `opencti` |
194+
| Field | Value |
195+
|--------------|---------------------------------------------|
196+
| `source` | `opencti` |
214197
| `sourcetype` | `opencti:indicator`, `opencti:report`, etc. |
215198

216199
---
217200

218-
## 3. Configure the OpenCTI Index Macro (Required)
201+
#### 3. Configure the OpenCTI Index Macro (Required)
219202

220203
All shipped saved searches rely on a macro to locate OpenCTI data.
221204

222-
### Macro name
205+
#### Macro name
223206

224207
```
225208
opencti_index
226209
```
227210

228-
### Default definition
211+
#### Default definition
229212

230213
```
231214
index=opencti_data
232215
```
233216

234-
### How to configure
217+
#### How to configure
235218

236219
1. Go to **Settings ▸ Advanced Search ▸ Search macros**
237220
2. Locate `opencti_index`
@@ -247,19 +230,19 @@ index=<YOUR_INDEX_NAME>
247230
248231
---
249232

250-
## 4. Enable Required Saved Searches (Index → KV Store Sync)
233+
#### 4. Enable Required Saved Searches (Index → KV Store Sync)
251234

252235
Index mode relies on scheduled searches to populate KV Store collections.
253236

254-
### Required saved searches
237+
#### Required saved searches
255238

256-
| Saved Search Name | Purpose |
257-
|------------------|--------|
258-
| `Update OpenCTI Indicators Lookup` | Sync indicators into `opencti_indicators` KV Store |
259-
| `Update OpenCTI Reports Lookup` | Sync reports into `opencti_reports` |
260-
| `Nightly Rebuild OpenCTI Indicators Lookup` | Full rebuild safety net |
239+
| Saved Search Name | Purpose |
240+
|---------------------------------------------|----------------------------------------------------|
241+
| `Update OpenCTI Indicators Lookup` | Sync indicators into `opencti_indicators` KV Store |
242+
| `Update OpenCTI Reports Lookup` | Sync reports into `opencti_reports` |
243+
| `Nightly Rebuild OpenCTI Indicators Lookup` | Full rebuild safety net |
261244

262-
### Enable them
245+
#### Enable them
263246

264247
1. Go to **Settings ▸ Searches, reports, and alerts**
265248
2. Set **App context** to `TA-opencti-for-splunk-enterprise`
@@ -270,7 +253,7 @@ Index mode relies on scheduled searches to populate KV Store collections.
270253

271254
---
272255

273-
## 5. Data Flow Summary (Index Mode)
256+
#### 5. Data Flow Summary (Index Mode)
274257
```
275258
OpenCTI Stream
276259
@@ -284,27 +267,27 @@ Dashboards / Alert Actions
284267
```
285268
---
286269

287-
## 6. Common Failure Modes (and How to Avoid Them)
270+
#### 6. Common Failure Modes (and How to Avoid Them)
288271

289-
| Issue | Cause | Fix |
290-
|-----|------|-----|
272+
| Issue | Cause | Fix |
273+
|-----------------------------|-----------------------------|------------------------|
291274
| No indicators in dashboards | Macro points to wrong index | Update `opencti_index` |
292-
| KV Stores empty | Saved searches disabled | Enable saved searches |
293-
| Duplicate indicators | Expected behavior | Events are versioned |
275+
| KV Stores empty | Saved searches disabled | Enable saved searches |
276+
| Duplicate indicators | Expected behavior | Events are versioned |
294277

295278
---
296279

297-
## 7. Verification Checklist
280+
#### 7. Verification Checklist
298281

299282
Run these searches to confirm everything is working:
300283

301-
### Index ingestion
284+
#### Index ingestion
302285
```
303286
`opencti_index`
304287
| stats count by sourcetype
305288
```
306289

307-
### KV Store population
290+
#### KV Store population
308291

309292
```
310293
| inputlookup opencti_indicators

0 commit comments

Comments
 (0)