Cisco Secure Access - IPS
Overview
The Cisco Secure Access IPS logs show the traffic, events, and possible threats detected by the Secure Access Intrusion Prevention System.
- Vendor: Cisco
- Supported environment: Cloud
- Detection based on: Security Alerts, Telemetry
Warning
Important note - This format is currently in beta. We highly value your feedback to improve its performance.
Configure
This section will guide you through configuring Cisco Secure Access to forward logs to Sekoia.io using a Cisco-managed Amazon S3 bucket.
Prerequisites
- Full Admin user role in Cisco Secure Access. For more information, see the Manage Accounts documentation.
- Access to Sekoia.io Intakes and Playbook pages with write permissions.
Step 1 — Configure the Cisco-Managed S3 Bucket
Cisco Secure Access can export your logs to a Cisco-managed Amazon S3 bucket. Cisco configures all managed buckets to use Amazon Server-Side Encryption with S3-Managed Keys (SSE-S3, AES-256). Access is provided via AWS IAM credentials.
- In the Cisco Secure Access dashboard, navigate to
Admin > Log Management. - Click
Set up cloud storageand select Cisco. -
Select a Region — choose the region closest to you to minimize latency when downloading logs.
Warning
The selected region cannot be changed later without deleting your current settings and starting over. Not all AWS regions are available.
-
Select a Retention Duration — choose 7, 14, or 30 days.
Note
Beyond the selected time period, all data is purged and cannot be retrieved. A shorter duration is recommended if your ingestion cycle is frequent.
-
Click
Save. Cisco Secure Access activates log export to the S3 bucket. When activation is complete, the Amazon S3 Summary page appears. -
Copy the Access Key and Secret Key and store them in a safe place.
Warning
The Access Key and Secret Key are displayed only once. If you lose them, you must regenerate them by rotating the keys in Cisco Secure Access.
-
Click
Done.
Step 2 — Create the Intake
Configure Your Intake
This section will guide you through creating the intake object in Sekoia, which provides a unique identifier called the "Intake key." The Intake key is essential for later configuration, as it references the Community, Entity, and Parser (Intake Format) used when receiving raw events on Sekoia.
- Go to the Sekoia Intake page.
- Click on the
+ New Intakebutton at the top right of the page. - Search for your Intake by the product name in the search bar.
- Give it a Name and associate it with an Entity (and a Community if using multi-tenant mode).
- Click on
Create.
Note
For more details on how to use the Intake page and to find the Intake key you just created, refer to this documentation.
Step 3 — Configure the Connector
Configure Your Playbook
This section will assist you in pulling remote logs from Sekoia and sending them to the intake you previously created.
- Go to the Sekoia playbook page.
- Click on the
+ New playbookbutton at the top right of the page. - Select
Create a playbook from scratch, and clickNext. - Give it a Name and a Description, and click
Next. - Choose a trigger from the list by searching for the name of the product, and click
Create. - A new Playbook page will be displayed. Click on the module in the center of the page, then click on the Configure icon.
- On the right panel, click on the
Configurationtab. - Select an existing Trigger Configuration (from the account menu) or create a new one by clicking on
+ Create new configuration. - Configure the Trigger based on the Actions Library (for instance, see here for AWS modules), then click
Save. - Click on
Saveat the top right of the playbook page. - Activate the playbook by clicking on the "On / Off" toggle button at the top right corner of the page.
When selecting the trigger, choose Fetch new logs on S3 (without SQS).
Before configuring the connector, retrieve the Data path from the Cisco Secure Access Amazon S3 Summary page. It looks like this:
s3://cisco-managed-eu-central-1/1234567_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0
From this path:
- the bucket name is the first segment after
s3://— here,cisco-managed-eu-central-1. - the base prefix is the second segment — here,
1234567_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0. Cisco stores each log type in a dedicated subfolder under this prefix.
In the connector configuration, set the following fields:
- AWS Region (
aws_region_name): the region you selected when configuring the S3 bucket in Cisco Secure Access (for example,eu-central-1). - AWS Access Key (
aws_access_key): the Access Key copied from the Cisco Secure Access Amazon S3 Summary page. - AWS Secret Access Key (
aws_secret_access_key): the Secret Key copied from the Cisco Secure Access Amazon S3 Summary page. - Bucket (
bucket): the bucket name extracted from the Data path (for example,cisco-managed-eu-central-1). - Prefix filter (
prefix_filter): the base prefix followed by the subfolder matching the log type you want to collect. Since the bucket holds several log types, this filter ensures the connector only ingests the logs for this intake. - Intake key (
intake_key): the intake key generated when you created the intake in Step 2.
Cisco Secure Access stores each log type in a dedicated subfolder under the base prefix. Set the Prefix filter to <base_prefix>/<subfolder>, using the subfolder that matches the intake you are configuring:
| Intake | Subfolder | Example prefix filter |
|---|---|---|
| Cisco Secure Access - DNS | dnslogs |
1234567_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0/dnslogs |
| Cisco Secure Access - Web | proxylogs |
1234567_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0/proxylogs |
| Cisco Secure Access - Cloud Firewall | firewalllogs |
1234567_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0/firewalllogs |
| Cisco Secure Access - IPS | intrusionlogs |
1234567_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0/intrusionlogs |
| Cisco Secure Access - File Events | fileeventlogs |
1234567_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0/fileeventlogs |
Note
Replace 1234567_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0 with the base prefix extracted from your own Cisco Secure Access Data path.
Event Categories
The following table lists the data source offered by this integration.
| Data Source | Description |
|---|---|
Network device logs |
None |
In details, the following table denotes the type of events produced by this integration.
| Name | Values |
|---|---|
| Kind | alert |
| Category | intrusion_detection, network |
| Type | info |
Transformed Events Samples after Ingestion
This section demonstrates how the raw logs will be transformed by our parsers. It shows the extracted fields that will be available for use in the built-in detection rules and hunting activities in the events page. Understanding these transformations is essential for analysts to create effective detection mechanisms with custom detection rules and to leverage the full potential of the collected data.
{
"message": "\"2024-09-11 23:17:13\",\"Firewall Tunnel Name\",\"Network Tunnels\",\"1\",\"16606\",\"SERVER-ORACLE BEA WebLogic Server Plug-ins Certificate overflow attempt\",\"50516\",\"HIGH\",\"Attempted User Privilege Gain\",\"cve-2009-1016\",\"TCP\",\"12345\",\"3.3.3.3\",\"80\",\"1.1.1.1\",\"40762\",\"Would Block\",\"IDS\",\"50516\",\"S2C\",\"21171\",\"PROFILE\",\"eu-central-2b\",\"\",\"\",\"\",\"REDACTED\",\"2.2.2.2\",\"TRUE\",\"FTD\",\"12321321312\",\"\",\"e846afe0f3c8a87f\"",
"event": {
"action": "would block",
"category": [
"intrusion_detection",
"network"
],
"dataset": "ips",
"kind": "alert",
"outcome": "failure",
"type": [
"info"
]
},
"@timestamp": "2024-09-11T23:17:13Z",
"cisco_secure_access": {
"ips": {
"attack_classification": "Attempted User Privilege Gain",
"config_type": "PROFILE",
"direction": "S2C",
"egress": true,
"egress_ip": "2.2.2.2",
"enforced_by": "FTD",
"event_correlation_id": "e846afe0f3c8a87f",
"ftd_enforcement_id": "12321321312",
"generator_id": "1",
"identities": [
"Firewall Tunnel Name"
],
"identity_types": [
"Network Tunnels"
],
"operation_mode": "IDS",
"policy_resource_id": "50516",
"session_id": "12345",
"severity": "HIGH",
"signature_id": "16606",
"signature_list_id": "50516"
}
},
"cloud": {
"region": "eu-central-2b"
},
"destination": {
"address": "1.1.1.1",
"ip": "1.1.1.1",
"port": 40762
},
"network": {
"transport": "tcp"
},
"observer": {
"product": "Secure Access",
"type": "ids",
"vendor": "Cisco"
},
"organization": {
"id": "REDACTED"
},
"related": {
"ip": [
"1.1.1.1",
"3.3.3.3"
]
},
"rule": {
"id": "21171",
"name": "SERVER-ORACLE BEA WebLogic Server Plug-ins Certificate overflow attempt"
},
"source": {
"address": "3.3.3.3",
"ip": "3.3.3.3",
"port": 80
},
"vulnerability": {
"id": [
"cve-2009-1016"
]
}
}
Extracted Fields
The following table lists the fields that are extracted, normalized under the ECS format, analyzed and indexed by the parser. It should be noted that infered fields are not listed.
| Name | Type | Description |
|---|---|---|
@timestamp |
date |
Date/time when the event originated. |
cisco_secure_access.ips.application_id |
keyword |
The ID of the destination application. |
cisco_secure_access.ips.attack_classification |
keyword |
The category of attack detected by a rule that is part of a more general type of attack class. |
cisco_secure_access.ips.casi_category_ids |
keyword |
The name of the Application category to which the App ID belongs. |
cisco_secure_access.ips.config_type |
keyword |
The type of the IPS configuration. |
cisco_secure_access.ips.data_center |
keyword |
The name of the data center that processed the user-generated traffic. |
cisco_secure_access.ips.direction |
keyword |
The direction of the packet that matches the signature. |
cisco_secure_access.ips.egress |
boolean |
TRUE indicates that the egress IP was a reserved IP. |
cisco_secure_access.ips.egress_ip |
ip |
The public IP address assigned to a session as it exits the Secure Access ZTA infrastructure en route to the destination application. |
cisco_secure_access.ips.enforced_by |
keyword |
The Secure Access component or service that enforced the policy or control related to this event (e.g., Firewall, Web Proxy). |
cisco_secure_access.ips.event_correlation_id |
keyword |
A unique identifier generated for each network request, the Event Correlation ID stitches together all related events across various security services (Firewall, SWG, ZTNA) to provide a unified, end-to-end view of a single traffic flow. |
cisco_secure_access.ips.ftd_enforcement_id |
keyword |
The unique identifier of the enforcement action taken by a Firepower Threat Defense (FTD) device integrated with Secure Access. |
cisco_secure_access.ips.ftd_enforcement_name |
keyword |
The name or type of enforcement action taken by a FTD device integrated with Secure Access (e.g., Malware Block, URL Category Block). |
cisco_secure_access.ips.generator_id |
keyword |
Unique ID assigned to the part of the IPS that generated the event. |
cisco_secure_access.ips.identities |
keyword |
All tunnel identities that are associated with this request. |
cisco_secure_access.ips.identity_types |
keyword |
The type of identity that is associated with this request. |
cisco_secure_access.ips.operation_mode |
keyword |
The mode of operation of the IPS, either detection or prevention. |
cisco_secure_access.ips.policy_resource_id |
keyword |
The ID of the IPS policy resource. |
cisco_secure_access.ips.session_id |
keyword |
The unique identifier of a session, which is used to group the correlated events between various services. |
cisco_secure_access.ips.severity |
keyword |
The severity level of the rule. |
cisco_secure_access.ips.signature_id |
keyword |
Used to uniquely identify signatures. |
cisco_secure_access.ips.signature_list_id |
keyword |
Unique ID assigned to a Default or Custom Signature List. |
cloud.region |
keyword |
Region in which this host, resource, or service is located. |
destination.ip |
ip |
IP address of the destination. |
destination.port |
long |
Port of the destination. |
event.action |
keyword |
The action captured by the event. |
event.category |
keyword |
Event category. The second categorization field in the hierarchy. |
event.dataset |
keyword |
Name of the dataset. |
event.kind |
keyword |
The kind of the event. The highest categorization field in the hierarchy. |
event.outcome |
keyword |
The outcome of the event. The lowest level categorization field in the hierarchy. |
event.type |
keyword |
Event type. The third categorization field in the hierarchy. |
network.transport |
keyword |
Protocol Name corresponding to the field iana_number. |
observer.product |
keyword |
The product name of the observer. |
observer.type |
keyword |
The type of the observer the data is coming from. |
observer.vendor |
keyword |
Vendor name of the observer. |
organization.id |
keyword |
Unique identifier for the organization. |
rule.id |
keyword |
Rule ID |
rule.name |
keyword |
Rule name |
source.ip |
ip |
IP address of the source. |
source.port |
long |
Port of the source. |
vulnerability.id |
keyword |
ID of the vulnerability. |
For more information on the Intake Format, please find the code of the Parser, Smart Descriptions, and Supported Events here.
Detection section
The following section provides information for those who wish to learn more about the detection capabilities enabled by collecting this intake. It includes details about the built-in rule catalog, event categories, and ECS fields extracted from raw events. This is essential for users aiming to create custom detection rules, perform hunting activities, or pivot in the events page.
Related Built-in Rules
The following Sekoia.io built-in rules match the intake Cisco Secure Access - IPS. This documentation is updated automatically and is based solely on the fields used by the intake which are checked against our rules. This means that some rules will be listed but might not be relevant with the intake.
SEKOIA.IO x Cisco Secure Access - IPS on ATT&CK Navigator
Cryptomining
Detection of domain names potentially related to cryptomining activities.
- Effort: master
Dynamic DNS Contacted
Detect communication with dynamic dns domain. This kind of domain is often used by attackers. This rule can trigger false positive in non-controlled environment because dynamic dns is not always malicious.
- Effort: master
Exfiltration Domain
Detects traffic toward a domain flagged as a possible exfiltration vector.
- Effort: master
Internet Scanner
Detects known scanner IP addresses. Alert is only raised when the scan hits an opened port, on TCP or UDP. This could be a very noisy rule, so be careful to check your detection perimeter before activation.
- Effort: master
Internet Scanner Target
Detects known scanner IP addresses. Alert is only raised when the scan hits an opened port, on TCP or UDP and group by target address. This could be a very noisy rule, so be careful to check your detection perimeter before activation.
- Effort: master
Remote Access Tool Domain
Detects traffic toward a domain flagged as a Remote Administration Tool (RAT).
- Effort: master
SEKOIA.IO Intelligence Feed
Detect threats based on indicators of compromise (IOCs) collected by SEKOIA's Threat and Detection Research team.
- Effort: elementary
Sekoia.io Activity Logs Rule Deactivation Bulk
Detects a massive rule deactivation observed threw Sekoia.io activity logs.
- Effort: master
Sekoia.io EICAR Detection
Detects observables in Sekoia.io CTI tagged as EICAR, which are fake samples meant to test detection.
- Effort: master
TOR Usage
Detects TOR usage, based on the IP address and the destination port (filtered on NTP). TOR is short for The Onion Router, and it gets its name from how it works. TOR intercepts the network traffic from one or more apps on user’s computer, usually the user web browser, and shuffles it through a number of randomly-chosen computers before passing it on to its destination. This disguises user location, and makes it harder for servers to pick him/her out on repeat visits, or to tie together separate visits to different sites, this making tracking and surveillance more difficult. Before a network packet starts its journey, user’s computer chooses a random list of relays and repeatedly encrypts the data in multiple layers, like an onion. Each relay knows only enough to strip off the outermost layer of encryption, before passing what’s left on to the next relay in the list.
- Effort: master
TOR Usage Generic Rule
Detects TOR usage globally, whether the IP is a destination or source. TOR is short for The Onion Router, and it gets its name from how it works. TOR intercepts the network traffic from one or more apps on user’s computer, usually the user web browser, and shuffles it through a number of randomly-chosen computers before passing it on to its destination. This disguises user location, and makes it harder for servers to pick him/her out on repeat visits, or to tie together separate visits to different sites, this making tracking and surveillance more difficult. Before a network packet starts its journey, user’s computer chooses a random list of relays and repeatedly encrypts the data in multiple layers, like an onion. Each relay knows only enough to strip off the outermost layer of encryption, before passing what’s left on to the next relay in the list.
- Effort: master