Salta el contingut

Posada en Producció Segura

Proposta didàctica

En aquesta unitat treballem la RA5: Prova aplicacions web i mòbils analitzant el seu codi i model d'execució, detecta i corregeix vulnerabilitats, determina el nivell de seguretat requerit i implanta sistemes segurs de desplegat.

Criteris d'avaluació

  • CA1.1 Comparació de llenguatges de programació des del punt de vista de la seguretat.

  • CA1.2 Models d'execució de programari i les seves implicacions en la seguretat.

  • CA1.3 Elements bàsics del codi font que afecten la seguretat.

  • CA1.4 Tipus de proves de programari orientades a la seguretat.

  • CA1.5 Avaluació de seguretat en llenguatges i entorns d'execució.

  • CA2.1 Nivells ASVS (Application Security Verification Standard).

  • CA2.2 Nivell de verificació requerit per a cada tipus d'aplicació.

  • CA2.3 Requisits de verificació necessaris per al nivell determinat.

  • CA2.4 Riscos principals d'aplicacions segons OWASP.

  • CA3.1 Validació d'entrades d'usuari com a mesura preventiva.

  • CA3.2 Detecció de riscos d'injecció (SQL, XSS, SSTI).

  • CA3.3 Gestió correcta de sessions d'usuari.

  • CA3.4 Control d'accés per rols (RBAC).

  • CA3.5 Emmagatzematge segur de contrasenyes (bcrypt, Argon2).

  • CA3.6 Configuració segura de servidors web.

  • CA3.7 Contramesures contra bots (CAPTCHAs, rate limiting).

  • CA4.1 Models de permisos en plataformes mòbils (Android/iOS).

  • CA4.2 Emmagatzematge segur en dispositius mòbils.

  • CA4.3 Validació de compres integrades en aplicacions mòbils.

  • CA4.4 Monitoratge de tràfic d'aplicacions mòbils.

  • CA4.5 Inspecció de binaris mòbils i enginyeria inversa.

  • CA5.1 DevOps: integració de Dev i Ops en el cicle de vida del programari.

  • CA5.2 Sistemes de control de versions amb Git flow segur.

  • CA5.3 Integració contínua (CI) segura.

  • CA5.4 Plans de desplegat automatitzat (CD).

  • CA5.5 Avaluació de resiliència del sistema desplegat.

  • CA5.6 Documentació de recuperació davant desastres.

  • CA5.7 Bucles de retroalimentació àgils en el desenvolupament segur.

Continguts de referència

  1. Fonaments de seguretat en aplicacions i proves de programari

    • 1.1 Tipus de proves de seguretat: SAST, DAST, IAST, SCA
    • 1.2 Secure Software Development Lifecycle (SSDLC)
    • 1.3 Threat Modeling: STRIDE i PASTA
    • 1.4 Sandboxes i entorns d'execució aïllats
    • 1.5 Seguretat en els principals llenguatges de programació
    • 1.6 Eines d'anàlisi estàtica: SonarQube, Semgrep
  2. ASVS i nivells de seguretat d'aplicacions

    • 2.1 OWASP ASVS: Application Security Verification Standard
    • 2.2 Nivells de verificació: L1, L2, L3
    • 2.3 Categories ASVS: V1-V14
    • 2.4 Aplicació pràctica de l'ASVS en projectes reals
    • 2.5 Eines d'avaluació: OWASP ZAP, Burp Suite
  3. Vulnerabilitats web OWASP Top Ten i remediació

    • 3.1 A01: Broken Access Control
    • 3.2 A02: Cryptographic Failures
    • 3.3 A03: Injection (SQL, XSS, SSTI, LDAP)
    • 3.4 A04: Insecure Design
    • 3.5 A05: Security Misconfiguration
    • 3.6 A06: Vulnerable and Outdated Components
    • 3.7 A07: Identification and Authentication Failures
    • 3.8 A08: Software and Data Integrity Failures
    • 3.9 A09: Security Logging and Monitoring Failures
    • 3.10 A10: Server-Side Request Forgery (SSRF)
  4. Seguretat en aplicacions mòbils

    • 4.1 OWASP Mobile Top Ten
    • 4.2 Model de seguretat Android: sandboxing, permisos, APK
    • 4.3 Model de seguretat iOS: entitlements, keychain
    • 4.4 Emmagatzematge segur: Keystore i Keychain
    • 4.5 Comunicació segura: certificate pinning, HSTS
    • 4.6 Obfuscació i enginyeria inversa
    • 4.7 Eines d'anàlisi: MobSF
  5. DevSecOps i CI/CD segur

    • 5.1 DevSecOps: filosofia "Shift Left"
    • 5.2 Git flow segur i gestió de secrets
    • 5.3 CI/CD security: GitHub Actions, GitLab CI/CD
    • 5.4 Seguretat en contenidors: Trivy, Docker Scout
    • 5.5 Infrastructure as Code security: Checkov, tfsec
    • 5.6 SAST i DAST en pipelines CI/CD
    • 5.7 Supply chain security: SBOM, Sigstore
    • 5.8 Blue-green deployments i canary releases
    • 5.9 Documentació de recuperació davant desastres

