mitre-attack/bzar

GitHub: mitre-attack/bzar

基于 Zeek 的网络检测脚本集,通过分析 SMB 和 DCE-RPC 流量识别 MITRE ATT&CK 战术技术。

Stars: 621 | Forks: 84

# BZAR (Bro/Zeek 基于 ATT&CK 的分析与报告) ## 1. 介绍 BZAR 项目使用 Bro/Zeek 网络安全监视器来检测基于 ATT&CK 的对抗性活动。 [MITRE ATT&CK](https://attack.mitre.org/) 是一个公开可用的、经过整理的网络对手行为知识库,反映了对手生命周期的各个阶段以及已知他们所针对的平台。ATT&CK 模型包含了众多威胁组织的行为。 BZAR 是一套 Bro/Zeek 脚本,利用 SMB 和 DCE-RPC 协议分析器以及文件提取框架来检测类似 ATT&CK 的活动,发出通知,并写入 Notice Log。 ### BZAR 和 CAR BZAR 是 [Cyber Analytics Repository](https://car.mitre.org) 的一个组件。它最初位于该库中,但由于 Zeek 包的要求,它被移到了自己的代码库中。它仍然作为 CAR 的一个组件进行管理。 ## 2. 针对您的环境调整 BZAR BZAR 必须针对您的特定操作环境进行调整。例如,BZAR 检测到的某些类似 ATT&CK 的活动在您的环境中可能是授权且合法的活动。因此,这些检测会在 Notice Log 中产生大量不必要的条目。可以通过使用 BZAR 白名单以及切换检测和/或报告的开关来进行调整。有关更多信息,请参阅 CHANGES 文档。 ## 3. 用于检测类似 ATT&CK 活动的复杂分析 BZAR 分析使用 Bro/Zeek 汇总统计 框架,将 SMB 和 DCE-RPC 流量中的两个或更多简单指标结合起来,以更高的置信度检测类似 ATT&CK 的活动。下面描述了三 (3) 个 BZAR 分析。 ### 3.1. 用于 ATT&CK 横向移动和执行的 SumStats 分析 如果在指定的时间段内,观察到 SMB 横向移动指标(例如,仅针对 Windows 管理文件共享:ADMIN$ 或 C$ 的 SMB 文件写入)与针对同一(目标)主机的 DCE-RPC 执行指标同时出现,则使用 SumStats 引发 Bro/Zeek Notice 事件。 #### 相关的 ATT&CK 技术 * [T1021.002 远程服务:SMB/Windows 管理共享](https://attack.mitre.org/techniques/T1021/002/)(仅限文件共享,非命名管道),以及 * [T1570 横向工具传输](https://attack.mitre.org/techniques/T1570/),以及 * 以下之一: * [T1569.002 系统服务:服务执行](https://attack.mitre.org/techniques/T1569/002/) * [T1047 Windows 管理规范](https://attack.mitre.org/techniques/T1047/) * [T1053.002 计划任务/作业:At (Windows)](https://attack.mitre.org/techniques/T1053/002/) * [T1053.005 计划任务/作业:计划任务](https://attack.mitre.org/techniques/T1053/005/) #### Bro/Zeek 检测到的相关指标 * `smb1_write_andx_response::c$smb_state$path` 包含 `ADMIN$` 或 `C$` * `smb2_write_request::c$smb_state$path**` 包含 `ADMIN$` 或 `C$` * `dce_rpc_response::c$dce_rpc$endpoint + c$dce_rpc$operation` 包含以下任意项: * `svcctl::CreateServiceW` * `svcctl::CreateServiceA` * `svcctl::StartServiceW` * `svcctl::StartServiceA` * `IWbemServices::ExecMethod` * `IWbemServices::ExecMethodAsync` * `atsvc::JobAdd` * `ITaskSchedulerService::SchRpcRegisterTask` * `ITaskSchedulerService::SchRpcRun` * `ITaskSchedulerService::SchRpcEnableTask` **注意:** 更倾向于检测 smb2_write_response 事件(而不是 smb2_write_request),因为它可以确认文件确实被写入到了远程目标。遗憾的是,Bro/Zeek 尚未有针对该 SMB 消息类型的事件。 ### 3.2. 用于 ATT&CK 横向移动(多次尝试)的 SumStats 分析 如果在指定的时间段内,观察到源自同一主机的多个 SMB 横向移动指标(例如,多次尝试连接到 Windows 管理文件共享:仅限 ADMIN$ 或 C$),无论是否有写入尝试,也无论任何连接是否成功——仅仅是连接尝试——则使用 SumStats 引发 Bro/Zeek Notice 事件。 #### 相关的 ATT&CK 技术 * [T1021.002 远程服务:SMB/Windows 管理共享](https://attack.mitre.org/techniques/T1021/002/)(仅限文件共享,非命名管道) #### Bro/Zeek 检测到的指标 * `smb1_tree_connect_andx_request::c$smb_state$path` 包含 `ADMIN$` 或 `C$` * `smb2_tree_connect_request::c$smb_state$path` 包含 `ADMIN$` 或 `C$` ### 3.3. 用于 ATT&CK 发现的 SumStats 分析 如果在指定的时间段内,观察到源自同一主机的多个 DCE-RPC 发现指标实例,则使用 SumStats 引发 Bro/Zeek Notice 事件。 #### 相关的 ATT&CK 技术 * [T1016 系统网络配置发现](https://attack.mitre.org/techniques/T1016/) * [T1018 远程系统发现 ](https://attack.mitre.org/techniques/T1018/) * [T1033 系统所有者/用户发现 ](https://attack.mitre.org/techniques/T1033/) * [T1069 权限组发现 ](https://attack.mitre.org/techniques/T1069/) * [T1082 系统信息发现](https://attack.mitre.org/techniques/T1082/) * [T1083 文件和目录发现](https://attack.mitre.org/techniques/T1083/) * [T1087 账户发现](https://attack.mitre.org/techniques/T1087/) * [T1124 系统时间发现](https://attack.mitre.org/techniques/T1124/) * [T1135 网络共享发现](https://attack.mitre.org/techniques/T1135/) #### Bro/Zeek 检测到的相关指标 * `dce_rpc_response::c$dce_rpc$endpoint + c$dce_rpc$operation` 包含以下任意项: * `lsarpc::LsarEnumerateAccounts` * `lsarpc::LsarEnumerateAccountRights` * `lsarpc::LsarEnumerateAccountsWithUserRight` * `lsarpc::LsarEnumeratePrivileges` * `lsarpc::LsarEnumeratePrivilegesAccount` * `lsarpc::LsarEnumerateTrustedDomainsEx` * `lsarpc::LsarGetSystemAccessAccount` * `lsarpc::LsarGetUserName` * `lsarpc::LsarLookupNames` * `lsarpc::LsarLookupNames2` * `lsarpc::LsarLookupNames3` * `lsarpc::LsarLookupNames4` * `lsarpc::LsarLookupPrivilegeDisplayName` * `lsarpc::LsarLookupPrivilegeName` * `lsarpc::LsarLookupPrivilegeValue` * `lsarpc::LsarLookupSids` * `lsarpc::LsarLookupSids2` * `lsarpc::LsarLookupSids3` * `lsarpc::LsarQueryDomainInformationPolicy` * `lsarpc::LsarQueryInfoTrustedDomain` * `lsarpc::LsarQueryInformationPolicy` * `lsarpc::LsarQueryInformationPolicy2` * `lsarpc::LsarQueryTrustedDomainInfo` * `lsarpc::LsarQueryTrustedDomainInfoByName` * `samr::SamrLookupNamesInDomain` * `samr::SamrLookupIdsInDomain` * `samr::SamrLookupDomainInSamServer` * `samr::SamrGetGroupsForUser` * `samr::SamrGetAliasMembership` * `samr::SamrGetMembersInAlias` * `samr::SamrGetMembersInGroup` * `samr::SamrGetUserDomainPasswordInformation` * `samr::SamrEnumerateAliasesInDomain` * `samr::SamrEnumerateUsersInDomain` * `samr::SamrEnumerateGroupsInDomain` * `samr::SamrEnumerateDomainsInSamServer` * `samr::SamrQueryInformationAlias` * `samr::SamrQueryInformationDomain` * `samr::SamrQueryInformationDomain2` * `samr::SamrQueryInformationGroup` * `samr::SamrQueryInformationUser` * `samr::SamrQueryInformationUser2` * `samr::SamrQueryDisplayInformation` * `samr::SamrQueryDisplayInformation2` * `samr::SamrQueryDisplayInformation3` * `srvsvc::NetrConnectionEnum` * `srvsvc::NetrFileEnum` * `srvsvc::NetrRemoteTOD` * `srvsvc::NetrServerAliasEnum` * `srvsvc::NetrServerGetInfo` * `srvsvc::NetrServerTransportEnum` * `srvsvc::NetrSessionEnum` * `srvsvc::NetrShareEnum` * `srvsvc::NetrShareGetInfo` * `wkssvc::NetrWkstaGetInfo` * `wkssvc::NetrWkstaTransportEnum` * `wkssvc::NetrWkstaUserEnum` ## 4. 用于检测类似 ATT&CK 活动的简单指标 除了上述分析之外,BZAR 还使用 SMB 和 DCE-RPC 流量中的简单指标来检测类似 ATT&CK 的活动,尽管其置信度低于通过 SumStats 分析进行的检测。 BZAR 指标分为六 (6) 类,如下所述。 ### 4.1. ATT&CK 横向移动指标 如果观察到 SMB 横向移动指标的单个实例(例如,仅针对 Windows 管理文件共享:ADMIN$ 或 C$ 的 SMB 文件写入),则引发 Bro/Zeek Notice 事件,这表明存在类似 ATT&CK 的活动。 #### 相关的 ATT&CK 技术 * [T1021.002 远程服务:SMB/Windows 管理共享](https://attack.mitre.org/techniques/T1021/002/)(仅限文件共享,非命名管道) * [T1570 横向工具传输](https://attack.mitre.org/techniques/T1570/) #### Bro/Zeek 检测到的相关指标 * `smb1_write_andx_response::c$smb_state$path` 包含 `ADMIN$` 或 `C$` * `smb2_write_request::c$smb_state$path**` 包含 `ADMIN$` 或 `C$` **注意:** 更倾向于检测 smb2_write_response 事件(而不是 smb2_write_request),因为它可以确认文件确实被写入到了远程目标。遗憾的是,Bro/Zeek 尚未有针对该 SMB 消息类型的事件。 ### 4.2. 文件提取框架的指标 启动 Bro/Zeek 文件提取框架,以保存与类似 ATT&CK 的横向移动到远程系统相关的文件副本。针对横向移动提取文件引发 Bro Notice 事件。 #### 相关的 ATT&CK 技术 * [T1021.002 远程服务:SMB/Windows 管理共享](https://attack.mitre.org/techniques/T1021/002/)(仅限文件共享,非命名管道) * [T1570 横向工具传输](https://attack.mitre.org/techniques/T1570/) #### Bro/Zeek 检测到的相关指标 * `smb1_write_andx_response::c$smb_state$path` 包含 `ADMIN$` 或 `C$` * `smb2_write_request::c$smb_state$path**` 包含 `ADMIN$` 或 `C$` **注意:** 更倾向于检测 smb2_write_response 事件(而不是 smb2_write_request),因为它可以确认文件确实被写入到了远程目标。遗憾的是,Bro/Zeek 尚未有针对该 SMB 消息类型的事件。 ### 4.3. ATT&CK 凭证访问指标 如果观察到以下任何 Windows DCE-RPC 函数(endpoint::operation)的单个实例,则引发 Bro/Zeek Notice 事件,这表明远程系统上存在类似 ATT&CK 的凭证访问技术。 #### 相关的 ATT&CK 技术 * [T1003.006 操作系统凭证转储:DCSync](https://attack.mitre.org/techniques/T1003/006/) #### Bro/Zeek 检测到的相关指标 * `dce_rpc_response::c$dce_rpc$endpoint + c$dce_rpc$operation` 包含以下任意项: * `drsuapi::DRSReplicaSync` * `drsuapi::DRSGetNCChanges` ### 4.4. ATT&CK 防御规避指标 如果观察到以下任何 Windows DCE-RPC 函数(endpoint::operation)的单个实例,则引发 Bro/Zeek Notice 事件,这表明远程系统上存在类似 ATT&CK 的防御规避技术。 #### 相关的 ATT&CK 技术 * [T1070.001 主机上的指标清除:清除 Windows 事件日志](https://attack.mitre.org/techniques/T1070/001/) #### Bro/Zeek 检测到的相关指标 * `dce_rpc_response::c$dce_rpc$endpoint + c$dce_rpc$operation` 包含以下任意项: * `eventlog::ElfrClearELFW` * `eventlog::ElfrClearELFA` * `IEventService::EvtRpcClearLog` ### 4.5. ATT&CK 执行指标 如果观察到以下任何 Windows DCE-RPC 函数(endpoint::operation)的单个实例,则引发 Bro/ek Notice 事件,这表明远程系统上存在类似 ATT&CK 的执行技术。 #### 相关的 ATT&CK 技术 * [T1569.002 系统服务:服务执行](https://attack.mitre.org/techniques/T1569/002/) * [T1047 Windows 管理规范](https://attack.mitre.org/techniques/T1047/) * [T1053.002 计划任务/作业:At (Windows)](https://attack.mitre.org/techniques/T1053/002/) * [T1053.005 计划任务/作业:计划任务](https://attack.mitre.org/techniques/T1053/005/) #### Bro/Zeek 检测到的相关指标 * `dce_rpc_response::c$dce_rpc$endpoint + c$dce_rpc$operation` 包含以下任意项: * `svcctl::CreateServiceW` * `svcctl::CreateServiceA` * `svcctl::StartServiceW` * `svcctl::StartServiceA` * `IWbemServices::ExecMethod` * `IWbemServices::ExecMethodAsync` * `atsvc::JobAdd` * `ITaskSchedulerService::SchRpcRegisterTask` * `ITaskSchedulerService::SchRpcRun` * `ITaskSchedulerService::SchRpcEnableTask` ### 4.6. ATT&CK 持久化指标 如果观察到以下任何 Windows DCE-RPC 函数(endpoint::operation)的单个实例,则引发 Bro/Zeek Notice 事件,这表明远程系统上存在类似 ATT&CK 的持久化技术。 #### 相关的 ATT&CK 技术: * [T1547.004 启动或登录自动启动执行:Winlogon Helper DLL](https://attack.mitre.org/techniques/T1547/004/) * [T1547.010 启动或登录自动启动执行:端口监视器](https://attack.mitre.org/techniques/T1547/010/) #### Bro/Zeek 检测到的相关指标 * `dce_rpc_response::c$dce_rpc$endpoint + c$dce_rpc$operation` 包含以下任意项: * `ISecLogon::SeclCreateProcessWithLogonW` * `ISecLogon::SeclCreateProcessWithLogonExW` * `IRemoteWinspool::RpcAsyncAddMonitor` * `IRemoteWinspool::RpcAsyncAddPrintProcessor` * `spoolss::RpcAddMonitor` # 又名 winspool | spoolss * `spoolss::RpcAddPrintProcessor` # 又名 winspool | spoolss ### 4.7. ATT&CK 影响指标 如果观察到以下任何 Windows DCE-RPC 函数(endpoint::operation)的单个实例,则引发 Bro/Zeek Notice 事件,这表明远程系统上存在类似 ATT&CK 的影响技术。 #### 相关的 ATT&CK 技术 * [T1529 系统关闭/重启](https://attack.mitre.org/techniques/T1529/) #### Bro/Zeek 检测到的相关指标 * `dce_rpc_response::c$dce_rpc$endpoint + c$dce_rpc$operation` 包含以下任意项: * `InitShutdown::BaseInitiateShutdown` * `InitShutdown::BaseInitiateShutdownEx` * `WindowsShutdown::WsdrInitiateShutdown` * `winreg::BaseInitiateSystemShutdown` * `winreg::BaseInitiateSystemShutdownEx` * `winstation_rpc::RpcWinStationShutdownSystem` * `samr::SamrShutdownSamServer` # MSDN 表示未在线上使用 ## 5. 其他 DCE-RPC 接口和方法 BZAR 项目向 Bro/Zeek DCE_RPC::uuid_endpoint_map 添加了 144 个更多的 Microsoft DCE-RPC 接口 UUID(又称“端点”)。 BZAR 项目还向 Bro/Zeek DCE_RPC::operations 添加了 1,145 个 Microsoft DCE-RPC 接口方法(又称“操作”)。 有关更多信息,请参阅 Bro/Zeek 脚本 'bzar_dce-rpc_consts'。 'bzar_dce-rpc_consts' 中定义的大多数 DCE-RPC 端点和操作已合并到 Zeek 的主要产品线中, 版本 3.2.0-dev.565 | 2020-05-26 21:55:54 +0000。参考:https://github.com/zeek/zeek/blob/master/scripts/base/protocols/dce-rpc/consts.zeek#L92 ## 6. 参考资料 1. Microsoft Developer Network (MSDN) Library. MSDN Library > Open Specifications > Protocols > Windows Protocols > Technical Documents. https://msdn.microsoft.com/en-us/library/jj712081.aspx 2. Marchand, "Windows Network Services Internals". 2006. http://index-of.es/Windows/win_net_srv.pdf ## 7. 贡献 欢迎贡献。本代码的许可条款与 CAR 代码库相同。请参阅代码库根目录下的 [LICENSE](LICENSE.txt) 文件和 [CONTRIBUTING](/CONTRIBUTING.md) 文件中的开发者原创证书认证。 本 README 文件中的信息截至 2020 年 10 月 9 日是最新的。 *版权所有 2018 The MITRE Corporation。保留所有权利。* 批准公开发布。分发无限。案例编号 18-2489。*
标签:AMSI绕过, Bro, BZAR, Cloudflare, DCE-RPC, DLL注入, ETW劫持, HTTP/HTTPS抓包, HTTP工具, MITRE ATT&CK, PE 加载器, Rootkit, Siem, SMB, Zeek, 内核模式, 威胁检测, 安全脚本, 态势感知, 文件提取, 日志记录, 横向移动, 流量审计, 编程规范, 网络安全, 网络流量分析, 错误配置检测, 隐私保护