404StarLink 甲方安全工具精选:14 个企业级防御开源项目全景解析

原创2026-10-03 00:49:101,354 阅读
文章标签:文档知识库网络安全

404StarLink 甲方安全工具精选:14 个企业级防御开源项目全景解析

导读:本文以 404StarLink 开源安全项目精选仓库中的 party_a.md(甲方工具清单)为核心骨架,对其收录的 14 个面向企业安全建设(甲方视角)的开源项目进行系统性深度解析。文章覆盖网络性能压测、主机入侵检测、资产巡航、静态分析、供应链安全、移动隐私合规、容器安全、WAF 防护、欺骗防御与敏感信息监测九大方向,并结合仓库内 detail 目录下的详细文档,为读者提供从选型评估到部署上手的完整实战参考。

一、什么是"甲方工具":企业安全建设视角的工具清单

在安全行业语境中,"甲方"通常指需要建设自身安全体系、承担防御职责的企业或组织。与渗透测试、红队攻击等"乙方"视角的工具不同,甲方工具聚焦于防御侧的落地能力:资产管理、入侵检测、漏洞治理、合规审计、访问控制与威胁对抗。

404StarLink 仓库的 party_a.md 正是这样一份精选清单,它从海量开源项目中筛选出 14 个经过实践检验、值得甲方安全团队关注的项目,每个条目均标注了作者、开发语言与版本信息,并链接到仓库内的 detail 目录获取更完整的说明文档。按功能可划分为以下类别:

类别 代表项目
网络性能与压力测试 dperf
主机安全(HIDS) Elkeid、Hades
资产巡航与弱口令治理 linglong
静态分析与代码安全 Tai-e、appshark
软件供应链安全 murphysec
移动 App 隐私合规 AppScan、camille
容器安全 veinmind-tools、vArmor
Web 防护(WAF) OpenStar
欺骗防御 Juggler
敏感信息监测 GShark

下文按类别逐一展开,并在每一节结合仓库内对应的 detail 文档 补充关键配置、命令与原理说明。

二、网络性能与压力测试:dperf

详情文档:detail/dperf.md

dperf 是一个基于 DPDK 的 100Gbps 网络性能与压力测试软件,由 C 语言开发(作者 Benjamin,当前版本 V1.8.0)。国内多个知名安全厂商用它来测试防火墙性能,知名开源四层负载均衡项目 DPVS 也使用 dperf 进行性能测试并发布测试报告。

2.1 核心优点

  • 性能强大:基于 DPDK,使用一台普通 x86 服务器即可产生巨大流量——千万级 HTTP 每秒新建连接数、数百 Gbps 带宽、几十亿并发连接数;
  • 统计信息详细:能够输出详细的统计信息,并且识别每一个丢包;
  • 使用场景丰富:可用于四层负载均衡等四层网关的性能压力测试与长稳测试、云上虚拟机网络性能测试、网卡与 CPU 网络报文处理能力测试;压测场景下还可作为高性能 HTTP Server 或 HTTP Client 单独使用。

2.2 官方性能数据(基于单张 25Gbps Mellanox CX4 网卡)

HTTP 每秒新建连接数(CPS):

Client Cores Server Cores HTTP CPS
1 1 2,101,044
2 2 4,000,423
4 4 7,010,743
6 6 10,027,172

HTTP 吞吐:

Client Cores Server Cores RX(Gbps) TX(Gbps) Client CPU Usage(%) Server CPU Usage(%)
1 1 18 18 60 59
2 2 35 35 60 59
4 4 46 46 43 43

HTTP 并发连接数:

| Client Cores | Server Cores | Current Connections | Client CPU Usage(%) | Server CPU Usage(%) | | --- | --- | --- | --- | --- | --- | | 1 | 1 | 100,000,000 | 34 | 39 | | 2 | 2 | 200,000,000 | 36 | 39 | | 4 | 4 | 400,000,000 | 40 | 41 |

UDP TX PPS:

Client Cores TX MPPS Client CPU Usage(%)
1 15.96 95
2 29.95 95
4 34.92 67
6 35.92 54
8 37.12 22

上述性能数据的测试环境为:内存 512GB(大页 100GB)、网卡 Mellanox MT27710 25Gbps × 2、内核 4.19.90。

2.3 统计信息输出

dperf 每秒输出多种统计数据:TPS、CPS、各种维度的 PPS,TCP/Socket/HTTP 级别的错误数、丢包数,以及按 TCP Flag 分类的报文重传数。示例输出如下:

seconds 22                 cpuUsage 52
pktRx   3,001,058          pktTx    3,001,025          bitsRx   2,272,799,040      bitsTx  1,920,657,600      dropTx  0
arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                  otherRx 0          badRx 0
synRx   1,000,345          synTx    1,000,330          finRx    1,000,350          finTx   1,000,350          rstRx   0          rstTx 0
synRt   0                  finRt    0                  ackRt    0                  pushRt  0                  tcpDrop 0
skOpen  1,000,330          skClose  1,000,363          skCon    230                skErr   0
httpGet 1,000,345          http2XX  1,000,350          httpErr  0
ierrors 0                  oerrors  0                  imissed  0

2.4 部署与运行流程

第一步:设置大页。 参考以下参数编辑 /boot/grub2/grub.cfg,然后重启 OS:

linux16 /vmlinuz-... nopku transparent_hugepage=never default_hugepagesz=1G hugepagesz=1G hugepages=8

第二步:编译 DPDK。 编辑 config/common_base 打开 PMD 开关(Mellanox CX4/CX5 需 CONFIG_RTE_LIBRTE_MLX5_PMD=y,HNS3 需 CONFIG_RTE_LIBRTE_HNS3_PMD=y,VMXNET3 需 CONFIG_RTE_LIBRTE_VMXNET3_PMD=y):

TARGET=x86_64-native-linuxapp-gcc #or arm64-armv8a-linuxapp-gcc
cd /root/dpdk/dpdk-stable-19.11.10
make install T=$TARGET -j16

第三步:编译 dperf:

cd dperf
make -j8 RTE_SDK=/root/dpdk/dpdk-stable-19.11.10 RTE_TARGET=$TARGET

第四步:绑定网卡(Mellanox 网卡可跳过此步;假设 PCI 号是 0000:1b:00.0):

modprobe uio
modprobe uio_pci_generic
/root/dpdk/dpdk-stable-19.11.10/usertools/dpdk-devbind.py -b uio_pci_generic 0000:1b:00.0

第五步:启动 server 端并压测。 例如 server 监听 6.6.241.27:80,网关为 6.6.241.1:

