Les dues lliçons anteriors han estat un inventari del problema: els atacs tècnics ordenats per fase de la cadena i el vector humà amb tota la seva casuística. Aquesta lliçó és l'inventari de la resposta. Recorrerem el catàleg de defenses que contraresta el que hem vist, organitzat per les capes de la defensa en profunditat que vas establir a 01-03: perímetre i xarxa, endpoint, dada, aplicació i cicle de desenvolupament, i registre i observabilitat. De cada mesura en veuràs què fa, quan es fa servir i quin atac concret neutralitza; la implementació detallada correspon al mòdul 5 i aquí només s'hi enllaça. I com que el pressupost de Nimbus no és infinit, la lliçó acaba amb el més útil de tot: una taula de les dotze mesures de més retorn amb el seu cost, esforç i impacte, i un pla per fases de 30, 90 i 180 dies que la Marta podria aprovar dilluns.

Contingut

  1. Com triar defenses: tres criteris abans de gastar un euro
  2. Protecció del perímetre i de la xarxa
  3. Protecció de l'endpoint
  4. Protecció de la dada
  5. Protecció de l'aplicació i del cicle de desenvolupament
  6. El registre i l'observabilitat com a mesura de protecció
  7. Prioritzar amb pressupost de pime: les 12 mesures de més retorn
  8. Pla per fases: 30, 90 i 180 dies

  1. Com triar defenses: tres criteris abans de gastar un euro

Abans del catàleg, el mètode. La forma més habitual de gastar malament en seguretat és comprar el que s'anuncia i no el que falta.

Criteri 1: quin atac concret neutralitza? Tota mesura s'ha de poder associar a una entrada de la taula resum de 02-02 o del catàleg de 02-03. Si no saps quin atac atura, no saps si et fa falta.

Criteri 2: en quina fase de la cadena actua i quines altres capes hi tinc? Recorda la Kill Chain de 02-01: si totes les teves mesures actuen en la mateixa fase, tens una defensa gruixuda per un costat i nua per l'altre.

Criteri 3: quin tipus de control és? Els controls es classifiquen per funció, i una defensa sana en té dels quatre tipus:

Tipus Què fa Exemple a Nimbus
Preventiu Impedeix que passi MFA, consultes parametritzades, tallafoc
Detectiu Avisa que està passant Alerta d'exportació massiva, registre d'auditoria
Correctiu Redueix el dany o restaura Restauració de còpies, revocació de tokens
Dissuasori Desincentiva l'intent Bàner legal, avís de sessió registrada

El desequilibri típic ja el vas diagnosticar amb el NIST CSF a 02-01: gairebé tot preventiu, gairebé res detectiu. És còmode perquè el preventiu es compra i s'instal·la un cop, mentre que el detectiu exigeix que algú miri. Però quan la prevenció falla —i fallarà— l'única cosa que limita el dany és la detecció.

Un quart criteri, informal però decisiu en una pime: aquesta mesura sobreviu a un mal dia? Una defensa que exigeix deu minuts diaris de disciplina d'algú saturat no durarà tres setmanes. Les mesures que funcionen a Nimbus són les que estan per defecte, automatitzades o en el camí natural de la feina.


  1. Protecció del perímetre i de la xarxa

El perímetre clàssic ha perdut pes —la meitat de la plantilla treballa en remot i les dades són al núvol— però no ha desaparegut: continua sent la primera línia contra l'escaneig massiu de 02-02.

2.1 Tallafocs: quin tipus cal i per a què

Tipus Què inspecciona Què atura On encaixa a Nimbus
Filtratge de paquets IP, port, protocol Accés a serveis que no han de ser abastables Els grups de seguretat del proveïdor cloud; és el que va faltar al 0.0.0.0/0 del port 22
Amb estat (stateful) L'anterior + l'estat de la connexió Paquets que no pertanyen a una connexió establerta Estàndard en qualsevol tallafoc modern
De nova generació (NGFW) Aplicació i identitat, no només port Trànsit legítim pel port 443 però cap a destinacions indegudes Router de l'oficina de València
D'aplicació web (WAF) Peticions HTTP: cos, paràmetres, capçaleres Injecció SQL, XSS, recorregut de rutes, bots Davant de l'API (A-04)

Sobre el WAF, amb precisió, perquè és la mesura més mal interpretada de totes: un WAF compra temps, no corregeix codi. És extraordinàriament útil per a tres coses: frenar el soroll de fons automatitzat, aplicar un pedaç virtual mentre es corregeix una vulnerabilitat acabada de descobrir, i aportar visibilitat del que s'intenta contra l'API. El que no fa: substituir les consultes parametritzades ni detectar un IDOR, perquè una petició IDOR està perfectament ben formada. Si Nimbus instal·la un WAF i amb això relaxa la revisió de codi, ha empitjorat.

2.2 Segmentació

Què és. Dividir la xarxa en zones amb control entre elles, de manera que comprometre'n una no doni accés a les altres.

flowchart TB
    INT["INTERNET"] --> DMZ["ZONA PUBLICA\nBalancejador + WAF"]
    DMZ --> APP["ZONA D APLICACIO\nAPI, workers\nSense acces directe des d Internet"]
    APP --> DAT["ZONA DE DADES\nPostgreSQL, Redis\nNomes accessible des de la zona d aplicacio"]
    OFI["OFICINA VALENCIA\nWifi corporativa"] -->|"nomes via bastio + MFA"| APP
    INV["WIFI CONVIDATS\nAillada, sense acces intern"] --> INT
    CONS["CONSULTORA EXTERNA"] -->|"acces just-in-time, amb caducitat"| APP

Per què és la mesura més rendible contra el ransomware. La cronologia de 02-02 mostrava que l'atacant passa dies movent-se lateralment. La segmentació és el que converteix «van entrar en un portàtil» en «van entrar en un portàtil» i no en «van xifrar tota la infraestructura». Tres regles pràctiques per a Nimbus:

  • La wifi de convidats no toca res intern. És un control de cinc minuts al router i elimina una classe sencera de risc.
  • La zona de dades només accepta connexions de la zona d'aplicació. Mai des de l'oficina ni des d'Internet. Això ja ho vas comprovar amb describe-security-groups a 01-04.
  • L'accés administratiu passa sempre per un punt únic (bastió o VPN amb MFA), que és l'únic lloc on cal vigilar de debò.

2.3 Protecció anti-DDoS

Contra el volumètric, la defensa es contracta: el proveïdor cloud o una CDN absorbeixen el trànsit abans que arribi a l'enllaç de Nimbus. És una de les poques defenses que realment no es pot construir amb recursos propis, perquè requereix capacitat de xarxa.

Contra l'aplicatiu, la defensa es programa, i ja la vas veure a 02-02: paginació obligatòria, límits de rang de negoci, límit de taxa i temps màxim de consulta. Cap servei anti-DDoS no distingeix una petició cara d'una de barata: per a ell, totes dues són una petició HTTPS legítima.

2.4 VPN i accés remot segur

Amb 19 persones fora de l'oficina, l'accés remot és el perímetre de Nimbus.

