-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
142 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) | ||
**传入参数** 无 | ||
**返回值** 无 |