Questionari inicial

  1. Què és una vulnerabilitat de tipus SQL Injection i com es pot prevenir?
  2. Quina diferència hi ha entre autenticació i autorització en una aplicació web?
  3. Què significa XSS (Cross-Site Scripting) i quins tipus existeixen?
  4. Per a què serveix el protocol HTTPS i com protegeix les dades?
  5. Què és una cookie de sessió i per què és important gestionar-la de forma segura?
  6. Què és OWASP i quina és la seva funció en el món de la ciberseguretat?
  7. Quina diferència hi ha entre una prova de caixa negra i una prova de caixa blanca en seguretat?
  8. Què és el principi de mínim privilegi i per a què s'aplica?
  9. Que és un token JWT (JSON Web Token) i com funciona?
  10. Quina diferència hi ha entre hash i xifrat en l'emmagatzematge de contrasenyes?
  11. Què és el control d'accés basat en rols (RBAC)?
  12. Que és DevOps i com es diferencia de DevSecOps?
  13. Què és un pipeline de CI/CD i per a què serveix?
  14. Que és Docker i quin avantatge aporta al desplegat d'aplicacions?
  15. Què és una API REST i quins riscos de seguretat pot presentar?
  16. Que és el CORS (Cross-Origin Resource Sharing) i per a què es configura?
  17. Quina diferència hi ha entre una aplicació nativa i una aplicació híbrida mòbil?
  18. Que és un certificat digital i com valida la identitat d'un servidor?
  19. Que és el rate limiting i per a quin propòsit s'utilitza en aplicacions web?
  20. Que és una anàlisi de codi estàtic (SAST) i quins avantatges té respecte l'anàlisi dinàmica?

Programació d'aula

Aquesta unitat té una duració de 99 hores lectives distribuïdes en 5 blocs temàtics al llarg del curs.

