鹰眼,洞察全局,发现蛛丝马迹
主机内自动化资产采集与应急响应溯源模块(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, 需考虑api的兼容性和socket访问会导致docker服务启动可能带来的风险
2024年3月27日
重新修改了原来的模块和架构,开发Windows系统下的功能
加入 windows平台下的多个功能, 包括计划任务采集, 系统服务采集, 安装的软件包采集, 主机内开启启动项采集等
2024年3月29日
完全重构项目, 重命名为vela-eagleeye(鹰眼, 洞察全局, 发现蛛丝马迹)
2024年4月1日
加入Windows系统用户信息获取
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
版本
2024年4月11日
1.加入程序所处硬件环境判断(物理机/虚拟机/容器, 支持Windows和Linux)
2.历史命令采集(支持Windows和Linux)
2024年4月15日
1.Linux上系统服务采集更新优化
2.加入进程的句柄信息采集功能
2024年5月6日
加入windows系统杀软采集(WD原生方法)
2024年5月14日
完善数据采集逻辑和内部接口
采集项/ 功能 | Windows | Linux | 备注 |
---|---|---|---|
获取磁盘信息 | ✔ | ||
获取cpu信息 | ✔ | ||
获取内存信息 | ✔ | ||
运行环境判断(物理机\虚拟机\容器) | ✔ | ✔ | |
系统计划任务采集 | ✔ | ✔ | |
系统服务信息采集 | ✔ | ✔ | |
系统安装补丁信息采集(Windows) | ✔ | ⛔ | |
获取安装的软件列表 | ✔ | ✔ | ❔不同操作系统和版本的兼容 ❔不同方式获取的数据准确性性 |
系统用户信息采集 | ✔ | ✔ | 🏗 系统账户弱口令风险本地检测(Windows和Linux) |
开机自启项采集 | ✔ | ❔不同操作系统和版本的兼容性 | |
网卡信息采集 | 🏗 | ||
进程信息采集 | ✔ | ✔ | |
进程句柄信息采集 | ✔ | ✔ | |
网络连接信息采集 | ✔ | ✔ | |
历史命令采集 | ✔ | ✔ | |
系统防火墙规则采集 | ✔ | 🏗 | |
杀软\EDR安装和运行信息采集 | |||
是否有外网访问权限 公网出口IP, 是否有独立IP | |||
hosts采集 | |||
arp缓存采集 | |||
dns缓存采集 | |||
路由表信息采集 | |||
共享资源信息采集 | |||
基于进程信息的被动资产识别 | |||
基于网络连接信息的被动资产识别 | |||
容器服务和资产信息采集(linux) | ⛔ | ||
浏览器密码抓取(windows) | ⛔ | ||
浏览器最近流量信息抓取(windows) | ⛔ | ||
本地凭证抓取(windows) | ⛔ | ||
最近访问或修改的文件(windows) | ⛔ | ||
杀软详细信息采集(windows) | ⛔ | ||
基于everything的文件速览(windows) | ⛔ | ||
⚠防火墙规则控制(增删改) | |||
⚠系统服务控制(启停) | |||
⚠网卡连接控制(禁用或启用) | |||
⚠进程控制(kill进程) | |||
⚠网络控制(一键阻断) | |||
性能信息统一持续采集循环队列实时监控 | 比kit自带的做得更详细,尽可能多地监控和检测 如CPU占用、内存占用、网络流量、磁盘读写、句柄、网络连接数等等 |
||
windows高阶采集(以火绒剑为例) | ⛔ | 如系统驱动加载\ 钩子检测\等等 | |
对接威胁情报(文件哈希) | |||
对接威胁情报(网络连接IP地址) | |||
对接威胁情报(域名) |
目前就打算先开发的功能
- 主机内docker容器的资产识别
- 主机内系统计划任务采集
- 获取系统服务的状态
- 获取安装的软件列表
- 获取磁盘空间占用
- 历史命令
- 运行环境判断
- 磁盘\cpu\内存基础信息采集
- 进程采集
- 句柄信息采集
- 网络信息采集
- 获取安装的软件列表
- 主机内系统计划任务采集
- 主机内开启启动项采集
- 主机内服务信息采集
- 磁盘硬件和分区信息采集
- 主机内系统用户采集和风险检测
- 杀软状态, win defender 杀软信息采集(详细,有策略和防护日志等)
- 系统防火墙规则采集
- 系统补丁信息采集
- 运行环境判断
- 磁盘\cpu\内存基础信息采集
- 进程采集
- 句柄信息采集
- 网络信息采集
- 收集到资产后, 集成安全功能
- 增加采集资产的维度, 除了计划任务和docker, 还可以采集 系统服务,安装的软件包等等
- 优化采集的逻辑以及返回的数据结构
- 其它
目前处于开发阶段, 未暴露LUA SDK
第一步 运行模块
运行lua脚步调用该模块
第二步 查看数据
方式1: 通过内部HTTP API在线查看采集的数据
方式2: 下载.ssc.db
文件,本地查看采集的数据
⚠API统一前缀 /api/v1/arr/agent/eagleeye/
备注: 采集的信息统一存入本地的bucket
以下接口都是读取的bucket内的缓存数据, 而不是实时重新采集
待编写详细文档和说明
待编写详细文档和说明
待编写详细文档和说明
待编写详细文档和说明
待编写详细文档和说明
以下接口仅Windows可用
待编写详细文档和说明
待编写详细文档和说明
待编写详细文档和说明
待编写详细文档和说明
待编写详细文档和说明
待编写详细文档和说明
待编写详细文档和说明
待编写详细文档和说明
初始化eagleeye服务对象
传入参数为一个LUA Table
, 字段说明如下
参数名 | 数据类型 | 是否必填 | 说明 |
---|---|---|---|
name | string | 扫描主服务名称 | |
debug | bool | 是否开启debug模式(console输出debug日志) |
返回值 eagleeye服务对象
启动服务
传入参数 无
返回值 无
一键采集所有信息
信息默认存储到agent统一的bucket中(默认为.ssc.db
)
传入参数 无
返回值 无
开启HTTP API服务
传入参数 无
返回值 无
设置缓存模式(存入本地的bucket)
传入参数 无
返回值 无
eg.1 :
serv=vela.eagleeye{}
-- 启动服务
serv.startService()
-- 开启内部HTTP API
serv.define()
-- 采集一次
serv.collectAll()