收集 Cisco Secure ACS 日志
本文档介绍了如何使用 Google 安全运营转发器收集 Cisco Secure Access Control Server (ACS) 日志。
如需了解详情,请参阅将数据提取到 Google 安全运营中心。
注入标签标识将原始日志数据标准化为结构化 UDM 格式的解析器。本文档中的信息适用于具有 CISCO_ACS
注入标签的解析器。
配置 Cisco Secure ACS
- 使用管理员凭据登录 Cisco Secure ACS 控制台。
- 在 Cisco Secure ACS 控制台中,依次选择系统管理 > 配置 > 日志配置 > 远程日志目标。
- 点击创建。
在创建窗口中,为以下字段指定值:
字段 说明 名称 Google Security Operations 转发器的名称。 说明 Google Security Operations 转发器的说明。 IP 地址 Google Security Operations 转发器的 IP 地址。 使用高级 syslog 选项 选择此选项可启用高级 syslog 选项。 目标类型 选择 TCP syslog 或 UDP syslog。 端口 使用高端口,例如 10514。 设施代码 LOCAL6(代码 = 22;默认)。 密码长度上限 建议值为 1024。 点击提交。系统会显示远程日志目标窗口,其中包含新的远程日志目标配置。
在 Cisco Secure ACS 控制台中,依次选择系统管理 > 配置 > 日志配置 > 日志记录类别 > 按实例。
选择 ACS,然后点击 Configure(配置)。
在按实例窗口中,选择一个日志记录类别,然后点击修改。
在常规标签页中,对于某些日志记录类别,日志记录严重级别必须设为默认级别或供应商提供的级别。
对于 Cisco Secure ACS,所有日志记录类别的默认严重程度均为警告,但无法更改严重程度的类别除外,例如 AAA 审核通知、会计通知、管理和操作审核通知以及系统统计通知。
点击远程 syslog 目标标签页,然后将新创建的远程目标从可用目标移至所选目标。
点击提交。
如需为其他日志记录类别配置远程目标,请重复第 8 到 10 步。
配置 Google Security Operations 转发器和 syslog 以提取 Cisco Secure ACS 日志
- 依次前往 SIEM 设置 > 转发器。
- 点击添加新转发器。
- 在转发器名称字段中,为转发器输入一个唯一的名称。
- 点击提交。系统会添加转发器,并显示添加收集器配置窗口。
- 在收集器名称字段中,输入名称。
- 选择 Cisco ACS 作为日志类型。
- 选择 Syslog 作为收集器类型。
- 配置以下必需的输入参数:
- 协议:指定协议。
- 地址:指定收集器所在的目标 IP 地址或主机名,以及 syslog 数据的地址。
- 端口:指定收集器所在的目标端口,以及收集器监听 syslog 数据的端口。
- 点击提交。
如需详细了解 Google Security Operations 转发器,请参阅 Google Security Operations 转发器文档。 如需了解每种转发器类型的要求,请参阅按类型配置转发器。 如果您在创建转发器时遇到问题,请与 Google 安全运营支持团队联系。
字段映射参考文档
此解析器会处理 Cisco ACS 日志,包括身份验证、计费、诊断和系统统计信息。它使用 Grok 模式从各种日志格式(SYSLOG + KV、LEEF)中提取字段,对时间戳和时区进行标准化,并将关键字段映射到 UDM,使用针对身份验证成功/失败、TACACS+ 会计和 RADIUS 事件的特定逻辑处理不同的日志类型。它还会通过设备信息和身份验证详细信息等其他字段丰富 UDM。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
Acct-Authentic |
additional.fields[].value.string_value |
值取自 Acct-Authentic 字段。 |
Acct-Delay-Time |
additional.fields[].value.string_value |
值取自 Acct-Delay-Time 字段。 |
Acct-Input-Octets |
additional.fields[].value.string_value |
值取自 Acct-Input-Octets 字段。 |
Acct-Input-Packets |
additional.fields[].value.string_value |
值取自 Acct-Input-Packets 字段。 |
Acct-Output-Octets |
additional.fields[].value.string_value |
值取自 Acct-Output-Octets 字段。 |
Acct-Output-Packets |
additional.fields[].value.string_value |
值取自 Acct-Output-Packets 字段。 |
Acct-Session-Id |
additional.fields[].value.string_value |
值取自 Acct-Session-Id 字段。 |
Acct-Session-Time |
additional.fields[].value.string_value |
值取自 Acct-Session-Time 字段。 |
Acct-Status-Type |
additional.fields[].value.string_value |
值取自 Acct-Status-Type 字段。 |
Acct-Terminate-Cause |
additional.fields[].value.string_value |
值取自 Acct-Terminate-Cause 字段。 |
ACSVersion |
additional.fields[].value.string_value |
值取自 ACSVersion 字段。 |
AD-Domain |
principal.group.group_display_name |
值取自 AD-Domain 字段。 |
AD-IP-Address |
principal.ip |
值取自 AD-IP-Address 字段。 |
Called-Station-ID |
additional.fields[].value.string_value |
值取自 Called-Station-ID 字段。 |
Calling-Station-ID |
additional.fields[].value.string_value |
值取自 Calling-Station-ID 字段。 |
Class |
additional.fields[].value.string_value |
值取自 Class 字段。 |
CmdSet |
(未映射) | 未映射到 IDM 对象。 |
ConfigVersionId |
additional.fields[].value.number_value |
值取自 ConfigVersionId 字段并转换为浮点值。 |
DestinationIPAddress |
target.ip ,intermediary.ip |
值取自 DestinationIPAddress 字段。intermediary.ip 派生自 Device IP Address 。 |
DestinationPort |
target.port |
值取自 DestinationPort 字段并转换为整数。 |
Device IP Address |
intermediary.ip |
值取自 Device IP Address 字段。 |
Device Port |
intermediary.port |
值取自 Device Port 字段并转换为整数。 |
DetailedInfo |
security_result.summary 、security_result.description 、security_result.action |
如果 DetailedInfo 为“Authentication succeed”(身份验证成功),security_result.summary 为“successful login occurred”(成功登录),security_result.action 为 ALLOW,如果 DetailedInfo 包含“指定的用户名或密码无效”,security_result.summary 为“发生登录失败”,security_result.action 为“屏蔽”,security_result.description 派生自 log_header 。 |
Framed-IP-Address |
principal.ip |
值取自 Framed-IP-Address 字段。 |
Framed-Protocol |
additional.fields[].value.string_value |
值取自 Framed-Protocol 字段。 |
NAS-IP-Address |
target.ip |
值取自 NAS-IP-Address 字段。 |
NAS-Port |
additional.fields[].value.string_value |
值取自 NAS-Port 字段。 |
NAS-Port-Id |
target.port |
值取自 NAS-Port-Id 字段并转换为整数。 |
NAS-Port-Type |
additional.fields[].value.string_value |
值取自 NAS-Port-Type 字段。 |
NetworkDeviceName |
target.hostname |
值取自 NetworkDeviceName 字段。 |
Protocol |
additional.fields[].value.string_value |
值取自 Protocol 字段。 |
RadiusPacketType |
(未映射) | 未映射到 IDM 对象。 |
Remote-Address |
principal.ip ,target.ip |
值取自 Remote-Address 字段,并解析为 IP 地址。对于身份验证事件,它会映射到 principal.ip ;对于结算和诊断事件,它会映射到 target.ip 。 |
RequestLatency |
additional.fields[].value.string_value |
值取自 RequestLatency 字段。 |
Response |
principal.user.userid |
如果 Response 包含“User-Name”,系统会提取用户名并将其映射到 principal.user.userid 。 |
SelectedAccessService |
additional.fields[].value.string_value |
值取自 SelectedAccessService 字段。 |
SelectedAuthenticationIdentityStores |
security_result.detection_fields[].value |
值取自 SelectedAuthenticationIdentityStores 字段。 |
SelectedAuthorizationProfiles |
security_result.detection_fields[].value |
值取自 SelectedAuthorizationProfiles 字段。 |
Service-Type |
additional.fields[].value.string_value |
值取自 Service-Type 字段。 |
Tunnel-Client-Endpoint |
additional.fields[].value.string_value |
值取自 Tunnel-Client-Endpoint 字段,并解析为 IP 地址。 |
User |
target.user.userid |
值取自 User 字段。 |
UserName |
target.user.userid ,principal.mac |
如果 UserName 是 MAC 地址,则系统会对其进行解析并将其映射到 principal.mac 。否则,它会映射到 target.user.userid 。 |
ac-user-agent |
network.http.user_agent |
值取自 ac-user-agent 字段。 |
cat |
metadata.description |
值取自 cat 字段。 |
device-mac |
principal.mac |
系统会从 device-mac 字段中提取值,添加英文冒号,并将值转换为小写形式。如果 device-mac 为“00”,则会替换为“00:00:00:00:00:00”。 |
device-platform |
principal.asset.platform_software.platform |
如果 device-platform 为“win”,则将值“WINDOWS”分配给 principal.asset.platform_software.platform 。 |
device-platform-version |
principal.asset.platform_software.platform_version |
值取自 device-platform-version 字段。 |
device-public-mac |
principal.mac |
值取自 device-public-mac 字段,连字符会替换为英文冒号,并且值会转换为小写形式。 |
device-type |
principal.asset.hardware.model |
值取自 device-type 字段。 |
device-uid |
principal.asset.asset_id |
值取自 device-uid 字段,并在前面附加“ASSET ID:”。 |
device-uid-global |
principal.asset.product_object_id |
值取自 device-uid-global 字段。 |
hostname |
principal.hostname |
值取自 hostname 字段。 |
ip:source-ip |
principal.ip |
值取自 ip:source-ip 字段。 |
kv.ADDomain |
(未映射) | 未映射到 IDM 对象。 |
kv.Airespace-Wlan-Id |
(未映射) | 未映射到 IDM 对象。 |
kv.AuthenticationIdentityStore |
(未映射) | 未映射到 IDM 对象。 |
kv.AVPair |
(未映射) | 未映射到 IDM 对象。 |
kv.CVPN3000/ASA/PIX7.x-DAP-Tunnel-Group-Name |
(未映射) | 未映射到 IDM 对象。 |
kv.CVPN3000/ASA/PIX7.x-Group-Based-Address-Pools |
(未映射) | 未映射到 IDM 对象。 |
kv.ExternalGroups |
(未映射) | 未映射到 IDM 对象。 |
kv.FailureReason |
(未映射) | 未映射到 IDM 对象。 |
kv.IdentityAccessRestricted |
(未映射) | 未映射到 IDM 对象。 |
kv.IdentityGroup |
(未映射) | 未映射到 IDM 对象。 |
kv.NAS-Identifier |
(未映射) | 未映射到 IDM 对象。 |
kv.SelectedShellProfile |
(未映射) | 未映射到 IDM 对象。 |
kv.ServiceSelectionMatchedRule |
(未映射) | 未映射到 IDM 对象。 |
kv.State |
(未映射) | 未映射到 IDM 对象。 |
kv.Step |
(未映射) | 未映射到 IDM 对象。 |
kv.Tunnel-Medium-Type |
(未映射) | 未映射到 IDM 对象。 |
kv.Tunnel-Private-Group-ID |
(未映射) | 未映射到 IDM 对象。 |
kv.Tunnel-Type |
(未映射) | 未映射到 IDM 对象。 |
kv.UseCase |
(未映射) | 未映射到 IDM 对象。 |
kv.UserIdentityGroup |
(未映射) | 未映射到 IDM 对象。 |
kv.VendorSpecific |
(未映射) | 未映射到 IDM 对象。 |
kv.attribute-131 |
(未映射) | 未映射到 IDM 对象。 |
kv.attribute-89 |
(未映射) | 未映射到 IDM 对象。 |
kv.cisco-av-pair |
(未映射) | 未映射到 IDM 对象。 |
kv.cisco-av-pair:CiscoSecure-Group-Id |
(未映射) | 未映射到 IDM 对象。 |
leef_version |
(未映射) | 未映射到 IDM 对象。 |
log_header |
metadata.description |
值取自 log_header 字段。 |
log_id |
metadata.product_log_id |
值取自 log_id 字段。 |
log_type |
metadata.product_event_type |
值取自 log_type 字段。 |
message_severity |
(未映射) | 未映射到 IDM 对象。 |
product |
metadata.product_name |
值取自 product 字段。 |
product_version |
metadata.product_version |
值取自 product_version 字段。 |
server_host |
target.hostname |
值取自 server_host 字段。 |
timestamp |
metadata.event_timestamp |
值取自 timestamp 字段和 timezone 字段(移除英文冒号后)。系统会将合并后的值解析为时间戳。 |
url |
network.dns.questions[].name |
值取自 url 字段。 |
vendor |
metadata.vendor_name |
值取自 vendor 字段。最初设为“GENERIC_EVENT”,然后可能会根据 log_type 和解析的字段进行覆盖。可以是“USER_LOGIN”“USER_UNCATEGORIZED”“NETWORK_DNS”“NETWORK_CONNECTION”“STATUS_UPDATE”或“STATUS_UNCATEGORIZED”。最初设为“Cisco”,然后可能会被 vendor 字段覆盖。最初设为“ACS”,然后可能会被 product 字段覆盖。设置为“CISCO_ACS”。设置为“USERNAME_PASSWORD”。设置为“TACACS”。对于 RADIUS 计费和诊断事件,请将其设置为“UDP”。对于 DNS 事件,请将其设置为“DNS”。派生自 security_action 字段,该字段的设置取决于登录是否成功。对于成功登录,将其设置为“successful login occurred”(发生了成功登录);对于登录失败,将其设置为“failed login occurred”(发生了登录失败)。对于某些身份存储区诊断事件,还可以设置为“已通过”。将其设置为“LOW”表示登录尝试失败。通过在 device-uid 字段前面附加“ASSET ID:”来构建。 |
变化
2023-09-26
- 增强功能 -
- 将“hostname”初始化为 null,并在将“metadata.event_type”设置为“STATUS_UPDATE”之前添加了主机名非 null 检查。
- 在映射到 UDM 字段之前,向“kv.DeviceIPAddress”“kv.Remote-Address”添加了有效 IP 地址检查。
2022-08-19
- 增强功能 -
- 将“User-Name”映射到“principal.user.userid”。
- 将“ip:source-ip”重命名为“source_ip”,并将其映射到“principal.ip”。
- 将“kv.audit-session-id”重命名为“kv.audit_session_id”,并将其映射到“network.session_id”。
- 将“kv.AuthenticationMethod”映射到“additional.fields”。
- 将“kv.SelectedAccessService”映射到“additional.fields”。
- 将“kv.SelectedAuthorizationProfiles”映射到“security_result.detection_fields”。
- 将“kv.SelectedAuthenticationIdentityStores”映射到“security_result.detection_fields”。
- 将“kv.device-uid-global”映射到“principal.asset.product_object_id”。
- 将“kv.device-uid”映射到“principal.asset.asset_id”。
- 将“metadata.event_type”映射到“USER_UNCATEGORIZED”,其中 kv.DestinationIPAddress、kv.NAS-IP-Address、kv.NAS-IP-Address、kv.UserName 和 kv.NetworkDeviceName 为 null。
- 添加了对 LEEF 格式日志的支持。
2022-06-14
- 增强功能 - 修改了 grok,以解析因存在多个空格而无法解析的 log_type =“CSCOacs_Passed_Authentications”日志。
- 针对日志类型“CSCOacs_RADIUS_Accounting”,将“device-mac”的值替换为了虚构值“00:00:00:00:00:00”,以防出现无效值 (00)。
2022-06-06
- 增强功能 - 解析了类型为“CSCOacs_Passed_Authentications”的日志,其中不存在“DestinationIPAddress”或“NAS-IP-Address”。
- 将类型为“CSCOacs_Passed_Authentications”的日志的 metadata.event_type 从“USER_UNCATEGORIZED”修改为“USER_LOGIN”
2022-05-05
- 增强功能 - 系统会解析并丢弃不含消息代码的新提取日志。
2022-04-27
- 增强功能 - 解析了 log_type=CISE_TACACS_Accounting 的日志。
需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。