opensecdevops/osdo-actions

GitHub: opensecdevops/osdo-actions

Stars: 0 | Forks: 0

# OSDO Actions **Open SecDevOps (OSDO) - Actions Repository** Monorepo centralizado que mantiene todas las **GitHub Actions granulares** para el framework OSDO. Cada acción es **independiente, versionada y reutilizable**. ## 📚 Tabla de Contenidos - [Descripción](#descripción) - [Estructura](#estructura) - [Acciones Disponibles](#acciones-disponibles) - [Uso Rápido](#uso-rápido) - [Versionado](#versionado) - [Relación con Otros Repos](#relación-con-otros-repos) - [Contribución](#contribución) - [Soporte](#soporte) ## Descripción `osdo-actions` es un **monorepo** que alberga todas las GitHub Actions utilizadas por el framework OSDO. Proporciona: **Acciones Granulares** - Cada herramienta de seguridad en una acción independiente **Versionado Semántico** - Control de versiones independiente por acción **Reutilización** - Úsalas en tus propios workflows **Publicación Centralizada** - Un único workflow para publicar todas **Documentación Completa** - Cada acción bien documentada ## Estructura osdo-actions/ ├── actions/ │ ├── osdo-sca/ # Software Composition Analysis │ │ └── action.yml # npm audit, Safety, etc. │ ├── osdo-sast/ # Static Application Security Testing │ │ └── action.yml # Semgrep, Bandit, etc. │ ├── osdo-secrets-scan/ # Detección de secretos │ │ └── action.yml # TruffleHog, Gitleaks │ ├── osdo-container-scan/ # Container security │ │ └── action.yml # Trivy, Hadolint │ ├── osdo-iac-scan/ # Infrastructure as Code scanning │ │ └── action.yml # Checkov, TFLint, etc. │ ├── osdo-sbom/ # Software Bill of Materials │ │ └── action.yml # CycloneDX, generación │ ├── osdo-sign/ # Code signing & attestation │ │ └── action.yml # cosign, attestation │ ├── osdo-test-quality/ # Test & quality checks │ │ └── action.yml # Coverage, quality gates │ └── osdo-compliance-report/ # Compliance reporting │ └── action.yml # Reporte de compliance ├── .github/ │ └── workflows/ │ └── publish.yml # Publicar releases ├── docs/ # Documentación específica ├── README.md # Este archivo ├── CHANGELOG.md # Historial de versiones └── LICENSE ## Acciones Disponibles | Acción | Propósito | Versión | Use | |--------|-----------|---------|-----| | **osdo-sca** | Análisis de composición de software | v1.0.0+ | npm, pip, maven, etc. | | **osdo-sast** | Análisis estático de código | v1.0.0+ | Semgrep, Bandit, etc. | | **osdo-secrets-scan** | Detección de secretos | v1.0.0+ | TruffleHog, Gitleaks | | **osdo-container-scan** | Escaneo de contenedores | v1.0.0+ | Trivy, Grype, Hadolint, SBOM | | **osdo-iac-scan** | Infrastructure as Code | v1.0.0+ | Checkov, KICS, tfsec, Terrascan | | **osdo-sbom** | Bill of Materials | v1.0.0+ | CycloneDX, SPDX | | **osdo-sign** | Code signing | v1.0.0+ | cosign, attestation | | **osdo-test-quality** | Tests & quality | v1.0.0+ | Coverage, gates | | **osdo-compliance-report** | Compliance report | v1.0.0+ | Consolidación de reportes | | **osdo-dast-scan** | Dynamic App Security Testing | v1.0.0+ | OWASP ZAP, SSL/TLS checks | | **osdo-api-scan** | API Security Testing | v1.0.0+ | OpenAPI validation, fuzzing | | **osdo-mobile-scan** | Mobile Security | v1.0.0+ | MASVS compliance, iOS/Android | | **osdo-cloud-scan** | Cloud Security | v1.0.0+ | AWS/Azure/GCP, Prowler | | **osdo-license-scan** | License Compliance | v1.0.0+ | License detection, policy enforcement | | **osdo-llm-scan** | LLM/AI Security | v1.0.0+ | Prompt injection, model security | | **osdo-build-security** | Build seguro con SBOM | v1.0.0+ | Build hardening, generación de SBOM | | **osdo-fuzz** | Fuzzing de aplicaciones | v1.0.0+ | Go, Python Atheris, Rust cargo-fuzz, JS jsfuzz, C/C++ AFL++ | | **osdo-policy-gate** | Policy as Code | v1.0.0+ | OPA, Kyverno | | **osdo-security-gate** | Quality gate de seguridad | v1.0.0+ | Umbral de severidades, bloqueo de pipeline | | **osdo-setup-env** | Configuración del entorno | v1.0.0+ | Setup de herramientas y variables de entorno | | **osdo-slsa-provenance** | SLSA Provenance | v1.0.0+ | SLSA Level 3, Sigstore/Cosign, Rekor | | **osdo-smart-contract-audit** | Auditoría de smart contracts | v1.0.0+ | Slither, Mythril, Solhint para Solidity | ## Uso Rápido ### Usar una Acción Individual name: Security Scan on: [push, pull_request] jobs: scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 # Usar acción directamente - name: SCA Scan uses: opensecdevops/osdo-actions/actions/osdo-sca@osdo-sca/v1.0.0 with: results-dir: '.osdo/results' enable-npm: true enable-python: true ### Combinar Múltiples Acciones jobs: security: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: SCA Analysis uses: opensecdevops/osdo-actions/actions/osdo-sca@osdo-sca/v1.0.0 - name: SAST Analysis uses: opensecdevops/osdo-actions/actions/osdo-sast@osdo-sast/v1.0.0 - name: Secrets Scan uses: opensecdevops/osdo-actions/actions/osdo-secrets-scan@osdo-secrets-scan/v1.0.0 - name: Generate Report uses: opensecdevops/osdo-actions/actions/osdo-compliance-report@osdo-compliance-report/v1.0.0 ## Versionado Cada acción sigue **Semantic Versioning** con tags independientes: osdo-/v.. **Ejemplos:** osdo-sca/v1.0.0 # Primera versión osdo-sca/v1.1.0 # Nueva feature (backwards compatible) osdo-sast/v2.0.0 # Breaking change ### Publicar Nueva Versión # 1. Hacer cambios a la acción git checkout -b feature/mejora-sca # 2. Editar acción # actions/osdo-sca/action.yml # 3. Commit y Push git add . git commit -m "feat(osdo-sca): agregar soporte para npm semver ranges" git push origin feature/mejora-sca # 4. Crear PR y obtener aprobación # 5. Mergear a main # 6. Publicar release gh release create osdo-sca/v1.1.0 \ --title "Release: osdo-sca v1.1.0" \ --notes "Soporte para npm semver ranges" ## Relación con Otros Repos ### Arquitectura de Tres Capas ┌──────────────────────────────────────────────────┐ │ osdo-workflow-template (Orquestador) │ │ Usa acciones de osdo-actions + osdo-workflows │ └────────────────────┬─────────────────────────────┘ │ ┌───────────┴───────────┐ │ │ ┌────▼────────────┐ ┌─────▼──────────────┐ │ osdo-actions │ │ osdo-workflows │ │ (Granulares) │ │ (Reutilizables) │ └─────────────────┘ └────────────────────┘ ### **osdo-actions** (Este Repositorio) - Acciones **granulares** e **independientes** - Cada herramienta = 1 acción - Reutilizables en cualquier contexto - Versionadas individualmente **Úsalas cuando:** - Necesites **control granular** - Quieras combinar herramientas **específicas** - Desarrolles tus **propias orquestaciones** ### **osdo-workflow-template** - 🎯 Framework **completo** y **opinado** - 🔗 Orquestra acciones de `osdo-actions` - 📦 Proporciona workflows reutilizables - ⚙️ Best practices preconfiguradas **Úsalas cuando:** - Quieras un pipeline **completo** - No necesites **customización extrema** - Busques **"security by default"** ### **osdo-workflows** - 📋 Workflows reutilizables - 🎯 Para scenarios específicos - 🔄 Complementarios al framework ## 🤝 Cómo Contribuir ### 1️⃣ Reportar Issues Encuentra un bug o tienes una idea? Abre un [GitHub Issue](https://github.com/opensecdevops/osdo-actions/issues): Título: [BUG] osdo-sca no detecta vulnerabilidades en Node.js v18 Descripción: - Qué pasó: ... - Qué esperabas: ... - Cómo reproducirlo: ... - Versión: osdo-sca/v1.0.0 ### 2️⃣ Contribuir Código # 1. Fork y clonar git clone https://github.com/tu-usuario/osdo-actions.git cd osdo-actions # 2. Crear rama git checkout -b feature/nueva-herramienta # 3. Desarrollar nueva acción mkdir -p actions/osdo-tu-accion # Crear action.yml, entrypoint.sh, README.md # 4. Escribir tests # tests/osdo-tu-accion/ # 5. Documentar # actions/osdo-tu-accion/README.md # 6. Commit y push git add . git commit -m "feat(osdo-tu-accion): descripción clara" git push origin feature/nueva-herramienta # 7. Abrir Pull Request ### 3️⃣ Estructura de Nueva Acción # actions/osdo-tu-accion/action.yml name: 'OSDO - Tu Acción' description: 'Descripción clara y concisa' author: 'OpenSecDevOps' inputs: results-dir: description: 'Directorio de resultados' required: false default: '.osdo/results' enable-feature: description: 'Habilitar feature X' required: false default: 'true' outputs: vulnerabilities-found: description: 'Total de vulnerabilidades' value: ${{ steps.scan.outputs.vulnerabilities-found }} runs: using: 'docker' image: 'docker://ubuntu:22.04' entrypoint: 'entrypoint.sh' ### 4️⃣ Guidelines ✅ **DO:** - Documentar inputs/outputs - Incluir ejemplos de uso - Seguir convenciones (naming, estructura) - Versionar según semver - Escribir tests ❌ **DON'T:** - Mezclar responsabilidades - Hardcodear valores - Omitir documentación - Breaking changes sin major version bump ## 📚 Documentación - 📖 [ARCHITECTURE.md](../ARCHITECTURE.md) - Cómo todo encaja - 📋 [INTEGRATION_GUIDE.md](../INTEGRATION_GUIDE.md) - Integración completa - 🤝 [CONTRIBUTING.md](../CONTRIBUTING.md) - Guía detallada de contribución - 🔧 [docs/ACTIONS_REFERENCE.md](docs/ACTIONS_REFERENCE.md) - Referencia técnica ## 🆘 Soporte ### Encuentra Ayuda - 📖 [Ejemplos Completos](docs/examples.md) - 🐛 [Troubleshooting](docs/TROUBLESHOOTING.md) - 💬 [GitHub Discussions](https://github.com/opensecdevops/osdo-actions/discussions) - 🐙 [GitHub Issues](https://github.com/opensecdevops/osdo-actions/issues) ### Reportar Seguridad Para vulnerabilidades de seguridad, **NO** abras un issue público. En su lugar, usa: [GitHub Security Advisory](https://github.com/opensecdevops/osdo-actions/security/advisories) ## 📊 Impacto - **22 Actions** en producción - **30+ Security Tools** integradas - **10+ Lenguajes** soportados - **100+ Proyectos** dependientes ## 🎯 Roadmap - [x] DAST (Dynamic Application Security Testing) - [x] License Compliance scanning - [x] API Security Testing - [x] Mobile Security (MASVS) - [x] Cloud Security (Multi-cloud) - [ ] Real-time security dashboard - [ ] ML-based anomaly detection - [ ] Custom rule engine ## 📄 Licencia MIT License - Ver [LICENSE](LICENSE) ## 🌟 ¿Te Gusta? Dale una Estrella ⭐ Si encuentras útil este proyecto, por favor dale una estrella en [GitHub](https://github.com/opensecdevops/osdo-actions). Ayuda a otros a descubrirlo! **OSDO Actions** - Seguridad modular, escalable y reutilizable.