openappsec

GitHub
1.6k 119 中等 1 次阅读 今天Apache-2.0插件
AI 解读 由 AI 自动生成,仅供参考

openappsec 是一款基于机器学习的开源安全引擎,专为 Web 应用程序和 API 提供主动式威胁防护。它能够有效抵御 OWASP Top 10 常见漏洞以及未知的零日攻击,解决了传统防火墙依赖固定规则、难以应对新型攻击的痛点。

该工具的核心亮点在于其独特的“双重模型”机制:首先利用在全球数百万次请求中训练出的监督学习模型,快速识别已知攻击模式;随后结合在用户特定环境中实时构建的无监督学习模型,分析流量行为基线,精准判断异常请求。这种机制让 openappsec 能像人类一样“理解”正常业务逻辑,从而大幅降低误报率。

openappsec 非常适合 DevOps 工程师、后端开发者及安全运维人员使用。它部署灵活,可作为插件无缝集成到 Linux、Docker 或 Kubernetes 环境中,支持 NGINX、Kong、APISIX 及 Envoy 等主流网关。用户既可以通过声明式配置文件和 Helm Charts 进行管理,也能借助直观的 SaaS Web 界面实时监控安全态势。无论是用于测试环境的初步验证,还是生产环境的高强度防护,openappsec 都能提供自动化且智能的安全保障,帮助团队轻松构建更稳固的应用防线。

使用场景

某电商平台的运维团队在“黑色星期五”大促期间,面临海量 API 请求下的安全防护挑战,需确保订单系统不被恶意攻击瘫痪。

没有 openappsec 时

  • 规则维护滞后:依赖传统 WAF 的正则规则库,无法及时识别新型零日攻击(Zero-day),往往在漏洞爆发后才被动更新特征库。
  • 误报率高影响业务:僵硬的匹配规则常将正常的促销爬虫或复杂参数请求误判为攻击,导致真实用户下单失败,造成直接营收损失。
  • 响应速度缓慢:安全团队需人工分析日志并手动调整策略,从发现异常到完成拦截通常有数小时延迟,错失最佳防御窗口。
  • 部署耦合度高:每次升级防护逻辑都需要重启网关服务或修改核心配置文件,在大促高峰期不敢轻易变动,风险敞口大。

使用 openappsec 后

  • 智能预判未知威胁:openappsec 利用监督学习模型自动比对全球攻击模式,无需更新规则即可实时阻断未知的 OWASP Top 10 及零日攻击。
  • 动态基线降低误报:其无监督学习模型实时学习该平台特有的流量行为,精准区分正常促销流量与恶意扫描,保障合法请求畅通无阻。
  • 毫秒级自动防御:每个请求经过双重模型评估,一旦判定为高风险立即自动拦截,将响应时间从小时级缩短至毫秒级,实现全天候无人值守防护。
  • 无缝热部署集成:作为 NGINX 或 K8s 的插件平滑接入,更新机器学习模型无需重启服务,确保大促期间业务连续性与安全性兼得。

openappsec 通过机器学习引擎将被动防御转变为主动预判,在零干扰业务的前提下为 Web 应用构建了自适应的智能化安全屏障。

运行环境要求

操作系统
  • Linux
GPU

未说明

内存

未说明

依赖
notes该工具核心引擎由 C++ 开发,附件(Attachment)由 C 开发,同步服务(Smartsync)由 Golang 开发,非 Python 项目。支持部署在 Linux、Docker 或 Kubernetes 环境中,作为 NGINX、Kong、APISIX 或 Envoy 的插件运行。编译前需安装指定的开发库(如 boost-dev, openssl-dev 等)。运行时若与受保护的附件(如 NGINX)共享内存,Docker 容器必须添加 '--ipc=host' 参数。机器学习模型分为开源的基础模型(适用于测试)和需下载的高级模型(适用于生产)。
python未说明
Boost
OpenSSL
PCRE2
libxml2
GTest
GMock
cURL
Redis
Hiredis
MaxmindDB
openappsec hero image

快速开始

openappsec/openappsec

CII 最佳实践

关于

open-appsec(openappsec.io)基于机器学习,提供针对OWASP十大威胁及零日攻击的主动式Web应用和API威胁防护。它可以作为附加组件部署在Linux、Docker或Kubernetes环境中,与NGINX、Kong、APISIX或Envoy集成。

open-appsec引擎会学习用户通常如何与您的Web应用交互。随后,它利用这些信息自动检测偏离正常操作模式的请求,并进一步分析以判断该请求是否具有恶意性。

每当收到HTTP请求时,系统会对所有部分进行解码,提取JSON和XML内容,并应用IP级别的访问控制。

