Introducció
Dins del marc estratègic d’arquitectura del CTTI, en el qual s’aposta per aplicacions SaaS, s’ha pres la decisió d’implantar, com a eina de repositori d’artefactes, JFrog Artifactory.
Aquesta decisió s’ha pres després de realitzar prèviament un benchmark amb altres eines del mercat, quedant JFrog Artifactory com l’eina que millor s’ajusta a les necessitats del CTTI.
La implantació d’aquesta eina substituirà les versions actuals de:
- Nexus Artifactory
- Harbor
- Github Packages
- Github Artifactory
JFrog Artifactory és una solució Enterprise-grade per a la gestió d’artefactes i dependències en entorns DevOps. Es posiciona com un repositori universal, capaç de gestionar qualsevol tipus de binari, des de llibreries Java fins a imatges Docker, i s’integra de manera nativa amb pipelines de CI/CD.
Arquitectura i Components Clau
- Repositoris locals, remots i virtuals:
- Locals: Emmagatzemen artefactes interns generats pels equips.
- Remots: Actuen com a proxy per a repositoris externs (ex. Maven Central, npm registry).
- Virtuals: Combinen diversos repositoris sota una única URL.
- Emmagatzematge de binaris: Sistema de fitxers o emmagatzematge al núvol (AWS S3, Azure Blob, GCP Storage).
- Integració amb CI/CD: APIs REST, CLI i plugins per a Jenkins, GitLab CI, Azure DevOps.
- Seguretat i autenticació: LDAP, SAML, OAuth, tokens d’accés.
- Alta disponibilitat (HA): Clúster amb balanç de càrrega i replicació.
Característiques Principals
- Repositori universal per a més de 30 tipus de paquets.
- Gestió avançada de dependències i metadades.
- Integració nativa amb eines CI/CD.
- Alta disponibilitat i escalabilitat empresarial.
- Seguretat granular i auditoria.
- Memoría Cau i proxy remot per a optimització.
- Suport per a Docker i Kubernetes.
Avantatges de JFrog Artifactory
-
Centralització d’artefactes : Un únic repositori per a tots els binaris i dependències, evitant duplicats i millorant la traçabilitat.
-
Consistència entre entorns : Garanteix que desenvolupament, QA i producció utilitzin les mateixes versions, reduint errors per diferències.
-
Optimització del rendiment : El sistema emmagatzema a la memòria cau les dependències externes i actua com a proxy, accelerant compilacions i evitant fallades per caigudes de repositoris públics.
-
Seguretat i compliment : Control granular d’accessos, autenticació corporativa (LDAP, SAML) i auditoria per complir normatives i protegir artefactes.
-
Escalabilitat empresarial : Arquitectura preparada per a clúster, balanç de càrrega i emmagatzematge distribuït, suportant grans volums i equips globals.
-
Integració amb ecosistema DevOps : Compatible amb Jenkins, Github Actions, GitLab CI, Azure DevOps, Docker, Kubernetes i Helm, facilitant l’automatització en pipelines CI/CD.
Tipus d’Artefactes Suportats
| Tipus de Paquet | Descripció |
|---|---|
| Maven | Llibreries Java |
| Gradle | Build scripts Java |
| npm | Paquets Node.js |
| NuGet | Paquets .NET |
| Docker | Imatges de contenidor |
| PyPI | Paquets Python |
| Helm | Charts per a Kubernetes |
Enllaç a la web de JFROG Artifactory.
Model organitzatiu i accés
Model Organitzatiu
Després de realitzar una anàlisi sobre el model organitzatiu i l’ evolució d’ aquest en base al model CTTI, s’ acaba implantant el model organitzatiu descrit a continuació.
Tal com s’ indica anteriorment, existiran els següents tipus de repositoris:
- Locals: Emmagatzemen artefactes interns generats pels equips.
- Remots: Actuen com a proxy per a repositoris externs (ex. Maven Central, npm registry).
- Virtuals: Combinen diversos repositoris sota una única URL.
Per als REPOSITORIS LOCALS, se’n crearan tants com :
-
Tecnologies suportades
- Docker
- Gradle
- Maven
- NPM
- Nuget
- PyPI
- Raw (Generic)
-
Tipus d’instància Preproductiu / Productiu. Es realitzaran organitzacions d’artefactes depenent del l’organització :
- cicdpre : per a proves apuntant a l’organització Github de ctti-lab. S’afegeix el prefix “cicdpre”
- producció : per emmagatzemar els artefactes per a la instància productiva ctti-dev. No s’hi afegeix cap prefix.
-
Entorn de l’ artefacte
- dev : Desenvolupament. S’afegeix el sufix “_dev”
- pre : Preproducció. S’afegeix el sufix “_pre”
- pro : Producció. No s’afegeix cap sufix.
-
Àmbit de l’ artefacte
- private : Per a artefactes que només tindran visibilitat a les per les pròpies aplicacions/lots de manteniment que els creen.
- public : Per a artefactes amb visibilitat pública entre les diferents aplicacions i lots, per exemple, artefactes de FW Canigó.
- legacy : Per als artefactes legacy migrats dels antics repositoris d’artefactes.
amb la següent nomenclatura : <tipusEntorn>_<tecnologia>_<àmbit>_<entornArtefacte>
Exemples :
- docker-legacy
- docker-legacy-pre
- npm-public-pre
Per als REPOSITORIS REMOTS, es crearan tants com tecnologies suportades i dins de cada tecnologia, els repositoris centrals que existeixin. No existirà una nomenclatura fixa ja que es nomenaran com el repositori central.
Exemples :
- maven-central
- maven.atlassian.com
- nuget-central
Per als REPOSITORIS VIRTUALS, se’n crearan tants com :
-
Tecnologies suportades*
- Docker
- Gradle
- Maven
- NPM
- Nuget
- PyPI
- Raw (Generic)
-
Tipus d’instància Preproductiu / Productiu. Es realitzaran organitzacions d’artefactes depenent del l’organització :
- cicdpre : per a proves apuntant a l’organització Github de ctti-lab. S’afegeix el prefix “cicdpre”
- producció : per emmagatzemar els artefactes per a la instància productiva ctti-dev. No s’hi afegeix cap prefix.
amb la següent nomenclatura : <tipusEntorn>_“repo_apps”_<tecnología>
Exemples:
- repo-apps-docker
- repo-apps-nuget
- repo-apps-python
En el següent diagrama es pot observar el total de repositoris a crear per a una tecnologia Maven
- 18 Repositoris locals
- n Repositoris remots (depenent dels que disposi la tecnologia)
- 2 Repositoris Virtuals que engloben el Remot i els locals depenent de la instància
- 1 para PRE
- 1 para PRO
Accés JFrog Artifactory
L’accés a JFrog Artifactory es realitzarà mitjançant Single Sign-On (SSO) utilitzant el protocol SAML 2.0, funcionalitat suportada per la plataforma JFrog.
Avantatges del SSO amb SAML
- Seguretat reforçada: MFA, polítiques corporatives, autenticació centralitzada.
- Experiència d’usuari fluida: Un sol inici de sessió per a totes les aplicacions.
- Gestió simplificada: Alta/baixa d’usuaris des de l’IdP.
- Compliment normatiu: Auditoria centralitzada i traçabilitat.
Per a aquest objectiu, i donat el model actual de gestió d’usuaris de CTTI, s’han creat dues modalitats d’accés, depenent de l’IdP al qual accedeixen:

