McAfee ESM v10 and v11 (Deprecated)
This Integration is part of the McAfee ESM v10 and v11 (Deprecated) Pack.#
Deprecated
Use the McAfee ESM v2 integration instead.
Deprecated. Use the McAfee ESM v2 integration instead.
Configure McAfee ESM-v10 on Cortex XSOAR
- Navigate to Settings > Integrations > Servers & Services .
- Search for McAfee ESM-v10.
-
Click
Add instance
to create and configure a new integration instance.
- Name : a textual name for the integration instance.
- Port
- ESM IP (e.g. 78.125.0.209)
- Username
- Fetch incidents
- Incident type
- Fetch Types: cases, alarms, both (relevant only for fetch incident mode)
- Start fetch after Case ID: (relevant only for fetch incident mode)
- Trust any certificate (not secure)
- Version: (one of 10.0, 10.1, 10.2, 10.3)
- ESM time format, e.g., %Y/%m/%d %H:%M:%S. Select “auto-discovery” to extract the format automatically.
- __McAfee ESM Timezone in hours (e.g if ESM timezone is +0300 => then insert 3) __
- Click Test to validate the URLs, token, and connection.
Commands
You can execute these commands from the Cortex XSOAR 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.
- Get a list of all fields: esm-fetch-fields
- Perform a search in McAfee ESM: esm-search
- Get a list of triggered alarms: esm-fetch-alarms
- Get a list of cases: esm-get-case-list
- Add a case: esm-add-case
- Edit a case: esm-edit-case
- Get a list of case statuses: esm-get-case-statuses
- Edit the status of a case: esm-edit-case-status
- Get details of a case: esm-get-case-detail
- Get details of a case event: esm-get-case-event-list
- Add a status to a case: esm-add-case-status
- Remove a status from a case: esm-delete-case-status
- Get a list of case organizations: esm-get-organization-list
- Get a list of all users: esm-get-user-list
- Mark triggered alarms as acknowledged: esm-acknowledge-alarms
- Mark triggered alarms as unacknowledgedesm-unacknowledge-alarms
- Delete triggered alarms: esm-delete-alarms
- Get details for a triggered alarm: esm-get-alarm-event-details
- Get an event list related to an alarm: esm-list-alarm-events
1. Get list of all fields
Returns a list of all fields (and the field type) that can be used in query filters.
Base Command
esm-fetch-fields
Input
There are no input arguments for this command.
Context Output
There is no context output for this command.
Command Example
esm-fetch-fields
Human Readable
This output is truncated.
Result:
| name | types |
|---|---|
| AppID | STRING |
| CommandID | STRING |
| DomainID | STRING |
| HostID | STRING |
| ObjectID | STRING |
| UserIDDst | STRING |
| UserIDSrc | STRING |
| URL | SSTRING |
| Database_Name | STRING |
| Message_Text | SSTRING |
| Response_Time | UINT32,UINT32 |
| Application_Protocol | STRING |
| Object_Type | STRING |
| Filename | SSTRING |
| From | SSTRING |
| To | SSTRING |
| Cc | SSTRING |
| Bcc | SSTRING |
| Subject | SSTRING |
| Method | STRING |
| User_Agent | SSTRING |
| Cookie | SSTRING |
| Referer | SSTRING |
| File_Operation | STRING |
| File_Operation_Succeeded | STRING |
2. Perform a search in McAfee ESM
Performs a query against McAfee ESM.
Base Command
esm-search
Input
| Argument Name | Description | Required |
|---|---|---|
| timeRange | The time period for the search | Required |
| filters | Filter on the query results in the format EsmFilter. Should be a JSON string. | Required |
| queryType | Query type to preform, by default EVENT (other possible values are : FLOW/ASSET) | Optional |
| maxWait | Maximum time to wait (in minutes), default is 30 | Optional |
| customStart | if timeRange is CUSTOM, start time for the time range (e.g. 2017-06-01T12:48:16.734Z) | Optional |
| customEnd | if timeRange is CUSTOM, end time for the time range (e.g. 2017-06-01T12:48:16.734Z) | Optional |
| fields | The fields that will be selected when this query is executed. | Optional |
Context Output
There is no context output for this command.
Command Example
!esm-search timeRange=LAST_10_MINUTES filters=`[{"type": "EsmFieldFilter", "field": {"name": "SrcIP"}, "operator": "EQUALS", "values": [{"type": "EsmBasicValue", "value": "52.15.91.198"}]}]
Context Example
{
"SearchResults": [
{
"AlertIPSIDAlertID": "144115188075855872|10201"
},
{
"AlertSrcIP": "52.15.91.198"
},
{
"AlertSrcPort": "0"
},
{
"AlertDstIP": "192.168.1.25"
},
{
"AlertDstPort": "0"
},
{
"AlertProtocol": "n/a"
},
{
"AlertLastTime": "03/11/2019 14:57:38"
},
{
"ActionName": "success"
},
{
"AlertIPSIDAlertID": "144115188075855872|10202"
},
{
"AlertSrcIP": "52.15.91.198"
},
{
"AlertSrcPort": "0"
},
{
"AlertDstIP": "192.168.1.25"
},
{
"AlertDstPort": "0"
},
{
"AlertProtocol": "n/a"
},
{
"AlertLastTime": "03/11/2019 14:58:37"
},
{
"ActionName": "success"
},
{
"AlertIPSIDAlertID": "144115188075855872|10203"
},
{
"AlertSrcIP": "52.15.91.198"
},
{
"AlertSrcPort": "0"
},
{
"AlertDstIP": "192.168.1.25"
},
{
"AlertDstPort": "0"
},
{
"AlertProtocol": "n/a"
},
{
"AlertLastTime": "03/11/2019 14:59:35"
},
{
"ActionName": "success"
},
{
"AlertIPSIDAlertID": "144115188075855872|10204"
},
{
"AlertSrcIP": "52.15.91.198"
},
{
"AlertSrcPort": "0"
},
{
"AlertDstIP": "192.168.1.25"
},
{
"AlertDstPort": "0"
},
{
"AlertProtocol": "n/a"
},
{
"AlertLastTime": "03/11/2019 15:00:36"
},
{
"ActionName": "success"
},
{
"AlertIPSIDAlertID": "144115188075855872|10208"
},
{
"AlertSrcIP": "52.15.91.198"
},
{
"AlertSrcPort": "0"
},
{
"AlertDstIP": "192.168.1.25"
},
{
"AlertDstPort": "0"
},
{
"AlertProtocol": "n/a"
},
{
"AlertLastTime": "03/11/2019 15:01:37"
},
{
"ActionName": "success"
},
{
"AlertIPSIDAlertID": "144115188075855872|10209"
},
{
"AlertSrcIP": "52.15.91.198"
},
{
"AlertSrcPort": "0"
},
{
"AlertDstIP": "192.168.1.25"
},
{
"AlertDstPort": "0"
},
{
"AlertProtocol": "n/a"
},
{
"AlertLastTime": "03/11/2019 15:02:38"
},
{
"ActionName": "success"
},
{
"AlertIPSIDAlertID": "144115188075855872|10210"
},
{
"AlertSrcIP": "52.15.91.198"
},
{
"AlertSrcPort": "0"
},
{
"AlertDstIP": "192.168.1.25"
},
{
"AlertDstPort": "0"
},
{
"AlertProtocol": "n/a"
},
{
"AlertLastTime": "03/11/2019 15:03:36"
},
{
"ActionName": "success"
},
{
"AlertIPSIDAlertID": "144115188075855872|10211"
},
{
"AlertSrcIP": "52.15.91.198"
},
{
"AlertSrcPort": "0"
},
{
"AlertDstIP": "192.168.1.25"
},
{
"AlertDstPort": "0"
},
{
"AlertProtocol": "n/a"
},
{
"AlertLastTime": "03/11/2019 15:04:36"
},
{
"ActionName": "success"
},
{
"AlertIPSIDAlertID": "144115188075855872|10212"
},
{
"AlertSrcIP": "52.15.91.198"
},
{
"AlertSrcPort": "0"
},
{
"AlertDstIP": "192.168.1.25"
},
{
"AlertDstPort": "0"
},
{
"AlertProtocol": "n/a"
},
{
"AlertLastTime": "03/11/2019 15:05:37"
},
{
"ActionName": "success"
},
{
"AlertIPSIDAlertID": "144115188075855872|10213"
},
{
"AlertSrcIP": "52.15.91.198"
},
{
"AlertSrcPort": "0"
},
{
"AlertDstIP": "192.168.1.25"
},
{
"AlertDstPort": "0"
},
{
"AlertProtocol": "n/a"
},
{
"AlertLastTime": "03/11/2019 15:06:38"
},
{
"ActionName": "success"
}
]
}
Human Readable Output
results:
| Alert.IPSIDAlertID | Alert.SrcIP | Alert.SrcPort | Alert.DstIP | Alert.DstPort | Alert.Protocol | Alert.LastTime | Action.Name |
|---|---|---|---|---|---|---|---|
| 144115188075855872|10201 | 52.15.91.198 | 0 | 192.168.1.25 | 0 | n/a | 03/11/2019 14:57:38 | success |
| 144115188075855872|10202 | 52.15.91.198 | 0 | 192.168.1.25 | 0 | n/a | 03/11/2019 14:58:37 | success |
| 144115188075855872|10203 | 52.15.91.198 | 0 | 192.168.1.25 | 0 | n/a | 03/11/2019 14:59:35 | success |
| 144115188075855872|10204 | 52.15.91.198 | 0 | 192.168.1.25 | 0 | n/a | 03/11/2019 15:00:36 | success |
| 144115188075855872|10208 | 52.15.91.198 | 0 | 192.168.1.25 | 0 | n/a | 03/11/2019 15:01:37 | success |
| 144115188075855872|10209 | 52.15.91.198 | 0 | 192.168.1.25 | 0 | n/a | 03/11/2019 15:02:38 | success |
| 144115188075855872|10210 | 52.15.91.198 | 0 | 192.168.1.25 | 0 | n/a | 03/11/2019 15:03:36 | success |
| 144115188075855872|10211 | 52.15.91.198 | 0 | 192.168.1.25 | 0 | n/a | 03/11/2019 15:04:36 | success |
| 144115188075855872|10212 | 52.15.91.198 | 0 | 192.168.1.25 | 0 | n/a | 03/11/2019 15:05:37 | success |
| 144115188075855872|10213 | 52.15.91.198 | 0 | 192.168.1.25 | 0 | n/a | 03/11/2019 15:06:38 | success |
3. Get a list of triggered alarms
Retrieves a list of triggered alarms.
Base Command
esm-fetch-alarms
Input
| Argument Name | Description | Required |
|---|---|---|
| timeRange | The time period for the fetch. | Required |
| customStart | if timeRange is CUSTOM, start time for the time range (e.g. 2017-06-01T12:48:16.734Z) | Optional |
| customEnd | if timeRange is CUSTOM, end time for the time range (e.g. 2017-06-01T12:48:16.734Z) | Optional |
| assignedUser | user assigned to handle this triggered alarm (use ‘ME’ option to use instance user, or use format EsmUser (read more on that here - https://:/rs/esm/help/types/EsmUser) | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| Alarm.ID | number | Alarm ID |
| Alarm.summary | string | Alarm summary |
| Alarm.assignee | string | Alarm assignee |
| Alarm.severity | number | Alarm severity |
| Alarm.triggeredDate | date | Alarm triggered date |
| Alarm.acknowledgedDate | date | Alarm acknowledged date |
| Alarm.acknowledgedUsername | string | Alarm acknowledged username |
| Alarm.alarmName | string | Alarm name |
| Alarm.conditionType | number | Alarm condition type |
Command Example
!esm-fetch-alarms timeRange="LAST_3_DAYS"
Context Example
{
"Alarm": [
{
"conditionType": 13,
"severity": 50,
"triggeredDate": "03/11/2019 01:48:10",
"acknowledgedDate": "03/11/2019 08:16:19",
"summary": "408944640 - Failed Login Attempts - 306-31",
"assignee": "NGCP",
"alarmName": "Failed Login Attempts",
"acknowledgedUsername": "NGCP",
"ID": 25
},
{
"conditionType": 13,
"severity": 50,
"triggeredDate": "03/11/2019 01:44:40",
"acknowledgedDate": "03/11/2019 08:16:20",
"summary": "408944640 - Failed Login Attempts - 306-31",
"assignee": "NGCP",
"alarmName": "Failed Login Attempts",
"acknowledgedUsername": "NGCP",
"ID": 24
},
{
"conditionType": 13,
"severity": 50,
"triggeredDate": "03/11/2019 01:41:10",
"acknowledgedDate": "",
"summary": "408944640 - Failed Login Attempts - 306-31",
"assignee": "NGCP",
"alarmName": "Failed Login Attempts",
"acknowledgedUsername": "",
"ID": 23
},
{
"conditionType": 13,
"severity": 50,
"triggeredDate": "03/11/2019 01:27:39",
"acknowledgedDate": "",
"summary": "408944640 - Failed Login Attempts - 306-31",
"assignee": "NGCP",
"alarmName": "Failed Login Attempts",
"acknowledgedUsername": "",
"ID": 22
},
{
"conditionType": 13,
"severity": 50,
"triggeredDate": "03/11/2019 01:24:39",
"acknowledgedDate": "",
"summary": "408944640 - Failed Login Attempts - 306-31",
"assignee": "NGCP",
"alarmName": "Failed Login Attempts",
"acknowledgedUsername": "",
"ID": 21
},
{
"conditionType": 13,
"severity": 50,
"triggeredDate": "03/11/2019 01:21:39",
"acknowledgedDate": "",
"summary": "408944640 - Failed Login Attempts - 306-31",
"assignee": "NGCP",
"alarmName": "Failed Login Attempts",
"acknowledgedUsername": "",
"ID": 20
},
{
"conditionType": 13,
"severity": 50,
"triggeredDate": "03/11/2019 01:19:09",
"acknowledgedDate": "",
"summary": "408944640 - Failed Login Attempts - 306-31",
"assignee": "NGCP",
"alarmName": "Failed Login Attempts",
"acknowledgedUsername": "",
"ID": 19
},
{
"conditionType": 13,
"severity": 50,
"triggeredDate": "03/11/2019 01:14:09",
"acknowledgedDate": "",
"summary": "408944640 - Failed Login Attempts - 306-31",
"assignee": "NGCP",
"alarmName": "Failed Login Attempts",
"acknowledgedUsername": "",
"ID": 18
},
{
"conditionType": 13,
"severity": 50,
"triggeredDate": "03/11/2019 01:07:09",
"acknowledgedDate": "",
"summary": "408944640 - Failed Login Attempts - 306-31",
"assignee": "NGCP",
"alarmName": "Failed Login Attempts",
"acknowledgedUsername": "",
"ID": 17
},
{
"conditionType": 13,
"severity": 50,
"triggeredDate": "03/11/2019 01:06:09",
"acknowledgedDate": "",
"summary": "408944640 - Failed Login Attempts - 306-31",
"assignee": "NGCP",
"alarmName": "Failed Login Attempts",
"acknowledgedUsername": "",
"ID": 16
},
{
"conditionType": 13,
"severity": 50,
"triggeredDate": "03/11/2019 01:01:39",
"acknowledgedDate": "",
"summary": "408944640 - Failed Login Attempts - 306-31",
"assignee": "NGCP",
"alarmName": "Failed Login Attempts",
"acknowledgedUsername": "",
"ID": 15
},
{
"conditionType": 13,
"severity": 50,
"triggeredDate": "03/10/2019 17:01:30",
"acknowledgedDate": "",
"summary": "408944640 - Failed Login Attempts - 306-31",
"assignee": "NGCP",
"alarmName": "Failed Login Attempts",
"acknowledgedUsername": "",
"ID": 14
}
]
}
Human Readable Output
Result:
| conditionType | severity | triggeredDate | acknowledgedDate | summary | assignee | alarmName | ID | acknowledgedUsername |
|---|---|---|---|---|---|---|---|---|
| 13 | 50 | 03/11/2019 01:48:10 | 03/11/2019 08:16:19 | 408944640 - Failed Login Attempts - 306-31 | NGCP | Failed Login Attempts | 25 | NGCP |
| 13 | 50 | 03/11/2019 01:44:40 | 03/11/2019 08:16:20 | 408944640 - Failed Login Attempts - 306-31 | NGCP | Failed Login Attempts | 24 | NGCP |
| 13 | 50 | 03/11/2019 01:41:10 | 408944640 - Failed Login Attempts - 306-31 | NGCP | Failed Login Attempts | 23 | ||
| 13 | 50 | 03/11/2019 01:27:39 | 408944640 - Failed Login Attempts - 306-31 | NGCP | Failed Login Attempts | 22 | ||
| 13 | 50 | 03/11/2019 01:24:39 | 408944640 - Failed Login Attempts - 306-31 | NGCP | Failed Login Attempts | 21 | ||
| 13 | 50 | 03/11/2019 01:21:39 | 408944640 - Failed Login Attempts - 306-31 | NGCP | Failed Login Attempts | 20 | ||
| 13 | 50 | 03/11/2019 01:19:09 | 408944640 - Failed Login Attempts - 306-31 | NGCP | Failed Login Attempts | 19 | ||
| 13 | 50 | 03/11/2019 01:14:09 | 408944640 - Failed Login Attempts - 306-31 | NGCP | Failed Login Attempts | 18 | ||
| 13 | 50 | 03/11/2019 01:07:09 | 408944640 - Failed Login Attempts - 306-31 | NGCP | Failed Login Attempts | 17 | ||
| 13 | 50 | 03/11/2019 01:06:09 | 408944640 - Failed Login Attempts - 306-31 | NGCP | Failed Login Attempts | 16 | ||
| 13 | 50 | 03/11/2019 01:01:39 | 408944640 - Failed Login Attempts - 306-31 | NGCP | Failed Login Attempts | 15 | ||
| 13 | 50 | 03/10/2019 17:01:30 | 408944640 - Failed Login Attempts - 306-31 | NGCP | Failed Login Attempts | 14 |
4. Get a list of cases
Returns a list of cases from the McAfee ESM.
Base Command
esm-get-case-list
Input
| Argument Name | Description | Required |
|---|---|---|
| since | Filter for a case opened before this date. Given in format " | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| Case.ID | number | The ID of the case |
| Case.Summary | string | The summary of the case |
| Case.Status | string | The status of the case |
| Case.OpenTime | date | The open time of the case |
| Case.Severity | number | The severity of the case |
| Case.Assignee | string | The Assignee of the case |
| Case.Organization | string | The organization of the case |
| Case.EventList | unknown | List of case’s events |
| Case.Notes | unknown | List of case’s notes |
Command Example
!esm-get-case-list
Context Example
{
"Case": [
{
"Status": "Open",
"Summary": "case to be deleted",
"OpenTime": "03/11/2019 08:15:02",
"ID": 1,
"Severity": 1
},
{
"Status": "Open",
"Summary": "New Virus Detected",
"OpenTime": "03/11/2019 11:39:18",
"ID": 2,
"Severity": 1
},
{
"Status": "Open",
"Summary": "408944640 - Failed Login Attempts - 306-31",
"OpenTime": "03/11/2019 11:41:02",
"ID": 3,
"Severity": 1
},
{
"Status": "Open",
"Summary": "this is the first case",
"OpenTime": "03/11/2019 12:54:50",
"ID": 4,
"Severity": 1
},
{
"Status": "Open",
"Summary": "this is the first case",
"OpenTime": "03/11/2019 13:27:22",
"ID": 5,
"Severity": 1
},
{
"Status": "Open",
"Summary": "this is the first case",
"OpenTime": "03/11/2019 13:29:47",
"ID": 6,
"Severity": 1
},
{
"Status": "Open",
"Summary": "this is the first case",
"OpenTime": "03/11/2019 13:33:13",
"ID": 7,
"Severity": 1
}
]
}
Human Readable Output
All cases:
| ID | Summary | Status | Severity | OpenTime |
|---|---|---|---|---|
| 1 | case to be deleted | Open | 1 | 03/11/2019 08:15:02 |
| 2 | New Virus Detected | Open | 1 | 03/11/2019 11:39:18 |
| 3 | 408944640 - Failed Login Attempts - 306-31 | Open | 1 | 03/11/2019 11:41:02 |
| 4 | this is the first case | Open | 1 | 03/11/2019 12:54:50 |
| 5 | this is the first case | Open | 1 | 03/11/2019 13:27:22 |
| 6 | this is the first case | Open | 1 | 03/11/2019 13:29:47 |
| 7 | this is the first case | Open | 1 | 03/11/2019 13:33:13 |
5. Add a case
Adds a case to McAfee ESM.
Base Command
esm-add-case
Input
| Argument Name | Description | Required |
|---|---|---|
| summary | The name of the case | Required |
| status |
The status of the case (use
esm-get-case-statuses
to view all statuses)
|
Optional |
| assignee | The user the case is assigned to | Optional |
| severity | The severity of the case (1 - 100) | Optional |
| organization |
The organization assigned to the case (use
esm-get-organization-list
to view all organizations)
|
Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| Case.ID | number | The ID of the case |
| Case.Summary | string | The summary of the case |
| Case.Status | string | The status of the case |
| Case.OpenTime | date | The open time of the case |
| Case.Severity | number | The severity of the case |
| Case.Assignee | string | The assignee of the case |
| Case.Organization | string | The organization of the case |
| Case.EventList | unknown | List of case’s events |
| Case.Notes | unknown | List of case’s notes |
Command Example
!esm-add-case summary="this is the first case"
Context Example
{
"Case": [
{
"Status": "Open",
"OpenTime": "03/11/2019 15:07:22",
"Severity": 1,
"EventList": [],
"Notes": [
{
"action": "Open",
"content": "",
"username": "NGCP",
"changes": [],
"timestamp": "03/11/2019 15:07:22(GMT)"
}
],
"Summary": "this is the first case",
"Assignee": "NGCP",
"Organization": "None",
"ID": 8
}
]
}
Human Readable Output
New Case:
| ID | Summary | Status | Severity | OpenTime | Assignee | Organization | Event List | Notes |
|---|---|---|---|---|---|---|---|---|
| 8 | this is the first case | Open | 1 | 03/11/2019 15:07:22 | NGCP | None | [] | [{“action”: “Open”, “timestamp”: “03/11/2019 15:07:22(GMT)”, “username”: “NGCP”, “content”: “”, “changes”: []}] |
6. Edit a case
Modifies an existing case.
Base Command
esm-edit-case
Input
| Argument Name | Description | Required |
|---|---|---|
| id | The ID of the case | Required |
| summary | The name of the case | Optional |
| severity | The new severity of the case (1 - 100) | Optional |
| assignee | The user that the case should be assigned to | Optional |
| status |
The new status of the case (use the
esm-get-case-statuses
command to view all statuses)
|
Optional |
| organization |
The organization assigned to the case (use the
esm-get-organization-list
command to view all organizations)
|
Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| Case.ID | number | The ID of the case |
| Case.Summary | string | The summary of the case |
| Case.Status | string | The status of the case |
| Case.OpenTime | date | The open time of the case |
| Case.Severity | number | The severity of the case |
| Case.Assignee | string | The Assignee of the case |
| Case.Organization | string | The organization of the case |
| Case.EventList | unknown | List of case’s events |
| Case.Notes | unknown | List of case’s notes |
Command Example
!esm-edit-case id="2" summary="editing first case" severity="50" organization="LuthorCorp"
Context Example
{
"Case": [
{
"Status": "Open",
"OpenTime": "03/11/2019 11:39:18",
"Severity": 50,
"EventList": [],
"Notes": [
{
"action": "Changes",
"content": "Summary\n old: New Virus Detected\n new: editing first case\n\n Severity\n old: 1\n new: 50",
"username": "NGCP",
"changes": [
{
"changeType": "Summary",
"changes": [
"old: New Virus Detected",
"new: editing first case"
]
},
{
"changeType": "Severity",
"changes": [
"old: 1",
"new: 50"
]
}
],
"timestamp": "03/11/2019 15:07:26(GMT)"
},
{
"action": "Changes",
"content": "Summary\n old: editing first case\n new: New Virus Detected\n\n Severity\n old: 50\n new: 1",
"username": "NGCP",
"changes": [
{
"changeType": "Summary",
"changes": [
"old: editing first case",
"new: New Virus Detected"
]
},
{
"changeType": "Severity",
"changes": [
"old: 50",
"new: 1"
]
}
],
"timestamp": "03/11/2019 15:01:28(GMT)"
},
{
"action": "Changes",
"content": "Summary\n old: New Virus Detection\n new: editing first case\n\n Severity\n old: 1\n new: 50",
"username": "NGCP",
"changes": [
{
"changeType": "Summary",
"changes": [
"old: New Virus Detection",
"new: editing first case"
]
},
{
"changeType": "Severity",
"changes": [
"old: 1",
"new: 50"
]
}
],
"timestamp": "03/11/2019 13:33:16(GMT)"
},
{
"action": "Changes",
"content": "Summary\n old: editing first New Virus Detection\n new: New Virus Detection",
"username": "NGCP",
"changes": [
{
"changeType": "Summary",
"changes": [
"old: editing first New Virus Detection",
"new: New Virus Detection"
]
}
],
"timestamp": "03/11/2019 13:31:59(GMT)"
},
{
"action": "Changes",
"content": "Summary\n old: editing first case\n new: editing first New Virus Detection\n\n Severity\n old: 50\n new: 1",
"username": "NGCP",
"changes": [
{
"changeType": "Summary",
"changes": [
"old: editing first case",
"new: editing first New Virus Detection"
]
},
{
"changeType": "Severity",
"changes": [
"old: 50",
"new: 1"
]
}
],
"timestamp": "03/11/2019 13:31:45(GMT)"
},
{
"action": "Changes",
"content": "Summary\n old: New Virus Detection\n new: editing first case\n\n Severity\n old: 1\n new: 50",
"username": "NGCP",
"changes": [
{
"changeType": "Summary",
"changes": [
"old: New Virus Detection",
"new: editing first case"
]
},
{
"changeType": "Severity",
"changes": [
"old: 1",
"new: 50"
]
}
],
"timestamp": "03/11/2019 13:27:25(GMT)"
},
{
"action": "Open",
"content": "",
"username": "NGCP",
"changes": [],
"timestamp": "03/11/2019 11:39:18(GMT)"
}
],
"Summary": "editing first case",
"Assignee": "NGCP",
"Organization": "None",
"ID": 2
}
]
}
Human Readable Output
Edited Case:
| ID | Summary | Status | Severity | OpenTime | Assignee | Organization | Event List | Notes |
|---|---|---|---|---|---|---|---|---|
| 2 | editing first case | Open | 50 | 03/11/2019 11:39:18 | NGCP | None | [] | [{“action”: “Changes”, “timestamp”: “03/11/2019 15:07:26(GMT)”, “username”: “NGCP”, “content”: “Summary\n old: New Virus Detected\n new: editing first case\n\n Severity\n old: 1\n new: 50”, “changes”: [{“changeType”: “Summary”, “changes”: [“old: New Virus Detected”, “new: editing first case”]}, {“changeType”: “Severity”, “changes”: [“old: 1”, “new: 50”]}]}, {“action”: “Changes”, “timestamp”: “03/11/2019 15:01:28(GMT)”, “username”: “NGCP”, “content”: “Summary\n old: editing first case\n new: New Virus Detected\n\n Severity\n old: 50\n new: 1”, “changes”: [{“changeType”: “Summary”, “changes”: [“old: editing first case”, “new: New Virus Detected”]}, {“changeType”: “Severity”, “changes”: [“old: 50”, “new: 1”]}]}, {“action”: “Changes”, “timestamp”: “03/11/2019 13:33:16(GMT)”, “username”: “NGCP”, “content”: “Summary\n old: New Virus Detection\n new: editing first case\n\n Severity\n old: 1\n new: 50”, “changes”: [{“changeType”: “Summary”, “changes”: [“old: New Virus Detection”, “new: editing first case”]}, {“changeType”: “Severity”, “changes”: [“old: 1”, “new: 50”]}]}, {“action”: “Changes”, “timestamp”: “03/11/2019 13:31:59(GMT)”, “username”: “NGCP”, “content”: “Summary\n old: editing first New Virus Detection\n new: New Virus Detection”, “changes”: [{“changeType”: “Summary”, “changes”: [“old: editing first New Virus Detection”, “new: New Virus Detection”]}]}, {“action”: “Changes”, “timestamp”: “03/11/2019 13:31:45(GMT)”, “username”: “NGCP”, “content”: “Summary\n old: editing first case\n new: editing first New Virus Detection\n\n Severity\n old: 50\n new: 1”, “changes”: [{“changeType”: “Summary”, “changes”: [“old: editing first case”, “new: editing first New Virus Detection”]}, {“changeType”: “Severity”, “changes”: [“old: 50”, “new: 1”]}]}, {“action”: “Changes”, “timestamp”: “03/11/2019 13:27:25(GMT)”, “username”: “NGCP”, “content”: “Summary\n old: New Virus Detection\n new: editing first case\n\n Severity\n old: 1\n new: 50”, “changes”: [{“changeType”: “Summary”, “changes”: [“old: New Virus Detection”, “new: editing first case”]}, {“changeType”: “Severity”, “changes”: [“old: 1”, “new: 50”]}]}, {“action”: “Open”, “timestamp”: “03/11/2019 11:39:18(GMT)”, “username”: “NGCP”, “content”: “”, “changes”: []}] |
7. Get a list of case statuses
Returns a list of valid case statuses from McAfee ESM.
Base Command
esm-get-case-statuses
Input
There are no input arguments for this command.
Context Output
There is no context output for this command.
Command Example
!esm-get-case-statuses
Human Readable Output
Result:
| ID | Name | Is Default | Show In Case Pane |
|---|---|---|---|
| 2 | Closed | false | false |
| 1 | Open | true | true |
| 8 | Pending | false | true |
| 4 | Research | false | false |
8. Edit the status of a case
Modifies a case status.
Base Command
esm-edit-case-status
Input
| Argument Name | Description | Required |
|---|---|---|
| original_name | The name of the case status to edit | Required |
| new_name | The new name for the case status | Required |
| show_in_case_pane | Whether the status will be shown in the case pane | Optional |
Context Output
There is no context output for this command.
Command Example
!esm-edit-case-status original_name=Research new_name=RnD
Human Readable Output
Edit case status with ID: 4
9. Get details of a case
Returns details about an existing case.
Base Command
esm-get-case-detail
Input
| Argument Name | Description | Required |
|---|---|---|
| id | The ID of the case | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| Case.ID | number | The ID of the case |
| Case.Summary | string | The summary of the case |
| Case.Status | string | The status of the case |
| Case.OpenTime | date | The open time of the case |
| Case.Severity | number | The severity of the case |
| Case.Assignee | string | The assignee of the case |
| Case.Organization | string | The organization of the case |
| Case.EventList | unknown | List of case’s events |
| Case.Notes | unknown | List of case’s notes |
Command Example
!esm-get-case-detail id=3
Context Example
{
"Case": [
{
"Status": "Open",
"OpenTime": "03/11/2019 11:41:02",
"Severity": 1,
"EventList": [
{
"message": "Failed User Logon",
"lastTime": "03/11/2019 01:01:13",
"id": {
"value": "144115188075855872|8850"
}
}
],
"Notes": [
{
"action": "Open",
"content": "Events Added: 144115188075855872|8850\n Events Removed:",
"username": "NGCP",
"changes": [
{
"changeType": "Events Added",
"changes": [
"144115188075855872|8850"
]
},
{
"changeType": "Events Removed",
"changes": []
}
],
"timestamp": "03/11/2019 11:41:02(GMT)"
}
],
"Summary": "408944640 - Failed Login Attempts - 306-31",
"Assignee": "NGCP",
"Organization": "None",
"ID": 3
}
]
}
Human Readable Output
Case 3:
| ID | Summary | Status | Severity | OpenTime | Assignee | Organization | Event List | Notes |
|---|---|---|---|---|---|---|---|---|
| 3 | 408944640 - Failed Login Attempts - 306-31 | Open | 1 | 03/11/2019 11:41:02 | NGCP | None | [{“message”: “Failed User Logon”, “lastTime”: “03/11/2019 01:01:13”, “id”: {“value”: “144115188075855872|8850”}}] | [{“action”: “Open”, “timestamp”: “03/11/2019 11:41:02(GMT)”, “username”: “NGCP”, “content”: “Events Added: 144115188075855872|8850\n Events Removed:”, “changes”: [{“changeType”: “Events Added”, “changes”: [“144115188075855872|8850”]}, {“changeType”: “Events Removed”, “changes”: []}]}] |
10. Get details of a case event
Returns case event details.
Base Command
esm-get-case-event-list
Input
| Argument Name | Description | Required |
|---|---|---|
| ids | CSV list of event IDs | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| CaseEvents.ID | string | The ID of the event |
| CaseEvents.LastTime | date | The last updated time of the event |
| CaseEvents.Message | string | The message of the event |
Command Example
!esm-get-case-event-list ids=144115188075855872|8850,144115188075855872|9718
Context Example
{
"CaseEvents": [
{
"Message": "Failed User Logon",
"LastTime": "03/11/2019 01:01:13",
"ID": "144115188075855872|8850"
},
{
"Message": "User Logon",
"LastTime": "03/11/2019 11:09:37",
"ID": "144115188075855872|9718"
}
]
}
Human Readable Output
Case Events:
| ID | LastTime | Message |
|---|---|---|
| 144115188075855872|8850 | 03/11/2019 01:01:13 | Failed User Logon |
| 144115188075855872|9718 | 03/11/2019 11:09:37 | User Logon |
11. Add a status to a case
Adds a case status to a case.
Base Command
esm-add-case-status
Input
| Argument Name | Description | Required |
|---|---|---|
| name | The name of the case status | Required |
| show_in_case_pane | Whether the status will be shown in case pane | Optional |
Context Output
There is no context output for this command.
Command Example
!esm-add-case-status name=Deprecated
Human Readable Output
Added case status : Deprecated
12. Remove a status from a case
Deletes a case status from a case.
Base Command
esm-delete-case-status
Input
| Argument Name | Description | Required |
|---|---|---|
| name | The name of the case status to delete | Required |
Context Output
There is no context output for this command.
Command Example
esm-delete-case-status name=Pending
Human Readable Output
Deleted case status with ID: 8
13. Get a list of case organizations
Returns a list case organizations.
Base Command
esm-get-organization-list
Input
There are no input arguments for this command.
Context Output
| Path | Type | Description |
|---|---|---|
| Organizations.ID | number | Organization ID |
| Organizations.Name | string | Organization Name |
Command Example
!esm-get-organization-list
Context Example
{
"Organizations": [
{
"ID": 1,
"Name": "None"
}
]
}
Human Readable Output
Organizations:
| ID | Name |
|---|---|
| 1 | None |
14. Get a list of all users
Returns a list of all users.
Base Command
esm-get-user-list
Input
There are no input arguments for this command.
Context Output
| Path | Type | Description |
|---|---|---|
| EsmUser.ID | number | The ID of the user |
| EsmUser.Name | string | The ESM user name |
| EsmUser.Email | string | The email address of the user |
| EsmUser.SMS | string | The SMS details of the user |
| EsmUser.IsMaster | boolean | Whether the user is a master user |
| EsmUser.IsAdmin | boolean | Whether the user is an admin |
Command Example
!esm-get-user-list
Context Example
{
"EsmUser": [
{
"IsMaster": true,
"Name": "NGCP",
"SMS": "",
"ID": 1,
"IsAdmin": false,
"Email": ""
},
{
"IsMaster": false,
"Name": "POLICY",
"SMS": "",
"ID": 3,
"IsAdmin": false,
"Email": ""
},
{
"IsMaster": false,
"Name": "REPORT",
"SMS": "",
"ID": 2,
"IsAdmin": false,
"Email": ""
}
]
}
Human Readable Output
Users:
| ID | Name | SMS | IsMaster | IsAdmin | |
|---|---|---|---|---|---|
| 1 | NGCP | true | false | ||
| 3 | POLICY | false | false | ||
| 2 | REPORT | false | false |
15. Mark triggered alarms as acknowledged
Marks triggered alarms as acknowledged.
Base Command
esm-acknowledge-alarms
Input
| Argument Name | Description | Required |
|---|---|---|
| alarmIds | A CSV list of triggered alarm IDs to be marked acknowledged | Required |
Context Output
There is no context output for this command.
Command Example
!esm-acknowledge-alarms alarmIds=2,5,6
Human Readable Output
Alarms has been Acknowledged.
16. Mark triggered alarms as unacknowledged
Marks triggered alarms as unacknowledged.
Base Command
esm-unacknowledge-alarms
Input
| Argument Name | Description | Required |
|---|---|---|
| alarmIds | A CSV list of triggered alarm IDs to be marked unacknowledged | Required |
Context Output
There is no context output for this command.
Command Example
!esm-unacknowledge-alarms alarmIds="1,8,7"
Human Readable Output
Alarms has been Unacknowledged.
17. Delete triggered alarms
Deletes triggered alarms.
Base Command
esm-delete-alarms
Input
| Argument Name | Description | Required |
|---|---|---|
| alarmIds | A CSV list of triggered alarm IDs to be deleted | Required |
Context Output
There is no context output for this command.
Command Example
!esm-delete-alarms alarmIds=26
Human Readable Output
Alarms has been Deleted.
18. Get details for a triggered alarm
Returns details for a triggered alarm.
Base Command
esm-get-alarm-event-details
Input
| Argument Name | Description | Required |
|---|---|---|
| eventId | The event to get the details for. The ID can be retrieved from the esm-list-alarm-events command. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| EsmAlarmEvent.ID | string | Event ID |
| EsmAlarmEvent.SubType | string | Event type |
| EsmAlarmEvent.Severity | number | Event severity |
| EsmAlarmEvent.Message | string | Event message |
| EsmAlarmEvent.LastTime | date | Event time |
| EsmAlarmEvent.SrcIP | string | Source IP of the event |
| EsmAlarmEvent.DstIP | string | Destination IP of the event |
| EsmAlarmEvent.Cases | unknown | A list of related cases to the event |
| EsmAlarmEvent.Cases.ID | string | Case ID |
| EsmAlarmEvent.Cases.OpenTime | date | Case creation time |
| EsmAlarmEvent.Cases.Severity | number | Case severity |
| EsmAlarmEvent.Cases.Status | string | Case status |
| EsmAlarmEvent.Cases.Summary | string | Case summary |
| EsmAlarmEvent.DstMac | string | Destination MAC of the event |
| EsmAlarmEvent.SrcMac | string | Source MAC of the event |
| EsmAlarmEvent.DstPort | string | Destination port of the event |
| EsmAlarmEvent.SrcPort | string | Source port of the event |
| EsmAlarmEvent.FirstTime | date | The first time for the event |
| EsmAlarmEvent.NormalizedDescription | string | Normalized description of the event |
Command Example
!esm-get-alarm-event-details eventId="144115188075855872|9718"
Context Example
{
"EsmAlarmEvent": [
{
"DstIP": "192.168.1.25",
"FirstTime": "03/11/2019 11:09:37",
"Severity": 19,
"DstPort": "0",
"SrcPort": "0",
"DstMac": "00:00:00:00:00:00",
"SubType": "success",
"SrcIP": "52.15.91.198",
"Message": "User Logon",
"LastTime": "03/11/2019 11:09:37",
"ID": "144115188075855872|9718",
"NormalizedDescription": "The Login category indicates events related to logging in to hosts or services. Belongs to Authentication: The authentication category indicates events relating to system access.",
"SrcMac": "00:00:00:00:00:00"
}
]
}
Human Readable Output
Alarm Events:
| ID | SubType | Severity | Message | LastTime | SrcIP | SrcPort | DstIP | DstPort |
|---|---|---|---|---|---|---|---|---|
| 144115188075855872|9718 | success | 19 | User Logon | 03/11/2019 11:09:37 | 52.15.91.198 | 0 | 192.168.1.25 | 0 |
19. Get an event list related to an alarm
Returns an event list related to an alarm.
Base Command
esm-list-alarm-events
Input
| Argument Name | Description | Required |
|---|---|---|
| alarmId | The alarm to get the details for. The ID can be retrieved from the esm-fetch-alarms command. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| EsmAlarmEvent.ID | string | Event ID |
| EsmAlarmEvent.SubType | string | Event type |
| EsmAlarmEvent.Severity | number | Event severity |
| EsmAlarmEvent.Message | string | Event message |
| EsmAlarmEvent.LastTime | date | Event time |
| EsmAlarmEvent.SrcIP | string | Source IP of the event |
| EsmAlarmEvent.DstIP | string | Destination IP of the event |
| EsmAlarmEvent.Cases | unknown | A list of related cases to the event |
| EsmAlarmEvent.Cases.ID | string | Case ID |
| EsmAlarmEvent.Cases.OpenTime | date | Case creation time |
| EsmAlarmEvent.Cases.Severity | number | Case severity |
| EsmAlarmEvent.Cases.Status | string | Case status |
| EsmAlarmEvent.Cases.Summary | string | Case summary |
Command Example
!esm-list-alarm-events alarmId="24"
Context Example
{
"EsmAlarmEvent": [
{
"DstIP": "192.168.1.25",
"Severity": 25,
"SubType": "failure",
"SrcIP": "186.29.149.40",
"Message": "Failed User Logon",
"LastTime": "03/11/2019 01:44:27",
"ID": "144115188075855872|8919"
}
]
}
Human Readable Output
Alarm Events:
| ID | SubType | Severity | Message | LastTime | SrcIP | SrcPort | DstIP | DstPort |
|---|---|---|---|---|---|---|---|---|
| 144115188075855872|8919 | failure | 25 | Failed User Logon | 03/11/2019 01:44:27 | 186.29.149.40 | 192.168.1.25 |