每个发送到应用的请求都会经历两个阶段:

  1. 多个变量会被输入到机器学习引擎中。这些变量或直接从HTTP请求中提取,或从有效载荷的不同部分解码而来,包括攻击指标、IP地址、用户代理、指纹等众多因素。机器学习引擎的监督模型会利用这些变量,将请求与全球范围内常见的多种攻击模式进行比对。

  2. 如果请求被认定为合法有效的请求,则允许其通过并转发至您的应用。然而,若请求被视为可疑或高风险,它将进一步由在您特定环境中训练过的无监督模型进行评估。该模型会结合URL及涉及的用户等信息,生成最终置信度评分,以决定是否允许或阻止该请求。

image

open-appsec使用两种机器学习模型:

  1. 一种是基于数百万条恶意和良性请求离线训练而成的监督模型。

    • 本仓库提供一个基础模型,建议用于仅监控和测试环境。
    • 另外还有一个更精确的高级模型推荐用于生产环境,可从open-appsec门户 -> 用户菜单 -> 下载高级ML模型获取。该模型会定期更新,更新时您将收到电子邮件通知。
  2. 另一种是无监督模型,它会在受保护的环境中实时构建。此模型会根据特定环境中的流量模式进行学习。

管理

open-appsec可以通过多种方式管理:

open-appsec Web界面: image

部署沙盒(虚拟实验室)

您可以使用Playgrounds体验open-appsec。 image

资源

安装

对于使用Helm的Kubernetes环境(NGINX / Kong / APISIX / Istio):请参考文档

对于使用安装程序的Linux环境(NGINX / Kong / APISIX):支持的预编译NGINX模块列表可在此处找到:

$ wget https://downloads.openappsec.io/open-appsec-install && chmod +x open-appsec-install
$ ./open-appsec-install --auto

对于基于Lua的Kong插件,请参考文档

对于自行构建软件包的Linux用户,可使用以下命令:

$ install-cp-nano-agent.sh --install --hybrid_mode
$ install-cp-nano-service-http-transaction-handler.sh --install
$ install-cp-nano-attachment-registration-manager.sh --install

您可以在第一条命令中添加--token <token>--email <email address>以及registered_server选项。如需获取令牌,请参阅文档

对于Docker环境:请参考文档

如需更多信息,请阅读文档或观看视频教程

仓库

open-appsec GitHub包含四个主要仓库:

  • openappsec/openappsec:open-appsec的核心代码和逻辑,采用C++开发。
  • openappsec/attachment:负责连接提供HTTP数据的进程(例如NGINX)与open-appsec Agent安全逻辑,采用C语言开发。
  • openappsec/smartsync:负责关联来自多个Agent实例的学习数据,并为每个资产生成统一的学习模型,采用Golang开发。
  • openappsec/smartsync-shared-files:smartsync服务用于存储学习数据的物理存储接口,同样采用Golang开发。

编译说明

安装外部依赖

在编译服务之前,您需要确保已安装以下库和工具的最新开发版本:

  • Boost
  • OpenSSL
  • PCRE2
  • libxml2
  • GTest
  • GMock
  • cURL
  • Redis
  • Hiredis
  • MaxmindDB
  • yq

以下是在Alpine系统上安装这些软件包的示例:

 $ apk update
 $ apk add boost-dev openssl-dev pcre2-dev libxml2-dev gtest-dev curl-dev hiredis-dev redis libmaxminddb-dev yq

编译并打包Agent代码

  1. 克隆本仓库
  2. 运行CMake命令
  3. 执行make install命令
 $ git clone https://github.com/openappsec/openappsec.git
 $ cd openappsec/
 $ cmake -DCMAKE_INSTALL_PREFIX=build_out .
 $ make install
 $ make package

将代理代码放入 Alpine Docker 镜像中

在编译并打包好代理代码后,可以创建一个运行该代码的 Alpine 镜像。这需要具有执行 docker 命令的权限。

 $ make docker

这将为您的 Docker 创建一个名为 agent-docker 的本地镜像。

将代理 Docker 镜像部署为容器

要以容器形式运行 Nano-Agent,需执行以下步骤:

  1. 如果您正在使用容器管理系统,或计划通过 CI 部署容器,请将代理 Docker 镜像添加到可访问的注册表中。
  2. 如果您计划使用 open-appsec UI 来管理代理,请确保从 Management Portal 和 Enforce 中获取代理令牌。
  3. 使用以下命令运行代理(其中 -e https_proxy 参数为可选):

docker run -d --name=agent-container --ipc=host -v=<代理配置持久化路径>:/etc/cp/conf -v=<代理数据文件持久化路径>:/etc/cp/data -v=<代理调试和日志持久化路径>:/var/log/nano_agent -e https_proxy=<user:password@代理地址:端口> -e registered_server=<服务器类型> -it <代理镜像> /cp-nano-agent [--token <令牌> | --standalone]

示例:

 $ docker run -d --name=agent-container --ipc=host -v=/home/admin/agent/conf:/etc/cp/conf -v=/home/admin/agent/data:/etc/cp/data -v=/home/admin/agent/logs:/var/log/nano_agent –e https_proxy=user:password@1.2.3.4:8080 -e registered_server='nginx' -it agent-docker /cp-nano-agent --standalone
 $ docker ps
