Gentoo Archives: gentoo-commits

From: "Davide Cendron (scen)" <scen@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in xml/htdocs/proj/it/hardened: hardenedfaq.xml
Date: Wed, 26 Jan 2011 22:33:25
Message-Id: 20110126223312.4B14120054@flycatcher.gentoo.org
1 scen 11/01/26 22:33:12
2
3 Modified: hardenedfaq.xml
4 Log:
5 Version 3.2, revision 1.25 of EN CVS
6
7 Revision Changes Path
8 1.7 xml/htdocs/proj/it/hardened/hardenedfaq.xml
9
10 file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/it/hardened/hardenedfaq.xml?rev=1.7&view=markup
11 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/it/hardened/hardenedfaq.xml?rev=1.7&content-type=text/plain
12 diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/it/hardened/hardenedfaq.xml?r1=1.6&r2=1.7
13
14 Index: hardenedfaq.xml
15 ===================================================================
16 RCS file: /var/cvsroot/gentoo/xml/htdocs/proj/it/hardened/hardenedfaq.xml,v
17 retrieving revision 1.6
18 retrieving revision 1.7
19 diff -u -r1.6 -r1.7
20 --- hardenedfaq.xml 25 Aug 2010 21:21:21 -0000 1.6
21 +++ hardenedfaq.xml 26 Jan 2011 22:33:12 -0000 1.7
22 @@ -1,6 +1,6 @@
23 <?xml version="1.0" encoding="UTF-8"?>
24 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
25 -<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/it/hardened/hardenedfaq.xml,v 1.6 2010/08/25 21:21:21 scen Exp $ -->
26 +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/it/hardened/hardenedfaq.xml,v 1.7 2011/01/26 22:33:12 scen Exp $ -->
27
28 <guide link="/proj/it/hardened/hardenedfaq.xml" lang="it">
29 <title>Domande frequenti su Gentoo Hardened</title>
30 @@ -17,6 +17,15 @@
31 <author title="Collaborazione">
32 <mail link="pageexec@××××××××.hu">Il Team PaX</mail>
33 </author>
34 +<author title="Contributi">
35 + <mail link="klondike@×××××××××.es">klondike</mail>
36 +</author>
37 +<author title="Contributi">
38 + <mail link="zorry@g.o">Magnus Granberg</mail>
39 +</author>
40 +<author title="Contributi">
41 + <mail link="blueness@g.o">Anthony G. Basile</mail>
42 +</author>
43 <author title="Traduzione">
44 <mail link="nsr2@×××××××.it">Paolo Palana</mail>
45 </author>
46 @@ -26,137 +35,28 @@
47 list gentoo-hardened.
48 </abstract>
49
50 -<version>1.9</version>
51 -<date>2006-02-18</date>
52 +<version>3.2</version>
53 +<date>2011-01-19</date>
54
55 -<chapter>
56 +<faqindex>
57 <title>Domande</title>
58 <section>
59 -<title>Generali</title>
60 -<body>
61 -
62 -<ul>
63 - <li><uri link="#toolchain">Cos'è esattamentte una "toolchain"?</uri></li>
64 - <li>
65 - <uri link="#whichisbetter">Cosa dovrei usare: grsecurity, RSBAC o
66 - SELinux?</uri>
67 - </li>
68 - <li>
69 - <uri link="#aclall">È possibile usare grsecurity, RSBAC, SELinux e PaX tutti
70 - contemporaneamente?</uri>
71 - </li>
72 - <li>
73 - <uri link="#hardenedcflags">È necessario passare alcune flag a
74 - LDFLAGS/CFLAGS per abilitare la compilazione PIE/SSP?</uri>
75 - </li>
76 - <li>
77 - <uri link="#hardenedcflagsoff">Come posso disabilitare la compilazione
78 - PIE/SSP?</uri>
79 - </li>
80 - <li>
81 - <uri link="#fsexec">La compilazione del mio kernel fallisce con
82 - l'errore "error: structure has no member named `curr_ip'", come posso
83 - correggere ciò?</uri>
84 - </li>
85 - <li>
86 - <uri link="#hardenedproject">Ho appena scoperto il progetto hardened, devo
87 - installare tutto quello che trovo sulla pagina del progetto prima di
88 - installare Hardened Gentoo?</uri>
89 - </li>
90 - <li>
91 - <uri link="#Othreessp">Perchè i miei programmi non vanno quando uso
92 - CFLAGS="-O3" e hardened gcc?</uri>
93 - </li>
94 - <li>
95 - <uri link="#cascadebootstrap">Che cosa è accaduto a
96 - bootstrap-cascade.sh?</uri>
97 - </li>
98 - <li>
99 - <uri link="#hardenedprofile">Come posso passare al profilo hardened?</uri>
100 - </li>
101 - <li>
102 - <uri link="#hardeneddebug">Come faccio il debug con gdb?</uri>
103 - </li>
104 -</ul>
105 -
106 -</body>
107 -</section>
108 -<section>
109 -<title>PaX</title>
110 -<body>
111 -
112 -<ul>
113 - <li><uri link="#paxinformation">Qual'è l'homepage di PaX?</uri></li>
114 - <li>
115 - <uri link="#paxgentoodoc">Quale documentazione Gentoo esiste riguardo
116 - PaX?</uri>
117 - </li>
118 - <li>
119 - <uri link="#paxnoelf">Continuo ad ottenere il messaggio: "error while
120 - loading shared libraries: cannot make segment writable for relocation:
121 - Permission denied." Che cosa significa?</uri>
122 - </li>
123 - <li>
124 - <uri link="#paxjava">Da quando ho iniziato ad usare PaX Java non funziona,
125 - perchè?</uri>
126 - </li>
127 -</ul>
128 -
129 -</body>
130 -</section>
131 -<section>
132 -<title>grsecurity</title>
133 -<body>
134 -
135 -<ul>
136 - <li>
137 - <uri link="#grsecinformation">Qual'è l'home page di grsecurity?</uri>
138 - </li>
139 - <li>
140 - <uri link="#grsecgentoodoc">Quale documentazione Gentoo esiste riguardo
141 - grsecurity?</uri>
142 - </li>
143 - <li>
144 - <uri link="#grsec2681">Posso usare grsecurity con i kernel 2.6.8, 2.6.8.1,
145 - or 2.6.9?</uri>
146 - </li>
147 -</ul>
148 -
149 -</body>
150 -</section>
151 -<section>
152 -<title>RSBAC</title>
153 -<body>
154 -
155 -<ul>
156 - <li>
157 - <uri link="#rsbacinformation">Qual'è l'home page di RSBAC?</uri>
158 - </li>
159 - <li>
160 - <uri link="#rsbacgentoodoc">Quale documentazione Gentoo esiste riguardo
161 - RSBAC?</uri>
162 - </li>
163 - <li>
164 - <uri link="#rsbacinitrd">Come usare un ramdisk iniziale con un kernel
165 - abilitato per RSBAC?</uri>
166 - </li>
167 -</ul>
168 +<title>Introduzione</title>
169
170 -</body>
171 -</section>
172 -<section>
173 -<title>SELinux</title>
174 <body>
175
176 -<ul>
177 - <li>
178 - <uri link="#selinuxfaq">Dove posso trovare le FAQ relative a SELinux?</uri>
179 - </li>
180 -</ul>
181 +<p>
182 +La seguente è un insieme di domande raccolte dal canale IRC #gentoo-hardened e
183 +dalla mailing list gentoo-hardened. Come tale, è orientata a rispondere in modo
184 +celoce e conciso piuttosto che fornire una panoramica globale sulle tecnologie
185 +dietro a Gentoo Hardened. È consigliabile leggere il resto della documentazione
186 +presente sulla pagina del Progetto Gentoo Hardened e quella nelle homepage dei
187 +progetti per ottenere informazioni più approfondite.
188 +</p>
189
190 </body>
191 </section>
192 -</chapter>
193 +</faqindex>
194
195 <chapter>
196 <title>Domande Generali</title>
197 @@ -174,54 +74,61 @@
198 </body>
199 </section>
200 <section id="whichisbetter">
201 -<title>Cosa dovrei usare: grsecurity, RSBAC o SELinux?</title>
202 +<title>Cosa dovrei usare: RSBAC di grsecurity o SELinux?</title>
203 <body>
204
205 <p>
206 -La risposta a questa domanda è altamente soggettiva, così il progetto Gentoo
207 -hardened tenta semplicemente di presentare ogni tecnologia e lasciare la scelta
208 -all'utente. Questa decisione ha richiesto molte ricerche che sono state
209 -fiduciosamente e chiaramente inserite nella documentazione inerente l'hardened.
210 -Tuttavia per qualsiasi domanda specifica riguardo i modelli di sicurezza che
211 -ciascuno fornisce ci si senta liberi di interpellare gli svilupptori sul
212 -relativo canale IRC o attraverso mailing list.
213 +La risposta a questa domanda è altamente soggettiva, e dipende molto dai propri
214 +requisiti,così il progetto Gentoo hardened tenta semplicemente di presentare
215 +ogni tecnologia e lasciare la scelta all'utente. Questa decisione ha richiesto
216 +molte ricerche che sono state fiduciosamente e chiaramente inserite nella
217 +documentazione inerente l'hardened. Tuttavia per qualsiasi domanda specifica
218 +riguardo i modelli di sicurezza che ciascuno fornisce ci si senta liberi di
219 +interpellare gli svilupptori sul relativo canale IRC o attraverso mailing list.
220 </p>
221
222 </body>
223 </section>
224 <section id="aclall">
225 -<title>È possibile usare grsecurity, RSBAC, SELinux e PaX tutti
226 -contemporaneamente?</title>
227 +<title>È possibile usare grsecurity, SELinux e PaX tutti contemporaneamente?
228 +</title>
229 <body>
230
231 <p>
232 -Si, questa combinazione è possibile poichè PaX può lavorare con grsecurity,
233 -RSBAC e SELinux. Il solo conflitto che si può verificare è che si può usare
234 -un solo sistema di controllo degli accessi.
235 +Si, questa combinazione è possibile poichè PaX ed alcune delle caratteristiche
236 +di grsecurity funzionano con RSBAC di grsecurity e SELinux. Il solo conflitto
237 +che si può verificare è che si può usare un solo sistema di controllo degli
238 +accessi (che può essere o RBAC o SeLinux).
239 </p>
240
241 </body>
242 </section>
243 <section id="hardenedcflags">
244 <title>È necessario passare alcune flag a LDFLAGS/CFLAGS per abilitare la
245 -compilazione PIE/SSP??</title>
246 +compilazione hardened?</title>
247 <body>
248
249 <p>
250 No, la toolchain attuale implementa automaticamente l'equivalente di
251 -<c>CFLAGS="-fPIE -fstack-protector-all" LDFLAGS="-Wl,-z,now -Wl,-z,relro"</c>
252 -attraverso uno specfile di GCC che risulta essere una soluzione più appropriata.
253 -Per vecchi utenti di hardened-gcc aggiungere <c>USE="hardened pic"</c> al
254 -proprio <path>/etc/make.conf</path> e quindi procedere all'aggiornamento
255 -con il seguente comando:
256 +<c>CFLAGS="-fPIE -fstack-protector-all" -D_FORTIFY_SOURCE=2" LDFLAGS="-Wl,-z,now
257 + -Wl,-z,relro"</c> attraverso le specifiche integrate di GCC ed usando i file
258 +delle specifiche per disabilitarli che risulta essere una soluzione più
259 +appropriata. PEr i vecchi utenti di hardened-gcc l'approccio migliore è migrare
260 +al nuovo profilo hardened e successivamente seguire i passaggi elencati nella
261 +domanda <uri link="#hardenedprofile">Come posso passare al profilo hardened?
262 +</uri>
263 </p>
264
265 -<pre caption="Installazione dell' Hardened Toolchain">
266 -# <i>emerge --oneshot binutils gcc virtual/libc</i>
267 -# <i>emerge -e world</i>
268 -</pre>
269 +<note>
270 +Abilitare manualmente le flag di hardening è assolutamente non raccomandato.
271 +</note>
272
273 <note>
274 +Inviare una flag -fno... disabiliterà la flag, e anche fstack-protector-all e
275 +-fstack-protector potrebbero interferire se passate direttamente.
276 +</note>
277 +
278 +<note>
279 Gentoo si occuperà di applicare delle patch al relativo GCC per permettere che
280 gli specfiles possano essere passati attraverso variabili di ambiente.
281 Attualmente sono installati nel sistema Gentoo diversi tipi di specfile che
282 @@ -233,7 +140,7 @@
283 </body>
284 </section>
285 <section id="hardenedcflagsoff">
286 -<title>Come posso disabilitare la compilazione PIE/SSP?</title>
287 +<title>Come posso disabilitare la compilazione hardened?</title>
288 <body>
289
290 <p>
291 @@ -242,29 +149,53 @@
292
293 <pre caption="Esempio di output di gcc-config">
294 # gcc-config -l
295 - [1] i686-pc-linux-gnu-3.4.4 *
296 - [2] i686-pc-linux-gnu-3.4.4-hardenednopie
297 - [3] i686-pc-linux-gnu-3.4.4-hardenednopiessp
298 - [4] i686-pc-linux-gnu-3.4.4-hardenednossp
299 - [5] i686-pc-linux-gnu-3.4.4-vanilla
300 + [1] x86_64-pc-linux-gnu-4.4.4 *
301 + [2] x86_64-pc-linux-gnu-4.4.4-hardenednopie
302 + [3] x86_64-pc-linux-gnu-4.4.4-hardenednopiessp
303 + [4] x86_64-pc-linux-gnu-4.4.4-hardenednossp
304 + [5] x86_64-pc-linux-gnu-4.4.4-vanilla
305
306 +<comment>Per disabilitare la compilazione PIE passare al profilo hardenednopie:</comment>
307 +# gcc-config x86_64-pc-linux-gnu-4.4.4-hardenednopie
308 <comment>Per disabilitare la compilazione SSP passare al profilo hardenednossp:</comment>
309 -# gcc-config i686-pc-linux-gnu-3.4.4-hardenednossp
310 +# gcc-config x86_64-pc-linux-gnu-4.4.4-hardenednossp
311 +<comment>Per disabilitare la compilazione SSP e PIE passare al profilo hardenednopiessp:</comment>
312 +# gcc-config x86_64-pc-linux-gnu-4.4.4-hardenednopiessp
313 +<comment>Per disabilitare tutte le compilazioni hardened passare al profilo vanilla:</comment>
314 +# gcc-config x86_64-pc-linux-gnu-4.4.4-vanilla
315 </pre>
316
317 +<note>
318 +L'output precedente potrà variare in base alla versione di gcc e
319 +all'architettura in uso, inoltre i comandi richiesti per disabilitare le varie
320 +opzioni possono dipendere dall'output del primo comando.
321 +</note>
322 +
323 <p>
324 Alternativamente si può raggiungere lo stesso risultato modificando CFLAGS:
325 </p>
326
327 +<impo>
328 +Disabilitare manualmente le flag non è raccomandato dal team e viene considerata
329 +un'opzione non supportata, pertanto usarla a proprio rischio e pericolo.
330 +</impo>
331 +
332 <p>
333 Per disabilitare la compilazione SSP, di default quando si usa l'hardened
334 -toolchain, aggiungere <c>-fno-stack-protector-all -fno-stack-protector</c> alla
335 -fine delle proprie CFLAGS.
336 +toolchain, aggiungere <c>-fno-stack-protector</c> alla fine delle proprie
337 +CFLAGS.
338 </p>
339
340 +<note>
341 +Nei rilasci di gcc 3.4 bisogna usare <c>-fno-stack-protector-all
342 +-fno-stack-protector</c>
343 +</note>
344 +
345 <p>
346 Se si vuole disabilitare la compilazione di default PIE aggiungere <c>-nopie</c>
347 -alla fine delle proprie CFLAGS.
348 +alla fine delle proprie <c>CFLAGS</c> e alle proprie <c>LDFLAGS</c> (in quanto
349 +le LDFLAGS vengono usate senza CFLAGS quando gcc viene usato per collegare i
350 +file oggetto).
351 </p>
352
353 <impo>
354 @@ -273,6 +204,21 @@
355 GCC che dovrebbe essere il risultato cercato.
356 </impo>
357
358 +<p>
359 +Se si vuole disabilitare il binding "now" predefinito accodare <c>-z,lazy</c>
360 +alle proprie <c>LDFLAGS</c>.
361 +</p>
362 +
363 +<p>
364 +Se si vuole disabilitare il binding "relro" predefinito accodare
365 +<c>-z,norelro</c> alle proprie <c>LDFLAGS</c>.
366 +</p>
367 +
368 +<note>
369 +Relro è l'impostazione predefinita su binutils pertanto assicurarsi di volerla
370 +disabilitare prima di farlo.
371 +</note>
372 +
373 <note>
374 Se si è interessati ad usare per-package CFLAGS con Portage allora è
375 interessante leggere a proposito di script solar sviluppato per lavorare con
376 @@ -281,19 +227,6 @@
377
378 </body>
379 </section>
380 -<section id="fsexec">
381 -<title>La compilazione del mio kernel fallisce con l'errore"error: structure has
382 -no member named `curr_ip'", come posso correggere ciò?</title>
383 -<body>
384 -
385 -<p>
386 -Per utilizzare PaX su sorgenti hardened, è necessario abilitare grsecurity nella
387 -configurazione del proprio kernel. Questo potrebbe essere corretto in future
388 -versioni del kernel.
389 -</p>
390 -
391 -</body>
392 -</section>
393 <section id="hardenedproject">
394 <title>Ho appena scoperto il progetto hardened, devo installare tutto quello che
395 trovo sulla pagina del progetto prima di installare Hardened Gentoo?</title>
396 @@ -315,28 +248,27 @@
397
398 <p>
399 È noto che l'utilizzo del flag di ottimizzazione <c>-O3</c> in molte situzioni
400 -crea problemi al stack-smashing protector (SSP). Questo flag di ottimizzazione
401 -non è ufficialmente supportato e quindi ne viene scoraggiato l'uso dall'hardened
402 -team. Compilazioni dove l'utente fa uso di <c>CFLAGS="-O3"</c> vengono chiuse
403 -come INVALID/CANTFIX e/o ignorate.
404 +crea problemi al stack-smashing protector (SSP) e in compilazioni vanilla.
405 +Questo flag di ottimizzazione non è ufficialmente supportato e quindi ne viene
406 +scoraggiato l'uso dall'hardened team. Compilazioni dove l'utente fa uso di
407 +<c>CFLAGS="-O3"</c> vengono chiuse come INVALID/CANTFIX e/o ignorate.
408 </p>
409
410 </body>
411 </section>
412 -<section id="cascadebootstrap">
413 -<title>Che cosa è accaduto a bootstrap-cascade.sh?</title>
414 +<section id="hardenedprofile">
415 +<title>Come posso passare al profilo hardened?</title>
416 <body>
417
418 <p>
419 -Recentemente i vecchi bootstrap.sh e bootstrap-2.6.sh sono stati deprecati. Al
420 -loro posto bootstrap-cascade.sh è stato rinominato bootstrap.sh.
421 +Per cambiare il proprio profilo usare eselect per selezionarlo.
422 </p>
423
424 -</body>
425 -</section>
426 -<section id="hardenedprofile">
427 -<title>Come posso passare al profilo hardened?</title>
428 -<body>
429 +<note>
430 +Per reperire informazioni migliori su come cambiare il proprio profilo è
431 +raccomandabile leggere la parte 1, capitolo 6 "Installare il sistema base
432 +Gentoo" del <uri link="/doc/it/handbook/">Manuale Gentoo</uri>
433 +</note>
434
435 <pre caption="Impostare make.profile">
436 # <i>eselect profile list</i>
437 @@ -347,8 +279,8 @@
438 [5] default/linux/amd64/10.0/developer
439 [6] default/linux/amd64/10.0/no-multilib
440 [7] default/linux/amd64/10.0/server
441 -[8] hardened/linux/amd64/10.0
442 -[9] hardened/linux/amd64/10.0/no-multilib
443 +[8] hardened/linux/amd64
444 +[9] hardened/linux/amd64/no-multilib
445 [10] selinux/2007.0/amd64
446 [11] selinux/2007.0/amd64/hardened
447 [12] selinux/v2refpolicy/amd64
448 @@ -359,6 +291,12 @@
449 # <i>eselect profile set 8</i> <comment>(sostituire 8 con il profilo hardened desiderato)</comment>
450 </pre>
451
452 +<note>
453 +L'output precedente potrà variare in base alla versione di gcc e
454 +all'architettura in uso, inoltre i comandi richiesti per disabilitare le varie
455 +opzioni possono dipendere dall'output del primo comando.
456 +</note>
457 +
458 <p>
459 Dopo aver impostato il profilo bisogna ricompilare il proprio sistema
460 usando l'hardened toolchain in modo da avere una base consistente:
461 @@ -366,9 +304,15 @@
462
463 <pre caption="Passaggio all'hardened toolchain">
464 # <i>emerge --oneshot binutils gcc virtual/libc</i>
465 -# <i>emerge -e world</i>
466 +# <i>emerge -e --keep-going system</i>
467 +# <i>emerge -e --keep-going world</i>
468 </pre>
469
470 +<p>
471 +È stata aggiunta l'opzione <c>--keep-going</c> per assicurarsi che emerge non si
472 +interrompa in caso di fallimento nella compilazione di qualche pacchetto.
473 +</p>
474 +
475 </body>
476 </section>
477 <section id="hardeneddebug">
478 @@ -376,57 +320,100 @@
479 <body>
480
481 <p>
482 -La prima cosa da sottolineare è che GDB non può risolvere i simboli in PIEs; non
483 -riesce a capire che gli indirizzi sono relativi in PIEs, non assoluti. Questo si
484 -manifesta quando, per esempio, si tenta di fare un backtrace e viene
485 -visualizzato un flusso di linee di '??' dove dovrebbero essere i simboli.
486 +È stato redatto un <uri link="/proj/en/hardened/hardened-debugging.xml">
487 +documento su come effettuare il debug con Gentoo Hardened</uri> (in inglese,
488 +ndT), pertanto seguire le raccomandazioni lì presente per risolvere il proprio
489 +problema.
490 </p>
491
492 +</body>
493 +</section>
494 +
495 +<section id="jitflag">
496 +<title>Perchè la flag jit è disabilita nel profilo hardened?</title>
497 +<body>
498 +
499 <p>
500 -Per aggirare questo, eseguire la fase finale di linkaggio con <c>-nopie</c>
501 -tutte le precedenti compilazioni possono ancora essere fatte normalmente con
502 -<c>-fPIE</c> (i.e. di default con il compilatore hardened) In maniera tale che
503 -il proprio eseguibile sia il più vicino possibile al caso reale, ma la fase
504 -finale di linkaggio da origine ad un eseguibile normale. È possibile aggiungere
505 -<c>-nopie</c> alle LDFLAGS se si intende compilare utilizzando emerge.
506 +JIT significa Just in Time Compilazione e consiste nel prendere del codice che
507 +si considera interpretato (come i bytecode Java o il codice Javascript),
508 +compilarlo in codice binario nativo in memoria e successivamente eseguire il
509 +codice compilato. Ciò significa che il programma ha bisogno di una sezione di
510 +memoria con permessi di scrittura ed esecuzione per scrivere e poi eseguire il
511 +codice che viene negato da PaX, a meno che la flag mprotect sia non impostata
512 +per l'eseguibile. Ne consegue la disabilitazione della flag use JIT come
513 +impostazione predefinita per evitare reclami e problemi di sicurezza.
514 </p>
515
516 <p>
517 -Un'altra maniera per fare ciò consiste nel fare l'emerge di >=sys-devel/gdb-7.1,
518 -che contiene una patch particolare che rende possibile il debug di eseguibili
519 -lincati con -pie
520 +Si dovrebbe tenere a mente che avere una sezione in cui si scrive e viene
521 +eseguito qualcosa può essere un grave problema di sicurezza in quanto
522 +l'attaccante necessita di poter sfruttare un bug tra le fasi di scrittura ed
523 +esecuzione per scrivere in quella sezione in modo da eseguire qualunque codice
524 +egli desideri.
525 </p>
526
527 +</body>
528 +</section>
529 +
530 +<section id="enablejit">
531 +<title>Come posso abilitare la flag jit?</title>
532 +<body>
533 +
534 <p>
535 -Il secondo punto è che PaX potrebbe impedire a GDB di creare breakpoints, a
536 -seconda della configurazione del kernel. Questo include anche il breakpoint nel
537 -main di cui si necessita come punto di partenza. Per impedire a PaX di
538 -comportarsi in questo modo gli eseguibili da debuggare necessitano dei flag
539 -<c>m</c> e <c>x</c>. IL flag <c>x</c> è settato di default, così è sufficiente
540 -fare:
541 +Se è necessario, si raccomanda di abilitare la flag su basi per pacchetto usando
542 +<c>/etc/portage/package.use</c>
543 </p>
544
545 -<pre caption="Rilassare PaX per il debug">
546 -# <i>/sbin/paxctl -m foo</i>
547 +<pre caption="Esempio di abilitazione JIT per alcuni pacchetti in
548 + /etc/portage/package.use">
549 +x11-libs/qt-core jit
550 +x11-libs/qt-script jit
551 +x11-libs/qt-webkit jit
552 </pre>
553
554 <p>
555 -A questo punto si dovrebbe essere pronti per partire! Avviate gdb come sempre e
556 -buona fortuna.
557 +Tuttavia, è possibile abilitare la flag use globalmente usando
558 +<c>/etc/make.conf</c>
559 </p>
560
561 +<pre caption="Esempio di /etc/make.conf con JIT abilitato">
562 +CFLAGS="-O2 -pipe -fomit-frame-pointer -march=native"
563 +CXXFLAGS="${CFLAGS}"
564 +# WARNING: Changing your CHOST is not something that should be done lightly.
565 +# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
566 +CHOST="x86_64-pc-linux-gnu"
567 +# These are the USE flags that were used in addition to what is provided by the
568 +# profile used for building.
569 +<comment>#Se si hanno ulteriori use dovrebbe essere sufficiente aggiungere jit alla fine</comment>
570 +USE="jit"
571 +
572 +MAKEOPTS="-j2"
573 +
574 +GENTOO_MIRRORS="ftp://ftp.udc.es/gentoo/"
575 +
576 +SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
577 +</pre>
578 +
579 +<impo>
580 +Ricordarsi che se si vuole abilitare codice JIT su PaX bisognera disabilitare
581 +mprotect sui binari che usano tale codice, sia attraverso i binari stessi o
582 +attraverso le librerie. Controllare la <uri link="#paxjavajit">domanda di Pax su
583 + Java e JIT per vedere come farlo</uri>
584 +</impo>
585 +
586 </body>
587 </section>
588 +
589 </chapter>
590
591 <chapter>
592 <title>Domande su PaX</title>
593 <section id="paxinformation">
594 -<title>Qual'è l'homepage di PaX?</title>
595 +<title>Dov'è l'homepage di PaX?</title>
596 <body>
597
598 <p>
599 -L'home page è reperibile all'indirizzo <uri>http://pax.grsecurity.net</uri>.
600 +Questa è <uri link="http://pax.grsecurity.net">l'homepage di PaX</uri>.
601 </p>
602
603 </body>
604 @@ -436,13 +423,48 @@
605 <body>
606
607 <p>
608 -Attualmente l'unica documentazione Gentoo riguardante PaX è la PaX quickstart
609 -guide reperibile presso l'indirizzo
610 -<uri>http://www.gentoo.org/proj/it/hardened/pax-quickstart.xml</uri>.
611 +Attualmente l'unica documentazione Gentoo riguardante PaX è la
612 +<uri link="http://www.gentoo.org/proj/it/hardened/pax-quickstart.xml">Guida
613 +rapida per PaX su Gentoo Hardened</uri>.
614 </p>
615
616 </body>
617 </section>
618 +
619 +<section id="paxmarkings">
620 +<title>Come funzionano i contrassegni ("marking", ndT) di PaX?</title>
621 +<body>
622 +
623 +<p>
624 +I contrassegni ("marking", ndT) sono un modo per dire a PaX quali
625 +caratteristiche dovrebbe abilitare (o disabilitare) per un determinato binario.
626 +</p>
627 +
628 +<p>
629 +Le caratteristiche possono essere o abilitate, o disabilitate o non impostate.
630 +Abilitarle o disabilitarle rimpiazzare l'azione del kernel, così un binario con
631 +una caratteristica abilitata userà sempre quest'ultima e uno con la
632 +caratteristica disabilitata non la userà mai.
633 +</p>
634 +
635 +<p>
636 +Quando lo stato della caratteristica non è impostato il kernel sceglierà se
637 +abilitarla o disabilitarla. Come impostazione predefinita, il kernel hardened
638 +abiliterà quelle caratteristiche con solo due eccezioni, ovvero se la
639 +caratteristica non è supportata dall'architettura/kernel o se PaX è in
640 +esecuzione in modalità "Soft"- In quei due casi, essa verrà disabilitata.
641 +</p>
642 +
643 +<note>
644 +Per poter ottenere la modalità "Soft", il proprio kernel dovrebbe avere la
645 +caratteristica abilitata e la si dovrebbe abilitare o passando
646 +<c>pax_softmode=1</c> alla riga di comando del kernel o impostando ad 1
647 +l'opzione in <c>/proc/sys/kernel/pax/softmode</c>.
648 +</note>
649 +
650 +</body>
651 +</section>
652 +
653 <section id="paxnoelf">
654 <title>Continuo ad ottenere il messaggio: "error while loading shared libraries:
655 cannot make segment writable for relocation: Permission denied." Che cosa
656 @@ -450,14 +472,33 @@
657 <body>
658
659 <p>
660 -Questo errore si manifesta quando viene abilitato CONFIG_PAX_NOELFRELOCS nel
661 +Le "Text relocations" sono un modo con il quale i riferimenti nel codice
662 +dell'eseguibile ad indirizzi non conosciuti al momento della fase di link
663 +vengono risolti. Semplicemente essi scrivono solo l'indirizzo appropriato in
664 +fase di esecuzione marcando il segmento di codice come scrivibile in modo da
665 +cambiare l'indirizzo quando esso viene deselezionato. Questo può essere un
666 +problema in quanto un attaccante potrebbe provare a sfruttare un bug quando la
667 +text relocation avviene in modo da poter scrivere codice arbitrario nel segmento
668 +di testo che dovrebbe essere eseguito. Ciò inoltre significa che il codice verrà
669 +caricato su indirizzi fissi (non in posizioni indipendenti) che può essere
670 +altrettanto sfruttabile scavalcando le caratteristiche di casualità fornite da
671 +PaX.
672 +</p>
673 +
674 +<p>
675 +In quanto questo può essere innescato per esempio aggiungendo una libreria con
676 +text relocation a quelle caricate dall'eseguibile, PaX offre l'opzione
677 +CONFIG_PAX_NOELFRELOCS in modo da evitarle. Questa opzione è abilitata nel
678 seguente modo:
679 </p>
680
681 <pre caption="Opzione di Menuconfig">
682 -Non-executable page ->
683 -
684 - [*] Disallow ELF text relocations
685 +-&gt; Security options
686 + -&gt; PaX
687 + -&gt; Enable various PaX features
688 + -&gt; Non-executable pages
689 + [*] Restrict mprotect()
690 + [*] Allow ELF text relocations
691 </pre>
692
693 <p>
694 @@ -496,89 +537,89 @@
695
696 </body>
697 </section>
698 -<section id="paxjava">
699 -<title>Da quando ho iniziato ad usare PaX Java non funziona, perchè?</title>
700 +<section id="paxjavajit">
701 +<title>Da quando ho iniziato ad usare PaX il codice Java/JIT non funziona,
702 +perchè?</title>
703 <body>
704
705 <p>
706 Come parte di questo progetto la Java virtual machine genera una quantità
707 -considerevole di codice a runtime, cosa che non rende PaX felice. Ci sono due
708 -maniere per correggere questo problema:
709 +considerevole di codice a runtime, cosa che non rende PaX felice. Sebbene, con
710 +le versioni attuali di portage e java, portage contrassegni automaticamente i
711 +binari, è ancora necessario abilitare i contrassegni di PaX in modo che esso
712 +possa fare un'eccezione con essi ed avere paxctl installato così i contrassegni
713 +possono essere applicati ai binari (e rieseguire l'emerge di questi ultimi in
714 +modo da applicarli).
715 </p>
716
717 -<pre caption="Installiare Chpax">
718 -# <i>emerge chpax</i>
719 -# <i>/etc/init.d/chpax start</i>
720 +<p>
721 +This of course can't be applied to all packages linking with libraries with JIT
722 +code, so if it doesn't, there are two ways to correct this problem:
723 +</p>
724 +
725 +<pre caption="Abilitare i contrassegni nel proprio kernel">
726 +-&gt; Security options
727 + -&gt; PaX
728 + -&gt; Enable various PaX features
729 + -&gt; PaX Control
730 + [*] Use ELF program header marking
731 +</pre>
732 +
733 +<pre caption="Installare paxctl">
734 +# <i>emerge paxctl</i>
735 </pre>
736
737 <p>
738 -O se già si ha <c>chpax</c> installato si può dare:
739 +Quando si già si ha <c>chpax</c> installato si può dare:
740 </p>
741
742 -<pre caption="Opzioni Chpax per Java">
743 -# <i>chpax -pemrxs /opt/*-jdk-*/{jre,}/bin/*</i>
744 +<pre caption="Disabilitare PaX per il binario">
745 +# <i>paxctl -pemrxs /percorso/al/binario</i>
746 </pre>
747
748 <p>
749 -Entrambe queste opzioni modificano leggermente l' ELF header al fine di
750 -impostare correttamente i falgs di PAX sui binari.
751 +Questa opzione modifica leggermente l' ELF header al fine di impostare
752 +correttamente le flag di PAX sui binari.
753 </p>
754
755 <note>
756 Se si sta utilizzando PaX in conbinazione con ulteriori strumenti per la
757 -sicurezza, come ad esempio RSBAC, grsecurity, o SELinux è necessario gestire PaX
758 -attraverso l'utilizzo dei kernel hooks previsti per ogni implementazione.
759 +sicurezza, come ad esempio RSBAC di grsecurity, o SELinux è necessario gestire
760 +PaX attraverso l'utilizzo dei kernel hooks previsti per ogni implementazione.
761 </note>
762
763 <p>
764 -Con RSBAC si possono etichettare tutti i file Java utilizzando il seguente
765 -comando.
766 +L'altro modo è usare la propria implementazione di sicurezza per ottenere ciò
767 +usando gli hook del kernel.
768 </p>
769
770 -<pre caption="Opzioni Pax per Java con RSBAC">
771 -# <i>for i in $(ls /opt/*(jdk|sdk)*/{jre,}/bin/*);do attr_set_file_dir FILE $i pax_flags pmerxs;done</i>
772 -</pre>
773 -
774 </body>
775 </section>
776 -</chapter>
777
778 -<chapter>
779 -<title>Domande su grsecurity</title>
780 -<section id="grsecinformation">
781 -<title>Qual'è l'home page di grsecurity?</title>
782 +<section id="paxbootparams">
783 +<title>Posso disabilitare le caratteristiche di PaX all'avvio?</title>
784 <body>
785
786 <p>
787 -L'homepage di grsecurity è reperibile all'indirizzo
788 -<uri>http://www.grsecurity.net</uri>.
789 +Sebbene non sia consigliato farlo eccetto quando si deve recuperare il sistema o
790 +per scopi di debug, è possibile cambiare alcuni comportamenti di Pax all'avvio
791 +tramite la linea di comando del kernel.
792 </p>
793
794 -</body>
795 -</section>
796 -<section id="grsecgentoodoc">
797 -<title>Quale documentazione Gentoo esiste riguardo grsecurity?</title>
798 -<body>
799 -
800 <p>
801 -La documentazione più aggiornata su grsecurity è la Grsecurity2 quickstart
802 -guide, reperibile all'indirizzo
803 -<uri>http://www.gentoo.org/proj/it/hardened/grsecurity.xml</uri>.
804 +Passare <c>pax_nouderef</c> nella linea di comando del kernel disabiliterà
805 +uderef che può causare problemi su alcuni ambienti virtualizzati e causare
806 +alcuni bug (a volte) con lo svantaggio di lasciare il kernel sprotetto contro
807 +deferenze in spazio utente indesiderate.
808 </p>
809
810 -</body>
811 -</section>
812 -<section id="grsec2681">
813 -<title>Posso usare grsecurity con i kernel 2.6.8, 2.6.8.1, or 2.6.9?</title>
814 -<body>
815 -
816 <p>
817 -Sono stati apportati dei cambiamenti significativi nel kernel 2.6.8 che hanno
818 -compromesso Pax, per i kernel 2.6.8.1 e 2.6.9 non sono diponibili patch ne per
819 -per PaX ne per grsecurity. Anche se per il kernel 2.6.10 è disponibile una
820 -patch sperimentale è bene prendere in considerazione la posizione ufficiale del
821 -team PaX nei confronti del kernel 2.6 prima di utilizzarlo:
822 -<uri> http://forums.grsecurity.net./viewtopic.php?t=968</uri>.
823 +Passare <c>pax_softmode=1</c> nella linea di comando del kernel abiliterà la
824 +modalità "soft" che può risultare utile quando si avvia un sistema non
825 +predisposto con un kernel PaX. Nella modalità "soft" PaX disabiliterà la maggior
826 +parte delle caratteristiche come impostazione predefinita dove non specificato
827 +altrimenti tramite i contrassegni. Similmente, <c>pax_softmode=0</c>
828 +disabiliterà la modalità "soft" se essa è stata abilitata nella configurazione.
829 </p>
830
831 </body>
832 @@ -586,25 +627,25 @@
833 </chapter>
834
835 <chapter>
836 -<title>Domande su RSBAC</title>
837 +<title>Domande su Grsecurity</title>
838 <section id="rsbacinformation">
839 -<title>Qual'è l'home page di RSBAC?</title>
840 +<title>Dov'è l'home page di Grsecurity?</title>
841 <body>
842
843 <p>
844 -L'homepage di RSBAC è reperibile all'indirizzo <uri>http://www.rsbac.org</uri>.
845 +Questa è <uri link="http://www.grsecurity.net">l'homepage per Grsecurity</uri>.
846 </p>
847
848 </body>
849 </section>
850 <section id="rsbacgentoodoc">
851 -<title>Quale documentazione Gentoo esiste riguardo RSBAC?</title>
852 +<title>Quale documentazione Gentoo esiste riguardo Grsecurity?</title>
853 <body>
854
855 <p>
856 -Tutta la documentazione Gentoo inerente RSBAC è reperebile presso la pagina
857 -del sottoprogetto RSBAC all'indirizzo
858 -<uri>http://www.gentoo.org/proj/en/hardened/rsbac/index.xml</uri>
859 +La maggior parte della documentazione Gentoo per Grsecurity è una rapida <uri
860 +link="http://www.gentoo.org/proj/it/hardened/grsecurity.xml">Guida a Grsecurity
861 +v2</uri>.
862 </p>
863
864 <p>
865 @@ -614,20 +655,18 @@
866
867 </body>
868 </section>
869 -<section id="rsbacinitrd">
870 -<title>Come usare un ramdisk iniziale con un kernel abilitato per RSBAC?</title>
871 +<section id="grsecnew">
872 +<title>Posso usare Greecurity con un kernel recente non nel portage tree?</title>
873 <body>
874
875 <p>
876 -Per usare un ramdisk iniziale con un kernel abilitato per RSBAC è necessario
877 -abilitare una particolare opzione, altrimenti RSBAC tratterà l'initrd come
878 -il root device:
879 +Abitualmente viene rilasciato una nuova versioni degli hardened sources non
880 +molto dopo un nuovo rilascio di una patch PaX/Grsecurity, pertanto l'opzione
881 +migliore è aspettare un po' in modo che il team del kernel possa adattare le
882 +patch ed infine testarle. Ricordarsi che non vengono supportati sorgenti di
883 +kernel che non provengono dal portage tree.
884 </p>
885
886 -<pre caption="Opzioni Menuconfig">
887 - [*] Delayed init for initial ramdisk
888 -</pre>
889 -
890 </body>
891 </section>
892 </chapter>
893 @@ -639,8 +678,8 @@
894 <body>
895
896 <p>
897 -FAQ specifiche per SELinux possono essere reperite all'indirizzo
898 -<uri>http://www.gentoo.org/proj/en/hardened/selinux/selinux-handbook.xml?part=3&amp;chap=3</uri>.
899 +Ci sono alcune <uri link="http://www.gentoo.org/proj/it/hardened/selinux/selinux-handbook.xml?part=3&amp;chap=3">
900 +FAQ specifiche per SELinux</uri>.
901 </p>
902
903 </body>