A security product has to be secure, first.
StyloBot is self-hosted by default. Your traffic, signatures, and detection decisions stay in your infrastructure unless you deliberately wire in external services. We do not proxy your requests or train on your data.
Data residency
StyloBot runs entirely inside your environment - Docker, Kubernetes, bare metal, or the YARP reverse-proxy gateway embedded in your ASP.NET Core app. No request payloads, raw IPs, or detection decisions are sent to stylobot.net. The only data that ever reaches us is billing / licensing metadata when you interact with the customer portal.
Privacy-aware signal design
The default pipeline transforms raw identifiers before durable storage. Raw IPs and
other identity-bearing fields are HMAC-SHA256 hashed with a per-deployment key. User
agents may be stored after PII stripping so the runtime can perform richer parsing,
version analysis, and dashboard grouping without keeping arbitrary header content.
The blackboard that detectors write to carries derived signals
(request.ip.is_datacenter, detection.useragent.confidence)
rather than raw request payloads.
See Mostlylucid.BotDetection/docs/blackboard-and-pii.md in the OSS repo
for the full signal catalogue.
Pipeline trace & audit trail
StyloBot does not just store a final bot score. Each detection event can carry the real decision trace from the pipeline: normalized raw signals, derived signals, detector contributions, confidence deltas, reason strings, signature factors, aggregation output, risk band, and the policy action that was selected.
The dashboard event store lets operators inspect why a request was allowed, throttled, challenged, or blocked without reconstructing the decision from logs. Response headers can expose a compact reason summary when enabled; the dashboard keeps the richer operational trace.
On the commercial tier, configuration changes and endpoint overrides are tracked alongside
the detection trace, so teams can connect "what policy was active" with "why this request
received this action." Customer portal events such as license issuance, team changes, and
token downloads land in an immutable license_audits table for SOC 2 evidence.
Encryption
TLS 1.2+ everywhere - customer portal terminates at Caddy with automatic Let's Encrypt certificates. Portal database uses Postgres native TLS. License tokens are Ed25519-signed; the vendor private key lives in a secrets vault (HashiCorp Vault / AWS KMS / Azure Key Vault) and is never exposed to application memory beyond the signing call.
Authentication
The customer portal authenticates via Keycloak 26, with MFA (TOTP) available and optionally required. External identity providers (Google, Microsoft, GitHub) plug in at the realm level. For the self-hosted product, OSS ships ASP.NET Core Identity (local accounts + MFA); commercial tiers unlock OIDC relying-party configuration so you bring your own IdP - Keycloak, Azure AD, Okta, Auth0, Google Workspace. Enterprise adds SAML 2.0 + SCIM.
Compliance posture
- GDPR: the detection pipeline is designed to minimize personal data persistence through HMACed identifiers, stripped user agents, derived signals, and customer-controlled deployment keys. Portal customer data (email, org name) is covered by standard DPA.
- SOC 2 Type II: in progress - audit log, change management, and access control infrastructure in place; auditor engagement scheduled.
- Data processing agreements: on request for commercial customers.
Responsible disclosure
Report security issues to [email protected] with your PGP-encrypted report. We acknowledge within 48 hours, ship a fix or workaround within 14 days for critical issues, and credit reporters in the release notes unless asked otherwise. No lawyers, no NDAs required for good-faith research.
Incident history
None reported. We'll publish post-mortems publicly when they happen - every security product has incidents eventually, and honest disclosure is part of how we earn the trust we're asking for.
Supply chain
Every FOSS release ships with SLSA provenance attestations, sigstore-signed binaries, and a Cloudsmith-signed apt repo. You can audit the entire build chain back to a public GitHub Actions run.
See the full supply-chain story →Questions?
Security reviews, DPA requests, pen-test results, and SOC 2 progress updates: [email protected]. For sales or general inquiries, email [email protected] directly.