CONTAINER ID        IMAGE               COMMAND                          CREATED             STATUS              PORTS               NAMES
1e67f2abbfd4        agent-docker        "/cp-nano-agent --hybrid-mode"   1 minute ago        Up 1 minute                             agent-container

请注意,如果您在本地管理安全策略,则无需使用来自 Management Portal 的令牌。但在这种情况下,必须使用 --standalone 标志。此外,命令中的卷挂载仅在您希望代理在重启、升级或崩溃后重新启动时保持数据持久性时才为必选项。

最后,--ipc=host 参数是必需的,以便代理能够与受保护的应用程序(例如 NGINX 服务器)共享内存。

支持的 registered_server 类型包括:

  • NGINX
  • Kong
  • KongLua
  • APISIX
  • Envoy
  1. 使用 Attachment Repository 创建或替换 NGINX 容器。

这将使用代理 Docker 镜像运行一个 Docker 容器。

贡献

我们欢迎所有希望分享知识和专长以改进和扩展该项目的人士。

请参阅贡献指南

安全

安全审计

open-appsec 代码于 2022 年 9 月至 10 月由独立第三方进行了安全审计。 请参阅完整报告

报告安全漏洞

如果您发现 open-appsec 中存在漏洞或潜在漏洞,请通过 security-alert@openappsec.io 告知我们。我们将在 24 小时内发送确认邮件以确认收到您的报告,并在确认或否定问题后再次发送邮件。

许可证

open-appsec 是开源项目,采用 Apache 2.0 许可证。

基础机器学习模型也是开源的,采用 Apache 2.0 许可证。

高级机器学习模型同样是开源的,采用机器学习模型许可证,可在 tar 文件中下载获得。

版本历史

v1.1.32024/07/02
1.1.122024/06/27
1.1.332026/01/20
1.1.322025/11/26
1.1.302025/10/08
1.1.292025/08/12
1.1.272025/06/30
1.1.262025/06/17
1.1.252025/04/24
1.1.242025/03/24
1.1.232025/03/03
1.1.222025/02/19
1.1.212025/01/21
1.1.202024/12/02
1.1.192024/11/10
1.1.182024/10/13
1.1.172024/09/24
1.1.162024/08/28
1.1.152024/08/01
1.1.142024/07/08

常见问题

相似工具推荐

opencode

OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信

144.3k|★☆☆☆☆|3天前
Agent插件

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.3k|★★☆☆☆|昨天
图像数据工具视频

gstack

gstack 是 Y Combinator CEO Garry Tan 亲自开源的一套 AI 工程化配置,旨在将 Claude Code 升级为你的虚拟工程团队。面对单人开发难以兼顾产品战略、架构设计、代码审查及质量测试的挑战,gstack 提供了一套标准化解决方案,帮助开发者实现堪比二十人团队的高效产出。 这套配置特别适合希望提升交付效率的创始人、技术负责人,以及初次尝试 Claude Code 的开发者。gstack 的核心亮点在于内置了 15 个具有明确职责的 AI 角色工具,涵盖 CEO、设计师、工程经理、QA 等职能。用户只需通过简单的斜杠命令(如 `/review` 进行代码审查、`/qa` 执行测试、`/plan-ceo-review` 规划功能),即可自动化处理从需求分析到部署上线的全链路任务。 所有操作基于 Markdown 和斜杠命令,无需复杂配置,完全免费且遵循 MIT 协议。gstack 不仅是一套工具集,更是一种现代化的软件工厂实践,让单人开发者也能拥有严谨的工程流程。

76.9k|★★☆☆☆|今天
Agent插件

codex

Codex 是 OpenAI 推出的一款轻量级编程智能体,专为在终端环境中高效运行而设计。它允许开发者直接在命令行界面与 AI 交互,完成代码生成、调试、重构及项目维护等任务,无需频繁切换至浏览器或集成开发环境,从而显著提升了编码流程的连贯性与专注度。 这款工具主要解决了传统 AI 辅助编程中上下文割裂的问题。通过将智能体本地化运行,Codex 能够更紧密地结合当前工作目录的文件结构,提供更具针对性的代码建议,同时支持以自然语言指令驱动复杂的开发操作,让“对话即编码”成为现实。 Codex 非常适合习惯使用命令行的软件工程师、全栈开发者以及技术研究人员。对于追求极致效率、偏好键盘操作胜过图形界面的极客用户而言,它更是理想的结对编程伙伴。 其独特亮点在于灵活的部署方式:既可作为全局命令行工具通过 npm 或 Homebrew 一键安装,也能无缝对接现有的 ChatGPT 订阅计划(如 Plus 或 Pro),直接复用账户权益。此外,它还提供了从纯文本终端到桌面应用的多形态体验,并支持基于 API 密钥的深度定制,充分满足不同场景下的开发需求。

75.2k|★☆☆☆☆|5天前
语言模型Agent插件