• HummerRisk 入门3:开发手册


    本文是 HummerRisk 的开发手册,介绍项目的结构及如何配置 HummerRisk 的开发环境和开发中的注意事项,快速参与到 HummerRisk 项目的开发中来。

    一、项目结构

    18572ab3637d8814d15dd5ba582e4e12.jpeg

    二、配置开发环境

    1、环境准备

    后端

    HummerRisk 后端使用了 Java 语言的 Spring Boot 框架,并使用 Maven 作为项目管理工具。开发者需要先在开发环境中安装 JDK 11 及 Maven。

    前端

    HummerRisk 前端使用了 Vue.js 作为前端框架,ElementUI 作为 UI 框架,并使用 npm 或 yarn 作为包管理工具。开发者请先下载 Node.js 或 Yarn 作为运行环境,IDEA 用户建议安装 Vue.js 插件,便于开发

    安装 npm 或 yarn

    进入网站 https://nodejs.org/en/download 或 https://yarn.bootcss.com/docs/install, 选择相应的安装包进行安装即可。

    2、初始化配置

    数据库初始化

    HummerRisk 使用 MySQL 数据库,推荐使用 MySQL 5.7 版本。同时 hummerrisk 对数据库部分配置项有要求,请参考下附的数据库配置,修改开发环境中的数据库配置文件

    1. [mysqld]
    2. default-storage-engine=INNODB
    3. lower_case_table_names=1
    4. table_open_cache=128
    5. max_connections=2000
    6. max_connect_errors=6000
    7. innodb_file_per_table=1
    8. innodb_buffer_pool_size=1G
    9. max_allowed_packet=1G
    10. slave_max_allowed_packet=1G
    11. transaction_isolation=READ-COMMITTED
    12. innodb_flush_method=O_DIRECT
    13. innodb_lock_wait_timeout=1800
    14. innodb_flush_log_at_trx_commit=0
    15. sync_binlog=0 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    16. skip-name-resolve

    注意:Windows 系统数据库初始化配置应删除 innodb_flush_method 参数,请参考文章[1]。

    请参考文档中的建库语句创建 HummerRisk 使用的数据库,HummerRisk 服务启动时会自动在配置的库中创建所需的表结构及初始化数据。

    CREATE DATABASE `hummerrisk` /*!40100 DEFAULT CHARACTER SET utf8mb4 */

    配置文件

    HummerRisk 会默认加载该路径下的配置文件 /opt/hummerrisk/conf/hummerrisk.properties,请参考下列配置创建对应目录及配置文件,请参考下面配置创建对应目录及配置文件。
    提示:请自行将 MYSQL_HOST 配置为自己的 MySQL 地址。

    三、代码运行

    1、IDEA 方式运行

    注意:在 Windows 环境下对配置文件的路径会有所要求,一般可以采用下面配置方案,非 Windows 环境以下方案可跳过。

    Windows 下环境配置方案

    • 将配置文件放置到工程源码的所在盘的指定路径下,以 hummerrisk.properties 配置文件举例,如源码工程在 D 盘下,则配置文件存放路径为 d:\opt\hummerrisk\conf\hummerrisk.properties。其他配置文件类似。

    • 配置文件可以随意放置在任意路径下,但需要修改工程源码中配置文件的路径信息。以 hummerrisk.properties 配置文件举例,如该配置文件存放在 D 盘根目录下,则需要按下图修改两个地方的配置路径。

    a98661204b755ee37c1c63f81c6d65b6.jpeg

    新建项目

    新建一个 git 项目 输入主工程 git 地址: git@github.com:HummerRisk/HummerRisk.git

    568fc1c578dc0f443b11f2bf5b36234d.jpeg

    配置 maven

    配置 maven 并引入 pom.xml。

    088bc855c5bbc1699945647eda73ccde.jpeg

    启动项目

    在启动配置中添加 Spring Boot 启动项,直接启动 Spring Boot 项目即可。

    启动后端,两种启动方式:

    • 可以使用 io.hummerrisk.Application 入口方法直接启动

    • 可以使用 maven 插件中的 backend>spring-boot>spring-boot:start 启动

    da44ef48cb1b105e8611355de342088f.jpeg

    运行后端服务

    后端服务成功运行如下所示。

    5cf4a57d6480492d81458e96433ea225.jpeg

    配置前端

    进入 hummerrisk/frontend/ 目录,执行以下命令安装相关前端组件。

    npm install

    进入到 hummerrisk/frontend/ 目录,执行以下命令启动前端服务。

    npm run serve

    或者使用 yarn 启动

    1. # 项目设置
    2. yarn install
    3. # 编译并最小化生产
    4. yarn build
    5. # 编译和热重装以进行开发
    6. yarn serve

    运行前端服务

    前端服务成功运行如下所示。

    cd37f2ca075f974a8a4f659f13c2a441.jpeg

    四、本地安装引擎组件

    1、准备运行环境

    注意:若需要调试相应的检测功能,需要安装相应的组件引擎

    • Cloud Custodian 作为云平台检测引擎,详细的相关操作,请参考 Cloud Custodian [2]

    • Prowler 作为 AWS 检测引擎,详细的相关操作,请参考 Prowler [3]

    • Nuclei 作为漏洞检测引擎,详细的相关操作,请参考 Nuclei [4]

    • Xray 作为漏洞检测引擎,详细的相关操作,请参考 Xray [5]

    • Trivy 作为云原生检测引擎 ,详细的相关操作,请参考 Trivy [6]

    配置本地目录和配置文件

    下载 installer 工程:

    git clone https://github.com/HummerRisk/installer

    初始化目录:

    1. mkdir -p /opt/hummerrisk/conf
    2. mkdir -p /opt/hummerrisk/image
    3. mkdir -p /opt/hummerrisk/file
    4. mkdir -p /opt/hummerrisk/trivy
    5. mkdir -p /opt/hummerrisk/logs

    准备配置文件:

    1. cd installer/hummerrisk/config_init/hummerrisk
    2. cp hummerrisk.properties /opt/hummerrisk/conf/hummerrisk.properties

    注意:以下组件引擎的安装可以按需进行,这里仅列举 Custodian 和 Trivy ,其他的请参考对应的链接。

    安装 Custodian

    1. $ python3 -m venv custodian
    2. $ source custodian/bin/activate(custodian)
    3. $ pip install c7n(custodian)
    4. $ pip install -e tools/c7n_aliyun(custodian)
    5. $ pip install -e tools/c7n_huawei(custodian)
    6. $ pip install -e tools/c7n_tencent(custodian)
    7. $ pip install -e tools/c7n_baidu……

    安装 Trivy

    Yum 源方式安装

    1. $ sudo vim /etc/yum.repos.d/trivy.repo
    2. [trivy]name=Trivy
    3. repositorybaseurl=https://aquasecurity.github.io/trivy-repo/rpm/releases/$releasever/$basearch/
    4. gpgcheck=0
    5. enabled=1
    6. $ sudo yum -y update
    7. $ sudo yum -y install trivy

    rpm 方式安装

    rpm -ivh https://github.com/aquasecurity/trivy/releases/download/v0.19.2/trivy_0.19.2_Linux-64bit.rpm

    二进制方式安装

    1. mkdir -p $GOPATH/src/github.com/aquasecurity
    2. cd $GOPATH/src/github.com/aquasecurity
    3. git clone --depth 1 --branch v0.19.2 https://github.com/aquasecurity/trivy
    4. cd trivy/cmd/trivy/
    5. export GO111MODULE=on
    6. go install

    五、镜像打包

    源码中包含 Dockerfile 文件,建议将项目打包成镜像运行,建议 Dockerfile_base 打包用官方版本即可, 用户可以替换自己的 Dockerfile 研发版本。

    183b8607e9bfbef69ef12df9502b4128.jpegebbc113af954a457801042bd54848b43.jpeg

    其他注意事项

    内置示例数据以 flyway 的形式在 HummerRisk 启动时自动插入到了 MySQL 数据库中,在源码运行的情况下可自动初始化获取内置检测规则等数据;

    参考资料

    [1]https://bugs.mysql.com/bug.php?id=40757

    [2]https://docs.hummerrisk.com/related/opensource-tool/custodian/

    [3]https://docs.hummerrisk.com/related/opensource-tool/prowler/

    [4]https://docs.hummerrisk.com/related/opensource-tool/nuclei/

    [5]https://docs.hummerrisk.com/related/opensource-tool/xray/

    [6]https://docs.hummerrisk.com/related/opensource-tool/trivy/

    关于 HummerRisk

    HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生的安全和治理问题。核心能力包括混合云的安全治理和 K8s 容器云安全检测。

    d023fcfc14b82f4894278cb8ae6d3afe.jpeg

    GitHub 地址:https://github.com/HummerRisk/HummerRisk

    Gitee 地址:https://gitee.com/hummercloud/HummerRisk

  • 相关阅读:
    跨平台应用开发进阶(二十二) :uni-app Android APP上线准备工作汇总
    如何确定自己是否适合做程序员?
    three.js之模型
    2104. 子数组范围和
    【Python刷题】Day7~牛客题库高效练习
    -Xms512m -Xmx1024m 等参数的含义解释
    文件操作及IO
    chatgpt赋能python:Python数据处理中如何选取指定范围的数据
    Docker踩坑,又涨知识了
    无需编写一行代码,实现任何方法的流量防护能力
  • 原文地址:https://blog.csdn.net/wolaisongfendi/article/details/128183112