# Security

> On-demand security review skill for Scenescape — code and configuration security guidance.

- Skill: `open-edge-platform/security` (Agent Skill)
- Install (CLI): `npx skillmds@latest add open-edge-platform/security`
- Raw SKILL.md: https://api.skillmd.com/api/skills/open-edge-platform/security/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: open-edge-platform (https://skillmd.com/u/open-edge-platform)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/open-edge-platform/security

---


# Security Review Skill (On-Demand)

## Purpose

This document defines on-demand security review guidance for code and configuration changes.
It complements the always-on secure-by-default rules defined in `.github/copilot-instructions.md`.

This skill applies only at development and authoring time.
Runtime, host, cluster, or organizational security controls are explicitly out of scope.

---

## Security Review Trigger Points

Load this security review skill when changes involve:

- Authentication, session, or token logic
- Authorization or resource ownership checks
- Input parsing, validation, normalization, or canonicalization
- File handling, deserialization, template rendering, or process execution
- Logging, telemetry, secrets handling, or sensitive data paths
- Dependency upgrades, lockfile changes, or CVE-related updates
- Dockerfile or container base image changes
- Docker Compose, Helm charts, or Kubernetes-related configuration
- CI/CD workflow changes affecting build, test, release, or scanning
- Privilege elevation, root execution, host mounts, or new Linux capabilities

---

## AI-Generated Code Guardrails

When reviewing AI-generated changes:

- Treat AI output as untrusted draft code until reviewed and tested
- Verify package names, APIs, images, and tools exist and originate from trusted sources
- Reject suggestions that bypass or disable security controls for convenience
- Require pinned versions and lockfiles for generated dependencies; prefer integrity-verified installs when supported
- Never accept generated code or configs that inject secrets via source files, Dockerfile `ARG`/`ENV`, or committed templates
- Reject generated install scripts that use unchecked remote execution patterns (e.g., `curl | sh`) without checksum or signature verification
- Reject generated build commands that disable TLS, certificate verification, or security checks to make builds pass
- Apply RCI pattern: ask the AI to review its own output for security issues, then improve; repeat 1-2 iterations

---

## Secure Code Review (OSS Context)

Apply when reviewing application logic, services, APIs, or libraries.

### Input handling

- Validate input at trust boundaries (format, type, range, length)
- Avoid unsafe deserialization
- Do not propagate unvalidated input across trust boundaries
- Avoid command, query, or expression construction via string concatenation
- Use parameterized queries for all database access

### Authorization

- **Keep authorization checks server-side and close to protected actions or resources**
- Do not rely on client-side enforcement for access control

### Error handling

- Errors must not expose sensitive internal details
- Avoid ignored return values or silent failures

### Memory & resource safety (where applicable)

- Avoid unchecked allocations and unbounded resource use
- Ensure files, sockets, and handles are closed deterministically

### Logging & telemetry

- Do not log credentials, tokens, secrets, or PII
- Logs should be actionable without exposing sensitive data

### Dynamic execution

- **Avoid unsafe dynamic execution patterns (`eval`, `exec`, reflection, or untrusted code execution).**

### Dependency usage

- Avoid shelling out when native APIs or libraries exist
- Flag outdated, unmaintained, or suspicious dependencies
- Prefer latest stable versions; specify exact or range-locked versions

### OSS-specific review checks

- Is externally observable **security-relevant behavior** documented?
- Are assumptions and limitations stated explicitly for users?

If uncertainty exists, flag it clearly rather than guessing or assuming safety.

---

## Container Artifact Review (Development-Time)

Apply when generating or reviewing:

- Dockerfiles / Containerfiles
- docker-compose.yml
- Helm charts (templates and values)

### Dockerfile

- Avoid `latest` or floating tags; pin versions or digests
- Prefer minimal base images
- Ensure containers do not run as root
- Avoid setuid or setgid binaries
- Use multi-stage builds and remove build tools, package caches, and temp files from final image
- Prefer `COPY` over `ADD`
- Never embed secrets in `ARG`, `ENV`, or filesystem layers

### Docker Compose

- Avoid `privileged: true` and host networking unless explicitly justified
- Do not mount the Docker socket
- Restrict host filesystem mounts
- Limit exposed ports and networks; prefer internal networks

Concerns that depend on deployment or runtime policy should be flagged as:
**"Deployment-time responsibility."**

---

## Helm / Kubernetes Review (Development-Time)

- Default to `runAsNonRoot: true`
- Set `allowPrivilegeEscalation: false`
- Prefer read-only root filesystem where feasible
- Drop unnecessary Linux capabilities
- Do not template secrets directly into charts
- Document required runtime security assumptions

Do not enforce cluster-wide, node-level, or runtime security controls.

---

## Review Output Expectations

- Identify which section applies (Code / Container / Helm)
- Classify findings as:
  - Fix in artifact
  - Deployment/runtime responsibility
- Explicitly state assumptions or uncertainty
- Use severity levels: Critical / High / Medium / Low with confidence: High / Medium / Low
- Include specific file/function references and recommended fixes

Security review is advisory; final decisions belong to maintainers.

---

## Language-Specific Guidance

For language-specific secure coding patterns, refer to:

- `.github/skills/intel-secure-cpp-specifics.md` — C++ secure coding practices
- `.github/skills/intel-secure-python-specifics.md` — Python secure coding practices

