openappsec
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
未说明
未说明

快速开始
openappsec/openappsec
关于
open-appsec(openappsec.io)基于机器学习,提供针对OWASP十大威胁及零日攻击的主动式Web应用和API威胁防护。它可以作为附加组件部署在Linux、Docker或Kubernetes环境中,与NGINX、Kong、APISIX或Envoy集成。
open-appsec引擎会学习用户通常如何与您的Web应用交互。随后,它利用这些信息自动检测偏离正常操作模式的请求,并进一步分析以判断该请求是否具有恶意性。
每当收到HTTP请求时,系统会对所有部分进行解码,提取JSON和XML内容,并应用IP级别的访问控制。
每个发送到应用的请求都会经历两个阶段:
多个变量会被输入到机器学习引擎中。这些变量或直接从HTTP请求中提取,或从有效载荷的不同部分解码而来,包括攻击指标、IP地址、用户代理、指纹等众多因素。机器学习引擎的监督模型会利用这些变量,将请求与全球范围内常见的多种攻击模式进行比对。
如果请求被认定为合法有效的请求,则允许其通过并转发至您的应用。然而,若请求被视为可疑或高风险,它将进一步由在您特定环境中训练过的无监督模型进行评估。该模型会结合URL及涉及的用户等信息,生成最终置信度评分,以决定是否允许或阻止该请求。

open-appsec使用两种机器学习模型:
一种是基于数百万条恶意和良性请求离线训练而成的监督模型。
- 本仓库提供一个基础模型,建议用于仅监控和测试环境。
- 另外还有一个更精确的高级模型,推荐用于生产环境,可从open-appsec门户 -> 用户菜单 -> 下载高级ML模型获取。该模型会定期更新,更新时您将收到电子邮件通知。
另一种是无监督模型,它会在受保护的环境中实时构建。此模型会根据特定环境中的流量模式进行学习。
管理
open-appsec可以通过多种方式管理:
open-appsec Web界面:

部署沙盒(虚拟实验室)
您可以使用Playgrounds体验open-appsec。

资源
安装
对于使用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代码
- 克隆本仓库
- 运行CMake命令
- 执行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,需执行以下步骤:
- 如果您正在使用容器管理系统,或计划通过 CI 部署容器,请将代理 Docker 镜像添加到可访问的注册表中。
- 如果您计划使用 open-appsec UI 来管理代理,请确保从 Management Portal 和 Enforce 中获取代理令牌。
- 使用以下命令运行代理(其中
-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
- 使用 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/021.1.122024/06/271.1.332026/01/201.1.322025/11/261.1.302025/10/081.1.292025/08/121.1.272025/06/301.1.262025/06/171.1.252025/04/241.1.242025/03/241.1.232025/03/031.1.222025/02/191.1.212025/01/211.1.202024/12/021.1.192024/11/101.1.182024/10/131.1.172024/09/241.1.162024/08/281.1.152024/08/011.1.142024/07/08常见问题
相似工具推荐
opencode
OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
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 不仅是一套工具集,更是一种现代化的软件工厂实践,让单人开发者也能拥有严谨的工程流程。
codex
Codex 是 OpenAI 推出的一款轻量级编程智能体,专为在终端环境中高效运行而设计。它允许开发者直接在命令行界面与 AI 交互,完成代码生成、调试、重构及项目维护等任务,无需频繁切换至浏览器或集成开发环境,从而显著提升了编码流程的连贯性与专注度。 这款工具主要解决了传统 AI 辅助编程中上下文割裂的问题。通过将智能体本地化运行,Codex 能够更紧密地结合当前工作目录的文件结构,提供更具针对性的代码建议,同时支持以自然语言指令驱动复杂的开发操作,让“对话即编码”成为现实。 Codex 非常适合习惯使用命令行的软件工程师、全栈开发者以及技术研究人员。对于追求极致效率、偏好键盘操作胜过图形界面的极客用户而言,它更是理想的结对编程伙伴。 其独特亮点在于灵活的部署方式:既可作为全局命令行工具通过 npm 或 Homebrew 一键安装,也能无缝对接现有的 ChatGPT 订阅计划(如 Plus 或 Pro),直接复用账户权益。此外,它还提供了从纯文本终端到桌面应用的多形态体验,并支持基于 API 密钥的深度定制,充分满足不同场景下的开发需求。