# server 端
./build/dperf -c test/http/server-cps.conf
# 另一台机器作为 client 端
./build/dperf -c test/http/client-cps.conf
# 验证连通性(客户端 IP 必须在配置文件的 client 范围内)
ping 6.6.241.27
curl http://6.6.241.27/

2.5 使用限制与版本演进

使用上需注意三点限制:dperf 要求 HTTP 消息在一个数据包中,因此不适合 7 层负载均衡的测试;要求独占使用网络接口;没有路由功能,建议配合三层交换机搭建测试环境。

从 detail/dperf.md 的更新记录看,v1.8.0(2024-12-12)新增了对 DPDK-24.11 的支持、neigh_ignore(用于 LVS DR 模式)、随机 vxlan 源端口、多进程、payload_file、vhost-net 支持等;v1.7.0 新增 HTTP POST 请求发送、dpdk pdump、fast_close(使用 RST 关闭连接)等功能;v1.6.0 起 server 端可返回较大 payload,并支持 l3/l3l4 网卡 RSS 分流算法。该项目的作者彭建章(中国科学技术大学计算机专业博士,曾任华为、百度主任工程师)在百度工作期间开发了 dperf,项目基于 Apache License 2.0 开源。

三、主机安全(HIDS):Elkeid 与 Hades

3.1 Elkeid:云原生的主机入侵检测与风险识别平台

详情文档:detail/Elkeid.md

Elkeid 是字节跳动开源的一款可满足主机、容器与容器集群、Serverless 等多种工作负载安全需求的解决方案,源于字节跳动内部最佳实践,由 C/Golang 开发。随着多云、云原生、多种工作负载共存的趋势,一套方案满足不同工作负载安全需求正是 Elkeid 的定位。

3.1.1 核心能力

  • HIDS 能力:不仅具备传统主机入侵检测与恶意文件识别能力,对容器内的恶意行为也能很好识别——部署在宿主机即可同时满足宿主机与其上容器的反入侵需求,底层强大的内核态数据采集能力可满足大部分安全运营人员对主机层数据的诉求;
  • RASP 能力:可注入到业务进程内进行反入侵保护,运维人员无需再安装 Agent,业务也无需重启;
  • K8s 支持:支持接入 K8s Audit Log,对 K8s 系统进行入侵检测和风险识别;
  • 规则引擎联动:Elkeid HUB 规则引擎可与外部多系统联动对接。

3.1.2 开源版与完整版差异

Elkeid 开源版(Community Edition)与完整版存在差异,目前开源的能力包括:全部端上能力(数据/资产/部分采集、内核态数据采集、RASP 探针部分,与字节跳动内部版本一致);全部接入层能力(Agent Center、服务发现等,与内部版本一致);社区版规则引擎 Elkeid HUB 及少量示例策略;社区版 Elkeid Console 与部分配套能力。要获得完整的反入侵与风险感知能力,需自行基于 Elkeid HUB 进行策略构建和对采集数据做二次加工。

detail/Elkeid.md 中的功能对比表显示:Linux 数据采集、RASP 探针、K8s Audit Log 采集、Agent 控制面、资产采集、容器集群资产采集、告警白名单、病毒扫描、插件管理、系统监控、系统管理等能力社区版与商业版均具备;而行为序列入侵检测、告警溯源、威胁处置、文件隔离箱、漏洞情报热更新、基线检查、Windows 支持、主动防御等则属于商业版或规划中能力。

3.1.3 架构与组件

Elkeid 的架构分为端上与后台两部分:

  • 端上组件:Elkeid Agent(用户态 Agent,管理各端上能力组件并与 Agent Center 通信)、Elkeid Driver(Linux 内核层采集数据,兼容容器,可检测常见 Rootkit)、Elkeid RASP(支持 CPython、Golang、JVM、NodeJS、PHP 的运行时数据采集探针,支持动态注入);
  • Agent 插件体系:Driver Plugin(与 Driver 通信并处理数据)、Collector Plugin(资产/关键信息采集,如用户、定时任务、包信息)、Journal Watcher(监测 systemd 日志,目前支持 ssh 相关日志采集上报)、Scanner Plugin(静态检测恶意文件,支持 Yara)、RASP Plugin(分析进程运行时信息、处理 Attach 指令)、Baseline Plugin(基线风险识别);
  • 后台组件:AgentCenter(与 Agent 通信并管理升级、配置修改、任务下发)、ServiceDiscovery(各组件定时注册同步服务信息)、Manager(后台管理与查询接口)、Console(前端)、HUB(策略引擎)。

部署方面,官方推荐通过 Elkeidup 一键部署,详细指引见 detail/Elkeid.md。

3.2 Hades:Windows/Linux 双平台内核级数据采集 HIDS

详情文档:detail/Hades.md

Hades 是一款支持 Windows/Linux 的内核级别数据采集主机入侵检测系统(Golang/C++/C 开发,作者 theSecHunter,当前版本 V1.1.0),其设计特点是每个插件均可独立分开运行。该仓库为各组件的整合入口,服务端 demo 为 Hboat,Windows 端为 Hades-Windows,Linux 端为 Hades-Linux。

从 v1.1.0(2023-01-31)的更新记录看:ebpf 插件支持了 arm64,并支持简易端口扫描检测;Windows 插件支持进程拦截、注册表拦截、目录保护、注入检测。对于需要跨平台主机数据采集能力、且希望按插件灵活裁剪的甲方团队,Hades 是一个轻量的参考实现。

四、资产巡航与弱口令治理:linglong

详情文档:detail/linglong.md

linglong 是一款甲方资产巡航扫描系统(Golang 开发,作者 awake1t),系统定位是发现资产并进行端口爆破,帮助企业更快发现弱口令问题。其核心工作模式是 masscan + nmap 无限循环发现新增资产,随后自动进行端口弱口令爆破、指纹识别与 Xray POC 扫描。主要功能包括:资产探测、端口爆破、POC 扫描、指纹识别、定时任务、管理后台识别、报表展示。

4.1 功能清单与亮点

  • masscan + nmap 巡航扫描资产;
  • 创建定时爆破任务(FTP/SSH/SMB/MSSQL/MYSQL/POSTGRESQL/MONGOD);
  • 管理后台识别;
  • 结果导出与报表展示;
  • Docker 一键部署;
  • CMS 识别:结合威胁情报,若某个 CMS 爆出漏洞,可快速定位企业内部有多少资产受影响;
  • POC 扫描:调用 Xray 的 POC(系统集成的 Xray 版本为 1.7.0),对新发现的资产自动扫描,发现漏洞自动入库并可可视化查看;
  • 资产时效性管理:通过动态设置资产扫描周期,对 N 个扫描周期都未扫描到的失效资产自动删除。

