modu-ai/moai-adk

moai-ref-secops

DevSecOps, container, and API operational defensive security reference: CI/CD pipeline hardening, secret scanning, IaC misconfiguration detection, SAST/DAST integration, container image scanning, Kubernetes RBAC hardening, container-escape defense, runtime threat detection, OWASP API Top 10 operational defense, WAF rule tuning, and GraphQL/REST depth and rate limiting. Agent-extending skill that amplifies backend, security, and platform-engineering work with production-grade defensive patterns …

First seen Jun 26, 2026

Installation

$ npx skills add modu-ai/moai-adk --skill moai-ref-secops

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from modu-ai/moai-adk · top by installs.

npx skills add modu-ai/moai-adk

Browse all from modu-ai/moai-adk

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1.2K
License LICENSE
Default branch main
Open issues 22
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0.0
More metadata
version
1.0.0
category
domain
status
active
updated
2026-06-24
tags
devsecops, container, kubernetes, rbac, api-security, owasp-api, cicd, iac-scanning, runtime-detection, waf, reference

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 10,626 B
  • docs SUMMARY.md 920 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 5 installs

SKILL.md

DevSecOps, Container, and API Operational Security Reference

Defensive practitioner reference for the operational layer of a system — the pipeline that builds it, the container and orchestrator that run it, and the API surface it exposes at runtime. Every section is framed as defense, hardening, detection, or verification: it describes the misconfiguration, how to detect it, and how to prevent it, never how to exploit it.

This skill is split into three modules by sub-domain. The overview below gives the shared threat model and an entry point; the depth lives in the modules. The threat model is operational: a pipeline can be subverted to inject a build step, a container can be misconfigured into a host breakout, and a running API can leak one tenant's data to another. The defenses establish least privilege, isolation, detection, and runtime authorization at each layer.

Three Sub-Domains (modules)

Sub-domain Module Covers
DevSecOps [modules/devsecops.md](modules/devsecops.md) CI/CD pipeline hardening, secret scanning, IaC misconfiguration detection (Terraform / CloudFormation), SAST/DAST integration
Container [modules/container.md](modules/container.md) Image scanning, Kubernetes RBAC hardening, container-escape defense (seccomp / AppArmor / read-only root / non-root), runtime threat detection
API operational [modules/api-ops.md](modules/api-ops.md) OWASP API Top 10 operational defense (BOLA / broken-auth detection in production, rate-limit enforcement, server-side authorization), WAF rule tuning, GraphQL/REST depth and complexity limiting

Operational Trust Boundaries

The core defensive insight: each operational layer is a boundary where an attacker who has reached it can move to the next. Defense-in-depth means each boundary assumes the one before it may have failed.

Boundary Operational risk Primary defense Module
Source → pipeline Injected build step, leaked secret, poisoned runner Signed pipeline, secret scanning, runner isolation DevSecOps
Pipeline → infra config Misconfigured cloud resource (open bucket, permissive IAM) IaC scanning before apply DevSecOps
Image → registry Vulnerable base image, embedded secret Image scanning + admission control Container
Container → host Container escape to the node seccomp, AppArmor, read-only root, non-root, drop capabilities Container
Cluster identity → resources Over-privileged ServiceAccount, broad RoleBinding Least-privilege RBAC, PodSecurity admission Container
Client → API Broken object/function authorization, resource exhaustion Server-side authorization, rate limiting, WAF API operational

Ecosystem-Neutral Tooling

This skill names tools at the category level. Where a tool is the de-facto cross-ecosystem standard for its category, it is named but framed as "the standard \<category\> tool" — the concept transfers to any equivalent tool. No single language ecosystem is privileged; pipeline examples are CLI-shape, not language-specific source.

Distinction from moai-ref-owasp-checklist (operational, not dev-time)

The API-operational module covers the runtime/operational half of API security — detecting Broken Object Level Authorization in production traffic, enforcing rate limits at the gateway, tuning a WAF, limiting query depth on a live endpoint. The dev-time half — secure-coding patterns a developer applies while writing the endpoint (parameterized queries, input validation, authentication design, security headers) — lives in moai-ref-owasp-checklist. This skill keeps its coverage operational and does not duplicate them.

Cross-References

  • moai-ref-owasp-checklist — dev-time web-app OWASP Top 10, authentication