Sessió Continguts Activitats CAs Treballats
1 Presentació del mòdul. Introducció a la seguretat en aplicacions Questionari inicial
2 SSDLC: Cicle de vida de desenvolupament segur Anàlisi de casos reals CA1.2
3 Tipus de proves: SAST, DAST, IAST, SCA Comparativa d'eines CA1.4
4 Threat Modeling: STRIDE Exercici d'identificació d'amenaces CA1.3
5 Threat Modeling: PASTA Diagrama de flux d'amenaces CA1.3
6 Seguretat en Python: eval, pickle, deserialització Miniactivitat: codi vulnerable CA1.1, CA1.5
7 Seguretat en JavaScript/Node.js: prototype pollution Miniactivitat: codi vulnerable CA1.1, CA1.5
8 Seguretat en Java i PHP: XXE, RFI, LFI Miniactivitat: codi vulnerable CA1.1, CA1.5
9 SonarQube: anàlisi estàtica de codi Instal·lació i ús de SonarQube CA1.4, CA1.5
10 Semgrep: regles d'anàlisi personalitzades Creació de regles Semgrep CA1.4, CA1.5
11 Sandboxes i entorns aïllats Configuració d'un sandbox Docker CA1.2
12 Revisió i consolidació Bloc 1 Avaluació formativa CA1.1CA1.5
13 Repàs i ampliació Bloc 1 Resolució de dubtes CA1.1CA1.5
14–15 Pràctica Bloc 1: SAST amb Semgrep en projecte real Entrega parcial CA1.4, CA1.5
16–20 Sessions de reforç i ampliació Bloc 1 Exercicis addicionals Tots CA1.x
21 Introducció a OWASP ASVS Lectura guiada ASVS CA2.1
22 ASVS Nivell 1: Seguretat bàsica Aplicació de checklist L1 CA2.1, CA2.2
23 ASVS Nivell 2: Aplicacions estàndard Aplicació de checklist L2 CA2.1, CA2.2
24 ASVS Nivell 3: Aplicacions crítiques Aplicació de checklist L3 CA2.1, CA2.2
25 Categories ASVS: V1 Arquitectura, V2 Autenticació Anàlisi de requisits CA2.3
26 Categories ASVS: V3 Sessions, V4 Control d'accés Anàlisi de requisits CA2.3
27 Categories ASVS: V5 Validació, V7 Criptografia Anàlisi de requisits CA2.3
28 OWASP ZAP: escaneig automatitzat Escaneig d'aplicació de prova CA2.4
29 Burp Suite Community: interceptació i prova manual Interceptació de peticions HTTP CA2.4
30 Bug Bounty: HackerOne i Bugcrowd Anàlisi d'informes públics CA2.4
31 Aplicació ASVS en projecte real Exercici guiat CA2.2, CA2.3
32–35 Pràctica Bloc 2: Auditoria ASVS d'aplicació web Entrega parcial CA2.1CA2.4
36–40 Sessions de reforç i ampliació Bloc 2 Exercicis addicionals Tots CA2.x
41 OWASP Top Ten 2021: Introducció Presentació del top ten CA3.2
42 A01: Broken Access Control Explotar i corregir CA3.4
43 A02: Cryptographic Failures Identificar xifrats febles CA3.5
44 A03: SQL Injection Laboratori SQLi CA3.1, CA3.2
45 A03: XSS i SSTI Laboratori XSS CA3.1, CA3.2
46 A04: Insecure Design i Threat Modeling Disseny segur d'una API CA3.6
47 A05: Security Misconfiguration Identificar misconfiguracions CA3.6
48 A06: Components vulnerables i SCA Auditoria amb Trivy/Snyk CA3.6
49 A07: Authentication Failures Laboratori autenticació CA3.3, CA3.5
50 A08: Software and Data Integrity (SolarWinds) Anàlisi de l'incident CA3.6
51 A09: Logging i Monitoring Configuració de logs segurs CA3.6
52 A10: SSRF Laboratori SSRF CA3.2
53 Gestió de sessions: tokens, cookies, JWT Anàlisi de tokens CA3.3
54 RBAC i control d'accés Implementació RBAC CA3.4
55 Emmagatzematge segur: bcrypt, Argon2 Comparativa d'algoritmes CA3.5
56 Rate limiting i contramesures anti-bots Configuració CAPTCHA CA3.7
57 Configuració segura de capçaleres HTTP Auditoria securityheaders.com CA3.6
58–60 Pràctica Bloc 3: WebGoat i remediació OWASP Entrega pràctica CA3.1CA3.7
61 Introducció a la seguretat mòbil Lectura OWASP Mobile Top Ten CA4.1
62 Model de seguretat Android Anàlisi de permisos d'APK CA4.1, CA4.2
63 Model de seguretat iOS Anàlisi d'entitlements CA4.1, CA4.2
64 Keystore (Android) i Keychain (iOS) Implementació emmagatzematge segur CA4.2
65 Certificate pinning i HSTS Implementació en app de prova CA4.4
66 Obfuscació i enginyeria inversa Anàlisi amb APKTool/jadx CA4.5
67 Frida: instrumentació dinàmica d'apps mòbils Hooks bàsics amb Frida CA4.4, CA4.5
68 MobSF: Mobile Security Framework Anàlisi estàtica d'APK CA4.5
69 Interceptació de tràfic mòbil: Burp/mitmproxy Configuració proxy mòbil CA4.4
70 Validació de compres integrades Anàlisi de flux de compra CA4.3
71–75 Pràctica Bloc 4: Anàlisi d'APK amb MobSF Entrega pràctica CA4.1CA4.5
76–80 Sessions de reforç i ampliació Bloc 4 Exercicis addicionals Tots CA4.x
81 Introducció a DevSecOps: "Shift Left" Presentació del concepte CA5.1
82 Git flow segur: branques, signatura i secret scanning Configuració Git segur CA5.2
83 GitHub Actions: pipeline bàsic Creació d'un workflow CA5.3
84 SAST en CI: SonarQube integrat Integració SonarQube + GitHub CA5.3
85 DAST en CI: OWASP ZAP automation Escaneig automatitzat CA5.3
86 Secrets management: HashiCorp Vault Configuració de Vault CA5.2, CA5.3
87 Seguretat en contenidors: Trivy i Docker Scout Escaneig d'imatges Docker CA5.3
88 Infrastructure as Code: Checkov i tfsec Auditoria d'IaC CA5.3
89 Supply chain security: SBOM i Sigstore Generació d'SBOM CA5.3
90 CD segur: blue-green i canary deployments Simulació de desplegat CA5.4
91 Disaster Recovery: documentació i plans Redacció de pla DR CA5.6
92 Resiliència: chaos engineering i tests de fallada Exercici de resiliència CA5.5
93 Bucles de retroalimentació àgils Retrospectiva i millora CA5.7
94–99 Pràctica Bloc 5: Pipeline CI/CD segur Entrega pràctica final CA5.1CA5.7

Introducció

Què és la Posada en Producció Segura?

El desplegat d'aplicacions en entorns de producció és una de les fases més crítiques del cicle de vida del programari. En els darrers anys, els incidents de seguretat relacionats amb aplicacions web han crescut de forma exponencial: el Cost of a Data Breach Report d'IBM (2023) estima que el cost mitjà d'una bretxa de seguretat és de 4,45 milions de dòlars.

