| Definiciones | |
|---|---|
| Decisiones tomadas durante el desarrollo de un software que, en el corto plazo, permiten un desarrollo más rápido o una solución temporal, pero que crean problemas a largo plazo en términos de NFR | |
| Aspectos que no están relacionados directamente con la funcionalidad de un sistema software, sino con características no directamente vinculados a sus funciones específicas (rendimiento, usabilidad, confiabilidad, |
|
| Estructura y diseño organizativo de un sistema de software, sobre cómo sus |
DevOps es la unión de personas, procesos y productos para una entrega continua de valor a los usuarios finales
Cada proceso tiene su propio



name: CI Security Pipeline
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Run static analysis (SAST)
uses: sonarsource/sonarqube-scan-action@v1.0
- name: Dependency vulnerability scan
uses: snyk/actions/python@master
with:
command: test
| Definiciones | |
|---|---|
| acción de compilar y ensamblar el código fuente de una aplicación en un formato ejecutable o en un conjunto de artefactos que se pueden utilizar en un entorno de ejecución específico | |
| un conjunto automatizado y secuencial de procesos que permiten la ejecución de tareas específicas. Analogía de una línea de montaje de la industria de fabricación | |
| entorno de prueba que replica el entorno de producción para realizar pruebas finales (con usuarios) antes del despliegue |
| Definiciones | |
|---|---|
| resultado del build. Pueden ser binarios ejecutables, bibliotecas, paquetes de instalación, etc., necesarios para ejecutar la aplicación | |
| una versión específica y completa de una aplicación o software que se considera lista para ser distribuida y utilizada por los usuarios finales | |
| release con el potencial de convertirse en la versión final o lanzamiento si no se encuentran problemas significativos durante las pruebas |
aws_ecs_service)aws_ecs_task_definition)container_definitions)network_configuration)provider "aws" {
region = "West Europe" # Cambia esto según tu región de AWS
}
resource "aws_ecs_cluster" "example_cluster" {
name = "example-cluster"
}
resource "aws_ecs_task_definition" "example_task" {
family = "example-task"
network_mode = "bridge"
requires_compatibilities = ["EC2"]
...
...
container_definitions = <<EOF
[
{
"name": "example-container",
"image": "nginx:latest",
"portMappings": [
{
"containerPort": 80,
"hostPort": 80
}
]
}
]
EOF
}
...
...
resource "aws_ecs_service" "example_service" {
name = "example-service"
cluster = aws_ecs_cluster.example_cluster.id
task_definition = aws_ecs_task_definition.example_task.arn
launch_type = "EC2"
desired_count = 1
network_configuration {
# Coloca las ID de tus subredes aquí
subnets = ["subnet-xxxxxxxxxxxxxx", "subnet-yyyyyyyyyyyyyy"]
# Coloca la ID de tu grupo de seguridad aquí
security_groups = ["sg-xxxxxxxxxxxxxxxxx"]
}
}
resource "aws_s3_bucket" "data" {
bucket = "example-bucket"
acl = "public-read" #
Exposición innecesaria
}
Configuración más segura:
resource "aws_s3_bucket" "data" {
bucket = "example-bucket"
acl = "private"
versioning {
enabled = true
}
}
Dockerfile:
FROM ubuntu
RUN apt-get update
RUN apt-get install -y nginx
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
EXPOSE 80
FROM ubuntu:latest
RUN apt-get update && apt-get install -y python3
COPY . /app
CMD ["python3", "/app/server.py"]
Configuración más segura:
FROM python:3.11-slim
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir -r requirements.txt
CMD ["python", "server.py"]
Detectar vulnerabilidades:
docker scan myapp:latest
# o con Trivy:
trivy image myapp:latest
Riesgo:
pip install requests==2.18.0
Escaneo y actualización:
pip install safety
safety check
Salida:
→ requests (<=2.19.1)
CVE-2018-18074 - Session credential leakage
fixed in: 2.20.0
| Definiciones | |
|---|---|
| práctica en la que la infraestructura de sistemas, redes y otros recursos tecnológicos se gestiona y |
|
| proceso de preparar y configurar de manera automática los recursos de infraestructura necesarios para ejecutar una aplicación o servicio |
Tratar los síntomas: pensar en la seguridad después de que el software se ha construido no es lo más correcto

Tratar la causa: pensar pronto en la seguridad, durante las actividades dedicadas al desarrollo y construcción del software

Aquí es donde el SAST hace su función para la seguridad
¿Por qué preocuparnos tanto si la IA ya sabe programar?
server-side-request.pytemporary-file-creation.pycryptographic-key-generation.pyCopilot y su código inseguro o cómo la IA aprende a programar (también) metiendo Bugs
Herramienta automática de revisión de código
Análisis estático de métricas de calidad
Clean code
Refactoring
Bug vs vulnerability vs code smell: Deprecated!
Código sensible que no impacta necesariamente en la seguridad
Problema que impacta en la seguridad y debe ser arreglado
Código sensible que no impacta necesariamente en la seguridad
Problema que impacta en la seguridad y debe ser arreglado
Proceso automático que identifica y analiza las dependencias de un proyecto
Busca y repara vulnerabilidades existentes en las dependencias (componentes) de un proyecto
Monitoriza continuamente las dependencias y permite corregirlas rápidamente cuando se descubren nuevas vulnerabilidades