OverviewThe purpose of this document is to describe: How the Webhook platform processes events, incidents, and detections How tags are used within agent 3.0 How tags are used with Log Relay, cloud based logging, and flows How to use the transform configuration file How to use the Webhook configuration file
Security incidents, detections, and events are supported by the Armor Webhook platform. Configuration files allow you to subscribe to events, detections, and incidents. Subscribed topics are then enriched with default values, values from the Armor tags implementation, and related to a Kibana link (if applicable). Each type of transform is labeled in the transformation configuration as: add_tag , add_dynamic_tag , and add_log_search_url . In addition, Webhook destinations can be configured with uri , header (s), and on_error email destinations. Tags Usage With Agent 3.0The latest Armor Agent supports new Command Line Interface (CLI) functions and customization, such as the selection of security services to install and leverage. In addition, tags can be created directly using the agent CLI as well as creating them directly with POST requests to the Armor Tags API. Below are the steps required to install and add tags through the Armor Core Agent. Install the Armor Agent Linux $ sudo mkdir /opt/armor && sudo curl -o /tmp/armor-linux.tar.gz https://agent.armor.com/latest/armor-linux.tar.gz && sudo tar zxvf /tmp/armor-linux.tar.gz -C /opt/armor && sudo /opt/armor/armor register --license XXXXX-XXXXX-XXXXX-XXXXX-XXXXX --region us-east-1 |
Windows
[System.Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem");[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;mkdir c:\.armor\opt; Invoke-WebRequest https://agent.armor.com/latest/armor-windows.zip -outfile c:\.armor\opt\armor-windows.zip;[System.IO.Compression.ZipFile]::ExtractToDirectory('c:\.armor\opt\armor-windows.zip','c:\.armor\opt'); c:\.armor\opt\armor.exe register --license XXXXX-XXXXX-XXXXX-XXXXX-XXXXX --region us-east-1 |
After installation, tags can be managed through the CLI command: ./armor tags create-tags
# ./armor tags create-tags key=value,key2=value2 |
Tags Usage For Log Relay, Coud Based Logging, and FlowsTags for Log Relay, cloud based logging, and flows are handled manually in the Armor platform. End users are required to gather unique IDs which Armor will use to create the resources in the tags endpoint. Once the correct tagging resource IDs are loaded, the Armor Webhook platform will automatically load them into enrichment for the detection of future security incidents. Log RelayLog Relay tags are identified using the Armor core instance ID of the Log Relay appliance and the corresponding unique identifier of the device sending the logs (found here).
The tags endpoint is then called with the Log Relay core instance ID and the device specific unique identifier e.g. (4f730b6e-1336-4302-b5bf-957478c4eb3d and host.example.com ): POST /tags/4f730b6e-1336-4302-b5bf-957478c4eb3d::host.example.com
//Request Body:
{
"tags":
[
{"Key":"id","Value":"companyX"},
{"Key":"index","Value":"production"}
]
} |
If the full resource Id (4f730b6e-1336-4302-b5bf-957478c4eb3d::host.example.com ) is not found, the base Log Relay core instance id (4f730b6e-1336-4302-b5bf-957478c4eb3d ) is referenced for tags information. |
If no tag resource Id is found, then add_dynamic_tag will not add any fields to the Webhook payload. |
Cloud Based LogsCloud based logs (e.g. Guard Duty and AWS Cloud Trail) are assigned unique identifiers from the Armor platform and require a log into AMP to gain access to them. The identifiers can be accessed from “HOSTNAME” column at https://portal.armor.com/security/log-management?activeTab=tab-External-Sources.

The tags endpoint is then called with: POST /tags/guardduty--#######8823--multi-azs
//Request Body:
{
"tags":
[
{"Key":"id","Value":"companyX"},
{"Key":"index","Value":"production"}
]
} |
FlowsFlow log collection is new to Armor and is subject to change as we update ingestion methods and device support. Currently, AWS VPC Flow logs are the only supported flow type. As customer flows are enabled in the Armor Platform, a flow collector endpoint is assigned in the SIEM. This endpoint binds all flow traffic to the specific customer account. Tagging is implemented at the customer account level when leveraging add_dynamic_tag to enrich flow logs in the Webhook platform. To gather the flow unique ID for the customer account, you will need an account on the Armor platform with IMC access. The flow configuration is available at: https://portal.armor.com/security/log-management?activeTab=tab-Flow-Sources. Flows can be activated for the customer account at https://portal.armor.com/security/log-management/new-source. Enable Flows for Customer Accounthttps://portal.armor.com/security/log-management/new-source 
Gather Unique Identifier for Flowshttps://portal.armor.com/security/log-management?activeTab=tab-Flow-Sources The tags endpoint is then called with POST /tags/siem_flow_107
//Request Body:
{
"tags":
[
{"Key":"id","Value":"companyX"},
{"Key":"index","Value":"production"}
]
} |
How To Use the Transform Configuration File
The transform configuration file is loaded into each customer account subscribed to one or all of the account and child account detection, incidents, and/or events. Whitelisting or blacklisting of child accounts at the parent level is not supported. All child accounts are automatically processed and require the end user to filter accounts or events if required. |
The configuration is broken into 6 parts: org_id , name , format , events , defaults , and transform . org_id name format events security_incident security_detection security_event
defaults “type": "add_tag" "key": "[nested].key" "value": "Alpha"
transform add_dynamic_tag add_log_search_url
{
"org_id": 1000,
"name": "Hello world config",
"format": "splunk",
"events": [
"security_incident",
"security_detection",
"security_event"
],
"defaults": [
{
"type": "add_tag",
"key": "rcn_idx",
"value": "Alpha"
},
{
"type": "add_tag",
"key": "rax_id",
"value": "Lotlux"
},
{
"type": "add_tag",
"key": "rms_id",
"value": "Cardify"
},
{
"type": "add_tag",
"key": "provider_id",
"value": "Home Ing"
}
],
"transform": [
{
"type": "add_dynamic_tag",
"key": "index",
"value": "{{index}}"
},
{
"type": "add_dynamic_tag",
"key": "[event].rax_id",
"value": "{{rax_id}}"
},
{
"type": "add_dynamic_tag",
"key": "[event].rms_id",
"value": "{{rms_id}}"
},
{
"type": "add_dynamic_tag",
"key": "[event].provider_id",
"value": "{{provider_id}}"
},
{
"type": "add_dynamic_tag",
"key": "[event].provider_type",
"value": "{{provider_type}}"
},
{
"type": "add_log_search_url",
"key": "link_event_kibana",
"value": "event_uuid"
}
]
} |
How To Use the Webhook Configuration FileThe Webhook configuration file is loaded into each customer account subscribing to one or all of the account and child account detections, incidents, and/or events. It contains the target of the Webhook and error handling options. The configuration is broken into 6 parts: org_id, name, on_error, and values. At release, on_error supports ‘email’ type only and values only supports a single uri and any number of defined header types. All headers are added to the Webhook request automatically. org_id Used by Armor to track the account for which the configuration applies. name A short name describing the Webhook configuration on_error Use this section to define how errors can be received if the destination is unavailable or inaccessible for delivery. “type": "email" "key": "value"
values This section contains the uri and header(s) for the target destination Webhook. "type": "uri" The full URI (with port and scheme) of the target destination Webhook. "type": "header" Allows the control of headers placed in the request to the target destination. Headers are loaded “as is” with no attempt sanitize what gets placed in the request. This allows for full customization of any header formats.
{
"org_id": 3468,
"name": "Splunk HEC 01",
"on_error": {
"type": "email",
"value": "something@domain.tld"
},
"values": [
{
"type": "uri",
"key": "endpoint",
"value": "https://x:hec_access_token@hec.rackspace.com:8080"
},
{
"type": "header",
"key": "Authorization",
"value": "Splunk hec_access_token"
},
{
"type": "header",
"key": "Accept",
"value": "value2"
}
]
} |
|