La posada en producció segura no és un pas final, sinó un procés transversal que s'integra en totes les fases del desenvolupament. Engloba:

  • Proves de seguretat (SAST, DAST, IAST) des del primer dia de codificació
  • Revisió de vulnerabilitats conegudes i emergents (OWASP Top Ten)
  • Gestió segura del desplegat mitjançant pipelines de CI/CD
  • Monitoratge continu un cop l'aplicació és en producció

Per què és important?

Alguns incidents reals que demostren la criticitat d'aquest tema:

  • Log4Shell (CVE-2021-44228, desembre 2021): Vulnerabilitat crítica en la biblioteca Log4j de Java. Va afectar milions de servidors a tot el món, incloent serveis d'Amazon, Apple, Microsoft i governs. El temps de resposta va ser crític.

  • SolarWinds (2020): Atac a la cadena de subministrament que va comprometre el pipeline de CI/CD de SolarWinds. Milers d'organitzacions governamentals i empresarials van ser infectades a través d'una actualització legítima del programari.

  • Equifax (2017): La bretxa de dades d'Equifax va exposar les dades personals de 147 milions de persones. La causa? Un component Apache Struts vulnerable (CVE-2017-5638) que no havia estat actualitzat.

  • Heartbleed (CVE-2014-0160, 2014): Error en OpenSSL que permetia llegir la memòria del servidor. Va afectar el 17% de tots els servidors web segurs d'Internet en el moment del descobriment.

El cicle DevSecOps

graph LR
    A[Planificació<br/>Threat Modeling] --> B[Codificació<br/>SAST / Code Review]
    B --> C[Build<br/>SCA / Deps Scan]
    C --> D[Test<br/>DAST / IAST]
    D --> E[Release<br/>Signatura / SBOM]
    E --> F[Deploy<br/>Config Scan / IaC]
    F --> G[Operate<br/>Runtime Protection]
    G --> H[Monitor<br/>SIEM / Alertes]
    H --> A

    style A fill:#4CAF50,color:#fff
    style B fill:#2196F3,color:#fff
    style C fill:#2196F3,color:#fff
    style D fill:#FF9800,color:#fff
    style E fill:#FF9800,color:#fff
    style F fill:#F44336,color:#fff
    style G fill:#F44336,color:#fff
    style H fill:#9C27B0,color:#fff

Estructura del mòdul

Aquest mòdul s'organitza en 5 blocs temàtics:

Bloc Tema Hores Sessions
1 Fonaments de seguretat en aplicacions ~20h 1–20
2 ASVS i nivells de seguretat ~20h 21–40
3 Vulnerabilitats web OWASP Top Ten ~20h 41–60
4 Seguretat en aplicacions mòbils ~20h 61–80
5 DevSecOps i CI/CD segur ~19h 81–99

Pràctiques

Pràctica Descripció Hores
Pràctica OWASP Explotació i remediació de vulnerabilitats OWASP amb WebGoat ~10h
Pràctica CI/CD Segur Pipeline CI/CD segur amb GitHub Actions i SonarQube ~9h

El panorama actual de les amenaces

Estadístiques clau (2023–2024)

Segons el Verizon Data Breach Investigations Report (DBIR) 2024:

  • El 74% de les bretxes involucren l'element humà (errors, ús incorrecte de privilegis, enginyeria social)
  • El 50% de les vulnerabilitats crítiques triguen més de 55 dies a ser pegades
  • Les aplicacions web són el vector d'atac més comú en el 26% de les bretxes

Segons l'ENISA Threat Landscape 2023:

  • Els atacs a la cadena de subministrament han crescut un 400% des de 2020
  • El ransomware continua sent l'amenaça principal
  • Els atacs a APIs REST han augmentat significativament

Les vulnerabilitats més explotades

pie title Tipus de vulnerabilitats més explotades (DBIR 2024)
    "Injection (SQLi, XSS)" : 28
    "Broken Access Control" : 22
    "Misconfiguration" : 18
    "Outdated Components" : 15
    "Auth Failures" : 10
    "Altres" : 7

Competències professionals

En completar aquest mòdul, l'estudiant serà capaç de:

  1. Identificar vulnerabilitats en codi font utilitzant eines SAST professionals
  2. Explotar de forma controlada i ètica les vulnerabilitats del OWASP Top Ten
  3. Remediar vulnerabilitats aplicant patrons de codi segur
  4. Auditar aplicacions web i mòbils aplicant l'estàndard ASVS
  5. Implementar pipelines de CI/CD amb controls de seguretat integrats
  6. Documentar processos de recuperació davant desastres
  7. Comunicar els riscos de seguretat a equips tècnics i no tècnics

Referències