4.2 特色功能详解

  • 管理后台识别:对资产库进行 Title 识别,根据 title 关键字、url 关键字、body 关键字(如 url 包含 login、body 包含 username/password)简单区分后台,帮助渗透中尽快锁定后台地址;
  • 指纹识别:对新发现资产自动进行指纹识别,也可手动新增指纹——当某 CMS 爆出漏洞时,新增指纹扫描一遍已有资产即可快速定位漏洞资产,无论对渗透打点还是甲方应急都很有价值。

4.3 安装与上手

本地体验部署:

git clone https://github.com/awake1t/linglong
cd linglong
docker-compose up -d

运行后通过 docker container ls -a 确认容器状态,Web 访问 http://ip:8001,默认账号密码如下:

Web 账号 linglong linglong5s
类型 用户名 密码
mysql 数据库 root linglong8s

服务器部署(地址不是 127.0.0.1 的情况)时,需要将前端中的后端地址替换为服务器 IP:

git clone https://github.com/awake1t/linglong
cd linglong/web

# 把 YourServerIp 换成你的IP地址
sed -i 's#http://127.0.0.1:18000#http://YourServerIp:18000#g' ./dist/js/app.4dccb236.js && sed -i 's#http://127.0.0.1:18000#http://YourServerIp:18000#g' ./dist/js/app.4dccb236.js.map

# 重要:如果之前安装过,删除所有名字包含linglong的历史镜像
docker rmi $(docker images | grep "linglong" | awk '{print $3}')

# 返回到 linglong 的目录下
cd ../
docker-compose up -d

若访问不了,需确认服务器安全组的 8001 和 18000 端口是否已打开。首次运行需在设置里修改要扫描的网段范围并保存,之后系统会自动扫描,扫描耗时随配置的网段、端口与速率变化。

五、静态分析与代码安全:Tai-e 与 appshark

5.1 Tai-e(太阿):通用型 Java 程序分析框架

详情文档:detail/Tai-e.md

Tai-e 是南京大学 pascal-lab 团队开源的通用型 Java 静态分析框架(Java 开发,当前版本 V0.5.1),集成了开发程序分析技术所需的各类基础设施,并提供可配置性高、功能强大的污点分析系统,用于检测各类隐私泄露、注入攻击等安全漏洞。其相关论文发表于 ISSTA 2023(作者 Tian Tan 与 Yue Li),被评价为兼具自研设计思想与 Soot、WALA、Doop、SpotBugs 等经典框架的优秀设计。

5.1.1 主要分析组件

  • 指针分析框架:支持 on-the-fly 调用图构建、多种经典与先进的堆抽象和上下文敏感技术,提供可扩展的分析插件系统,便于开发与指针分析交互的新分析;
  • 可配置安全分析:污点分析支持配置 sources、sinks、taint transfers 与 sanitizers,可检测各类信息泄露与注入漏洞,并可在精度与效率之间做多种权衡;
  • 基础/工具分析:反射分析、异常分析、lambda 与方法引用分析、invokedynamic 分析,以及分析计时器、约束检查器、多种图导出工具;
  • 控制流/数据流分析框架:控制流图构建、经典数据流分析(活跃变量、常量传播)以及用户自定义数据流分析;
  • SpotBugs 风格缺陷检测系统:内置空指针检测器、错误 clone() 检测器等,也支持扩展自定义检测器。

5.1.2 获取与集成方式

可以直接从项目 Releases 下载可运行 jar;或使用 Gradle 构建(需要 Java 17 或更高版本),执行 gradlew fatJar 后,可运行 jar 将生成在 tai-e/build/ 目录,包含 Tai-e 及其全部依赖。

Tai-e 也发布在 Maven 仓库,可作为依赖引入项目:

稳定版(Gradle):

dependencies {
    implementation("net.pascal-lab:tai-e:0.2.2")
}

稳定版(Maven):

<dependencies>
    <dependency>
        <groupId>net.pascal-lab</groupId>
        <artifactId>tai-e</artifactId>
        <version>0.2.2</version>
    </dependency>
</dependencies>

最新版(Gradle,快照):

