WatchAD2.0域威胁感知系统

一、产品简述

WatchAD2.0是360信息安全中心开发的一款针对域安全的日志分析与监控系统,它可以收集所有域控上的事件日志、网络流量,通过特征匹配、协议分析、历史行为、敏感操作和蜜罐账户等方式来检测各种已知与未知威胁,功能覆盖了大部分目前的常见内网域渗透手法。相较于WatchAD1.0,有以下提升:
更丰富的检测能力:新增了账户可疑活动监测场景,加强了权限提升、权限维持等场景检测能力,涵盖包括异常账户/活动、Zerologon提权、SPN劫持、影子票证等更多检测面。
基于Golang重构分析引擎:将开发语言从Python重构为Golang,利用其更高效的并发能力,提高对海量日志及流量等数据处理效率,确保告警检出及时有效。
整合简化架构:Web平台和检测引擎整合,简化部署过程,用户只依赖消息队列和存储组件即可完成部署。在提高系统的性能和稳定性的同时,也使得系统更加高效和易用,为用户提供更好的体验。

二、总体架构

WatchAD2.0分为四部分, 日志收集Agent、规则检测及日志分析引擎、缓存数据库、Web控制端,架构如下图所示。
image
其中流量检测链路暂不开源,可通过抓取域控流量,上传至360宙合SaaS PCAP分析平台进行威胁检测:https://zhouhe.360.cn/

三、目前支持的具体检测功能

异常活动检测:证书服务活动、创建机器账户事件活动、创建类似DC的用户账户、重置用户账户密码活动、TGT 票据相关活动;
凭证盗取:AS-REP 异常的流量请求、Kerberoasting 攻击行为、本地Dump Ntds文件利用;
横向移动:目录服务复制、异常的显示凭据登录行为、远程命令执行;
权限提升:ACL 异常修改行为、滥用证书服务权限提升、烂土豆提权、MS17-010、新增GPO监控、NTLM 中继检测、基于资源的约束委派、SPN 劫持、攻击打印服务、ZeroLogon 提权攻击;
权限维持:DCShadow 权限维持、DSRM 密码重置、GPO 权限委派、SamAccountName欺骗攻击、影子票证、Sid History 权限维持、万能密钥、可用于持久化的异常权限;
防御绕过:系统日志清空、关闭系统日志服务;
自定义检测规则:在{project_home}/detect_plugins/event_log/目录下可以修改或添加规则,需重新编译以使其生效。

四、平台展示

image

五、部署&运行指南

1、安装基础环境
#关闭防火墙
systemctl stop firewalld ebtables iptables
systemctl disable firewalld ebtables iptables
#关闭selinux
sed -i '/SELINUX=/cSELINUX=disabled' /etc/selinux/config
setenforce 0
#安装yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

#安装dokcer
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce docker-ce-cli docker-compose containerd.io docker-buildx-plugin docker-compose-plugin

yum -y install vim wget git yum-utils
2、克隆代码
git clone https://github.com/Qihoo360/WatchAD2.0.git
3、在项目根目录下新建.env文件,需修改kafka地址、域控连接信息:
[root@WatchAD2 ~]# cat /root/WatchAD2.0/.env 
#KAFKA配置,需修改为当前服务器的IP
KAFKAHOST=10.0.200.10
KAFKAADV=PLAINTEXT://10.0.200.10:9092
BROKER=10.0.200.10:9092

#Mongo配置,默认账号密码
MONGOUSER=IATP
MONGOPWD=cjSVMGxxxxxxxTwsR8
  
#域控配置,其中DCUSER为域内用户的DN
DCNAME="test.com"
DCSERVER=10.0.200.111
DCUSER="CN=WatchAD,CN=Users,DC=test,DC=com"
DCPWD="8gJuxxxxxxx"

#WEB配置,可配置为域内任意用户,或DCUSER的CN
WEBUSER="WatchAD"
注意:如果您的域控未启用ssl,需将entrypoint.sh文件中的LDAP命令去掉–ssl参数
4、启动WatchAD2.0相关依赖组件、检测引擎及WEB服务。
cd /soft/WatchAD2.0/
docker-compose build
docker-compose up -d

访问服务器80端口进入web后台,输入WEBUSER对应的域用户账号密码即可登录成功。

注意:重启docker前,需删除kafka配置文件避免配置冲突:./data/kafka/logs/meta.properties
5、告警外发:
可在管理后台-系统设置-数据源输出配置中,按照如下格式配置告警外发(当前仅支持kafka):
{
  "Address": "10.0.200.10:9092",
  "Topic": "iatp_alarm"
}

六、客户端部署

1、开启审核
我们的分析基础是所有域控的所有事件日志,所以首先需要打开域控上的安全审核选项,让域控记录所有类型的事件日志。这里以 windows server 2016为例,在 本地安全策略 -> 安全设置 -> 本地策略 -> 审核策略,打开所有审核选项:
image
2、安装winlogbeat
我们的分析基础是所有域控的所有事件日志,建议在所有域控服务器上安装winlogbeat,否则会产生误报和漏报。 前往官网下载对应版本的winlogbeat,建议版本为7.6.1,其它版本的字段可能有变动,存在不兼容的可能性。
1. 下载地址:https://www.elastic.co/cn/downloads/beats/winlogbeat
2. 解压winlgbeat 到Program Files下
3. 参照如下示例修改配置文件winlogbeat.yml,假设kafka的IP为10.10.10.10,此时配置文件为:
winlogbeat.event_logs:
  - name: Security
    ignore_older: 1h
output.kafka:
    hosts: ["10.0.200.10:9092"]
    topic: winlogbeat
4. 安装启动
PS C:\Users\Administrator> cd 'C:\Program Files\Winlogbeat'
PS C:\Program Files\Winlogbeat> .\install-service-winlogbeat.ps1

Security warning
Run only scripts that you trust. While scripts from the internet can be useful,
this script can potentially harm your computer. If you trust this script, use
the Unblock-File cmdlet to allow the script to run without this warning message.
Do you want to run C:\Program Files\Winlogbeat\install-service-winlogbeat.ps1?
[D] Do not run  [R] Run once  [S] Suspend  [?] Help (default is "D"): R

Status   Name               DisplayName
------   ----               -----------
Stopped  winlogbeat         winlogbeat
等待日志上传,显示实时威胁
文章版权声明 1、本网站名称:Happy峰安全运营之路
2、本站永久网址:https://blog.chenjiangfeng.com
3、本站发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!
4、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
5、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
6、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
7、根据《计算机软件保护条例》第十七条,本站所有软件请仅用于学习研究用途

© 版权声明
THE END
喜欢就支持一下吧
点赞9打赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情图片

    暂无评论内容