Model Com funciona Avantatge Problema
VPN tradicional L'equip entra a la xarxa interna i accedeix a tot Senzilla i coneguda Accés «tot o res»: una credencial compromesa dona la xarxa sencera. És el cas de Colonial Pipeline que veurem a 02-06
Bastió / jump host Punt únic de salt amb MFA i registre Un sol punt per vigilar i auditar Requereix disciplina d'ús
Accés Zero Trust per aplicació S'autoritza aplicació per aplicació, verificant identitat i estat del dispositiu a cada petició No hi ha «dins»; el compromís no dona xarxa Més cost inicial de configuració

Recomanació per a Nimbus: MFA obligatori a l'accés remot (sense excepcions, inclosa la consultora), bastió amb registre de sessió per a l'accés administratiu, i accés just-in-time amb caducitat per a tercers en lloc de l'accés permanent actual de l'actiu A-19. El detall d'identitat va a 02-05; la configuració de xarxa, a 05-04.


  1. Protecció de l'endpoint

Els 40 portàtils (A-14) són on treballen les persones, i per tant on aterra el phishing de 02-03.

3.1 Antivirus davant d'EDR

Aspecte Antivirus tradicional EDR (detecció i resposta a l'endpoint)
Detecta per Signatures de fitxers coneguts Comportament: què fa un procés, amb qui parla, què modifica
Cobreix Programari maliciós conegut Atacs sense fitxer, ús indegut d'eines legítimes, moviment lateral
Aporta Bloqueig Bloqueig + telemetria i historial per investigar
Permet Aïllar remotament un equip compromès
Cost Baix Mitjà; requereix que algú atengui les alertes

Per què importa la diferència en el cas de Nimbus. Repassa l'exercici 3 de 02-03: el portàtil del Rubén executa un component que estableix un canal sortint i roba la galeta del navegador. Un antivirus de signatures pot no veure-hi res, perquè el fitxer és nou i perquè bona part de l'activitat fa servir eines legítimes del sistema. Un EDR veu el patró: un procés ofimàtic llançant un intèrpret d'ordres, un accés al magatzem de credencials del navegador, una connexió sortint a un domini registrat fa poc. I, sobretot, permet aïllar l'equip amb un clic i reconstruir després què va passar.

L'advertiment realista: un EDR les alertes del qual ningú no mira és una despesa, no una defensa. Abans de comprar-lo cal decidir qui l'atén i quan. Per a Nimbus, l'opció sensata sol ser un EDR amb servei gestionat de vigilància, o un EDR ben configurat amb poques alertes i molt accionables.

3.2 Les altres tres mesures d'endpoint

Mesura Quin atac atura Detall pràctic per a Nimbus
Xifratge de disc complet Robatori o pèrdua física d'un portàtil Activat als 40 equips, amb custòdia centralitzada de les claus de recuperació. Sense custòdia, un empleat que oblida la seva clau provoca una pèrdua de dades autoinfligida
Gestió de pedaços Explotació de vulnerabilitats conegudes —el vector de WannaCry i Equifax (02-06) Actualitzacions automàtiques del sistema i del navegador; termini compromès per a les crítiques (7 dies és un objectiu raonable); inventari que permeti saber quina versió té cada equip
Control d'aplicacions Execució de programari no autoritzat, inclòs l'USB de baiting Permetre només aplicacions aprovades; blocar macros d'origen extern; blocar l'execució des de carpetes temporals i des de dispositius extraïbles

La mesura més infravalorada de les tres és l'aplicació de pedaços. No és vistosa, no es pot ensenyar a un client i no apareix a cap fullet comercial. Però dos dels majors incidents de la història recent —els que analitzarem a 02-06— van ser vulnerabilitats conegudes i amb pedaç disponible durant mesos. El hardening i la gestió de l'endpoint en detall s'estudien a 05-06.


  1. Protecció de la dada

Les capes anteriors protegeixen contenidors. Aquesta protegeix el que hi ha dins, i és l'única que continua servint quan les altres fallen.

4.1 Classificació: el prerequisit

No es pot protegir de forma diferenciada el que no està classificat. Ja ho vas fer a 01-04 amb els quatre nivells (públic, intern, confidencial, restringit) i les seves tres regles: herència cap amunt, agregació que puja el nivell i context que defineix la sensibilitat. La classificació no és una mesura en si mateixa: és el que fa possible aplicar la resta sense arruïnar-se.

4.2 Xifratge en trànsit i en repòs

On Què protegeix Estat a Nimbus
En trànsit, extern Escolta entre el client i l'API TLS 1.3 amb HSTS: fet
En trànsit, intern Escolta a la xarxa privada (flux F3 del DFD) Pendent: TLS també entre balancejador i API
En repòs, base de dades Accés al disc o al volum Xifratge del volum amb claus gestionades: fet
En repòs, bucket Accés a l'emmagatzematge d'objectes Xifratge del costat del servidor amb clau gestionada: fet
En repòs, còpies Robatori d'una còpia Crític: la còpia conté tot. Xifrada i amb clau diferent de la de producció
A nivell de camp Accés legítim a la base de dades que no hauria de veure certs camps Valorar-ho per als camps més sensibles

Dues precisions que eviten falses sensacions de seguretat:

  1. El xifratge en repòs del proveïdor protegeix contra el robatori del mitjà físic, no contra un atacant amb credencials vàlides. Si l'atacant té accés a la base de dades, el motor li retorna les dades desxifrades: per això hi és la clau. No protegeix contra l'IDOR ni contra el ransomware operat amb credencials robades.
  2. La clau és l'actiu real. Xifrar amb una clau que és al mateix lloc que la dada és un exercici decoratiu. La gestió de claus —on viuen, qui hi accedeix, com es roten— és el problema difícil, i s'estudia a 03-06.

Els mecanismes criptogràfics es desenvolupen al mòdul 3; aquí interessa on aplicar-los.

4.3 Còpies de seguretat: la regla 3-2-1 i la immutabilitat

És la mesura més important de tota la lliçó, perquè és l'única que retorna el negoci quan tota la resta ha fallat.

La regla 3-2-1:

  • 3 còpies de les dades (la de producció i dues més).
  • En 2 suports o tecnologies diferents.
  • 1 d'elles fora de l'abast de la infraestructura principal.

L'ampliació moderna, 3-2-1-1-0, que és la que importa contra el ransomware:

  • 1 còpia immutable o desconnectada.
  • 0 errors a la prova de restauració.

Per què la immutabilitat és la peça decisiva. Recorda la cronologia del ransomware de 02-02: el dia 20, abans de xifrar, l'atacant esborra les còpies. Si les còpies de Nimbus són al bucket nimbus-backups-prod (A-03), dins del mateix compte cloud (A-05) i accessibles amb les mateixes credencials que producció, aleshores no són còpies: són fitxers més que es xifraran.

Configuració objectiu per a Nimbus:

Requisit Implementació
Compte separat Les còpies van a un compte cloud diferent, amb credencials que producció no coneix
Immutabilitat Bloqueig d'objecte en mode compliment, amb retenció de 30 dies: ningú, ni l'administrador, no les pot esborrar abans
Xifratge Amb clau pròpia, diferent de la de producció
Verificació Restauració completa cronometrada cada trimestre, amb resultat documentat
Abast Base de dades, bucket d'adjunts, configuració d'infraestructura i secrets (sovint oblidats)

La frase que convé interioritzar: una còpia que no s'ha restaurat mai no és una còpia, és una esperança. El cas més comú de fracàs no és que falti la còpia: és que la còpia existia, estava corrupta, incompleta o ningú no sabia el procediment. La continuïtat i els objectius de temps de recuperació es desenvolupen a 04-06.

4.4 DLP, minimització i pseudonimització

Mesura Què fa Aplicació a Nimbus
DLP (prevenció de fuita de dades) Detecta i bloqueja la sortida de dades sensibles per correu, web o USB Realista per a Nimbus en versió lleugera: alerta si surt un fitxer amb molts DNI o correus; bloqueig d'USB d'escriptura
Minimització No recollir ni conservar el que no es necessita Necessita Nimbus el DNI dels pacients? Necessita guardar l'historial de cites cinc anys? El que no hi és no es pot filtrar
Pseudonimització Substituir identificadors per referències reversibles només amb informació separada L'entorn de preproducció (A-22) ha de fer servir dades pseudonimitzades, mai còpia directa de producció
Anonimització Transformació irreversible Per a mètriques agregades i estadístiques d'ús
Retenció i esborrament Eliminar quan ja no es necessita Política escrita per tipus de dada i esborrament automatitzat

La minimització és la mesura amb millor relació cost/benefici de l'apartat, i gairebé mai no s'aplica perquè exigeix dir que no a dades que «algun dia podrien ser útils». Una dada que no existeix no es filtra, no es xifra, no s'audita i no apareix en una notificació de bretxa.

Nota sobre implicacions legals: minimització, pseudonimització, terminis de retenció i esborrament tenen exigències normatives concretes, especialment quan les dades poden revelar informació de salut com passa amb les agendes de les clíniques. Les decisions s'han de validar amb el responsable de compliment o amb assessoria jurídica; el tractament s'aborda a 06-03.


  1. Protecció de l'aplicació i del cicle de desenvolupament

L'API (A-04) és la superfície principal de Nimbus. Aquesta capa desplaça la seguretat cap a l'esquerra: al moment d'escriure el codi, on corregir és barat.

5.1 Revisió de codi i anàlisi automatitzada

Pràctica Què troba Cost
Revisió per parells amb perspectiva de seguretat Lògica d'autorització, decisions de disseny, coses que cap eina no veu (l'IDOR) Cap d'addicional si ja es revisen els canvis
SAST (anàlisi estàtica) Patrons perillosos al codi: concatenació en SQL, verify=False, pickle.loads Baix; soroll inicial que cal ajustar
SCA (anàlisi de composició) Dependències amb vulnerabilitats conegudes Baix; és la de més retorn immediat
Anàlisi de secrets Credencials al codi i a l'historial Molt baix; imprescindible després de la troballa del token de 01-04
DAST (anàlisi dinàmica) Fallades visibles atacant l'aplicació en execució Mitjà; útil en preproducció

