diff --git a/eagleeye.md b/eagleeye.md new file mode 100644 index 0000000..f8456aa --- /dev/null +++ b/eagleeye.md @@ -0,0 +1,142 @@ +# vela-eagleeye +>鹰眼,洞察全局,发现蛛丝马迹 + +主机内自动化资产采集与应急响应溯源模块(preview) + + +## 更新日志 +**2023年5月17日** +初步demo 传到git备份一下 +**2023年8月17日** +主要是想关联分析和上传主机内的资产数据, 尝试利用端口指纹配合资产识别配合本地进程做采集(beta1) +`问题:1`. 需要探索性能问题,进程和网络关联分析 +**2023年9月27日** +前段时间探索性地实现数据库信息采集(被动采集和主动探测结合,全部手写实现) +`问题:1`.过于繁琐,数据结构不好一致(特别是想尽可能多地采集数据库运维信息和安全资产信息的情况下) +**2023年11月10日** +解决Linux和Windows双端系统CPU和进程占用信息采集,优化准确度,结合进vela-kit的环形队列,不再单独采集了 +**2023年11月16日** +最近尝试加入容器相关信息采集,仅限于linux平台, 包括容器服务状态和运行中的容器信息和资产提取与扫描 +`问题:1`. 容器信息采集需要docker api, 需考虑docker api的兼容性和socket访问会导致docker服务启动可能带来的风险 +**2024年3月27日** +重新修改了原来的模块和架构,开发Windows系统下的功能 +加入 windows平台下的多个功能, 包括计划任务采集, 系统服务采集, 安装的软件包采集, 主机内开启启动项采集等 +**2024年3月29日** +完全重构项目, 重命名为vela-eagleeye(鹰眼,洞察全局,发现蛛丝马迹) +**2024年4月1日** +加入系统用户信息获取 +**2024年4月2日** +系统用户信息在windows下采集sam hash等信息,支持弱口令账户检测功能,优化vela-sam模块 +**2024年4月3日** +Windows系统防火墙规则采集 +**2024年4月7日** +Linux系统软件清单采集, 以及对接系统组件供应链安全(前期) +**2024年4月9日(预计)** +发布 `vela-eagleeye v0.3.0 preview`版本 + + + + +## 功能 +### linux平台 +目前就打算先开发的功能 +1. 主机内docker容器的资产识别 +2. 主机内系统计划任务采集 +3. 获取系统服务的状态 +4. 获取安装的软件列表 +5. 获取磁盘空间占用 +6. 近期CPU占用图表 +7. 近期内存占用图表 +8. 近期磁盘IO占用和磁盘空间占用图标 + +### Windows平台 +1. 获取安装的软件列表 +2. 主机内系统计划任务采集 +3. 主机内开启启动项采集 +4. 主机内服务信息采集 +5. 磁盘硬件和分区信息采集 +6. 主机内系统用户采集和风险检测 +7. 杀软状态, win defender 杀软信息采集(详细,有策略和防护日志等) +8. 系统防火墙规则采集 +9. 系统补丁信息采集 + +### todo + +1. 收集到资产后, 集成安全功能 +2. 增加采集资产的维度, 除了计划任务和docker, 还可以采集 系统服务,安装的软件包等等 +3. 优化采集的逻辑以及返回的数据结构 +4. 其它 + + +## 使用说明 +目前处于开发阶段, 未暴露LUA SDK +运行和功能测试使用 go test进行 +`go test -timeout 30s -run ^Testdemo02$ github.com/vela-ssoc/vela-eagleeye -buildvcs=false -count=1 -v` + +## HTTP API + +### Windows +API统一前缀 `/api/v1/arr/agent/eagleeye/` +#### .../collect_all 采集所有信息 +**备注**: 采集的信息统一存入本地的bucket +以下接口都是读取的bucket内的缓存数据, 而不是实时重新采集 +##### .../socket 获取网络连接信息 +待编写详细文档和说明 + +##### .../process 获取进程信息 +待编写详细文档和说明 + +##### .../autoRuns 获取开机自启动信息 +待编写详细文档和说明 + +##### .../diskInfo 获取磁盘信息 +待编写详细文档和说明 + +##### .../cronTabs 获取计划任务信息 +待编写详细文档和说明 + +##### .../softwareList 获取软件安装清单 +待编写详细文档和说明 + +##### .../systemUserInfo 获取系统用户信息 +待编写详细文档和说明 + +##### .../firewallRules 获取系统防火墙规则 +待编写详细文档和说明 + +##### .../patches 获取补丁信息 +待编写详细文档和说明 + + +## LUA API + +### 主服务 +**初始化方法 vela.eagleeye{}** +初始化eagleeye服务对象 +传入参数为一个LUA Table +| 参数名 | 数据类型 | 是否必填 | 说明 | +| --- | --- | --- | --- | +| name | string | | 扫描主服务名称 | +| debug   | bool | | 是否开启debug模式(console输出debug日志) | + +**返回值** eagleeye服务对象 + +### (rander).startService()方法 +启动服务 +**传入参数** 无 +**返回值** 无 + +### (rander).collectAll()方法 +一键采集所有信息 +**传入参数** 无 +**返回值** 无 + +### (define).define()方法 +开启HTTP API服务 +**传入参数** 无 +**返回值** 无 + +### (define).cache()方法 +设置缓存模式(存入本地的bucket) +**传入参数** 无 +**返回值** 无 \ No newline at end of file