Skip to content

Commit

Permalink
文档更新
Browse files Browse the repository at this point in the history
  • Loading branch information
poq79 committed Apr 8, 2024
1 parent 470e4a0 commit d6a6aef
Showing 1 changed file with 142 additions and 0 deletions.
142 changes: 142 additions & 0 deletions eagleeye.md
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)
**传入参数**
**返回值**

0 comments on commit d6a6aef

Please sign in to comment.