La llista de comprovació de quatre preguntes que l'Iván hauria d'aplicar a cada revisió, ja introduïda a 02-02:

  1. Qui ets? — l'endpoint exigeix autenticació?
  2. És teu? — es filtra per tenant_id i es verifica la propietat del recurs?
  3. És vàlid el que envies? — hi ha validació de tipus i de rangs?
  4. Quant costa això? — hi ha paginació, límits i límit de taxa?

5.2 Gestió de secrets

La troballa del token sense caducitat de 01-04 i el .env filtrat de l'atac encadenat de 02-02 tenen la mateixa arrel: els secrets viuen on no han de viure.

Regla Per què
Mai al codi ni al repositori Git conserva l'historial: esborrar el fitxer no esborra el secret
En un gestor de secrets, amb accés registrat Un sol lloc per auditar i rotar
Injectats en temps d'execució, no a la imatge de contenidor Una imatge amb secrets és un secret publicat al registre
Efímers sempre que sigui possible Credencials del proveïdor cloud amb vida de minuts en lloc de claus permanents
Rotables sense desplegar Si rotar exigeix un desplegament, no es rotarà
En detectar una exposició: rotar primer, investigar després L'ordre invers és l'error clàssic

5.3 Capçaleres de seguretat HTTP

Un conjunt d'instruccions al navegador que costa uns minuts configurar i neutralitza classes senceres d'atac de l'apartat 6 de 02-02.

Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
Content-Security-Policy: default-src 'none'; script-src 'self'; style-src 'self';
    img-src 'self' data:; connect-src 'self' https://api.nimbusreservas.example;
    frame-ancestors 'none'; base-uri 'none'; form-action 'self';
    report-uri https://csp.nimbusreservas.example/informe
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: geolocation=(), camera=(), microphone=()
Cache-Control: no-store

Explicació de cadascuna, i quin atac atura:

Capçalera Què fa Atac que neutralitza
Strict-Transport-Security Obliga el navegador a fer servir HTTPS durant 2 anys, inclosos subdominis, i a no permetre l'excepció manual Degradació a HTTP i interposició (02-02, apartat 3)
Content-Security-Policy Declara d'on es pot carregar i executar cada tipus de recurs XSS: encara que s'injecti codi, el navegador es nega a executar-lo
frame-ancestors 'none' Impedeix que un altre web incrusti la pàgina en un marc Clickjacking
X-Content-Type-Options: nosniff Impedeix que el navegador endevini el tipus de contingut Fitxers pujats interpretats com a codi executable
Referrer-Policy Limita la informació que s'envia en navegar a un altre lloc Fuita d'identificadors i rutes internes a la capçalera Referer
Permissions-Policy Desactiva funcions del navegador que l'aplicació no fa servir Reducció de superfície al client
Cache-Control: no-store Evita que respostes amb dades personals quedin a la memòria cau Recuperació de dades en un equip compartit

Detalls de la CSP que marquen la diferència:

  • default-src 'none' com a base. Es parteix de «res permès» i s'obre l'estrictament necessari. És el principi de segur per defecte de 01-03 aplicat al navegador.
  • Sense 'unsafe-inline' ni 'unsafe-eval'. Permetre'ls anul·la la major part del valor de la CSP davant de l'XSS. Exigeix que el JavaScript sigui en fitxers, no incrustat.
  • report-uri converteix la CSP en un control detectiu: cada violació es registra. Un pic d'informes de CSP sol ser el primer senyal d'un intent d'XSS. Convé desplegar-la primer en mode només informe (Content-Security-Policy-Report-Only) per no trencar la SPA.

5.4 Límit de taxa

Ja ha aparegut a cada apartat, i per una raó: és la mesura que treu rendibilitat a la majoria dels atacs automatitzats —força bruta, enumeració, exportació massiva, DDoS aplicatiu, abús de lògica de negoci.

Dimensió del límit Per a què
Per IP Soroll automatitzat; poc efectiu contra atacants distribuïts
Per usuari o token Enumeració i exportació massiva; és el més útil en una API
Per tenant Que un client no consumeixi la capacitat dels altres
Per operació sensible Inici de sessió, recuperació de contrasenya, exportació: límits molt més estrictes

Els detalls d'AppSec es desenvolupen a 05-05.

5.5 Un flux de CI amb anàlisi de dependències i secrets

Aquest és el fitxer que l'Iván afegiria al repositori de Nimbus. Està explicat pas a pas després.