repositories {
    mavenCentral()
    maven { url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") }
}

dependencies {
    implementation("net.pascal-lab:tai-e:0.5.1-SNAPSHOT")
}

最新版(Maven,快照):

<repositories>
    <repository>
        <id>snapshots</id>
        <name>Sonatype snapshot server</name>
        <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>net.pascal-lab</groupId>
        <artifactId>tai-e</artifactId>
        <version>0.5.1-SNAPSHOT</version>
    </dependency>
</dependencies>

5.1.3 版本演进要点

v0.5.1 新增命令行参数检查、性能监控,并持续增强指针分析、副作用分析、类层级分析;v0.2.2 起支持 --app-class-path(指定 application 类路径)、--keep-results(只保留必要分析结果以节省内存)、--output-dir(指定结果输出目录)、-wc(World 缓存模式,加速多次分析同一程序的启动);污点分析支持指定方法形参/实参/字段读取作为污点源、为方法形参配置 sanitizer、自动输出污点流图、加载多个污点配置文件、变量与实例字段/数组元素间的污点转移以及 call-site 模式;指针分析支持入口点、分析时间限制、原子类型值传播、基于推导与基于日志的混合反射分析、Solar 反射分析(TOSEM'19)以及 YAML 格式结果转储。此外项目还提供了教育版 Tai-e,包含八套编程作业,是系统学习静态分析技术的良好途径。

5.2 appshark:面向超大型 App 的 Android 静态分析平台

详情文档:detail/appshark.md

appshark 是字节跳动开源的 Android 静态污点分析平台(Kotlin 开发,当前版本 V0.1.2),设计目标是针对超大型 App 的分析。它支持基于 JSON 的自定义扫描规则,可发现自己关心的安全漏洞以及隐私合规问题,支持灵活配置,在准确率与扫描时间空间之间寻求平衡,并支持按业务需要定制扩展规则。

5.2.1 环境要求与构建

  • 前置条件:需要特定版本的 JDK——JDK 11。经测试,由于依赖兼容性问题,在其他 LTS 版本(JDK 8 和 JDK 16)上无法工作;
  • 构建:在项目根目录执行 ./gradlew build -x test,构建产物为 build/libs/AppShark-0.1.1-all.jar。

5.2.2 运行与配置

java -jar build/libs/AppShark-0.1.1-all.jar config/config.json5

配置文件 config.json5 示例:

{
  "apkPath": "/Users/apks/app1.apk",
  "out": "out",
  "rules": "unZipSlip.json",
  "maxPointerAnalyzeTime": 600
}

字段说明:

  • apkPath:待分析 apk 文件的路径;
  • out:输出目录路径;
  • rules:规则文件路径,可以配置 1 个或多个规则;
  • maxPointerAnalyzeTime:从某个入口点开始分析的超时时间(秒);
  • debugRule:指定规则名称以开启该规则的调试日志。

5.2.3 结果解读

分析完成后在输出目录生成 results.json,包含 App 基本信息(AppName、PackageName、min_sdk、target_sdk、versionCode、versionName 等)、安全信息(SecurityInfo,按风险类别如 FileRisk 组织,每个漏洞含 Source、Sink、entryMethod、target 污点传播链、hash、possibility 概率值以及可点击查看的 HTML 报告链接)、DeepLinkInfo、HTTP_API、JsBridgeInfo、权限使用情况(UsePermissions、DefinePermissions)以及 Profile 性能文件等。从 detail/appshark.md 的示例可见,其污点分析结果会完整呈现从 Source 到 Sink 的逐跳传播路径,便于审计人员快速定位问题代码位置。

六、软件供应链安全:murphysec

详情文档:detail/murphysec.md

murphysec 是墨菲安全推出的 CLI 工具(Golang 开发,当前版本 V1.10.0),用于在命令行检测指定目录代码的依赖安全问题,也可以基于 CLI 工具实现在 CI 流程中的检测。其两大核心功能是:分析项目使用的依赖信息(包含直接和间接依赖);检测项目依赖存在的已知漏洞信息。

6.1 支持的语言与包管理工具

语言 包管理工具 所需文件
Java Maven pom.xml
Java Gradle build.gradle, build.gradle.kts
Go Go Modules go.mod
JavaScript NPM package.json, package-lock.json
JavaScript Yarn yarn.lock, package.json
Python pip requirements.txt
Python Poetry poetry.lock
PHP Composer composer.lock
Ruby Bundler Gemfile.lock, gems.locked
.NET NuGet packages.lock.json
C# NuGet packages.lock.json
Objective-C Cocoapods Podfile.lock

6.2 工作原理

  1. 对不同语言/包管理工具的项目,主要采用项目构建或直接对包管理文件解析的方式,准确获取项目的依赖信息;
  2. 依赖信息上传到服务端,基于墨菲安全持续维护的漏洞知识库识别存在安全缺陷的依赖。

隐私说明:CLI 工具只会将检测项目的依赖和基本信息发送到服务端用于漏洞识别,不会上传任何本地代码。

6.3 安装

Linux:

wget -q https://s.murphysec.com/install.sh -O - | /bin/bash

macOS:

curl -fsSL https://s.murphysec.com/install.sh | /bin/bash

Windows:

powershell -Command "iwr -useb https://s.murphysec.com/install.ps1 | iex"

Windows 下若提示 "PowerShell requires an execution policy of 'RemoteSigned'",需以管理员权限打开 Powershell 并执行 Set-ExecutionPolicy RemoteSigned -scope CurrentUser。

6.4 认证与检测流程

  1. 创建任务:登录墨菲安全控制台,在项目页面通过"接入"或"创建任务"按钮创建任务;
  2. 获取访问令牌:控制台左下角个人设置 → 用户 token 复制访问令牌;
  3. 认证:两种方式——命令行交互认证(murphysec auth login 后粘贴令牌,认证后无需重复执行,更换令牌可重复此命令覆盖)或命令行参数认证(检测时通过 --token 参数指定);
  4. 执行检测:
murphysec scan [your-project-path]

scan 常用参数:--token(指定访问令牌)、--log-level(日志级别,可选 silent、error、warn、info、debug,默认不打印日志)、--json(结果输出为 JSON)、--task-id(指定本次检测归属的项目 ID)。全局参数还包括 -x/--allow-insecure(允许不安全的 TLS 连接)、--server(指定服务地址)、--no-log-file、--write-log-to 等。

  1. 查看结果:CLI 默认不展示结果详情,可在墨菲安全控制台"项目"页面查看详细检测结果。

常见问题排查:Java(Maven)项目检测结果依赖不完整时,需检查本地 Maven 环境(mvn -v)、私有源配置(~/.m2/settings.xml)以及 pom.xml 是否存在,可用 mvn dependency:tree --file="pom.xml" 验证依赖是否可正常获取;若检测完依赖与缺陷组件数量都是 0,需检查项目/文件是否在支持范围内。

七、移动 App 隐私合规:AppScan 与 camille

7.1 AppScan:免费的企业级自动化隐私合规检测工具

详情文档:detail/AppScan.md

安全隐私卫士(AppScan)是同程旅行开源的一款免费企业级自动化 App 隐私合规检测工具(Python 开发,当前版本 V2.1.5)。它基于动态分析,可以精准定位 App 的违规风险点。

AppScan 的优点:

  • 全面性:从信息收集、权限申请及数据传输等多个维度,实现对 App 个人信息合规的全面检测;
  • 规范性:全面覆盖《App违法违规收集使用个人信息行为认定方法》、国家标准 GB/T35273《信息安全技术 个人信息安全规范》、《中华人民共和国网络安全法》等主流安全检测标准;
  • 高效性:可快速进行日常合规检测,深度挖掘隐私合规风险点、快速处理大批量 App,替代人工翻查代码,降低时间与人力成本;
  • 易用性:无需环境搭配、开箱即用。

支持的环境: Windows 10 及以上、macOS 11.0 及以上、Android 8.x 及以上;App 需为 64 位且未加固(有时引入的第三方 SDK 也自带反检测功能)。模拟器方面,目前支持雷神模拟器 9(需在"设置-其他设置"中开启 root 权限,并将 ADB 调试设置为"开启本地连接");MuMu 模拟器 12 因未找到 ADB 开关暂不支持。

版本演进:v2.1.5 修复 AndroidID 误报、新增 quickGame 匹配、丰富安卓 ID 与安装 App 信息触发场景;v2.1.2 支持雷电模拟器 9、更新 frida 至 16.1.4、修复 Android 13 兼容问题。仓库文档还提供了架构说明、开发文档、build 指南与 api 文档供二次开发参考。

7.2 camille:基于 Frida 的 Android 隐私合规辅助检测

详情文档:detail/camille.md

camille 是一款 Android App 隐私合规检测辅助工具(Python 开发,作者 zhengjim)。在 APP 隐私合规日益重要、各监管部门不断开展专项治理与核查通报的背景下,camille 可以 hook 住 Android 敏感接口,并识别是否为第三方 SDK 调用,根据隐私合规场景辅助检查是否符合合规标准。

环境要求: Python3、Frida、一台已 root 的手机,并在手机上运行 frida-server。作者测试环境为 Android 8.1 与 Android 10,其他版本安卓可能会有兼容性问题。

安装与使用:

git clone https://github.com/zhengjim/camille.git
cd camille
pip install -r requirements.txt
python camille.py -h

功能演进要点(来自 detail/camille.md 的更新日志):

  • 支持多设备指定功能(-H 指定 frida-server,可用于对抗 frida 检测);
  • 支持同意隐私合规状态(需人工确认)、第三方 SDK 识别、可 hook 构造函数(methodName 传 '$init');
  • 支持加载外部脚本文件(填相对路径或绝对路径,便于 pyinstaller 打包二进制后使用);
  • 可指定模块 hook 或不 hook 哪些模块,默认不传则全扫描;
  • 默认不开启绕过 TracerPid,并增加 attach hook,避免部分加固包不能 hook 的问题;
  • 新增多个 Android 版本接口、用户自定义 hook 方法,修复 Android 13/7 与 Frida 12 的兼容性问题。

作者在后记中坦言,纯自动化检测并不全面(最多检测 20%~30%),camille 的定位是结合人工的辅助检测工具,这一点对于合规治理工作的排期设计具有参考意义。

八、容器安全:veinmind-tools 与 vArmor

8.1 veinmind-tools(问脉):基于 SDK 的容器安全工具集

详情文档:detail/veinmind-tools.md

veinmind-tools 是长亭科技自研、牧云团队孵化,基于 veinmind-sdk 打造的容器安全工具集(Golang/Python 开发,当前版本 V2.1.5)。veinmind 中文名为"问脉",寓意"容器安全见筋脉,望闻问切治病害"。目前已支持镜像恶意文件、后门、敏感信息、弱口令的扫描,更多功能持续开发中。

8.1.1 快速开始

# 1. 确保机器上正确安装 docker
docker info

# 2. 安装 veinmind-runner 镜像
docker pull registry.veinmind.tech/veinmind/veinmind-runner:latest

# 3. 下载 veinmind-runner 平行容器启动脚本
wget -q https://download.veinmind.tech/scripts/veinmind-runner-parallel-container-run.sh -O run.sh && chmod +x run.sh

# 4. 快速扫描本地镜像/容器
./run.sh scan [image/container]

# 5. 使用 OpenAI 智能分析扫描结果
./run.sh scan [image/container] --enable-analyze --openai-token <your_openai_token>

使用 OpenAI 时需确保网络可访问;平行容器启动时,非全局代理场景需通过 docker run -e http_proxy=xxxx -e https_proxy=xxxx 手动设置代理。

8.1.2 工具列表

工具 功能
veinmind-runner 扫描工具运行宿主
veinmind-malicious 扫描容器/镜像中的恶意文件
veinmind-weakpass 扫描容器/镜像中的弱口令
veinmind-log4j2 扫描容器/镜像中的 log4j2 漏洞
veinmind-minio 扫描容器/镜像中的 minio 漏洞
veinmind-sensitive 扫描镜像中的敏感信息
veinmind-backdoor 扫描镜像中的后门
veinmind-history 扫描镜像中的异常历史命令
veinmind-vuln 扫描容器/镜像中的资产信息和漏洞
veinmind-webshell 扫描镜像中的 Webshell
veinmind-unsafe-mount 扫描容器中的不安全挂载目录
veinmind-iac 扫描镜像/集群的 IaC 文件
veinmind-escape 扫描容器/镜像中的逃逸风险
veinmind-privilege-escalation 扫描容器/镜像中的提权风险
veinmind-trace 扫描容器中的入侵痕迹

所有工具均支持以平行容器方式运行,可通过 example 快速创建插件。云原生设施兼容性方面,已支持 Jenkins、Gitlab CI、Github Action 等 CI/CD 平台,DockerHub、Docker Registry、Harbor 等镜像仓库,Docker、Containerd 容器运行时以及 Kubernetes 集群。

版本演进:v2.1.5 新增 veinmind-trace 插件(检查容器攻击痕迹)、用 Golang 重构 backdoor 插件并增加 rootkit 扫描;v2.1.4 新增 privilege-escalation 插件(检测 suid/sudo 提权风险);v2.1.3 新增 mysql5 弱口令扫描、caching_sha2_password 插件、kubernetes iac 策略插件、env/docker 历史命令扫描;v2.1.2 弱口令扫描支持 ftp、IaC 增加 dockerfile 安全检测;v2.1.0 起支持使用 OpenAI 分析扫描结果。

8.2 vArmor:基于 LSM 的云原生容器沙箱系统

详情文档:detail/vArmor.md

vArmor 是字节跳动终端安全团队(Elkeid Team)研发的云原生容器沙箱系统(Golang 开发,当前版本 V0.9.2)。它借助 Linux 的 AppArmor LSM、BPF LSM 和 Seccomp 技术实现强制访问控制器(Enforcer),对容器进行安全加固,可用于增强容器隔离性、减少内核攻击面、增加容器逃逸或横向移动攻击的难度与成本。

8.2.1 适用场景

  • 业务存在多租户共享同一集群,因成本、技术条件限制无法使用硬件虚拟化容器(如 Kata Container)时;
  • 需要对关键业务进行安全加固,增加攻击者权限提升、容器逃逸、横向渗透的难度与成本时;
  • 出现高危漏洞但修复难度大、周期长而无法立即修复时,可借助 vArmor 实施漏洞利用缓解(缓解代表阻断利用向量、增加利用难度)。

官方同时提醒:如需高强度的隔离方案,建议优先考虑硬件虚拟化容器(如 Kata Container)进行计算隔离,并借助 CNI 的 NetworkPolicy 进行网络隔离。

8.2.2 特色能力

  • Cloud-Native:遵循 Kubernetes Operator 设计模式,用户可通过操作 CRD API 对特定 Workloads 进行加固,以更贴近业务的视角实现容器化微服务的沙箱加固;
  • Multiple Enforcers:将 AppArmor、BPF、Seccomp 抽象为 Enforcer,支持单独或组合使用,对容器的文件访问、进程执行、网络外联、系统调用等进行访问控制;
  • Allow-by-Default:当前重点支持的安全模型——只有显式声明的行为会被阻断,减少性能损失、增加易用性;
  • Built-in Rules:提供一系列开箱即用的内置规则,为 Allow-by-Default 模型设计,降低对用户专业知识的要求;
  • Behavior Modeling:支持对工作负载进行行为建模,可用于开发白名单安全策略、分析内置规则适用性、指导工作负载遵循权限最小化原则;
  • Deny-by-Default:可基于行为模型创建白名单安全策略,确保仅显式声明的行为被允许。

8.2.3 版本演进要点

v0.9.2 为特定云服务商添加元数据阻断规则,并重构领导者选举实现以解决大规模集群中租约续约失败问题;v0.9.0 为 BPF Enforcer 配置文件启用 enforce/complain 模式与 BehaviorModeling 模式支持,违规日志新增 operation 字段,Go 升级至 1.24;v0.8.0 新增 PodServiceEgressControl 特性(限制对 Pod 和服务的访问)、block-access-to-kube-apiserver 与 ingress-nightmare-mitigation 内置规则、网络出口规则支持多端口与端口范围;v0.7.0 在 VarmorPolicy 和 VarmorClusterPolicy CRD 中添加 AllowViolations 字段,AppArmor、BPF、Seccomp enforcers 支持观察模式,并支持将违规事件记录到 violation.log。可见 vArmor 正处于积极迭代期,适合作为集群容器加固的演进型选型。

九、Web 防护:OpenStar 高性能 WAF

详情文档:detail/OpenStar.md

OpenStar 是一个基于 OpenResty 的高性能 Web 应用防火墙(WAF+)(JS/Python 开发,作者 starjun),支持复杂规则编写。除常规 HTTP 字段规则配置外,还提供 IP 黑白名单、访问频次等配置,针对 CC 防护提供特定规则算法,并支持搭建集群进行防护。使用版本需大于 1.11.0(因为使用了 ngx.var.request_id)。

9.1 规则匹配体系(二阶匹配)

一般情况下匹配某一规则由 3 个参数组成:第二个参数标识第一个参数的类型,第三个参数表示是否取反(默认 nil 即 false 表示不取反)。

基础匹配类型:

  • 等于 "":hostname: ["*",""] 表示匹配所有域名(字符串匹配,非正则,非常快);
  • 包含 in:uri: ["/admin","in"] 表示匹配 uri 中包含 /admin(string.find($uri,参数1,1,true));
  • 列表 list:hostname: [["127.0.0.1","127.0.0.1:8080"],"list"] 匹配列表中的所有 host;
  • 字典 dict:hostname: [{"127.0.0.1":true,"127.0.0.1:5460":true},"dict"] 匹配字典中值为 true 的 host;
  • 正则 jio:hostname: ["*\\.game\\.com","jio"] 使用正则匹配(ngx.re.find($host,参数1,参数2));
  • CIDR:ip: [["127.0.0.1/32","113.45.199.0/24"],"cidr"] 匹配 IP 段;
  • 长度 len:"referer":[[0,150],"len"] 表示 referer 长度在 0~150 之间(大于等于 Min 且小于等于 Max)。

扩展匹配类型(1.7 系列更新):start_list(开头列表)、ustart_list(不区分大小写开头列表)、end_list(结尾列表)、uend_list(不区分大小写结尾列表)、in_list(包含列表)、uin_list(不区分大小写包含列表)、aho(并行正则匹配,基于 lua-aho-corasick 实现)。此外支持取反:["baidu","in",true],以及等于判断表达式 ["www.test.com","="]。

args 参数匹配:args: ["*","",["args_name","all"],false] 中,第三个参数表示取 args 参数 table 的 key 名称,其第 2 个元素表示取值为 table 时匹配任意(all)、最后一个(end)或第几个(数字),默认取第一个。

9.2 执行流程(14 个防护模块)

OpenStar 在 access 阶段自上而下按顺序执行规则:

序号 模块 作用
0 realIpFrom_Mod 获取用户真实 IP(从 HTTP 头获取,如设置)
1 ip_Mod 请求 IP 的黑/白名单、log 记录
2 host_method_Mod host 和 method 过滤(白名单)
3 rewrite_Mod 跳转模块,set-cookie 操作
4 host_Mod 对应 host 执行的规则过滤(uri、referer、useragent 等)
5 app_Mod 用户自定义应用层过滤(支持规则组与 OR 连接符)
6 referer_Mod referer 过滤(黑/白名单、log 记录)
7 uri_Mod uri 过滤(黑/白名单、log 记录)
8 header_Mod header 过滤(黑名单)
9 useragent_Mod useragent 过滤(黑/白名单、log 记录)
10 cookie_Mod cookie 过滤(黑/白名单、log 记录)
11 args_Mod args(query_string)参数过滤(黑/白名单、log 记录)
12 post_Mod post 参数过滤(黑/白名单、log 记录)
13 network_Mod 应用层网络频率限制(频率黑名单)
14 replace_Mod 内容替换规则(body 阶段执行)

关键模块示例:

  • realIpFrom_Mod:{"101.200.122.200:5460": {"ips": ["*",""],"realipset": "x-for-f"}} 表示该直连 IP 来的请求,用户真实 IP 在 x-for-f 头中(ips 支持二阶匹配,为 * 时不区分直连 IP);
  • ip_Mod:{"ip":"111.206.199.61","action":"allow"} 为 IP 白名单,{"ip":"www.game.com-111.206.199.1","action":"deny"} 为对应 host 的 IP 黑名单;
  • host_method_Mod:{"state":"on","method":[["GET","POST"],"list"],"hostname":[["id.game.com","127.0.0.1"],"list"]} 表示规则开启时允许的 method 与 host 集合;
  • rewrite_Mod:{"state":"on","action":["set-cookie"],"set_cookie":["asjldisdafpopliu8909jk34jk","token_name"],"hostname":["101.200.122.200",""],"uri":["^/rewrite$","jio"]} 表示匹配成功的请求进行 302/307 跳转并设置无状态 cookie;
  • app_Mod:action 支持 deny(拒绝访问)、allow(允许访问)、log(仅记录)、rehtml(返回自定义字符串)、refile(返回自定义文件)、relua(执行 lua 脚本)、relua_str(执行 lua 代码)——各种高级功能基本靠该模块实现;
  • referer_Mod:{"state":"on","uri":["\\.(gif|jpg|png|jpeg|bmp|ico)$","jio"],"hostname":["127.0.0.1",""],"referer":["*",""],"action":"allow"} 用于静态资源放行(防盗链白名单);
  • network_Mod:{"state":"on","network":{"maxReqs":20,"pTime":10,"blackTime":600},"hostname":["id.game.com",""],"uri":["^/2.html$","jio"]} 表示 10 秒内访问超 20 次则将 IP 加入黑名单 10 分钟;同时支持基于业务属性限速,如 "network":{"maxReqs":30,"pTime":10,"blackTime":600,"guid":"cookie_userguid"} 从 cookie 中取 userguid 值进行频率统计;
  • replace_Mod:"replace_list":[["联合","","联合FUCK"],["登录","","登录POSS"],["lzcaptcha\\?key='\\s*\\+ key","jio","lzcaptcha?keY='+key+'&keytoken=@token@'"]] 支持字符串与正则替换,@token@ 表示动态替换为服务器生成的唯一随机字符串。

9.3 集群与安装要点

  • Master/Slave 模式:主节点定时将内存中的配置推送到 Redis,从节点定时从 Redis 拉取数据到内存并保存到文件;
  • 规则缓存:规则进行了缓存以大幅提高性能,集群下规则存放在 Redis,通过 API 操作更新到 dict,且支持定时从 Redis 拉取配置;
  • 安装流程:安装 OpenResty → 在 nginx.conf 的 http 节点引用 waf.conf(原 ngx 配置基本不用修改)→ 修改 waf.conf 中的 lua_package_path 与 lua 文件路径 → 设置 OpenStar 目录权限(ngx 运行用户需有读写执行权限,因为要写日志)→ 修改 init.lua 中的 conf_json 参数(base.json 绝对路径要写正确)→ 通过监听 5460 端口使用 API 管理接口。

9.4 性能评测(官方数据)

官方在微软虚机内网环境下测试(Ubuntu 4.2.0-30-generic、内存 14GB、Intel Xeon E5-2660 4 核,ab -c 1000 -n 100000 "http://10.0.0.4/test/a?a=b&c=d"):

  • 关闭所有规则:最高 8542;
  • 启用规则(排除 app、network、replace):8388,性能下降 1.81%;
  • 启用规则(排除 replace,app 中未启用 relua 高消耗点):7959,性能下降 6.83%;
  • 启用规则(排除 useragent,因 ab 工具默认被拦截):7116,性能下降 16%。

总体而言启用规则后的性能损失可接受,可根据自身业务调整优化。

9.5 CC 防护算法思想

detail/OpenStar.md 对 CC 攻击与数据采集防护给出了完整的分析框架:攻击点分为用户可直接访问的 URL(搜索、高计算、随机 URL 等)、嵌入型 URL(验证码、ajax 判断等)、非浏览器接口(公共 API、WEBservice 等)与特定语言/服务器的攻击(PHP dos、慢速攻击等);防护分为网络层(IP 频率统计、阈值、黑名单)、网络层+应用层(从 HTTP 头取真实 IP 做频率限制)与应用层(TAG 验证、SET COOKIE、URL 跳转、JS 跳转、验证码、页面嵌套、强制静态缓存等)。

其提出的高级算法包括:JS 静态/动态验证(跳转/渲染页面为下一次请求的 URL 增加带标记的 args 参数尾巴,服务端用静态正则或服务器动态生成的 token 校验合法性)、JS 增强(鼠标轨迹、鼠标点击事件、随机延迟、基于特定浏览器的 JS 方言)、浏览器指纹(生成唯一指纹判断链式请求指纹一致性,构建类似 IP 信誉库的指纹信誉库)、控件/浏览器防护(通过 set cookie、args 参数尾巴、POST 参数等方式由控件与 Web 服务器双向约定或加密产生合法性校验值)。

十、欺骗防御:Juggler 拦截欺骗中心

详情文档:detail/Juggler.md

Juggler(耍把戏的人)是一个也许能骗到黑客的系统,可以作为 WAF 等防护体系的一环(Golang 开发,作者 C4o)。其核心思想是:很多 WAF 拦截恶意请求后直接返回特殊告警页面或状态码,反而给攻击者显而易见的提示;而如果返回内容与业务返回一致,就能让攻击者很难察觉已被策略拦截,从而混淆视听、消费攻击者精力。据作者介绍,该项目已在线上运行一年多,每日处理攻击请求过亿。

10.1 典型应用场景

场景一:暴力破解登录口。 若登录成功返回 {"successcode":0,"result":{"ReturnCode":0}},登录失败返回 {"errorcode":1,"error":"用户名密码不匹配","result":{"ReturnCode":0}},可配置为:触发规则后持续返回错误状态码(让攻击者以为字典不给力),或返回特定 cookie,WAF 匹配到该 cookie 后将请求导流到 Web 蜜罐与攻击者深入交流。

场景二:XSS 探测。 可配置为:无论攻击者怎么测,都返回去除攻击者 payload 的请求的响应;或识别 payload 语法后回显一个弹框,模拟漏洞存在,诱导攻击者持续投入精力。

前提说明:上述需求实现的前提是前方有强有力的 WAF——只有攻击请求被检出后,攻击请求才能到达 Juggler 拦截欺骗中心。

10.2 技术原理与性能

Juggler 本质上是一个 Lua 插件化的 Web 服务器,基于 gin 开发,将 *gin.Context 以 Lua 的 userdata 放入 Lua 虚拟机,因此可以通过 Lua 脚本进行请求处理。与原生 gin 相比性能损失约 10%(每个请求的真实处理仍在 Golang 中完成,但临时变量会在 Lua 虚拟机过一遍):

gin 逻辑:

func handler(c *gin.Context) {
    c.String(200, "host of this request is %s", c.Request.Host)
}

juggler 逻辑:

local var = rock.var
local resp = rock.resp

resp.string(200, "host of this request is %s", var.host)

10.3 示例插件

文件名如 juggler.test.com.lua,当攻击请求的业务域名是 juggler.test.com 时匹配该插件:

local var = rock.var
local resp = rock.resp
local crypto = require("crypto")
local time = require("time")
local re = require("re")
local log = rock.log
local ERR = rock.ERROR

-- 通过var内的参数,匹配每一个攻击请求中的http参数
if var.rule == "sqli" then
    -- 返回格式化字符串,使用内置方法每次回显不同的32位随机md5值
    resp.string(200, "Congratulation!Password hash is %s.", crypto.randomMD5(32))
    log(ERR, "found sqli attack in %d", time.format())
    return
end

-- 使用正则匹配某个路径,与规则匹配并用
if var.rule == "xss" and re.match(var.uri, "^/admin/") then
    resp.set_header("Content-Type", "text/html; charset=utf-8")
    resp.set_header("Date", time.server_date())
    resp.status(403)
    return
end

if var.rule == "lfi_shadow" then
    -- 使用预存文件etc_shadow.html进行内容回显,状态码200
    resp.html(200, "etc_shadow")
    return
end

if var.rule == "rce" then
    resp.set_header("Content-Type", "text/html; charset=utf-8")
    -- 在响应中set_cookie
    resp.set_cookie("sessionid", "admin_session", 6000, "/", var.host, true, true)
    -- 克隆固定页面回显,缓存内容,不会每次都克隆
    resp.clone(200, "https://duxiaofa.baidu.com/detail?...")
    return
end

-- 不匹配任何规则时,返回默认404内容
resp.set_header("Content-Type", "text/html; charset=utf-8")
resp.html(404, "default_404")
return

10.4 请求变量与响应 API

请求变量 rock.var(覆盖常见参数,见 detail/Juggler.md 中 golua/request.go 的说明):host、status、xff(x-forwarded-for)、rule(请求头 rule)、size、method、uri、app(x-Rock-APP 头)、addr(x-real-ip)、saddr(RemoteAddr)、query、ref、ua、ltime(Unix 时间戳)。

响应 API rock.resp:

  • resp.status(200):响应状态码;
  • resp.string(200, "return a string..%s", "xx"):响应格式化字符串;
  • resp.html(200, "juggler_404"):响应缓存页面内容(文件在项目 html 目录下,如找不到则返回 default_404.html,首次加载后缓存进内存);
  • resp.clone(200, "http://juggler.test.com/uri?p=1"):克隆指定 URL 的页面内容回显(克隆完成后缓存进内存);
  • resp.set_header("Content-Type", "text/html; charset=utf-8"):设置响应头;
  • resp.set_cookie("sessionid", "admin_session", 6000, "/", var.host, true, true):设置 cookie(key、value、生命周期、路径、域名、secure、httponly)。

内置模块: re(正则匹配,带缓存,性能优于 Golang 原生)、time(time.zero Unix 时间戳、time.server_date() 生成 GMT 格式 Date 头、time.format() 格式化日志时间)、crypto(crypto.md5sum("123")、crypto.randomMD5(16) 随机 MD5)、random(random.rint(3) 返回 0~2 随机数,用于 table 随机筛选)、log/ERROR/DEBUG/INFO(日志打印)。

插件扩展:Lua 插件中除 Lua 本身的变量外,其余均由 Golang 实现后注册进 Lua 虚拟机供调用,例如通过 L.PreloadModule("random", luaRandom) 注册自定义模块;插件与响应文件通过 inotify 监听实现被动式更新,加载时初始化所有插件和响应内容文件。

10.5 联动 WAF 体系

Juggler 在 WAF 体系中的定位是拦截环节的"欺骗中心",接收并处理所有被 WAF 检出的恶意请求。将其接入现有 WAF 告警链路,即可在几乎不影响防御效果的前提下显著增加攻击者的时间成本与判断难度。

十一、敏感信息监测:GShark

详情文档:detail/gshark.md

GShark 是一款开源敏感信息检测系统(Golang + Vue 开发,作者 madneal,当前版本 V1.6.5),可以监测 GitHub、GitLab(支持私有部署版本)、Postman、searchcode 等多个平台的敏感信息泄露。

11.1 功能特性

  • 支持多平台:GitLab、GitHub、Searchcode、Postman;
  • 灵活菜单与 API 权限设置;
  • 灵活规则与过滤规则;
  • 利用 gobuster 进行子域名爆破;
  • 易用的管理系统;
  • 支持 Docker 部署。

11.2 部署方式

Docker 部署:

git clone https://github.com/madneal/gshark
cd gshark
docker-compose build && docker-compose up

手动部署(要求 Nginx 与 MySQL 8.0+):将前端 dist 目录部署到 Nginx,并配置反向代理转发 /api/ 到后端 8888 端口,nginx.conf 关键配置如下:

server {
    listen       8080;
    server_name  localhost;

    location / {
        autoindex on;
        root   html;
        index  index.html index.htm;
    }
    location /api/ {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        rewrite ^/api/(.*)$ /$1 break;
        proxy_pass http://127.0.0.1:8888;
    }
    ...
}

服务端首次运行需将 config-temp.yaml 重命名为 config.yaml 并按环境配置数据库等信息,然后直接运行二进制文件 gshark,访问 localhost:8080;首次使用若未初始化数据库会跳转到数据库初始化页面。增量部署时需按项目提供的 sql 说明执行相应的数据库操作。

开发模式运行:服务端 cd server && go mod tidy && mv config-temp.yaml config.yaml && go build && ./gshark(或 go run main.go);前端 cd web && npm install && npm run serve。

11.3 使用要点

  • 添加 Token:执行 GitHub 扫描需添加 GitHub token(在个人 tokens 设置中生成,大多数访问范围即可),GitLab 搜索同样需要添加 token;Postman 需获取 postman.sid cookie;
  • 规则配置:GitHub/GitLab 规则按对应平台语法匹配(即配置在 GitHub 搜索什么),可下载规则导入模板 CSV 文件批量导入规则;
  • 过滤配置:目前仅针对 GitHub 搜索,有三类过滤器——extension(扩展名)、keyword(关键字)、sec_keyword(安全关键字),其中 extension 与 keyword 可用于黑名单或白名单;
  • 版本演进:v1.6.5 修复 MacOS arm 芯片 release 包并增加一键部署脚本;v1.6.2 支持 GitHub 使用多 token 以规避 GitHub limit 限制;v1.6.0 支持 OPENAI 兼容模式进行 AI 分析。

十二、选型建议与使用原则

综合上述 14 个项目的定位与能力,可给出如下选型参考(结合 party_a.md 的清单结构):

安全建设方向 优先考虑 补充考虑
网关/负载均衡性能验证 dperf —
主机与云原生工作负载安全 Elkeid Hades(轻量、跨平台)
资产盘点与弱口令治理 linglong —
Java 代码静态分析与漏洞检测 Tai-e —
Android App 静态漏洞分析 appshark —
依赖漏洞与供应链安全 murphysec —
App 隐私合规检测 AppScan(自动化) camille(人工辅助)
容器镜像与运行时安全 veinmind-tools vArmor(沙箱加固)
Web 应用防火墙 OpenStar Juggler(欺骗补充)
敏感信息泄露监测 GShark —

使用时需注意以下几点原则:

  1. 验证型工具先行:引入 dperf 之前,先确认测试环境满足大页、DPDK PMD、独占网卡等前置条件,否则性能数据不具备参考意义;
  2. 数据采集与检测策略分离:Elkeid 开源版侧重采集与控制面能力,完整检测策略需基于 HUB 自行构建,这与 Hades 的插件化设计一样,都要求甲方具备一定的规则运营能力;
  3. 合规检测需人工结合:camille 作者明确说明纯自动化检测覆盖有限,AppScan 也强调"刚孵化、自动化尚未完善",合规治理应设计"自动化初筛 + 人工复核"流程;
  4. 欺骗防御依赖前置拦截:Juggler 只有在 WAF 检出后才生效,应将其作为 WAF 体系的补充组件而非替代品;
  5. 容器安全组合拳:veinmind-tools 解决镜像与运行时扫描问题,vArmor 解决运行态加固问题,两者可配合使用,且高强度隔离场景仍应优先考虑 Kata Container 等硬件虚拟化方案。

以上 14 个项目的完整详情文档均可在仓库的 detail 目录下查阅(如 detail/dperf.md、detail/Elkeid.md、detail/OpenStar.md、detail/Juggler.md、detail/vArmor.md 等),各项目的作者、开发语言与版本标识见 party_a.md 清单头部,可作为甲方安全工具选型与落地参考的起点。

登录后查看全文
404StarLink