Skip to content
This repository has been archived by the owner on Jul 13, 2023. It is now read-only.

Install(中文)

9ian1i edited this page Oct 31, 2019 · 1 revision

Install WatchAD

WatchAD属于360内部自研系统,许多存储相关服务使用了360集团内部的私有云,以下建议配置方法可能存在错误或者不合理之处,如有问题请反馈issue,我会及时解决。

安装依赖

本地测试环境

WatchAD需要的数据存储依赖较多,这里推荐使用项目中已经配置好的Docker一键启动脚本,在项目根目录下执行以下命令即可:

docker-compose up

之后将在本地启动 rabbitmq、logstash、elasticsearch、redis、mongo。

因为所有存储相关服务都安装到了本地,默认配置为简化版架构,项目的架构将使用下图:

Architecture_lite

使用docker启动的环境只能用于临时测试,单机可能无法承担较大的数据量。如果需要线上部署,请修改配置{project_home}/settings/database_config.py将各个服务地址替换为你的实际内网服务地址。

项目依赖

在项目根目录下执行:

pip3 install -r requirements.txt

开启审核

我们的分析基础是所有域控所有事件日志,所以首先需要打开域控上的安全审核选项,让域控记录所有类型的事件日志。这里以 windows server 2008为例,在 本地安全策略 -> 安全设置 -> 本地策略 -> 审核策略,打开所有审核选项:

open_audit

安装winlogbeat

首先,打开我们提供的配置文件 {project_home}/settings/winlogbeat/winlogbeat.yml ,修改output.logstashhosts字段值为你安装Logstash的IP和端口(默认5044),假设你安装Logstash的IP为10.10.10.10,此时配置文件为:

winlogbeat.event_logs:
  - name: Security
  ignore_older: 1h

output.logstash:
  hosts: ["10.10.10.10:5044"]

前往下载对应版本的winlogbeat,建议版本为6.2,其它版本的字段可能有变动,存在不兼容的可能性。

解压之后,使用刚才修改的配置文件 winlogbeat.yml 替换掉原本默认的配置文件 winlogbeat.yml

接下来按照官网的教程正常安装即可。

注意!事件日志并不会在各个域控之间同步,所以我们必须收集所有域控的所有事件日志,否则会产生误报和漏报。

初始化引擎

WatchAD使用python将一些配置信息自动化完成:

Usage:  WatchAD.py <options> [settings]

Options:
  -h, --help            show this help message and exit
  --install             执行WatchAD初始化安装,在次之前请确保已完整环境安装和配置。
  -d DOMAIN, --domain=DOMAIN
                        A FQDN domain name of detection.
  -s SERVER, --ldap-server=SERVER
                        Server address for LDAP search. e.g: dc01.corp.com
  -u USERNAME, --domain-user=USERNAME
                        Username for LDAP search. e.g: CORP\peter
  -p PASSWORD, --domain-passwd=PASSWORD
                        Password for LDAP search.
  --check               检查各个数据库连接状态、消息队列状态
  --start               启动检测引擎
  --restart             重启检测引擎
  --stop                停止引擎 (删除现有消息队列,防止数据量过大造成积压)
  --status              查看当前引擎状态

直接执行安装命令,如:

python3 WatchAD.py --install -d 360.cn -s dc01.360.cn -u admin -p password

运行要求

正常启动WatchAD,需要满足以下要求:

  1. 所有存储相关的依赖都正确安装和配置
  2. 能够访问安装时指定的LDAP Server
  3. supervisor正确安装可使用
  4. 正确安装python3.6,且存在 /usr/bin/python3 软连接

启动

python3 WatchAD.py --start

完成之后,会使用supervisorpython进程进行托管,WatchAD的命令行只是对supervisor的命令进行了一个简单封装,引擎的启动关闭本质上是supervisor任务的启动关闭。

生产环境部署

WatchAD依赖了rabbitmq、logstash、elasticsearch、redis和mongo,如果你想使用现有的存储服务和MQ等,请直接修改 {project_home}/settings/database_config.py 配置信息,数据管道Logstash的配置可参考 {project_home}/settings/logstash/logstash.conf ,实际的配置需要根据你的架构环境更改。