name: seguretat
on:
  push:
    branches: [main]
  pull_request:
  schedule:
    - cron: "0 6 * * 1"          # dilluns a les 06:00: revisio periodica

permissions:
  contents: read                  # minim privilegi: el flux nomes llegeix el codi

jobs:
  analisi:
    runs-on: ubuntu-latest
    steps:
      # 1. Descarrega del codi. Es fixa l accio per hash, no per etiqueta.
      - name: Descarregar codi
        uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608
        with:
          fetch-depth: 0          # historial complet: necessari per buscar
                                  # secrets en commits antics

      - name: Preparar Python
        uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38
        with:
          python-version: "3.12"

      # 2. Dependencies amb vulnerabilitats conegudes (SCA)
      - name: Analisi de dependencies
        run: |
          pip install pip-audit
          pip-audit --requirement requirements.txt \
                    --format json --output auditoria.json || true
          pip-audit --requirement requirements.txt \
                    --vulnerability-service osv --strict
        # --strict retorna codi d error si hi ha vulnerabilitats:
        # aixi la construccio FALLA i ningu no ho pot ignorar

      # 3. Secrets al codi i a TOT l historial
      - name: Analisi de secrets
        uses: gitleaks/gitleaks-action@83373cf2f8c4db6e24b41c1a9b086bb9619e9cd3
        env:
          GITLEAKS_CONFIG: .gitleaks.toml

      # 4. Patrons perillosos al codi propi (SAST)
      - name: Analisi estatica
        run: |
          pip install bandit
          bandit -r app/ -ll -f screen
        # -ll: nomes severitat mitjana i alta, perque el senyal no s ofegui

      # 5. Inventari de components (SBOM): respondre "que fem servir?" en minuts
      - name: Generar SBOM
        run: |
          pip install cyclonedx-bom
          cyclonedx-py requirements -i requirements.txt -o sbom.json

      - name: Guardar resultats
        if: always()              # es guarden fins i tot si algun pas ha fallat
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
        with:
          name: informes-seguretat
          path: |
            auditoria.json
            sbom.json

Les set decisions d'aquest fitxer, explicades:

  1. permissions: contents: read. Per defecte, molts fluxos reben permisos amplis. Declarar el mínim evita que una acció compromesa escrigui al repositori. És mínim privilegi (01-03) aplicat al CI.
  2. Accions fixades per hash de commit, no per @v4. Una etiqueta es pot reapuntar a un altre codi; un hash, no. És la defensa contra l'atac a la cadena de subministrament de 02-02.
  3. fetch-depth: 0. Sense l'historial complet, l'anàlisi de secrets només mira l'últim commit i es perd exactament el que cal trobar: la credencial que algú va pujar i «esborrar» fa vuit mesos.
  4. --strict a l'anàlisi de dependències. Sense això, l'informe es genera i ningú no el llegeix. Amb això, la construcció falla i cal decidir: actualitzar o justificar l'excepció per escrit. Una anàlisi que no pot blocar no canvia comportaments.
  5. -ll a l'anàlisi estàtica. Filtrar per severitat és el que evita el destí habitual d'aquestes eines: 400 avisos, ningú no els mira, es desactiva l'eina.
  6. SBOM. Quan surti la propera vulnerabilitat crítica en una biblioteca famosa, la pregunta serà «ens afecta?». Amb SBOM es respon en minuts; sense, en dies. És l'inventari de 01-04 aplicat al programari.
  7. if: always() en guardar resultats. Els informes del dia en què alguna cosa falla són precisament els que cal conservar.

I un advertiment sobre què NO fa aquest flux: no troba l'IDOR, no troba l'abús de lògica de negoci i no troba una fallada de disseny d'autorització. Les eines automàtiques cobreixen els patrons coneguts; el criteri humà cobreix la resta. Complementaris, no substitutius.


  1. El registre i l'observabilitat com a mesura de protecció

El diagnòstic del CSF a 02-01 va ser clar: la funció més feble de Nimbus és Detectar. I sense registre no hi ha detecció possible.

6.1 Què registrar

Categoria Esdeveniments Per què
Autenticació Inicis de sessió amb èxit i fallits, MFA, tancaments, canvis de contrasenya Detecta password spraying, stuffing, sessions anòmales (02-02)
Autorització Denegacions d'accés, ús de funcions administratives, suplantació de client Detecta escalada i IDOR
Accés a dades sensibles Consultes i exportacions amb actor, tenant i volum És la que va detectar l'exfiltració de l'exercici de 02-02
Canvis de configuració Permisos, regles de xarxa, rols, polítiques de bucket Detecta persistència de l'atacant
Cicle de vida de comptes Altes, baixes, canvis de rol, creació de tokens Detecta comptes creats per l'atacant
Esdeveniments d'aplicació Errors 5xx, errors d'SQL, violacions de CSP Senyals primerencs d'intent d'explotació
Infraestructura Accessos SSH, execució de contenidors, canvis en imatges Moviment lateral

Els cinc camps que ha de tenir tot esdeveniment útil: quan (amb zona horària i rellotge sincronitzat), qui (identitat nominal, no «admin»), què (acció concreta), sobre què (recurs i tenant) i des d'on (IP i agent). Un registre sense actor identificable no serveix per investigar; un registre sense recurs no serveix per mesurar l'abast.

6.2 Què NO registrar mai

Aquest apartat és tan important com l'anterior, perquè un registre mal dissenyat crea un problema de seguretat en lloc de resoldre'l.

No registrar mai Per què
Contrasenyes, ni tan sols fallides Una fallada sol ser una contrasenya real mal teclejada o d'un altre servei
Tokens, claus d'API, galetes de sessió Un registre amb tokens és un fitxer de credencials vàlides, i els registres es copien i es comparteixen amb facilitat
Dades que revelen salut El nom del servei d'una cita («rehabilitació de genoll») no ha d'aparèixer en un registre d'aplicació
Números complets de targeta o compte Obligacions específiques; a Nimbus els pagaments estan tokenitzats a la passarel·la precisament per no tocar-los
Cossos complets de peticions i respostes És la via més comuna de filtrar tot l'anterior sense adonar-se'n
Documents d'identitat i dades personals innecessàries Minimització també als registres
# === MALAMENT: registra el cos complet, incloses dades personals i tokens ===
logger.info("Peticio rebuda: %s capceleres=%s cos=%s",
            url, dict(peticio.headers), await peticio.body())

# === BE: registrar el necessari per investigar, res mes ===
logger.info(
    "acces",
    extra={
        "usuari_id": usuari.id,            # identitat, no nom complet
        "tenant_id": usuari.tenant_id,
        "accio": "exportar_reserves",
        "recurs": "reserves",
        "num_registres": len(files),       # el VOLUM es el senyal d alerta
        "ip": peticio.client.host,
        "sessio_id": sessio.id,
        # sense noms de pacients, sense token, sense cos de la peticio
    })

Per què aquesta versió permet detectar i l'anterior no: el camp num_registres juntament amb sessio_id i tenant_id és exactament el que feia funcionar la consulta de detecció de l'exercici 3 de 02-02. La detecció es dissenya quan s'escriu el registre, no quan passa l'incident. I el registre correcte conté menys dades personals que l'incorrecte, no més.

