Skip to content

Commit c538718

Browse files
improve readme with action alerts
1 parent e65a9bb commit c538718

File tree

3 files changed

+107
-1
lines changed

3 files changed

+107
-1
lines changed

.github/img/alert_actions.png

56.7 KB
Loading

.github/img/alert_example.png

25.5 KB
Loading

README.md

Lines changed: 107 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ In Splunk Web:
163163

164164
#### 2. Configure the OpenCTI Modular Input (Index Mode)
165165

166-
1. From the "OpenCTI for Splunk Enterprise Add-on" sub menus, select the "Inputs" sub menu.
166+
1. From the "OpenCTI for Splunk Enterprise" Add-on sub menus, select the "Inputs" sub menu.
167167
2. Click on "Create new input" button.
168168
3. Complete the form with the following settings:
169169

@@ -289,3 +289,109 @@ Run these searches to confirm everything is working:
289289
| inputlookup opencti_indicators
290290
| head 10
291291
```
292+
293+
## OpenCTI custom alert actions
294+
295+
You can use the "OpenCTI for Splunk Enterprise" to create custom alert actions that automatically create 'incidents' or/and 'incident response cases' or/and 'sighting' in response to alert trigger by Splunk.
296+
297+
### Create an incident or/and an incident response case or/and a sighting in OpenCTI
298+
299+
You can create an incident or an incident response case in OpenCTI from a custom alert action.
300+
1. Write a Splunk search query.
301+
2. Click Save As > Alert.
302+
3. Fill out the Splunk Alert form. Give your alert a unique name and indicate whether the alert is a real-time alert or a scheduled alert.
303+
4. Under Trigger Actions, click Add Actions.
304+
5. From the list, select "OpenCTI - Create Incident" if you want the alert to create an incident in OpenCTI or "OpenCTI - Create Incident Response" if you want to create an incident response case in OpenCTI or "OpenCTI - Create Sighting" if you want to create a sighting in OpenCTI.
305+
306+
![](./.github/img/alert_actions.png "Custom Alert Actions")
307+
308+
6. To create and incident or an incident response case, complete the form with the following settings:
309+
310+
| Parameter | Description | Scope |
311+
|--------------------------|-------------------------------------------------------|-----------------------------------|
312+
| `Name` | Name of the incident | Incident & Incident response case |
313+
| `Description` | Description of the incident or incident response case | Incident & Incident response case |
314+
| `Type` | Incident Type or incident response case type | Incident & Incident response case |
315+
| `Severity` | Severity of the incident or incident response case | Incident & Incident response case |
316+
| `Priority` | Priority of the incident response case | Incident response case |
317+
| `Labels` | Labels (separated by a comma) to be applied | Incident & Incident response case |
318+
| `TLP` | Markings to be applied | Incident & Incident response case |
319+
| `Observables extraction` | Method for extracting observables | Incident & Incident response case |
320+
321+
7. To create a sighting, complete the form with the following settings:
322+
323+
| Parameter | Description | Scope |
324+
|--------------------------|---------------------------------------------------------------|------------|
325+
| `Sighting Of (value)` | Value of what was sighted | Sighting |
326+
| `Sighting Of (type)` | Type of what was sighted (URL, Domain, IPV4, IPV6) | Sighting |
327+
| `Where Sighted (value)` | Value of the 'System' or 'Organization' that saw the sighting | Sighting |
328+
| `Where Sighted (type)` | 'System' or 'Organization' that saw the sighting | Sighting |
329+
| `Labels` | Labels (separated by a comma) to be applied | Sighting |
330+
| `TLP` | Markings to be applied | Sighting |
331+
332+
You can use [Splunk "tokens"](https://docs.splunk.com/Documentation/Splunk/9.2.2/Alert/EmailNotificationTokens#Result_tokens) as variables in the form to contextualize the data imported into OpenCTI.
333+
Tokens represent data that a search generates. They work as placeholders or variables for data values that populate when the search completes.
334+
335+
Example of a configuration to create an incident in OpenCTI
336+
337+
![](./.github/img/alert_example.png "Alert Example")
338+
339+
### Observables extraction
340+
341+
To extract and model alert fields as OpenCTI observables attached to the incident or incident response case, the Add-on purpose two methods describe below.
342+
343+
#### CIM model
344+
345+
The “CIM model” method is based on the definition of CIM model fields. With this method, the Add-on will extract all the following fields and model them as follows:
346+
347+
| CIM Field | Observable type |
348+
|-------------------|-------------------------------------|
349+
| `url` | URL observable |
350+
| `url_domain` | Domain observable |
351+
| `user` | User account observable |
352+
| `user_name` | User account observable |
353+
| `user_agent` | User agent Observable |
354+
| `http_user_agent` | User agent Observable |
355+
| `dest` | IPv4 or IPv6 or Hostname observable |
356+
| `dest_ip` | IPv4 or IPv6 observable |
357+
| `src` | IPv4 or IPv6 or Hostname observable |
358+
| `src_ip` | IPv4 or IPv6 observable |
359+
| `file_hash` | File observable |
360+
| `file_name` | File observable |
361+
362+
363+
#### Field mapping
364+
365+
The “Field mapping” method searches for event fields starting with the string “octi_” and ending with an observable type.
366+
The following list describe list of supported fields:
367+
368+
| OCTI Field | Observable type |
369+
|------------------------------------|---------------------------------------|
370+
| `octi_ip` | IPv4 or IPv6 observable |
371+
| `octi_url` | URL observable |
372+
| `octi_domain` | Domain observable |
373+
| `octi_hash` | File observable |
374+
| `octi_email_addr` | Email address observable |
375+
| `octi_user_agent` | User agent observable |
376+
| `octi_mutex` | Mutex observable |
377+
| `octi_text` | Text observable |
378+
| `octi_windows_registry_key` | Windows Registry Key observable |
379+
| `octi_windows_registry_value_type` | Windows Registry Key Value observable |
380+
| `octi_directory` | Directory observable |
381+
| `octi_email_message` | Email message observable |
382+
| `octi_file_name` | File observable |
383+
| `octi_mac_addr` | MAC address observable |
384+
| `octi_user_account` | User account address observable |
385+
386+
You can use the Splunk ```eval``` command to create a new field based on the value of another field.
387+
388+
Example:
389+
390+
```sourcetype=* | lookup opencti_lookup value as url_domain OUTPUT id as match_ioc_id | search match_ioc_id=* | eval octi_domain=url_domain | eval octi_url=url ```
391+
392+
393+
Logs related to OpenCTI customer alerts are available in the following two log file:
394+
395+
```$SPLUNK_HOME/var/log/splunk/opencti_create_incident_modalert.log```
396+
397+
```$SPLUNK_HOME/var/log/splunk/opencti_create_incident_response_modalert.log```

0 commit comments

Comments
 (0)