HummerRisk 入门3:开发手册

news2025/1/12 5:56:49

本文是 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 对数据库部分配置项有要求,请参考下附的数据库配置,修改开发环境中的数据库配置文件

[mysqld]
default-storage-engine=INNODB
lower_case_table_names=1
table_open_cache=128
max_connections=2000
max_connect_errors=6000
innodb_file_per_table=1
innodb_buffer_pool_size=1G
max_allowed_packet=1G
slave_max_allowed_packet=1G
transaction_isolation=READ-COMMITTED
innodb_flush_method=O_DIRECT
innodb_lock_wait_timeout=1800
innodb_flush_log_at_trx_commit=0
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
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 启动

# 项目设置
yarn install

# 编译并最小化生产
yarn build

# 编译和热重装以进行开发
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

初始化目录:

mkdir -p /opt/hummerrisk/conf
mkdir -p /opt/hummerrisk/image
mkdir -p /opt/hummerrisk/file
mkdir -p /opt/hummerrisk/trivy
mkdir -p /opt/hummerrisk/logs

准备配置文件:

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

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

安装 Custodian

$ python3 -m venv custodian
$ source custodian/bin/activate(custodian)
$ pip install c7n(custodian)
$ pip install -e tools/c7n_aliyun(custodian)
$ pip install -e tools/c7n_huawei(custodian)
$ pip install -e tools/c7n_tencent(custodian)
$ pip install -e tools/c7n_baidu……

安装 Trivy

Yum 源方式安装

$ sudo vim /etc/yum.repos.d/trivy.repo
[trivy]name=Trivy
repositorybaseurl=https://aquasecurity.github.io/trivy-repo/rpm/releases/$releasever/$basearch/
gpgcheck=0
enabled=1
$ sudo yum -y update
$ 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

二进制方式安装

mkdir -p $GOPATH/src/github.com/aquasecurity
cd $GOPATH/src/github.com/aquasecurity
git clone --depth 1 --branch v0.19.2 https://github.com/aquasecurity/trivy
cd trivy/cmd/trivy/
export GO111MODULE=on
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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/63037.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从今天起真正释放创造力 | Werner Vogels 在 re:Invent 2022带来多项开发者福音

对于开发者而言,成就感来自于每一次敲下代码后可实现的创造力,而不是把时间和精力消耗在写千篇一律又无法复用的“胶水”代码,或是在越来越复杂的软件栈面前,疲惫地写业务流程并尽量减少 Bug。 更加不堪的是,有时仅仅…

软件测试工程师涨薪攻略!3年如何达到30K!

1.软件测试如何实现涨薪 首先涨薪并不是从8000涨到9000这种涨薪,而是从8000涨到15K加到25K的涨薪。基本上三年之内就可以实现。 如果我们只是普通的有应届毕业生或者是普通本科那我们就只能从小公司开始慢慢往上走。 有些同学想去做测试,是希望能够日…

[附源码]计算机毕业设计基于springboot架构的博客平台设计

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【电力系统】基于两阶段鲁棒优化算法的微网多电源容量配置附matlab代码

​✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法…

01 初识HTML5

HTML5结构组成 HTML5主要是由标签组成的&#xff0c;如下代码就是HTML5的主要组成部分&#xff1a;<!DOCTYPE html> <!-- 文档声明标签&#xff0c;表示用html5解析 --> <html lang"zh-CN"> <!-- languangen 表示英文 “…

【保姆级·创建对象】如何通过Supplier创建对象

Spring创建对象的主要方式有 通过自定义BeanPostProcessor&#xff0c;生成代理对象InstantiationAwareBeanPostProcessor createBean() -> resolveBeforeInstantiation() 通过supplier创建对象 createBean() -> doCreateBean() -> createBeanInstance() -> obtai…

行业寒冬下逆势拿到50万offer,看看大牛是怎么做到的

年薪50万&#xff0c;这个薪水我以前想都不敢想&#xff0c;我一直以为月薪2万就是软件测试的天花板。当越来越多的同行拿到更高的薪水&#xff0c;我才明白&#xff0c;限制我薪水的不是行业天花板&#xff0c;而是我的技术实力。 每天陀螺一样两点一线的在家和公司之间往返&…

Nature文章使用认证Kamiya艾美捷抗胸腺嘧啶二聚体单抗方案

细胞内、外部环境中普遍存在的DNA损伤因素会破坏遗传信息的稳定性。紫外线损伤皮肤的机制之一是损伤细胞的DNA&#xff0c;形成“晒伤细胞”&#xff0c;诱发细胞内DNA产生丰富的变异&#xff0c;主要包括环丁烷嘧啶二聚体&#xff08;CPD&#xff0c;Cyclobutane pyrimidine d…

网络安全域内用户Hash获取方式