6.3 Les tres propietats que fan útil un registre

  1. Centralitzat. Registres repartits per cinc màquines no es correlacionen. A més, un atacant que compromet una màquina esborra els seus registres locals: enviar-los fora en temps real és el que preserva l'evidència.
  2. Íntegre i amb retenció. La taula d'auditoria append-only de 01-01 —amb INSERT però sense UPDATE ni DELETE per a nimbus_api— és l'aplicació d'aquesta idea. Retenció mínima recomanable: 90 dies en calent, un any en fred. Moltes bretxes es descobreixen mesos després, i sense registres no es pot determinar l'abast, que és justament el que cal comunicar a clients i autoritats.
  3. Amb alertes que algú atén. Un registre sense alertes és un arxiu històric. Poques alertes i molt bones: per a Nimbus, cinc regles inicials n'hi ha prou.

Les cinc alertes amb què començar demà:

Alerta Llindar inicial Atac que detecta
Fallades d'autenticació des d'un mateix origen contra diversos comptes > 5 comptes diferents en 10 min Password spraying
Exportació de dades anòmala > 5.000 registres o > 3 tenants per sessió/hora Exfiltració
Ús de funció administrativa fora d'horari Qualsevol entre 22:00 i 07:00 Compromís de compte privilegiat
Canvi en regles de xarxa, permisos IAM o polítiques de bucket Qualsevol no originat al CI Persistència de l'atacant
Creació de token, clau SSH o compte nou Qualsevol Persistència

Les tècniques de monitoratge i detecció es desenvolupen a 05-02.


  1. Prioritzar amb pressupost de pime: les 12 mesures de més retorn

Nimbus no ho pot fer tot. Aquesta és la taula que converteix el catàleg en decisions. Cost són diners, esforç és temps de l'equip, impacte és reducció real de risc.