- sicplus : Per a accessos d’usuaris que utilitzen la plataforma SIC+
- gicar : Per a accessos d’usuaris que utilitzen la plataforma SIC 3.0
D’aquesta manera, serà l’usuari qui decidirà sobre quin IdP es validarà en funció de la seva plataforma CI/CD. (Situació temporal fins que SIC3.0 sigui descontinuat)

Identificació de vulnerabilitats
Uno de los principales caracteristicas de JFrog Artifactory es su módulo Xray encargado de la detección de vulnerabilidades de los distintos artefactos. JFrog Xray és una eina de Software Composition Analysis (SCA) que analitza artefactes, codi font i contenidors per detectar:
- Vulnerabilitats de seguretat
- Paquets maliciosos
- Riscos de llicències
- Problemes operatius (components obsolets)
S’integra nativament amb JFrog Artifactory, permetent escaneig continu de binaris i metadades en tot el cicle de vida del programari (SDLC).
Arquitectura i Funcionament
- Integració nativa amb Artifactory: Escaneig automàtic de repositoris, builds i release bundles.
- Escaneig profund i recursiu: Analitza totes les capes d’artefactes (ex. imatges Docker, fitxers JAR).
- Polítiques i Watches: Defineix regles per bloquejar artefactes insegurs abans d’arribar a producció.
- API REST i CLI: Automatització completa per pipelines CI/CD.
- Base de dades de vulnerabilitats: Enriquida amb CVEs i dades del equip de recerca de JFrog.
Característiques Principals
- Shift-Left Security: Escaneig en IDEs i CLI abans de fer commit.
- Integració CI/CD: Escaneig en pipelines per builds i release bundles.
- Detecció de paquets maliciosos: Inclou models ML i repositoris OSS.
- Impact Analysis: Prioritza vulnerabilitats segons risc real.
- Compatibilitat àmplia: Suporta Maven, npm, NuGet, PyPI, Docker, Helm, Go, etc.
- Alertes contínues: Monitoratge de noves vulnerabilitats en artefactes ja desplegats.
Avantatges
- Seguretat proactiva: Detecta vulnerabilitats abans d’arribar a producció.
- Compliment normatiu: Control de llicències i auditoria contínua.
- Protecció de la cadena de subministrament: Evita atacs per paquets maliciosos.
- Automatització total: Integració amb pipelines i eines DevOps.
El funcionament / configuració es basa en la creació de Polítiques i Watches a JFrog Artifactory:
- Política: Què fer (regles).
- Watch: On aplicar-ho (repositoris, builds, bundles).
POLÍTIQUES
Les polítiques a Xray són conjunts de regles que defineixen com gestionar vulnerabilitats, llicències i riscos operatius en artefactes i dependències.
S’apliquen per automatitzar accions preventives en el cicle de vida del programari.
Els tipus principals de polítiques són els següents:
- Security Policy: Basades en vulnerabilitats (CVEs).
- License Policy: Basades en tipus de llicències (GPL, MIT, etc.).
- Operational Risk Policy: Basades en riscos com components obsolets.
Creacio Policies

