genmai/README.md

4.7 KiB
Raw Blame History

genmai

介绍

genmai是一款开源主机漏洞扫描网络漏洞扫描以及基线扫描功能的安全扫描框架,更多信息查看openKylin SecurityGovernance SIG组

genmai框架原理是通过先创建sandbox将要检测的漏洞POC/EXP在sandbox上通过Yaml解析器以及Json解析器将对应文件解析然后存入缓存中再通过远程评估和本地评估的形式进行检测并生成分析报告。 具体原理可参考下图:

名字

genmai这个名字来源于中国医术中的术语——“诊脉”音标为“[dʒen'maɪ]”。脉诊是以手指按切病人动脉以了解病情的内在变化也称切脉。

软件架构

amd64

目录说明

* data : 数据文件目录
* docs : 文档目录,包括设计文档和说明文档
* examples : 使用示例目录
* image : 图片目录
* misc : 其他文件
* utils : 实用程序/脚本目录
* tools: 辅助工具目录
* z-container : 临时存放目录
* z-testsuit : 测试小程序目录
* z-trash : 垃圾桶目录

框架优势

  1. 拥有UI界面便于操作使用。
  2. 使用sandbox在sandbox上进行系统/内核漏洞检测避免了一些具有破坏性的系统的POC/EXP对实体主机进行破坏。
  3. 创建协程池与请求池通过协程调度同步进行POC/EXP请求、检测和认证加快了漏洞认证的效率。
  4. 对于内核与系统模块使用了PWN模块进行检测使得检测结果更加精准。
  5. 拥有远程评估功能,可进行多台主机同时进行检测。
  6. 能够生成简洁的安全报告,便于人工进行审核。

功能模块

功能模块主要分为6个大部分

  1. 漏洞检测: 漏洞检测主要检测系统以及内核方面的漏洞以一些公开的CVE/CNVD以及公开的内部挖掘的KVE为工具检测poc/expweb漏洞方面主要是检测无需登录的RCE、弱密码(SSH,MYSQL,FTP等)、未授权等漏洞。
  2. FUZZ测试 FUZZ测试主要对系统的内核以及服务接口等进行模糊测试。
  3. 安全基线检测: 基线的安全检测主要包含检测可疑进程、可疑文件、可疑日志、OS配置、网络配置以及应用配置等。
  4. 评估: 分为本地检测与远程检测本地检测主要是通过SSH以及SCP调用对主机的远程检测。
  5. 补丁信息: 为使用者提供修复建议,以及补丁的信息。
  6. 工具更新 用户可以直接使用update获取最新版本的工具。

开发规划

  1. 完成主体框架的开发主要包括sandboxrequestpoolcoprogrampoolcachejsonparseryamlparserinterpreterremotecheck
  2. 第一阶段先完成kernel模块的开发使工具内够检测内核的漏洞
  3. 第二阶段完成安全基线检测的开发,能够使用基线扫描
  4. 第三阶段完成system模块开发能够检测系统漏洞
  5. 第四阶段完成web漏洞模块开发能检测web方面漏洞
  6. 第五阶段自动更新功能开发
  7. 第六阶段UI界面开发
  8. 第七阶段补丁信息功能导入
  9. 第八阶段FUZZ功能开发完成FUZZ检测

开发计划

需求分析阶段:收集用户需求,转换成产品需求
步骤1需求收集在社区内进行用户需求分析
1、确定用户-角色-使用场景
2、针对用户、角色、使用场景进行需求收集和汇总
3、完成用户需求收集表

需求收集表

步骤2用户需求转成产品需求
1、完成产品功能框架图和流程图设计
2、完成可信需求分析要求如下《麒麟产品安全红线》检查、安全性、韧性、可靠、可用性、隐私性分析
3、完成产品需求文档编写

需求分析文档

步骤3架构设计
1、逻辑视图设计、逻辑视图的HighLevel威胁建模分析、逻辑视图的可靠可用性分析
2、用例视图设计
3、运行视图设计
4、开发视图设计
5、部署视图设计
6、可信需求设计security安全性、韧性、可靠、可用性、隐私性分析、物理safe安全性分析暂不涉及

架构设计目标

逻辑视图设计

开发视图设计

编译说明

# make
or
# make build

清理工程

# make clean
or
# make realclean

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request