# Mesura Cost Esforç Impacte Què neutralitza
1 MFA resistent al phishing a tots els comptes administratius (cloud, GitHub, correu, BD, VPN) Baix Baix Molt alt Spraying, stuffing, phishing de credencials, accés de la consultora
2 Còpies immutables en compte separat + prova de restauració trimestral Baix-mitjà Mitjà Molt alt Ransomware, esborrament accidental o maliciós
3 Tancar la superfície descoberta (SSH 0.0.0.0/0, Redis sense auth, http.server, node_exporter, subdominis morts) Nul Baix Molt alt Atac oportunista automatitzat
4 Caducitat i àmbit mínim a tots els tokens + rotació del token de desplegament Nul Baix Alt L'atac encadenat de 02-02
5 Anàlisi de dependències i secrets al CI (el yaml de l'apartat 5.5) Nul Baix Alt Dependències vulnerables, secrets filtrats
6 Registre centralitzat + les 5 alertes de l'apartat 6.3 Baix Mitjà Molt alt Tot el que avui és invisible
7 SPF -all, DKIM i DMARC p=reject + bàner de correu extern Nul Baix-mitjà Alt Suplantació del domini, frau del CEO
8 Procediment de verificació de pagaments i d'identitat a suport Nul Baix Alt BEC, frau d'IBAN, vishing
9 Gestió de pedaços amb termini compromès (7 dies per a les crítiques) Baix Mitjà Alt WannaCry, Equifax i equivalents
10 Xifratge de disc als 40 portàtils amb custòdia de claus Nul Baix Mitjà-alt Robatori o pèrdua de portàtil
11 Segmentació mínima: wifi de convidats aïllada, zona de dades tancada, bastió amb MFA Baix Mitjà Alt Moviment lateral, ransomware
12 EDR als portàtils amb algú que atengui les alertes Mitjà Mitjà Alt Programari maliciós, robatori de sessió, moviment lateral

Tres observacions sobre aquesta taula:

  • Vuit de les dotze mesures tenen cost econòmic nul o baix. El que falta a Nimbus no és pressupost: és decisió i temps assignat. És la conclusió més repetida en seguretat de pimes i la que més costa acceptar.
  • L'única amb cost mitjà real és l'EDR (#12), i va l'última a propòsit: sense MFA, sense còpies immutables i sense registre, un EDR és un luxe mal col·locat.
  • Cap de les dotze no és un producte de seguretat perimetral. No hi ha cap tallafoc nou a la llista, i no és un oblit: el risc de Nimbus no és allà.

  1. Pla per fases: 30, 90 i 180 dies

flowchart LR
    F1["DIES 1-30\nURGENT\nTancar el que es obert,\nMFA, tokens,\ncopies immutables"]
    F1 --> F2["DIES 31-90\nESTRUCTURAL\nRegistre i alertes,\nCI de seguretat,\ncorreu i processos"]
    F2 --> F3["DIES 91-180\nMADURESA\nSegmentacio, EDR,\npedacos formals,\nrecertificacio"]
    F3 --> F4["CONTINU\nRevisio trimestral,\nsimulacres, proves\nde restauracio"]

Fase 1 — Dies 1 a 30: aturar l'hemorràgia

Tot el que es pot fer sense pressupost, sense proveïdor i sense projecte.

Tasca Propietari Verificació que està fet
Tancar SSH a 0.0.0.0/0; accés només per bastió Lucía describe-security-groups sense 0.0.0.0/0 en ports administratius
Apagar el http.server, aïllar el NAS oblidat, retirar node_exporter públic i snmpd Lucía ss -tulpn amb només els serveis previstos
Autenticar Redis i vincular-lo a la xarxa privada Lucía Connexió des de fora rebutjada
MFA obligatori a cloud, GitHub, correu i VPN, inclosa la consultora Marta Informe de comptes sense MFA: buit
Rotar el token nimbus-deploy-bot; àmbit mínim i caducitat Marta Cap token sense data de caducitat
Revocar l'enllaç públic del full de nòmines i revisar accessos Sara Enllaç inaccessible; registre revisat
Còpies a compte separat amb bloqueig d'objecte 30 dies Lucía Intent d'esborrament rebutjat pel mateix proveïdor
Una restauració completa cronometrada Lucía Document amb temps i resultat
Bàner de correu extern Marta Visible en un correu de prova
Procediment de verificació de pagaments, signat Sara + Marta Document d'una pàgina publicat
Canal de report de phishing comunicat als 38 Sara Prova de report completada

Fase 2 — Dies 31 a 90: construir capacitat

Tasca Propietari Resultat esperat
Registre centralitzat amb els camps de l'apartat 6.1 Lucía Tots els esdeveniments d'autenticació i accés a dades en un únic lloc
Les 5 alertes inicials, amb guàrdia rotatòria Lucía Cada alerta amb propietari i procediment d'una línia
Flux de CI de seguretat de l'apartat 5.5 Iván Construcció que falla davant d'una vulnerabilitat alta
Corregir el que reveli la primera anàlisi Iván Zero vulnerabilitats crítiques pendents
SPF a -all, DKIM i DMARC en p=none amb informes Lucía Informes rua rebuts i emissors identificats
Capçaleres de seguretat HTTP, CSP en mode informe Iván Capçaleres presents; informes de CSP recollits
Límit de taxa en autenticació, exportació i endpoints cars Iván Prova de càrrega que confirma el límit
TLS al tram intern (flux F3) Lucía Sense trànsit intern en clar
Procediment de verificació d'identitat a suport Rubén + Marta Document i assaig amb casos reals
Primer simulacre de phishing amb mètriques Sara Taxa de report i temps fins al primer avís mesurats
Xifratge de disc als 40 portàtils amb custòdia Lucía Inventari al 100 %

Fase 3 — Dies 91 a 180: maduresa

Tasca Propietari Resultat esperat
DMARC a p=quarantine i després p=reject Lucía Domini protegit davant de suplantació
CSP en mode bloqueig Iván Sense regressions a la SPA
Segmentació: convidats aïllats, zona de dades tancada, bastió Lucía Diagrama de xarxa actualitzat i verificat
EDR desplegat, amb responsable d'alertes definit Lucía Cobertura del 100 % dels portàtils
Gestió de pedaços amb terminis i mesura Lucía Tauler amb antiguitat de pedaços per equip
Accés just-in-time amb caducitat per a la consultora (A-19) Marta Accés permanent eliminat
Primera recertificació d'accessos Marta Llista d'accessos revisada i signada
Preproducció amb dades pseudonimitzades Iván Classificació d'A-22 resolta (ja no «a revisar»)
Segona prova de restauració, cronometrada Lucía Temps de recuperació conegut i documentat
Primera prova de penetració externa Marta Informe amb pla de correcció prioritzat

Com se sosté això en el temps: revisió trimestral d'una hora buscant el que sobra (01-04), un simulacre per trimestre, una prova de restauració per trimestre i una recertificació d'accessos per semestre. Quatre rutines, totes al calendari. El que no està agendat, no passa.

Nota: els terminis d'aquest pla són orientatius i s'han d'ajustar a la realitat de cada organització. Les obligacions formals de política, control documentat i evidència auditable es tracten a 04-02, 04-03 i 06-04.


Errors Comuns i Consells

Errors comuns:

  • Comprar abans de tancar. Adquirir un WAF o un EDR mentre l'SSH és obert a Internet és invertir en la teulada amb els fonaments sense fer.
  • Confiar en el WAF per no corregir el codi. El WAF compra temps; no arregla una injecció i no veu un IDOR.
  • Anomenar còpia una cosa que no s'ha restaurat. La fallada més comuna no és l'absència de còpies, sinó la seva inutilitat en el moment de la veritat.
  • Guardar les còpies al mateix compte i amb les mateixes credencials que producció. El ransomware modern les busca i les esborra: això no és una còpia.
  • Registrar el cos complet de les peticions. Converteix el sistema de registres en un magatzem de tokens i dades personals, i multiplica l'impacte de qualsevol fuita.
  • Generar cent alertes que ningú no mira. Pitjor que no tenir alertes, perquè produeix sensació de cobertura.
  • Desplegar CSP directament en mode bloqueig. Trenca la SPA i acaba desactivada per sempre. Mode informe primer.
  • Deixar l'anàlisi del CI sense capacitat de blocar. Un informe que no atura res no canvia el comportament de ningú.
  • Xifrar i donar-ho per resolt. El xifratge en repòs no protegeix contra credencials robades ni contra una fallada d'autorització.
  • Escriure el pla sense propietari ni data. Una tasca sense nom i sense dia és una intenció.

Consells:

  • Comença sempre pel punt 3 de la taula: tancar el que ja és obert. Cost zero, impacte màxim, i a més redueix la feina futura.
  • Per a cada mesura que implantis, escriu com comprovaries que continua funcionant d'aquí a sis mesos. Les defenses es degraden en silenci.
  • Prefereix el que funciona per defecte davant del que exigeix disciplina diària. En una empresa de 38 persones, la disciplina s'esgota; la configuració roman.
  • Quan dubtis entre dues mesures, tria la que redueixi el dany d'una fallada davant de la que intenti evitar una fallada més. La primera funciona fins i tot quan t'equivoques.
  • Converteix cada incident i cada simulacre en una alerta nova. És el purple team de cost zero de 02-01.
  • Revisa el pla de fases amb la Marta cada 30 dies, marcant el que està fet i renegociant el que no. Un pla que no es revisa mor a la fase 1.

Exercicis

Exercici 1 — Assignar defenses a atacs

Per a cadascun d'aquests vuit atacs de les lliçons 02-02 i 02-03, indica: la mesura principal que el neutralitza, una segona capa independent de la primera, el tipus de control de cadascuna (preventiu, detectiu, correctiu o dissuasori) i la fase de la cadena en què actuen.

  1. Password spraying contra els comptes de l'equip.
  2. Injecció SQL al cercador de clients.
  3. Ransomware que xifra la infraestructura i esborra les còpies.
  4. Frau de canvi d'IBAN d'un proveïdor, enviat a la Sara.
  5. Exfiltració lenta de dades mitjançant un token robat.
  6. XSS emmagatzemat al camp «notes» d'una reserva.
  7. SSRF a través de l'URL del logotip d'una clínica.
  8. Acció de CI de tercers compromesa.

Exercici 2 — Corregir un registre perillós

Aquest és el codi de registre actual de l'API de Nimbus:

@app.post("/api/v1/sesion")
async def iniciar_sessio(peticio: Request):
    dades = await peticio.json()
    logger.info("Intent de login: %s", dades)          # (1)
    usuari = autenticar(dades["email"], dades["password"])
    if usuari is None:
        logger.warning("Login fallit per a %s amb clau %s",
                       dades["email"], dades["password"])   # (2)
        raise HTTPException(401, "Credencials incorrectes")
    token = emetre_token(usuari)
    logger.info("Login OK usuari=%s token=%s", usuari.email, token)   # (3)
    return {"token": token}

@app.get("/api/v1/reservas")
def llistar(usuari = Depends(usuari_actual)):
    files = consultar_reserves(usuari.tenant_id)
    logger.info("Reserves retornades: %s", [dict(f) for f in files])     # (4)
    return files

Es demana: (a) identifica els problemes de cada línia marcada i explica el risc concret de cadascun; (b) reescriu el codi amb un registre correcte; (c) indica quines tres alertes podries construir sobre el registre corregit i quin atac detectaria cadascuna; (d) explica per què el registre correcte conté menys dades personals que l'incorrecte i tot i així permet detectar més.

Exercici 3 — Defensar el pressupost davant de la direcció

La Marta et dona 6.000 € anuals i un dia a la setmana de temps de l'equip per a seguretat durant el primer semestre. Un comercial li ha ofert un paquet de 5.500 € que inclou un tallafoc de nova generació per a l'oficina de València i un antivirus per als 40 portàtils.

Es demana:

  1. Argumenta, amb dades de les lliçons del mòdul, per què aquesta compra no és la millor assignació del pressupost de Nimbus.
  2. Proposa la teva assignació alternativa dels 6.000 € i del dia setmanal, amb partides concretes.
  3. Identifica les tres mesures de cost zero que s'haurien de fer les dues primeres setmanes, i justifica'n l'ordre.
  4. Explica quin risc acceptes conscientment en no gastar en perímetre, i com ho comunicaries a la Marta per escrit.
  5. Defineix tres indicadors que presentaries als sis mesos per demostrar que la inversió ha servit.

Solucions

Solució 1

# Atac Mesura principal Segona capa Tipus Fase
1 Password spraying MFA resistent al phishing (preventiu) Alerta per fallades des d'un mateix origen contra diversos comptes (detectiu) Prev. + Det. Lliurament / Explotació
2 Injecció SQL Consultes parametritzades (preventiu) Rol nimbus_api sense DELETE ni DDL + RLS (preventiu, limita el dany); alerta per errors de sintaxi SQL (detectiu) Prev. + Prev./Det. Explotació
3 Ransomware Còpies immutables en compte separat (correctiu) Segmentació i MFA que dificulten el moviment lateral (preventiu); EDR (detectiu) Corr. + Prev./Det. Accions
4 Frau d'IBAN Verificació per canal alternatiu al telèfon de fitxa (preventiu) Doble aprovació per import (preventiu) + registre de la verificació (detectiu/probatori) Prev. + Prev. Lliurament
5 Exfiltració amb token robat Caducitat i àmbit mínim del token (preventiu) Alerta per volum d'exportació anòmal (detectiu) + límit de taxa per token (preventiu) Prev. + Det. Accions
6 XSS emmagatzemat Codificació a la sortida (preventiu) Content-Security-Policy amb report-uri (preventiu + detectiu) i galetes HttpOnly Prev. + Prev./Det. Explotació
7 SSRF Validació d'URL amb bloqueig de rangs interns i sense redireccions (preventiu) Proxy de sortida amb llista blanca (preventiu) + alerta per peticions sortints a rangs interns (detectiu) Prev. + Prev./Det. Explotació
8 Acció de CI compromesa Fixar accions per hash de commit (preventiu) CI sense accés a secrets de producció i amb permissions mínims (preventiu); alerta per connexió sortint a domini nou des de l'executor (detectiu) Prev. + Prev./Det. Lliurament

Patró que emergeix: en els vuit casos, la segona capa és de naturalesa diferent de la primera —si la primera és de codi, la segona és de configuració o de detecció—. Això és defensa en profunditat ben entesa: capes que no fallen per la mateixa causa. Dues capes que depenen que l'Iván recordi alguna cosa són, a la pràctica, una sola capa.

Solució 2

(a) Problemes de cada línia:

Línia Problema Risc concret
(1) Registra el cos complet de l'inici de sessió, inclosa la contrasenya en clar Totes les contrasenyes de l'equip i dels clients acaben en text pla al sistema de registres, que es copia, s'exporta i sovint s'envia a un tercer
(2) Registra explícitament la contrasenya fallida Una contrasenya fallida sol ser la contrasenya real mal teclejada, o la d'un altre servei. És un fitxer de credencials reutilitzables
(3) Registra el token emès Qualsevol amb accés als registres pot fer servir aquest token per suplantar la sessió, saltant-se l'MFA (pass-the-cookie de l'exercici de 02-03)
(4) Registra totes les reserves retornades Noms de pacients, dates i serveis: dades que revelen salut, en un registre d'aplicació sense control d'accés equivalent al de la base de dades

(b) Codi corregit:

@app.post("/api/v1/sesion")
async def iniciar_sessio(peticio: Request):
    dades = await peticio.json()
    email = dades.get("email", "")
    usuari = autenticar(email, dades.get("password", ""))

    if usuari is None:
        logger.warning("auth_fallada", extra={
            "email_hash": hashlib.sha256(email.lower().encode()).hexdigest()[:16],
            "ip": peticio.client.host,
            "agent": peticio.headers.get("user-agent", "")[:120],
        })
        raise HTTPException(401, "Credencials incorrectes")   # missatge uniforme

    token, jti = emetre_token(usuari)      # jti = identificador del token, no el token
    logger.info("auth_ok", extra={
        "usuari_id": usuari.id,
        "tenant_id": usuari.tenant_id,
        "jti": jti,
        "ip": peticio.client.host,
        "mfa": usuari.mfa_verificat,
    })
    return {"token": token}


@app.get("/api/v1/reservas")
def llistar(usuari = Depends(usuari_actual), pagina: int = 1):
    files = consultar_reserves(usuari.tenant_id, pagina)
    logger.info("acces_dades", extra={
        "usuari_id": usuari.id,
        "tenant_id": usuari.tenant_id,
        "accio": "llistar_reserves",
        "num_registres": len(files),        # el volum, no el contingut
        "pagina": pagina,
    })
    return files

Tres decisions que mereixen comentari:

  • email_hash en lloc del correu a les fallades. Permet correlacionar intents contra el mateix compte sense acumular un llistat de correus vàlids als registres. És minimització aplicada a la detecció.
  • jti en lloc del token. El jti és l'identificador del token: serveix per correlacionar la sessió i per revocar-la, però no permet suplantar ningú. Es detalla a 02-05.
  • Missatge d'error uniforme. «Credencials incorrectes» tant si el correu no existeix com si la contrasenya falla: evita l'enumeració d'usuaris de 02-02.

(c) Tres alertes construïbles:

Alerta Consulta conceptual Atac detectat
Spraying auth_fallada agrupat per ip, comptant email_hash diferents > 5 en 10 min Password spraying (02-02)
Exfiltració acces_dades agrupat per usuari_id, sumant num_registres > 5.000/hora Exportació massiva amb token robat
Sessió sense autenticació prèvia acces_dades amb un jti que no té un auth_ok corresponent en les últimes 24 h Pass-the-cookie / robatori de sessió

(d) Per què menys dades permeten detectar més. El registre incorrecte acumula contingut (contrasenyes, tokens, noms de pacients) que no serveix per detectar res: ningú no construeix una alerta sobre el nom d'un pacient. El registre correcte acumula metadades estructurades —qui, què, quant, des d'on— que són exactament allò sobre el qual es consulta i s'agrega. La conseqüència és doble i molt elegant: es detecta més i es redueix l'impacte d'una fuita dels mateixos registres, que deixen de ser un objectiu valuós. Registrar bé és simultàniament una millora de detecció i una mesura de protecció de dades.

Solució 3

1. Per què la compra proposada no és la millor assignació. Quatre arguments, recolzats en el mòdul:

  • No ataca el risc real de Nimbus. La superfície principal és l'API al núvol i les identitats, no la xarxa de l'oficina de València. Un NGFW a l'oficina no protegeix ni els 19 empleats en remot, ni el compte cloud (A-05), ni l'API, ni els buckets.
  • Un antivirus de signatures no cobreix el que passa. Repassa la taula del mite 2 a 02-01: no atura el phishing de credencials, ni l'IDOR, ni el bucket mal configurat, ni la credencial de la consultora sense MFA, ni el frau del CEO.
  • Consumeix el 92 % del pressupost deixant sense finançar les mesures 1 a 8 de la taula de l'apartat 7, que tenen impacte molt alt i cost baix o nul.
  • Nimbus té avui problemes coneguts i sense resoldre —SSH obert, Redis sense autenticació, token permanent, còpies sense provar, zero detecció— que cap de les dues peces del paquet no corregeix. Gastar en el que falta abans de tancar el que és obert és l'error de l'apartat d'errors comuns.

2. Assignació alternativa:

Partida Import Justificació
EDR gestionat per a 40 equips 2.400 € Única mesura de la taula amb cost real; cobreix endpoint i aporta detecció i capacitat d'aïllar
Plataforma de simulacres i microformació 700 € Ataca el vector dominant (02-03); mesura la taxa de report
Emmagatzematge de còpies immutables en compte separat 600 € És la mesura #2 de la taula; el cost és d'emmagatzematge
Gestor de secrets i de contrasenyes per a l'equip 500 € Resol el token permanent i la reutilització de contrasenyes
Registre centralitzat gestionat (nivell bàsic) 900 € Habilita la funció Detectar, la més feble segons el CSF
Reserva per a l'imprevist 900 € Una troballa de la primera anàlisi sol requerir despesa no planificada
Total 6.000 €

El dia setmanal es reparteix així: fase 1 completa les quatre primeres setmanes (tot cost zero), després alternant implantació (registre, alertes, CI) i rutina (revisar alertes, aplicar pedaços, revisió trimestral del que sobra).

3. Les tres mesures de cost zero de les dues primeres setmanes, per ordre:

  1. Tancar la superfície exposada (SSH 0.0.0.0/0, Redis sense autenticació, http.server, node_exporter, snmpd). Va primera perquè és explotable ara mateix per un bot sense que ningú decideixi atacar Nimbus: és risc actiu, no potencial.
  2. MFA a tots els comptes administratius, inclosa la consultora. Va segona perquè neutralitza de cop spraying, stuffing i la major part del phishing de credencials, que és el vector dominant.
  3. Rotar el token permanent i posar caducitat a tots els tokens. Va tercera perquè tanca la baula 2 de l'atac encadenat de 02-02, i perquè un token filtrat converteix l'MFA en irrellevant.

4. El risc que s'accepta i com comunicar-lo. En no invertir en perímetre d'oficina s'accepta un risc residual sobre la xarxa local de València: un dispositiu compromès a l'oficina tindria més llibertat de moviment de la desitjable. Es mitiga parcialment i sense cost amb segmentació al router existent (convidats aïllats, zona de dades tancada) i amb l'EDR als portàtils.

La comunicació a la Marta ha de ser escrita, explícita i datada:

«Risc acceptat (data, revisió d'aquí a 6 mesos): no es reforça el perímetre de l'oficina de València aquest semestre. Motiu: el 100 % de les dades de clients és al núvol i la meitat de la plantilla treballa fora de l'oficina, per la qual cosa el perímetre físic no és el vector principal. Mitigació aplicada: segmentació amb l'equipament actual, EDR a tots els portàtils i xifratge de disc. Es revisarà si canvia l'arquitectura o si creix la plantilla a l'oficina. Aprovat per: Marta Solves.»

Això no és burocràcia: és la diferència entre acceptar un risc (decisió conscient, documentada, revisable) i ignorar-lo (que és el que es descobreix després d'un incident). La formalització d'aquest procés s'estudia a 04-01.

5. Tres indicadors als sis mesos:

Indicador Valor inicial Objectiu a 6 mesos Què demostra
Comptes administratius sense MFA ~8 0 Tancament del vector dominant
Temps de recuperació verificat (restauració completa cronometrada) Desconegut Conegut i < 4 h Capacitat real de sobreviure a un ransomware
Taxa de report de phishing i temps fins al primer avís 11 % / 47 min > 35 % / < 15 min Que la capa humana funciona com a detecció

Un quart indicador molt visual per a direcció: nombre de serveis exposats a Internet, que hauria de baixar de sis a un el primer mes. És el que millor comunica el progrés a algú no tècnic.


Conclusió

Tens el catàleg de la resposta. Has après primer el mètode per triar: quin atac concret neutralitza cada mesura, en quina fase de la cadena actua, de quin tipus de control es tracta —preventiu, detectiu, correctiu o dissuasori— i si sobreviurà a un mal dia en una empresa de 38 persones. En perímetre i xarxa has vist els tipus de tallafocs i la precisió que evita l'error més car: un WAF compra temps i dona visibilitat, però no corregeix codi ni veu un IDOR; has entès la segmentació com la mesura més rendible contra el moviment lateral, la doble naturalesa de la defensa anti-DDoS —volumètrica que es contracta, aplicativa que es programa— i l'evolució de l'accés remot des de la VPN de tot o res cap a l'accés just-in-time amb caducitat. En endpoint has distingit antivirus d'EDR pel que de debò els separa —comportament, telemetria i capacitat d'aïllar— i has col·locat l'aplicació de pedaços al seu lloc: la mesura menys vistosa i una de les que més incidents greus hauria evitat.

En protecció de la dada t'endús tres idees que sostenen tota la resta: que el xifratge en repòs no protegeix contra credencials vàlides i que la clau és l'actiu real; que la regla 3-2-1 ampliada amb immutabilitat i prova de restauració és l'única defensa que retorna el negoci quan tot ha fallat, perquè el ransomware modern busca i esborra les còpies; i que la minimització és la mesura amb millor relació cost/benefici, perquè el que no existeix no es filtra. En aplicació i cicle de desenvolupament has recorregut la revisió de codi amb les seves quatre preguntes, la gestió de secrets amb la seva regla de rotar primer i investigar després, les capçaleres HTTP amb una CSP construïda des de default-src 'none', el límit de taxa com a lleva-rendibilitat universal, i un flux de CI real les set decisions del qual —permisos mínims, accions fixades per hash, historial complet, anàlisi que bloca, filtratge per severitat, SBOM i conservació d'informes— converteixen un informe decoratiu en un control efectiu.

En registre i observabilitat has après què registrar, amb els seus cinc camps imprescindibles, i sobretot què no registrar mai; i has comprovat a l'exercici la conclusió més contraintuïtiva de la lliçó: el registre correcte conté menys dades personals que l'incorrecte i permet detectar molt més, perquè la detecció es construeix sobre metadades estructurades, no sobre contingut. I has acabat amb el més útil per a una pime: les dotze mesures de més retorn —vuit d'elles amb cost econòmic nul o baix, cap d'elles un producte perimetral— i un pla de 30, 90 i 180 dies amb propietari i verificació per a cada tasca, sostingut per quatre rutines trimestrals al calendari.

D'aquestes dotze mesures, la número u era l'MFA, i diverses de les restants giren al voltant del mateix: qui ets i què pots fer. No és casualitat. Quan el perímetre es difumina —núvol, remot, tercers, mòbils— la identitat es converteix en el nou perímetre. A la lliçó següent, Identitat, Autenticació i Control d'Accés (02-05), l'estudiarem a fons: el cicle de vida d'una identitat i els comptes orfes, què diuen avui les guies sobre contrasenyes, les formes d'MFA ordenades per resistència al phishing, SSO i els protocols d'identitat amb la diferència exacta entre OAuth 2.0 i OpenID Connect, sessions i JWT amb la seva validació correcta davant de la ingènua, els models d'autorització DAC, MAC, RBAC, ABAC i ReBAC amb el disseny concret de Nimbus, i els comptes privilegiats, l'accés just-in-time i la recertificació.

Curs de Fonaments de Seguretat Informàtica

Mòdul 1: Introducció a la Seguretat Informàtica

Mòdul 2: Ciberseguretat

Mòdul 3: Criptografia

Mòdul 4: Gestió de Riscos i Mesures de Protecció

Mòdul 5: Eines i Tècniques de Seguretat

Mòdul 6: Bones Pràctiques i Normatives

Mòdul 7: Projecte Final

© Copyright 2026. Tots els drets reservats