前言 在渗透测试的过程中&#xff0c;当我们已经是域管权限时&#xff0c;就可以实现提取所有域内用户的密码哈希以进行离线破解和分析&#xff0c;这是非常常见的一个操作&#xff0c;这些哈希值存储在域控制器(NTDS.DIT)中的数据库文件中&#xff0c;并带有一些其他信息&…

5-3:Spring整合Kafka

引入依赖 spring-kafka <!-- https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka --> <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId>/*可以注释掉&#xff…

小程序webView页面转发后,进入页面空白

小程序webView页面&#xff0c;在点击右上角按钮分享后&#xff0c;进入分享的链接页面空白 重新进入页面后&#xff0c;页面空白。使用电脑打开之后报错提示如下 一、排查页面转发后&#xff0c;页面地址有没有解码 webview页面转发后&#xff0c;小程序会将url参数转码&…

Java并发-CompletableFuture的详解

目录 1 前言 2 常用方法 3 测试 3.1 runAsync&#xff1a;无返回值 和 SupplyAsync&#xff1a;有返回值 3.2 串行执行 3.3 任务3等待等任务1和任务2都执行完毕后执行 3. 4 任务3等待等任务1或者任务2执行完毕后执行 3.5 handleAsync 3.6 多任务执行 1 前言 Completable…

LabVIEW中将前面板置于所有桌面窗口的前面

LabVIEW中将前面板置于所有桌面窗口的前面 想将前面板窗口设置在所有桌面窗口的前面。前面板属性IsFrontmost&#xff08;如下图所示&#xff09;将前面板设置为仅位于所有 LabVIEW 窗口的前面。如何将前面板置于所有桌面窗口的前面&#xff1f; 解决方案 如果使用位于C:\WIN…

【JavaWeb】第七章 Tomcat

文章目录1、JavaWeb2、Web资源与Web服务器3、Tomcat的使用4、部署Web工程到Tomcat中5、工程和资源的访问6、IDEA集成Tomcat服务器7、创建动态web工程1、JavaWeb JavaWeb是指通过Java语言编写的可以通过浏览器访问的程序的总称。 请求&#xff1a; 客户端给服务器发送数据&…

java基于SSM的婚纱影楼管理系统-计算机毕业设计

开发环境 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架:SSM(springspringMVCmybatis)vue 项目介绍 婚姻是每个人人生中都非常重要的一个组成部分&#xff0c;它是一个新家庭的开始也是爱情的见证&#xff0c;所以很多人在结婚之前都会拍一套美…

数字先锋 | 农业农村部大数据公共平台基座上线,天翼云擎起乡村振兴新希望!

近日&#xff0c;由中国农业农村部大数据发展中心牵头&#xff0c;联合中国电信集团有限公司、人民数据管理&#xff08;北京&#xff09;有限公司、北京中农信达信息技术有限公司、北京农信通科技有限责任公司共同打造的“农业农村大数据公共平台基座”已正式上线&#xff0c;…

借助云的力量,重塑企业的现在和未来|re:Invent 2022 Adam Selipsky 主题演讲精华全收录

2022 亚马逊云科技re:Invent全球大会进入第二天&#xff0c;亚马逊云科技首席执行官 Adam Selipsky 发表了“如何借助云的力量&#xff0c;在未知领域抓住机遇并茁壮成长”的主题演讲。在两个小时的演讲中&#xff0c;Adam 重点围绕数据、安全、计算性能和行业应用等4个主题发布…

问题 A: 二叉排序树 - 文本输出

题目描述 给定一个序列&#xff0c;使用该序列生成二叉排序树&#xff08;也叫二叉搜索树&#xff0c;BST&#xff09;&#xff0c;然后以本题规定方法输出该二叉排序树。 例&#xff1a; 给定一个序列&#xff1a;43 25 29 67 17 88 54 47 35 62 以第一个数字&#xff08;43&…

RFID防盗安全门,自助借还书机,让图书馆发展进入新的里程碑

RFID无线射频识别是一种非接触的自动识别技术&#xff0c;它通过射频信号自动识别目标对象并获取相关数据&#xff0c;可快速进行物品追踪和数据交换&#xff0c;其识别无需人工干预。 RFID作为一种新的技术&#xff0c;它不只是简单的磁条码替代品&#xff0c;它的运作让图书馆…

为什么说新一代BI是“面向业务的可视化分析工具”?

BI工具一直被誉为数据应用的“最后一公里”&#xff0c;其原因在于BI工具可以通过简洁的方式完成数据分析&#xff0c;将数据结果直观的展现给使用者&#xff0c;达到释放数据价值的目的。 然而&#xff0c;传统BI的根本问题在于操作难度大&#xff0c;导致只能专业的IT人员进…