-
Notifications
You must be signed in to change notification settings - Fork 11
/
README.compile
147 lines (101 loc) · 7.86 KB
/
README.compile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
In questo file sono documentate le modalità di ricompilazione del software GovWay.
1. Scaricare il software
Scaricare i sorgenti del software, disponibili all'indirizzo:
https://github.com/link-it/govway.git
2. Istruzioni per la compilazione
2.1 Posizionarsi nella radice della directory dei sorgenti scaricati
Esempio:
cd govway
Per compilare i sorgenti di una release posizionarsi sul tag della versione:
git checkout <versione>
2.2 Compilare il Software
Usare il comando:
mvn compile
Tutti i jar compilati saranno disponibili al termine della compilazione nella sottodirectory dist della directory di lavoro
2.3 Generazione del pacchetto di installazione
L'installer di ogni release è ottenibile scaricando l'archivio alla url:
- https://github.com/link-it/GovWay/releases/download/<versione>/govway-installer-<versione>.tgz
- (es. https://github.com/link-it/GovWay/releases/download/3.0.0/govway-installer-3.0.0.tgz)
Per generare l'installer a partire dai sorgenti utilizzare il comando:
mvn package
2.3.1 Generazione della documentazione in pdf
La documentazione inserita all'interno dell'installer viene presa dalla directory 'resources/doc/pdf/'.
Per generarla a partire dai sorgenti (resources/doc/src/) utilizzare il comando:
mvn package -Dpackage.doc.generate=true
NOTA: la generazione della documentazione in pdf richiede sphinx e latex.
2.4 Verifica tramite OWASP Dependency-Check
Usare il comando:
mvn verify
Per evitare la compilazione e il packaging, descritte nelle precedenti sezioni, utilizzare il comando:
mvn verify -Dcompile=none -Dtestsuite=none -Dpackage=none
Verranno identificate tutte le dipendenze relative a jar 3parti e saranno verificate se esistono vulnerabilità conosciute.
Un report viene prodotto nella directory 'dependency-check-result'
2.5 Analisi statica dei sorgenti tramite SpotBugs
Usare il comando:
mvn verify -Dspotbugs=verify -Dspotbugs.home=PATH_ASSOLUTO_TOOLS_SPOTBUGS
Per evitare la compilazione, il packaging e la verifica owasp descritte nelle precedenti sezioni, utilizzare il comando:
mvn verify -Dspotbugs=verify -Dspotbugs.home=PATH_ASSOLUTO_TOOLS_SPOTBUGS -Dcompile=none -Dtestsuite=none -Dpackage=none -Dowasp=none
Verranno analizzati i sorgenti di tutti gli archivi jar prodotti con la compilazione descritta al punto 2.2.
Un report viene prodotto nella directory 'spotbugs-reports'
Gli identificativi dei package analizzati sono classificati come segue:
- utilità di base: utils-commons, utils-generic-project
- runtime di GovWay: runtime-message, runtime-core, runtime-protocol, runtime-monitor, runtime-security, runtime-pdd;
- profili di interoperabiltà: protocol-as4, protocol-modipa, protocol-sdi, protocol-spcoop, protocol-trasparente;
- console web: web-lib-audit, web-lib-mvc, web-lib-queue, web-lib-users, web-loader, web-govwayConsole, web-govwayMonitor;
- api di configurazione e monitoraggio: rs-config, rs-monitor;
- batch: batch-statistiche, batch-runtime-repository;
- cli: cli-config-loader, cli-govway-vault.
Per evitare la verifica di alcuni package è possibile utilizzare la proprietà 'spotbugs.skipPackages'.
L'esempio seguente attiva l'analisi dei sorgenti solamente per le utilità di base e i componenti di runtime di GovWay:
mvn verify -Dspotbugs=verify
-Dcompile=none -Dtestsuite=none -Dpackage=none -Dowasp=none
-Dspotbugs.home=/tmp/spotbugs-4.8.6
-Dspotbugs.skipPackages=protocol-as4,protocol-modipa,protocol-sdi,protocol-spcoop,protocol-trasparente,web-lib-audit,web-lib-mvc,web-lib-queue,web-lib-users,web-loader,web-govwayConsole,web-govwayMonitor,rs-config,rs-monitor,batch-statistiche,batch-runtime-repository,cli-config-loader,cli-govway-vault
2.6 Analisi statica dei sorgenti tramite SonarQube
Usare il comando:
mvn verify -Dsonarqube=verify -Dsonar.token=TOKEN -Dsonar.host.url=http://localhost:9000
Per evitare la compilazione, il packaging e la verifica owasp descritte nelle precedenti sezioni, utilizzare il comando:
mvn verify -Dsonarqube=verify -Dsonar.token=TOKEN -Dsonar.host.url=http://localhost:9000 -Dcompile=none -Dtestsuite=none -Dpackage=none -Dowasp=none
Verranno analizzati i sorgenti di tutti gli archivi jar prodotti con la compilazione descritta al punto 2.2.
Il risultato dell'analisi viene pubblicato su SonarQube sul progetto 'govway', consultabile all'indirizzo indicato nella proprietà 'sonar.host.url'.
Gli identificativi dei package analizzati sono classificati come segue:
- utilità di base: utils-commons, utils-generic-project
- runtime di GovWay: runtime-message, runtime-core, runtime-protocol, runtime-monitor, runtime-security, runtime-pdd;
- profili di interoperabiltà: protocol-as4, protocol-modipa, protocol-sdi, protocol-spcoop, protocol-trasparente;
- console web: web-lib-audit, web-lib-mvc, web-lib-queue, web-lib-users, web-loader, web-govwayConsole, web-govwayMonitor;
- api di configurazione e monitoraggio: rs-config, rs-monitor;
- batch: batch-statistiche, batch-runtime-repository;
- cli: cli-config-loader, cli-govway-vault.
Per effettuare l'analisi di un solo package è possibile utilizzare la proprietà 'sonar.govway.project'.
L'esempio seguente attiva l'analisi dei sorgenti solamente per il profilo di interoperabilità 'ModI':
mvn verify -Dsonarqube=verify
-Dcompile=none -Dtestsuite=none -Dpackage=none -Dowasp=none
-Dsonar.token=TOKEN -Dsonar.host.url=http://localhost:9000
-Dsonar.govway.project=protocol-modipa
NOTA: l'analisi dei js richiede una corretta installazione di 'nodejs.org' versione 16 o 18.
2.7 Analisi dinamica tramite OWASP Zed Attack Proxy (ZAP)
Prequisito:
- govway sia attivo
- in fase di installazione siano stati scelti i servizi di health check per API REST e SOAP e le API di configurazione e monitoraggio.
Usare il comando:
mvn verify -Dzaproxy=verify -Dzaproxy.home=PATH_ASSOLUTO_TOOLS_ZAP -Dgovway.endpoint=http://127.0.0.1:8080 -Dgovway.ente=<SoggettoIndicatoInstaller>
Per evitare la compilazione, il packaging e la verifica owasp descritte nelle precedenti sezioni, utilizzare il comando:
mvn verify -Dzaproxy=verify -Dzaproxy.home=PATH_ASSOLUTO_TOOLS_ZAP -Dgovway.endpoint=http://127.0.0.1:8080 -Dgovway.ente=<SoggettoIndicatoInstaller> -Dcompile=none -Dtestsuite=none -Dpackage=none -Dowasp=none
Un report viene prodotto nella directory 'zaproxy-reports'
Gli identificativi dei componenti verificati sono i seguenti:
- api-rest-status: vengono verificate le vulnerabilità tipiche per API di tipo REST utilizzando il servizio di health check REST di govway
- api-soap-status: vengono verificate le vulnerabilità tipiche per API di tipo SOAP utilizzando il servizio di health check SOAP di govway
- api-config: viene verificata l'API di GovWay per la configurazione
- api-monitor: viene verificata l'API di GoWay per il monitoraggio
Per evitare la verifica di alcuni componenti è possibile utilizzare la proprietà 'zaproxy.skipTests'.
L'esempio seguente attiva l'analisi solamente del componente runtime di GovWay per API REST e SOAP, escludendo gli altri test:
mvn verify -Dzaproxy=verify
-Dcompile=none -Dtestsuite=none -Dpackage=none -Dowasp=none
-Dzaproxy.home=/tmp/ZAP_2.12.0
-Dgovway.endpoint=http://127.0.0.1:8080 -Dgovway.ente=Ente
-Dzaproxy.skipTests=api-config,api-monitor
2.8 Librerie 3parti
I precedenti comandi utilizzano tutti la fase maven 'initialize' per salvare le librerie 3parti nella directory lib.
Tali librerie vengono poi utilizzati dagli script ant che implementano la compilazione ed il packaging dei tools.
Per re-inizializzare solamente le librerie è possibile utilizzare il comando:
mvn initialize