WATCHES
Els watches són entitats que defineixen l’abast de l’escaneig i apliquen polítiques, permetent monitoritzar:
- Repositoris (ex. Maven, npm, Docker).
- Builds.
- Release Bundles.
- Projectes.
Creacio Watches

El flux és el següent:
- Crees una política (ex. bloquejar vulnerabilitats crítiques).
- Crees un watch que inclou repositoris i hi associes la política.
- Xray escaneja i aplica la política sobre els recursos del watch.
Actualment a CTTI tenim creades 2 polítiques:
- WhitelistLicensesPolicy: per detectar llicències no aprovades
- BlockCriticalCVEsPolicy: per detectar vulnerabilitats
i sobre aquestes polítiques, disposem de 3 watches:
- SecurityPolicyWatch: per escanejar els artefactes amb la política de llicències
- LicensePolicyWatch: per escanejar els artefactes amb la política de vulnerabilitats
- AllPoliciesWatch: watch que engloba els dos anteriors
Per a més informació sobre la creació de Polítiques i Watches, reviseu documentació interna.
Informes
JFROG Artifactory també permet la creació d’informes o reportes que són una peça clau per a les àrees d’auditoria de seguretat.
Es poden crear des de l’apartat Reports de JFROG, permetent les següents possibilitats.

Un cop seleccionat el tipus d’informe, es tria un Scope on aplicar-lo i una configuració bàsica de filtres, polítiques de compartició i planificació de creació d’informes, i l’informe quedarà configurat.
Actualment es disposa d’un informe per vulnerabilitats que s’executa setmanalment, generando informes y envíando reporte vía mail a los buzones o personas configuradas.
