Ctrl K
ComunidadGuías…

SECURITY.md

Rama dev · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Security Policy

## Supported Versions

| Version | Supported          |
| ------- | ------------------ |
| Latest  | :white_check_mark: |

## Reporting a Vulnerability

We take security vulnerabilities seriously. If you discover a security issue, please report it responsibly.

### How to Report

**Please do not report security vulnerabilities through public GitHub issues.**

Instead, please send an email to **damen@knightspeed.com** with:

1. **Description** of the vulnerability
2. **Steps to reproduce** the issue
3. **Potential impact** of the vulnerability
4. **Suggested fix** (if you have one)

### What to Expect

- **Acknowledgment**: We will acknowledge receipt of your report within 48 hours
- **Updates**: We will keep you informed of our progress
- **Resolution**: We aim to resolve critical issues within 7 days
- **Credit**: We will credit you in the release notes (unless you prefer to remain anonymous)

### Scope

The following are in scope for security reports:

- Authentication/authorization bypasses
- SQL injection
- Cross-site scripting (XSS)
- Remote code execution
- Path traversal vulnerabilities
- Sensitive data exposure
- Server-side request forgery (SSRF)

### Out of Scope

- Issues requiring physical access to the server
- Social engineering attacks
- Denial of service attacks
- Issues in dependencies (please report to the upstream project)
- Issues only exploitable with user interaction in unlikely scenarios

## Security Best Practices

When deploying VLog, please follow these recommendations:

### Network Security

- **Admin API (port 9001)**: Should only be accessible from trusted internal networks
- **Worker API (port 9002)**: Should only be accessible to authorized workers
- **Public API (port 9000)**: Can be exposed to the internet behind a reverse proxy

### Authentication

- Worker API keys are generated securely and stored as SHA-256 hashes
- Rotate API keys periodically
- Revoke keys for workers that are no longer in use

### HTTPS

- Always use HTTPS in production
- Deploy behind a reverse proxy (nginx, Caddy) with valid SSL certificates
- Enable HSTS headers

### Rate Limiting

- Rate limiting is enabled by default
- For multi-instance deployments, use Redis storage for shared rate limit state
- Adjust limits based on your expected traffic

### Updates

- Keep dependencies updated
- Monitor security advisories for Python packages
- Subscribe to GitHub security alerts

---

## Security Features

### CI/CD Security Scanning

VLog's GitHub Actions pipeline includes automated security scanning:

| Tool | Purpose | When |
|------|---------|------|
| **Trivy** | Container image vulnerability scanning | On Docker builds |
| **pip-audit** | Python dependency vulnerability detection | On every PR |
| **Bandit** | Python static security analysis | On every PR |

Scans run automatically on pull requests and block merging if critical vulnerabilities are found.

### Container Security

Production container images include:

- **Multi-stage builds:** Smaller attack surface, no build tools in production
- **Non-root user:** Containers run as UID 1000, not root
- **Read-only filesystem:** Prevents runtime modifications
- **Dropped capabilities:** All Linux capabilities dropped
- **Seccomp profile:** RuntimeDefault seccomp profile applied

Example security context:
```yaml
securityContext:
  runAsNonRoot: true
  runAsUser: 1000
  allowPrivilegeEscalation: false
  readOnlyRootFilesystem: true
  seccompProfile:
    type: RuntimeDefault
  capabilities:
    drop: ["ALL"]
```

### Kubernetes Security

For Kubernetes deployments:

- **NetworkPolicy:** Restricts pod-to-pod communication
- **PodDisruptionBudgets:** Ensures availability during updates
- **Resource limits:** Prevents resource exhaustion
- **Pinned image versions:** No `latest` tags in production
- **Secrets management:** Secrets via kubectl, never in git

### Audit Logging

VLog maintains audit logs for security-relevant operations:

- Admin authentication (login/logout)
- Video uploads and deletions
- Settings changes
- Worker registration and revocation

Audit logs include:
- Timestamp
- Event type
- User/IP information
- Operation details

Configure via:
```bash
VLOG_AUDIT_LOG_ENABLED=true
VLOG_AUDIT_LOG_PATH=/var/log/vlog/audit.log
VLOG_AUDIT_LOG_MAX_BYTES=10485760  # 10 MB rotation
```

### Input Validation

- File uploads validated for type and size
- SQL injection prevented via parameterized queries (SQLAlchemy)
- XSS prevented via Content Security Policy headers
- Path traversal prevented in file operations

### Secret Management

- API secrets stored as SHA-256 hashes
- Session tokens use cryptographically secure generation
- HTTP-only cookies for browser sessions
- Environment variables for sensitive configuration

---

## Disclosure Policy

- We will coordinate disclosure timing with the reporter
- We aim to release fixes before public disclosure
- Security fixes will be released as soon as possible
- We will publish security advisories for significant vulnerabilities