patterns, input validation, HTTP security headers (the development-time surface; this skill is the operational surface).

  • moai-ref-supply-chain — SBOM, SLSA provenance, Sigstore signing, dependency

hygiene (the supply-chain surface that image scanning and pipeline signing here draw on for artifact provenance).

  • moai-ref-llm-security — AI/LLM defensive security (the LLM-specific operational

surface, distinct from the general API/container/pipeline surface here).

  • moai-ref-api-patterns — REST/GraphQL API design and error handling (the

API-design surface, distinct from the API-operational-defense surface here).

Defensive Severity Levels

Level Label Action Example
P0 CRITICAL Block release Container runs privileged with host mounts; API endpoint has no server-side object-ownership check
P1 HIGH Fix before merge Pipeline secret exposed in build logs; ServiceAccount bound to cluster-admin
P2 MEDIUM Fix within iteration No image scan in the pipeline; no rate limit on an expensive endpoint
P3 LOW Track in backlog WAF in detection-only mode where enforcement is warranted; no GraphQL depth limit on a shallow schema

<!-- moai:evolvable-start id="rationalizations" -->

Common Rationalizations

Rationalization Reality
"The cluster is internal, so RBAC hardening is optional" An internal cluster is reachable from any compromised pod. Least-privilege RBAC is the boundary that stops a single compromised workload from owning the cluster.
"The container runs our own trusted image, so escape defense is overkill" A trusted image with a vulnerable dependency is still an escape risk. seccomp, non-root, and read-only root are cheap and assume the image may be compromised.
"Authorization is handled in the frontend, the API can trust the client" The client is never a trust boundary. Every operational API defense — BOLA in particular — requires server-side object-ownership checks on every request.
"We scan images at build time, runtime detection is redundant" Build-time scanning misses a zero-day disclosed after deploy and misses runtime behavior. Runtime detection catches what static scanning cannot.
"Rate limiting hurts legitimate users, we will add it if abused" Unbounded consumption is an OWASP API Top 10 risk that is exploited before it is noticed. Rate limits and query-complexity caps are the control, not an afterthought.

Assume-breach-by-layer: each operational layer assumes the one before it may have failed — the pipeline assumes a poisoned source, the container a vulnerable image, the API a hostile client. Defense is the control at each layer, not trust in the previous.

<!-- moai:evolvable-end -->

<!-- moai:evolvable-start id="red-flags" -->

Red Flags

  • A container runs as privileged, as root, with a writable root filesystem, or with host paths mounted
  • A Kubernetes ServiceAccount is bound to cluster-admin or a wildcard Role
  • An API endpoint returns an object by ID with no server-side ownership check (Broken Object Level Authorization)
  • The CI/CD pipeline echoes secrets into build logs or runs untrusted code on a shared, non-isolated runner
  • Infrastructure-as-code is applied to production without a misconfiguration scan
  • A public-facing API has no rate limit, no query-depth limit, and no request-size cap
  • Runtime detection is absent, so a post-deploy compromise produces no alert

<!-- moai:evolvable-end -->

<!-- moai:evolvable-start id="verification" -->

Verification

  • CI/CD pipeline runs secret scanning and IaC misconfiguration scanning before deploy; runners are isolated (see [modules/devsecops.md](modules/devsecops.md))
  • Container images are scanned and gated by admission control; containers run non-root with a read-only root filesystem, dropped capabilities, and a seccomp profile (see [modules/container.md](modules/container.md))
  • Kubernetes RBAC follows least privilege; no ServiceAccount is bound to cluster-admin; PodSecurity admission is enforced (see [modules/container.md](modules/container.md))
  • Runtime-detection rules alert on container-escape and credential-access behavior; alerts route to a responder (see [modules/container.md](modules/container.md))
  • Every API endpoint enforces server-side object-level and function-level authorization; BOLA is detectable in production traffic (see [modules/api-ops.md](modules/api-ops.md))
  • Rate limits, request-size caps, and GraphQL/REST depth and complexity limits are enforced at the gateway (see [modules/api-ops.md](modules/api-ops.md))
  • Operational coverage does not duplicate the dev-time patterns in moai-ref-owasp-checklist; the two are consulted together

<!-- moai:evolvable-end -->