openappsec Setup and Request Inspection Guide
open-appsec is a machine learning security engine that preemptively and automatically prevents threats against Web Application & APIs. This repo include the main code and logic.
At a glance
- What is it?
- open-appsec adds a C++ machine learning engine to web and API traffic, combining known attack detection with a model trained in the protected environment. It supports Linux, Docker, Kubernetes, NGINX, Kong, APISIX, Istio, and Envoy deployments.
- Who is it for?
- Operations teams should evaluate open-appsec when they can place a supported proxy or ingress technology in the request path and can manage model downloads plus environment learning. Teams needing a documented one-command rollback should verify that gap first.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 47 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Where openappsec Sits in a Web or API Stack
openappsec/openappsec is the main C++ repository containing the open-appsec engine and its request-processing logic. Its stated purpose is to protect web applications and APIs from threats associated with the OWASP Top 10 and zero-day attacks. The project is intended for operators who can place a security layer in front of an application, rather than developers who only want a library to call inside application code.
The README lists Linux, Docker, and Kubernetes as deployment environments. It names NGINX, Kong, APISIX, Istio, and Envoy among the technologies that can work with open-appsec. The documented setup paths differ by platform. Kubernetes users are directed to Helm documentation, Linux users can use an installer or build packages themselves, and Docker deployments have a separate getting-started guide. A Kong Lua-based plugin also has its own documentation.
This placement makes traffic inspection and policy enforcement part of the request path. The README describes every HTTP request passing through two model phases before the application receives it. open-appsec is therefore not described as a passive scanner that reports suspicious traffic after an event. It participates in deciding whether a legitimate request is forwarded or whether high-risk traffic is blocked.
The repository layout also shows that the engine has a distributed deployment architecture. The related `openappsec/attachment` repository connects HTTP data providers such as NGINX to the Agent security logic. `openappsec/smartsync` correlates learning data from multiple agents, while `openappsec/smartsync-shared-files` defines its physical storage interface. Evaluating only this C++ repository would miss part of that multi-agent system.
Supervised and Environment-Specific Request Decisions
For every HTTP request, open-appsec decodes all request parts, extracts JSON and XML sections, and applies IP-level access control. It builds variables from both the original request and decoded payload content. The README names attack indicators, IP addresses, user agents, and fingerprints as examples of those variables.
The first decision uses a supervised model. According to the README, this model was trained offline on millions of malicious and benign requests. It compares request variables with common attack patterns found across the world. Requests identified as valid and legitimate can be forwarded to the application.
A request classified as suspicious or high risk proceeds to a second phase. An unsupervised model, trained in real time inside the protected environment, uses information such as the URL and the users involved. It produces a final confidence score that determines whether open-appsec allows or blocks the request.
The project separates the supervised model into two distributions. A basic model is included in the repository and is recommended for Monitor-Only and Test environments. An advanced model is described as more accurate and recommended for Production. It is downloaded through the open-appsec portal rather than included directly in the repository. The portal may also make updated model versions available, with an email sent when an update occurs.
This design gives the supervised phase broad knowledge of known malicious and benign traffic while reserving environmental adaptation for suspicious requests. It also means model availability differs by use case. Production teams need to obtain the advanced model through the portal, while users of the basic model work with the version stored in the repository.
Linux Installation and the First Agent Build
For Linux deployments using NGINX, Kong, or APISIX, the README provides an installer command. It also directs readers to a separate list of supported precompiled NGINX attachments. The installer can be downloaded, made executable, and started in automatic mode:
$ wget https://downloads.openappsec.io/open-appsec-install && chmod +x open-appsec-install
$ ./open-appsec-install --autoThe first line downloads `open-appsec-install` and grants it execute permission. The second starts the installer with `--auto`. The README does not document a port, policy file, or verification command for this particular path, so those details must come from the linked installation guide.
Source builds have a separate procedure. Before compiling, the README lists dependencies including Boost, OpenSSL, PCRE2, Brotli, zlib, libxml2, GTest, GMock, cURL, Redis, Hiredis, MaxmindDB, and yq. Its Alpine example installs the corresponding packages with `apk`:
$ apk update
$ apk add boost-dev openssl-dev pcre2-dev libxml2-dev gtest-dev curl-dev hiredis-dev redis libmaxminddb-dev yq brotli-dev zlib-devThe documented build sequence clones the repository, changes into its directory, configures a local installation prefix, and runs the install and package targets:
$ git clone https://github.com/openappsec/openappsec.git
$ cd openappsec/
$ cmake -DCMAKE_INSTALL_PREFIX=build_out .
$ make install
$ make packageThese commands produce installed and packaged artifacts from the main C++ code. They do not by themselves establish a complete production deployment. A compatible attachment or plugin still has to connect the HTTP data provider to the Agent, and the engine needs a management configuration.
For a self-built package, the README lists three installation scripts. It also says that options for a token, email address, and registered server can be added to the first script. Those options relate to connecting deployed Agents to SaaS management, so they should be treated as deployment choices rather than omitted defaults.
Kubernetes, Docker, and Management Choices
Kubernetes users are directed to the Helm guide for NGINX, Kong, APISIX, and Istio deployments. The README does not provide a chart repository, `helm install` command, namespace, or values example, so no such command can be reproduced without consulting that guide. The repository contains `examples/juiceshop/` and `examples/local_policy.yaml`, but the README does not document a runnable example command for either path.
Docker also has a dedicated getting-started guide, although the README does not contain a direct `docker run` example. After compiling and packaging the Agent, it documents creation of an Alpine image through a Make target. The reader must have permission to execute the `docker` command:
$ make dockerThis is a repository build action rather than a complete traffic-routing setup. The image still needs the correct integration and policy for the application it is meant to protect.
open-appsec offers three documented management routes: declarative configuration files, Kubernetes Helm Charts and annotations, and the SaaS web interface. Declarative files fit environments where security settings are managed as code. Kubernetes users can apply charts and annotations. The SaaS option supports centralized management, and the documentation links to a separate procedure for connecting deployed Agents with a token and email address.
The configuration model matters when comparing effort. A Helm-based deployment can fit an existing Kubernetes control process, but it also introduces compatibility questions between the chart, ingress technology, and Agent version. A declarative Linux configuration requires local configuration ownership. SaaS management reduces some integration work but adds an external service relationship and a token-based connection process.
Learning Behavior and Production Evaluation Constraints
The basic model provides a documented option for Monitor-Only and Test environments, while the advanced model is recommended for Production. This gives an operator a way to begin with observation, but the README does not show the exact declarative setting that enables Monitor-Only behavior. A first evaluation should not assume that merely choosing the basic model enables monitoring without blocking.
The unsupervised model is built in real time from traffic in the protected environment. It uses environmental details such as the URL and users involved to calculate a confidence score. That makes the model specific to the deployment, but the README does not state a learning warm-up period, minimum traffic threshold, model reset command, or tuning procedure for false positives. Those details require confirmation in the official documentation or a controlled deployment.
The advanced model also introduces an update lifecycle. It must be obtained through the open-appsec portal, and the portal can issue email notifications when model updates become available. The README does not document automatic updates, a rollback command, or whether an update can be safely applied without restarting traffic. Since the model contributes to a security decision, upgrade testing matters.
The enforcement pipeline also decodes request data, extracts structured payload sections, applies IP-level controls, and evaluates two model phases. The README does not state the engine's latency, request timeouts, or failure behavior when a model, attachment, storage service, or management endpoint is unavailable. It also does not claim that open-appsec replaces application authorization. Teams should treat it as an additional preventive layer rather than the only access-control system.
Model Security and Conventional WAF Rule Management
A conventional web application firewall commonly evaluates traffic against explicit signatures or rules. open-appsec follows a different model. Its supervised component was trained on malicious and benign request data, while its unsupervised component learns traffic patterns within the protected environment. Its documented decision path is statistical and context-dependent rather than limited to matching a fixed list of signatures.
That approach is relevant when legitimate behavior varies by URL, user, or application workflow. The environment-specific model can consider contextual details described by the project, rather than applying every learned observation identically across the entire deployment. The supervised phase still recognizes variables associated with common attack patterns, so open-appsec is not described as relying only on normal-traffic learning.
The trade-off is operational. Static WAF rules are often valued because operators can inspect individual rules and understand exactly why a signature matched. The README does not document an equivalent signature-editing workflow for open-appsec. Instead, it documents model selection, agent deployment, attachments, management interfaces, and learning data. Operators must assess those components before deciding whether the statistical approach fits their change-management process.
Neither model-based nor signature-based protection should automatically replace application-specific authorization, schema validation, or identity controls. Those are separate security layers, although the README does not present them as competing open-appsec features. A fair comparison should test representative false positives, confirm how exceptions work, inspect how suspicious traffic is reported, and identify the exact procedure for undoing configuration or model changes.
Repository Activity, Upgrades, and Apache-2.0
The repository is not archived. Its last push was on 2026-09-06. Recent releases include version 1.1.36 on 2026-08-24, version 1.1.35 on 2026-08-25, and version 1.1.34 on 2026-04-20. These dates show recent repository and release activity, but the README does not define compatibility guarantees or explain the changes within each release.
No general upgrade procedure for an existing Linux, Docker, or Kubernetes deployment appears in the README. It also does not provide a documented rollback command. Operators should therefore treat an Agent, attachment, chart, or model change as an update to an enforcement component and verify the platform-specific process before applying it.
The repository is licensed under Apache-2.0. That license records permissions, conditions, and notice obligations for the licensed repository, but it does not by itself settle questions about every related deployment asset. The advanced ML model, container base, Helm charts, attachments, smartsync services, and SaaS service may have separate distribution or usage terms. The README does not state that all of them are covered by the repository's license, so no such conclusion should be assumed.
Upgrades can involve more than replacing this C++ agent. A production operator may need to keep an attachment compatible, coordinate learning data through smartsync, retrieve advanced model updates, and confirm that declarative or SaaS management still matches the deployed version. The actual cost depends on the chosen integration and is not quantified in the repository documentation.
Editorial conclusion
Operations teams should evaluate open-appsec when they can place a supported proxy or ingress technology in the request path and can manage model downloads plus environment learning. Teams needing a documented one-command rollback should verify that gap first. Adoption should begin with the selected Helm, Docker, or Linux guide, then confirm how its monitoring or blocking mode handles representative traffic.
Frequently asked questions
How do I install openappsec on Linux?
The README documents downloading `open-appsec-install`, making it executable, and running it with `--auto`. The project also publishes a separate list of supported precompiled NGINX attachments.
What is the difference between the openappsec basic and advanced ML models?
The repository includes a basic model for Monitor-Only and Test environments. The advanced model is downloaded from the open-appsec portal, is described as more accurate, and is recommended for Production.
Which platforms and proxies can openappsec protect?
The README lists Linux, Docker, and Kubernetes deployments. It names NGINX, Kong, APISIX, Istio, and Envoy among the supported technologies, with setup documentation varying by platform.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/openappsec-openappsec)Was this useful?