Gentoo Archives: gentoo-commits

From: "JosA MarAa Alonso (nimiux)" <nimiux@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in xml/htdocs/proj/es/hardened: hardenedfaq.xml
Date: Thu, 27 Jan 2011 12:56:04
Message-Id: 20110127125553.509DE20054@flycatcher.gentoo.org
1 nimiux 11/01/27 12:55:53
2
3 Modified: hardenedfaq.xml
4 Log:
5 added the new hardenedfaq.xml for hardened proj
6
7 Revision Changes Path
8 1.5 xml/htdocs/proj/es/hardened/hardenedfaq.xml
9
10 file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/es/hardened/hardenedfaq.xml?rev=1.5&view=markup
11 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/es/hardened/hardenedfaq.xml?rev=1.5&content-type=text/plain
12 diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/es/hardened/hardenedfaq.xml?r1=1.4&r2=1.5
13
14 Index: hardenedfaq.xml
15 ===================================================================
16 RCS file: /var/cvsroot/gentoo/xml/htdocs/proj/es/hardened/hardenedfaq.xml,v
17 retrieving revision 1.4
18 retrieving revision 1.5
19 diff -u -r1.4 -r1.5
20 --- hardenedfaq.xml 20 Aug 2010 01:13:47 -0000 1.4
21 +++ hardenedfaq.xml 27 Jan 2011 12:55:53 -0000 1.5
22 @@ -1,20 +1,30 @@
23 <?xml version="1.0" encoding="UTF-8"?>
24 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
25 +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/es/hardened/hardenedfaq.xml,v 1.5 2011/01/27 12:55:53 nimiux Exp $ -->
26
27 <guide link="/proj/es/hardened/hardenedfaq.xml" lang="es">
28 <title>Preguntas de Uso Frecuente de Gentoo Hardened</title>
29 <author title="Autor">
30 <mail link="tocharian@g.o">Adam Mondl</mail>
31 </author>
32 -<author title="Contribuidor">
33 +<author title="Colaborador">
34 <mail link="solar@g.o">solar</mail>
35 </author>
36 -<author title="Contribuidor">
37 +<author title="Colaborador">
38 <mail link="kang@g.o">Guillaume Destuynder</mail>
39 </author>
40 -<author title="Contribuidor">
41 +<author title="Colaborador">
42 <mail link="pageexec@××××××××.hu">El equipo de PaX</mail>
43 </author>
44 +<author title="Colaborador">
45 + <mail link="klondike@×××××××××.es">klondike</mail>
46 +</author>
47 +<author title="Colaborador">
48 + <mail link="zorry@g.o">Magnus Granberg</mail>
49 +</author>
50 +<author title="Colaborador">
51 + <mail link="blueness@g.o">Anthony G. Basile</mail>
52 +</author>
53 <author title="Traductor">
54 <mail link="jgascon@×××××.com">Jaime Gascón Romero</mail>
55 </author>
56 @@ -27,149 +37,28 @@
57 lista de correos gentoo-hardened.
58 </abstract>
59
60 -<version>1.9</version>
61 -<date>2006-02-18</date>
62 +<version>3.2</version>
63 +<date>2011-1-19</date>
64
65 -<chapter>
66 +<faqindex>
67 <title>Preguntas</title>
68 <section>
69 -<title>Generales</title>
70 -<body>
71 -
72 -<ul>
73 - <li>
74 - <uri link="#toolchain">¿Qué es exactamente el "toolchain"?</uri>
75 - </li>
76 - <li>
77 - <uri link="#whichisbetter">¿Qué debería usar: grsecurity, RSBAC o
78 - SELinux?</uri>
79 - </li>
80 - <li>
81 - <uri link="#aclall">¿Se pueden usar usar grsecurity, RSBAC,
82 - SELinux y PaX al mismo tiempo?</uri>
83 - </li>
84 - <li>
85 - <uri link="#hardenedcflags">¿Necesito usar alguna bandera en
86 - LDFLAGS/CFLAGS para activar la compilación de PIE/SSP?</uri>
87 - </li>
88 - <li>
89 - <uri link="#hardenedcflagsoff">¿Cómo desactivo la compilación de
90 - PIE/SSP?</uri>
91 - </li>
92 - <li>
93 - <uri link="#fsexec">La compilación de mi núcleo falla con el
94 - error: "error: structure has no member named `curr_ip'", ¿cómo lo
95 - arreglo?</uri>
96 - </li>
97 - <li>
98 - <uri link="#hardenedproject">Acabo de encontrar el proyecto
99 - hardened, ¿tengo que instalar todo lo de la página del proyecto
100 - para instalar Gentoo Hardened?</uri>
101 - </li>
102 - <li>
103 - <uri link="#Othreessp">¿Por qué no funcionan mis programas cuando
104 - uso gcc hardened y CFLAGS="-O3"?</uri>
105 - </li>
106 - <li>
107 - <uri link="#cascadebootstrap">¿Qué ha pasado con
108 - bootstrap-cascade.sh?</uri>
109 - </li>
110 - <li>
111 - <uri link="#hardenedprofile">¿Cómo cambio al perfil
112 - hardened?</uri>
113 - </li>
114 - <li>
115 - <uri link="#hardeneddebug">¿Cómo depuro con gdb?</uri>
116 - </li>
117 -</ul>
118 -
119 -</body>
120 -</section>
121 -
122 -<section>
123 -<title>PaX</title>
124 -<body>
125 -
126 -<ul>
127 - <li>
128 - <uri link="#paxinformation">¿Cuál es el sitio Web de PaX?</uri>
129 - </li>
130 - <li>
131 - <uri link="#paxgentoodoc">¿Qué documentación hay en Gentoo sobre
132 - PaX?</uri>
133 - </li>
134 - <li>
135 - <uri link="#paxnoelf">Me sale este mensaje: "error while loading
136 - shared libraries: cannot make segment writable for relocation:
137 - Permission denied." ¿Qué significa?</uri>
138 - </li>
139 - <li>
140 - <uri link="#paxjava">Desde que uso PaX no me funciona Java, ¿por
141 - qué?</uri>
142 - </li>
143 -</ul>
144 -
145 -</body>
146 -</section>
147 -
148 -<section>
149 -<title>grsecurity</title>
150 +<title>Introducción</title>
151 <body>
152
153 -<ul>
154 - <li>
155 - <uri link="#grsecinformation">¿Cuál es el sitio Web de
156 - grsecurity?</uri>
157 - </li>
158 - <li>
159 - <uri link="#grsecgentoodoc">¿Qué documentación hay en Gentoo sobre
160 - Grsecurity?</uri>
161 - </li>
162 - <li>
163 - <uri link="#grsec2681">¿Puedo usar Grsecurity con un núcleo 2.6.8,
164 - 2.6.8.1, o 2.6.9?</uri>
165 - </li>
166 -</ul>
167 -
168 -</body>
169 -</section>
170 -
171 -<section>
172 -<title>RSBAC</title>
173 -<body>
174 -
175 -<ul>
176 - <li>
177 - <uri link="#rsbacinformation">¿Cuál es el sitio Web de
178 - RSBAC?</uri>
179 - </li>
180 - <li>
181 - <uri link="#rsbacgentoodoc">¿Qué documentación hay en Gentoo sobre
182 - RSBAC?</uri>
183 - </li>
184 - <li>
185 - <uri link="#rsbacinitrd">¿Cómo uso un disco de inicio RAM con
186 - RSBAC?</uri>
187 - </li>
188 -</ul>
189 -
190 -</body>
191 -</section>
192 -
193 -<section>
194 -<title>SELinux</title>
195 -<body>
196 -
197 -<ul>
198 - <li>
199 - <uri link="#selinuxfaq">¿Dónde están las preguntas de uso
200 - frecuente relacionadas con SELinux?</uri>
201 - </li>
202 -</ul>
203 +<p>
204 +Lo que sigue es una serie de preguntas recogidas del canal IRC
205 +#gentoo-hardened y de la lista de correo gentoo-hardened mailing. Estas
206 +preguntas están contestadas de forma rápida y concisa en lugar de
207 +ofrecer una vista detallada de las tecnologías detrás de Gentoo
208 +Hardened. Se recomienda leer el resto de la documentación en la página
209 +del proyecto Gentoo Hardened Project y la presente en las páginas del
210 +proyecto para tener una mejor visión.
211 +</p>
212
213 </body>
214 </section>
215 -</chapter>
216 +</faqindex>
217
218 <chapter>
219 <title>Generales</title>
220 @@ -190,54 +79,64 @@
221 </section>
222
223 <section id="whichisbetter">
224 -<title>¿Qué debería usar: grsecurity, RSBAC o SELinux?</title>
225 +<title>¿Qué debería usar: el RBAC de Grsecurity o SELinux?</title>
226 <body>
227
228 <p>
229 -La respuesta a esta pregunta es muy subjetiva, el proyecto Gentoo
230 -Hardened sólo intenta proporcionar las tecnologías y dejar la elección
231 -de cual usar al usuario. Esta decisión requiere mucha investigación
232 -que esperamos facilitar con esta documentación. Sin embargo, si tiene
233 -preguntas específicas acerca del modelo de seguridad que proporciona
234 -cada una, no dude en preguntar al desarrollador pertinente en el canal
235 -de IRC o en la lista de correo.
236 +La respuesta a esta pregunta es muy subjetiva, y depende mucho de
237 +sus requisitos por lo que el proyecto Gentoo Hardened sólo persigue
238 +proporcionar las tecnologías y dejar la elección de cual usar al
239 +usuario. Esta decisión requiere mucha investigación que esperamos
240 +facilitar con esta documentación. Sin embargo, si tiene preguntas
241 +específicas acerca del modelo de seguridad que proporciona cada una,
242 +no dude en preguntar al desarrollador pertinente en el canal de IRC
243 +o en la lista de correo.
244 </p>
245
246 </body>
247 </section>
248
249 <section id="aclall">
250 -<title>¿Se pueden usar usar grsecurity, RSBAC, SELinux y PaX al mismo
251 +<title>¿Se pueden usar usar Grsecurity, SELinux y PaX al mismo
252 tiempo?</title>
253 <body>
254
255 <p>
256 -Sí, es posible combinarlos ya que PaX funciona con grsecurity, RSBAC y
257 -SELinux. Sólo habría problemas si sólo puede usar un sistema de
258 -control de acceso.
259 +Sí, es posible combinarlos ya que PaX y algunas características de
260 +Grsecurity funcionan con el RBAC de Grsecurity y SELinux. Sólo
261 +habría problemas si sólo puede usar un sistema de control de acceso
262 +(sea RBAC o SELinux).
263 </p>
264
265 </body>
266 </section>
267
268 <section id="hardenedcflags">
269 -<title>¿Necesito usar alguna bandera en LDFLAGS/CFLAGS para activar la
270 -compilación de PIE/SSP?</title>
271 +<title>¿Necesito usar algún ajuste en LDFLAGS/CFLAGS para activar la
272 +construcción de hardened?</title>
273 <body>
274
275 <p>
276 No, el toolchain actual implementa el equivalente de <c>CFLAGS="-fPIE
277 --fstack-protector-all" LDFLAGS="-Wl,-z,now -Wl,-z,relro"</c>
278 -automáticamente mediante el archivo de especificaciones de GCC lo
279 -cual, es una solución más apropiada. Los usuarios de hardened-gcc
280 -anteriores deben añadir <c>USE="hardened pic"</c> a su
281 -<path>/etc/make.conf</path> y actualizar con las siguientes ordenes:
282 +-fstack-protector-all -D_FORTIFY_SOURCE=2"
283 +LDFLAGS="-Wl,-z,now -Wl,-z,relro"</c> automáticamente mediante la
284 +especificación definida en GCC y usando los ficheros de especificación
285 +(specfiles) para deshabilitarla lo cual es una solución más apropiada.
286 +Para los usuarios de versiones anteriores de hardened-gcc la mejor
287 +solución es cambiar al perfil hardened y actualizar usando los pasos
288 +descritos en <uri link="#hardenedprofile">la pregunta ¿Cómo cambio a
289 +Gentoo Hardened?</uri>
290 </p>
291
292 -<pre caption="Instalación del Toolchain Hardened">
293 -# <i>emerge --oneshot binutils gcc virtual/libc</i>
294 -# <i>emerge -e world</i>
295 -</pre>
296 +<note>
297 +No se recomienda activar los ajustes de hardened manualmente.
298 +</note>
299 +
300 +<note>
301 +Enviando un ajuste -fno... deshabilitará el ajuste correspondiente,
302 +también -fstack-protector-all y -fstack-protector pueden interferir
303 +cuando son pasados directamente.
304 +</note>
305
306 <note>
307 Gentoo parchea sus GCCs para permitir que se pasen archivos de
308 @@ -246,14 +145,14 @@
309 sistemas Gentoo para permitir a los usuarios de arquitecturas
310 soportadas activar o desactivar fácilmente la funcionalidad del
311 toolchain. Para acceder a los archivos de especificación como usuario
312 -puede usar la utilidad gcc-config.
313 +puede usar la utilidad <c>gcc-config</c>.
314 </note>
315
316 </body>
317 </section>
318
319 <section id="hardenedcflagsoff">
320 -<title>¿Cómo desactivo la compilación de PIE/SSP?</title>
321 +<title>¿Cómo desactivo la construcción de hardened?</title>
322 <body>
323
324 <p>
325 @@ -262,60 +161,85 @@
326
327 <pre caption="Ejemplo de salida de gcc-config">
328 # gcc-config -l
329 - [1] i686-pc-linux-gnu-3.4.4 *
330 - [2] i686-pc-linux-gnu-3.4.4-hardenednopie
331 - [3] i686-pc-linux-gnu-3.4.4-hardenednopiessp
332 - [4] i686-pc-linux-gnu-3.4.4-hardenednossp
333 - [5] i686-pc-linux-gnu-3.4.4-vanilla
334 + [1] x86_64-pc-linux-gnu-4.4.4 *
335 + [2] x86_64-pc-linux-gnu-4.4.4-hardenednopie
336 + [3] x86_64-pc-linux-gnu-4.4.4-hardenednopiessp
337 + [4] x86_64-pc-linux-gnu-4.4.4-hardenednossp
338 + [5] x86_64-pc-linux-gnu-4.4.4-vanilla
339 +
340 +<comment>Para desactivar la construcción PIE, cambie al perfil hardenednopie:</comment>
341 +# gcc-config x86_64-pc-linux-gnu-4.4.4-hardenednopie
342
343 <comment>Para desactivar el soporte SSP y cambiar al perfil
344 hardenednossp</comment>
345 -# gcc-config i686-pc-linux-gnu-3.4.4-hardenednossp
346 +# gcc-config x86_64-pc-linux-gnu-4.4.4-hardenednossp
347 +<comment>To turn off SSP and PIE building switch to the hardenednopiessp profile:</comment>
348 +# gcc-config x86_64-pc-linux-gnu-4.4.4-hardenednopiessp
349 +<comment>To turn off all hardened building switch to the vanilla profile:</comment>
350 +# gcc-config x86_64-pc-linux-gnu-4.4.4-vanilla
351 </pre>
352
353 +<note>
354 +La salida anterior puede variar dependiendo de la versión de gcc y de la
355 +arquitectura que use, también los comandos necesarios para deshabilitar
356 +pueden variar dependiendo de la salida del primer comando.
357 +</note>
358 +
359 <p>
360 Puede conseguir lo mismo cambiando sus CFLAGS:
361 </p>
362
363 +<impo>
364 +El equipo no recomienda desactivar los ajustes manualmente, ni tampoco
365 +una opcion no soportada. Hágalo por su cuenta y riesgo.
366 +</impo>
367 +
368 <p>
369 Para desactivar el uso de SSP en la compilación cuando se usa el
370 -toolchain hardened añada <c>-fno-stack-protector-all
371 --fno-stack-protector</c> a sus CFLAGS.
372 +toolchain hardened añada
373 +<c>-fno-stack-protector-all -fno-stack-protector</c> a sus CFLAGS.
374 </p>
375
376 +<note>
377 +En las vesiones 3.4 de gcc necesitará usar
378 +<c>-fno-stack-protector-all -fno-stack-protector</c>
379 +</note>
380 +
381 <p>
382 Si quiere deshabilitar el uso de PIE añada <c>-nopie</c> a sus
383 -<c>CFLAGS</c>.
384 +<c>CFLAGS</c> y a sus <c>LDFLAGS</c> (ya que LDFLAGS se usa sin CFLAGS
385 +cuando se usa gcc para enlazar los ficheros objeto).
386 </p>
387
388 <impo>
389 -No se debe usar la bandera <c>-fno-pic</c> ya que habilita
390 +No se debe usar el ajuste <c>-fno-pic</c> ya que habilita
391 específicamente el código no PIC. En cambio, si usa <c>-nopie</c>
392 revertirá al comportamiento "vanilla" de GCC que seguramente era el lo
393 que deseaba.
394 </impo>
395
396 -<note>
397 -Si está interesado en usar CFLAGS distintas dependiendo del paquete
398 -con Portage seguro que le interesará el script que ha desarrollado
399 -solar para tal propósito:
400 -<uri>http://article.gmane.org/gmane.linux.gentoo.hardened/1204</uri>
401 -</note>
402 -
403 -</body>
404 -</section>
405 -
406 -<section id="fsexec">
407 -<title>La compilación de mi núcleo falla con el error: "error:
408 -structure has no member named `curr_ip'", ¿cómo lo arreglo?</title>
409 -<body>
410 +<p>
411 +Si quiere desactivar la opción de unión now (es la que se realiza por
412 +defecto) añada <c>-z,lazy</c> a sus <c>LDFLAGS</c>.
413 +</p>
414
415 <p>
416 -Para usar PaX con las fuentes hardened-sources debe activar también
417 -Grsecurity en la configuración de su núcleo. Esto debería estar
418 -resuelto en futuros núcleos.
419 +Si desea desactivar la opcion de unión relro (que es la opción por
420 +defecto) añada <c>-z,norelro</c> a sus <c>LDFLAGS</c>.
421 </p>
422
423 +<note>
424 +Relro es el valor por defecto en binutils, por lo tanto asegúrese de que
425 +quiere desactivarlo antes de hacerlo.
426 +</note>
427 +
428 +<note>
429 +Si está interesado en usar CFLAGS específicos para cada paquete con
430 +Portage, entonces estará interesado en leer acerca de <uri
431 +link="http://article.gmane.org/gmane.linux.gentoo.hardened/1204">el
432 +guión que solar ha desarrollado para gestionar esto</uri>
433 +</note>
434 +
435 </body>
436 </section>
437
438 @@ -342,32 +266,33 @@
439 <body>
440
441 <p>
442 -Se sabe que el uso de la bandera de optimización <c>-O3</c> puede dar
443 +Se sabe que el uso del ajuste de optimización <c>-O3</c> puede dar
444 problemas con el uso de la protección de ruptura de la pila SSP
445 -(Stack-Smashing protector). Este bandera de optimización no está
446 +(Stack-Smashing protector) en construcciones oficiales (vanilla) en
447 +algunas situaciones. Este ajuste de optimización no está
448 soportado oficialmente y por lo tanto el equipo de hardened aconseja
449 que no se use. Los problemas de compilación cuando un usuario usa
450 -<c>CFLAGS="-O3"</c> serán marcados como INVALID/CANTFIX e ignorados.
451 +<c>CFLAGS="-O3"</c> serán marcados como INVALID/CANTFIX y/o serán
452 +ignorados.
453 </p>
454
455 </body>
456 </section>
457
458 -<section id="cascadebootstrap">
459 -<title>¿Qué ha pasado con bootstrap-cascade.sh?</title>
460 +<section id="hardenedprofile">
461 +<title>¿Cómo cambio al perfil hardened?</title>
462 <body>
463
464 <p>
465 -Recientemente, el antiguo bootstrap.sh y bootstrap-2.6.sh han sido
466 -marcados como obsoletos. En su lugar, bootstrap-cascade.sh se ha
467 -renombrado a bootstrap.sh.
468 +Para cambiar su perfil use eselect y selecciónelo de la lista.
469 </p>
470 -</body>
471 -</section>
472
473 -<section id="hardenedprofile">
474 -<title>¿Cómo cambio al perfil hardened?</title>
475 -<body>
476 +<note>
477 +Se recomienda leer el capítulo seis de la primera parte de
478 +"Instalando el sistema base de Gentoo" en el
479 +<uri link="/doc/es/handbook/">Manual de Gentoo</uri> para obtener
480 +instrucciones adecuadas de cómo cambiar su perfil.
481 +</note>
482
483 <pre caption="Ajustar make.profile">
484 # <i>eselect profile list</i>
485 @@ -378,8 +303,8 @@
486 [5] default/linux/amd64/10.0/developer
487 [6] default/linux/amd64/10.0/no-multilib
488 [7] default/linux/amd64/10.0/server
489 -[8] hardened/linux/amd64/10.0
490 -[9] hardened/linux/amd64/10.0/no-multilib
491 +[8] hardened/linux/amd64
492 +[9] hardened/linux/amd64/no-multilib
493 [10] selinux/2007.0/amd64
494 [11] selinux/2007.0/amd64/hardened
495 [12] selinux/v2refpolicy/amd64
496 @@ -390,6 +315,12 @@
497 # <i>eselect profile set 8</i> <comment>(Reemplace 8 por el perfil hardened deseado)</comment>
498 </pre>
499
500 +<note>
501 +La salida anterior puede variar dependiendo de la arquitectura que use.
502 +También los comandos requeridos para elegir el perfil pueden variar
503 +dependiendo de la salida del primer comando.
504 +</note>
505 +
506 <p>
507 Tras configurar su perfil debería recompilar su sistema usando el
508 toolchain de hardened para tener una base consistente:
509 @@ -397,8 +328,15 @@
510
511 <pre caption="Cambio al toolchain hardened">
512 # <i>emerge --oneshot binutils gcc virtual/libc</i>
513 -# <i>emerge -e world</i>
514 +# <i>emerge -e --keep-going system</i>
515 +# <i>emerge -e --keep-going world</i>
516 </pre>
517 +
518 +<p>
519 +Se añade la opción <c>--keep-going</c> para asegurarse de que emerge
520 +no parará en caso de que falle la construcción del algún paquete.
521 +</p>
522 +
523 </body>
524 </section>
525
526 @@ -407,47 +345,88 @@
527 <body>
528
529 <p>
530 -El primer problema es que GDB no resuelve símbolos en ejecutables PIE,
531 -no se da cuenta de que las direcciones en dichos ejecutables son
532 -relativas y no absolutas. Esto se pone de manifiesto, por ejemplo,
533 -cuando se intenta obtener un "backtrace" y se ve un flujo de líneas
534 -con caracteres '??' donde debería estar el símbolo en cuestión.
535 +Hemos escrito un <uri link="/proj/en/hardened/hardened-debugging.xml">
536 +documento de cómo depurar en Gentoo Hardened</uri> (en inglés), por
537 +lo que siguiendo las recomendaciones se debería solucionar el problema
538 +que aparezca.
539 </p>
540
541 +</body>
542 +</section>
543 +
544 +<section id="jitflag">
545 +<title>¿Porqué está desactivado el ajuste jit en el perfil hardened?</title>
546 +<body>
547 +
548 <p>
549 -Para solucionar esto realice la etapa final de enlazado con la bandera
550 -<c>-nopie</c>, todas las compilaciones de objetos anteriores serán
551 -<c>-fPIE</c> como es normal (la opción predeterminada con el
552 -compilador hardened), lo que hará el ejecutable sea lo más próximo
553 -posible a como debería ser, aunque el enlazado final creará un
554 -ejecutable normal. Intente añadir <c>-nopie</c> a las LDFLAGS si está
555 -usando emerge.
556 +JIT significa: compilación en ese momento (Just In Time Compilation) y
557 +consiste en tomar código que debe ser interpretado (como bytecode de Java
558 +o código JavaScript), compilarlo en código binario nativo en memoria
559 +y ejecutar el código resultante. Esto significa que el programa necesita
560 +una sección de memoria en la cual tenga permisos de escritura y ejecución
561 +para escribir el código y luego ejecutarlo, lo cual está desautorizado
562 +por PaX, a menos que el ajuste mprotect esté desactivado para el
563 +ejecutable. Como resultado, desactivamos el uso del ajuste JIT para
564 +evitar (por defecto) protestas y problemas de seguridad.
565 </p>
566
567 <p>
568 -Otra forma de hacerlo, es haciendo un emerge del paquete
569 ->=sys-devel/gdb-7.1, que contiene un parche que le permite depurar
570 -ejecutables enlazados con -pie.
571 +Es importante recordad que tener una sección que es escrita y luego
572 +ejecutada puede ser un problema serio de seguridad, ya que un
573 +atacante necesita introducir el código malicioso entre las fases
574 +de escritura y ejecución de esa seccion para ejecutar el código que
575 +desee.
576 </p>
577
578 +</body>
579 +</section>
580 +
581 +<section id="enablejit">
582 +<title>¿Cómo activo el ajuste jit?</title>
583 +<body>
584 +
585 <p>
586 -El segundo problema es que PaX puede evitar que GDB establezca puntos
587 -de ruptura dependiendo de como se haya configurado el núcleo. Esto
588 -incluye el punto de ruptura en el main que usted necesita para
589 -empezar. Para evitar que PaX interfiera con el ejecutable a depurar
590 -necesita las banderas <c>m</c> y <c>x</c>. La bandera <c>x</c> está
591 -configurada por defecto, así que basta con hacer:
592 +Si lo necesita, le recomendamos activar el ajuste específicamente en
593 +cada paquete que lo necesite usando <c>/etc/portage/package.use</c>
594 </p>
595
596 -<pre caption="Relajar PaX para depurar">
597 -# <i>/sbin/paxctl -m foo</i>
598 +<pre caption="Ejemplo de /etc/portage/package.use activando JIT en algunas librerías">
599 +x11-libs/qt-core jit
600 +x11-libs/qt-script jit
601 +x11-libs/qt-webkit jit
602 </pre>
603
604 <p>
605 -Llegados a este punto, ya debería estar preparado. Arranque gdb como
606 -lo haría normalmente y ¡buena suerte!.
607 +De todas formas puede activar este ajuste de forma global usando
608 +<c>/etc/make.conf</c>.
609 </p>
610
611 +<pre caption="Ejemplo de /etc/make.conf con JIT activado">
612 +CFLAGS="-O2 -pipe -fomit-frame-pointer -march=native"
613 +CXXFLAGS="${CFLAGS}"
614 +# CUIDADO: Cambiar su CHOST no es algo que se deba hacer a la ligera.
615 +# Por favor consulte http://www.gentoo.org/doc/es/change-chost.xml antes
616 +# de hacer el cambio.
617 +CHOST="x86_64-pc-linux-gnu"
618 +# Estos son los ajustes USE que se usaron además de los ya ofrecidos por
619 +# el perfil usado para la construcción.
620 +<comment>#Si tiene más especificaciones use, debería bastar añadir jit al final</comment>
621 +USE="jit"
622 +
623 +MAKEOPTS="-j2"
624 +
625 +GENTOO_MIRRORS="ftp://ftp.udc.es/gentoo/"
626 +
627 +SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
628 +</pre>
629 +
630 +<impo>
631 +Recuerde que si activa código JIT en PaX necesitará desactivar mprotect
632 +en los binarios que usen ese código, directamente en ellos o a través
633 +de librerías. Eche un vistazo a la <uri link="#paxjavajit">pregunta
634 +sobre PaX, Java y JIT para ver como se hace esto</uri>.
635 +</impo>
636 +
637 </body>
638 </section>
639
640 @@ -456,11 +435,12 @@
641 <chapter>
642 <title>Preguntas sobre PaX</title>
643 <section id="paxinformation">
644 -<title>¿Cuál es el sitio Web de PaX?</title>
645 +<title>¿Dónde está la página oficial de PaX?</title>
646 <body>
647
648 <p>
649 -El sitio Web de PaX es: <uri>http://pax.grsecurity.net</uri>.
650 +Aquí está la <uri link="http://pax.grsecurity.net">página oficial de
651 +PaX</uri>.
652 </p>
653
654 </body>
655 @@ -471,14 +451,49 @@
656 <body>
657
658 <p>
659 -Actualmente la única documentación que hay en Gentoo sobre PaX es la
660 -guía rápida de PaX en
661 -<uri>http://www.gentoo.org/proj/en/hardened/pax-quickstart.xml</uri>.
662 +Actualmente la única documentación que hay en Gentoo sobre PaX es
663 +una <uri
664 +link="http://www.gentoo.org/proj/en/hardened/pax-quickstart.xml">
665 +guía rápida de PaX</uri> (en inglés).
666 </p>
667
668 </body>
669 </section>
670
671 +<section id="paxmarkings">
672 +<title>¿Cómo funcionan las marcas de PaX?</title>
673 +<body>
674 +
675 +<p>
676 +Las marcas de PaX son una forma de indicarle a PaX qué características
677 +se deben activar (o desactivar) para un determinado binario.
678 +</p>
679 +
680 +<p>
681 +Las características se pueden activar, desactivar o simplemente no
682 +definirlas. El hecho de activarlas o desactivarlas hará que se ignore
683 +las acción del núcleo. Por lo que si se activa una característica, ésta
684 +siempre se usará y por el contrario, desactivándola nunca se usará.
685 +</p>
686 +
687 +<p>
688 +Cuando el estado de una característica no esté definido en el núcleo,
689 +se elegirá su activación o desactivación. Por defecto, el núcleo hardened
690 +activará las características salvo dos excepciones: bien la
691 +característica no está soportada por la arquitectura, bien Pax está
692 +corriendo en modo Soft. En estos casos, la característica será
693 +desactivada.
694 +</p>
695 +
696 +<note>
697 +Para tener el modo Soft, su núcleo debe tener activada la característica
698 +y debe activarla usando <c>pax_softmode=1</c> en la línea de comandos
699 +del núcleo o definiéndola a 1 en <c>/proc/sys/kernel/pax/softmode</c>.
700 +</note>
701 +
702 +</body>
703 +</section>
704 +
705 <section id="paxnoelf">
706 <title>Me sale este mensaje: "error while loading shared libraries:
707 cannot make segment writable for relocation: Permission denied." ¿Qué
708 @@ -486,13 +501,34 @@
709 <body>
710
711 <p>
712 -Este error ocurre cuando se activa CONFIG_PAX_NOELFRELOCS:
713 +Las relocalizaciones de texto son una forma el la cual las referencias
714 +a las direcciones en el código ejecutable que no son conocidas en
715 +el momento de enlazar son resueltas. Básicamente se escriben las
716 +direcciones apropiadas en tiempo de ejecución, marcando como
717 +escribible el segmento de código para cambiar la dirección y a
718 +continuación se desmarca. Esto puede dar problemas, ya que un
719 +atacante podría intentar explotar código malicioso cuando se realiza
720 +la relocalización de texto para poder escribir código arbitrario en
721 +el segmento de texto que podría ser ejecutado. Como esto también
722 +implica que el código será cargado en una dirección fija (no dependiente
723 +de la posición), puede también ser explotado para saltarse las
724 +características de aleatorización proporcionadas por PaX.
725 </p>
726
727 -<pre caption="Opciones de Menuconfig">
728 -Non-executable page ->
729 +<p>
730 +Esto puede realizarse, por ejemplo, añadiendo una librería con
731 +relocalizaciones de texto a las ya cargadas por el ejecutable. Pax
732 +ofrece la opción CONFIG_PAX_NOELFRELOCS para evitarlo. Esta opción se
733 +puede activar de la siguiente forma:
734 +</p>
735
736 - [*] Disallow ELF text relocations
737 +<pre caption="Opciones de Menuconfig">
738 +-&gt; Security options
739 + -&gt; PaX
740 + -&gt; Enable various PaX features
741 + -&gt; Non-executable pages
742 + [*] Restrict mprotect()
743 + [*] Allow ELF text relocations
744 </pre>
745
746 <p>
747 @@ -519,8 +555,8 @@
748 Para buscar en su sistema relocalizaciones de texto, puede usar el
749 programa <c>scanelf</c> de <c>app-misc/pax-utils</c>. Si quiere más
750 información sobre cómo usar el paquete <c>pax-utils</c> visite, por
751 -favor, la <uri link="/proj/en/hardened/pax-utils.xml"> Guia de Gentoo
752 -de las utilidades PaX</uri>.
753 +favor, la <uri link="/proj/en/hardened/pax-utils.xml">Guía de Gentoo
754 +de las utilidades PaX</uri> (en inglés).
755 </p>
756
757 <note>
758 @@ -533,91 +569,93 @@
759 </body>
760 </section>
761
762 -<section id="paxjava">
763 -<title>Desde que uso PaX no me funciona Java, ¿por qué?</title>
764 +<section id="paxjavajit">
765 +<title>Desde que empecé a usar PaX no puedo trabajar con código Java/JIT,
766 +¿Porqué?</title>
767 <body>
768
769 <p>
770 Como parte de su diseño, la máquina virtual de Java crea una cantidad
771 considerable de código durante la ejecución lo que no hace feliz a
772 -PaX. Hay dos formas de corregir está situación:
773 +PaX. Sin embargo, con las versiones actuales de portage y java, portage
774 +marcará los binarios de forma automática, de todos modos necesitará
775 +permitir a PaX marcarlos de forma que PaX pueda hacer una excepción con
776 +ellos y tener paxctl instalado para que estas marcas puedan ser aplicadas
777 +a los binarios (y hacer de nuevo emerge para que sean aplicadas).
778 </p>
779
780 -<pre caption="Instalar Chpax">
781 -# <i>emerge chpax</i>
782 -# <i>/etc/init.d/chpax start</i>
783 +<p>
784 +Esto, por supuesto, no se puede aplicar a todos los paquetes que
785 +enlacen a librerías con código JIT. En este caso hay dos alternativas
786 +para corregir este problema:
787 +</p>
788 +
789 +<pre caption="Activando el marcado en su núcleo">
790 +-&gt; Security options
791 + -&gt; PaX
792 + -&gt; Enable various PaX features
793 + -&gt; PaX Control
794 + [*] Use ELF program header marking
795 +</pre>
796 +
797 +<pre caption="Install paxctl">
798 +# <i>emerge paxctl</i>
799 </pre>
800
801 <p>
802 -O si ya tiene <c>chpax</c> instalado, haga lo siguiente:
803 +Cuando haya realizado emerge de <c>paxctl</c> puede:
804 </p>
805
806 -<pre caption="Opciones de Java de Chpax">
807 -# <i>chpax -pemrxs /opt/*-jdk-*/{jre,}/bin/*</i>
808 +<pre caption="Desactivar PaX para el binario">
809 +# <i>paxctl -pemrxs /camino/al/binario</i>
810 </pre>
811
812 <p>
813 -Las dos opciones modificarán ligeramente las cabeceras ELF para
814 -ajustar correctamente las banderas PaX en los binarios.
815 +Esta opción modificará ligeramente la cabecera ELF header para
816 +ajustar correctamente los ajustes PaX en los binarios.
817 </p>
818
819 <note>
820 -Si usa PaX junto con otra implementación de seguridad como RSBAC,
821 -grsecurity, o SELinux deberá manejar PaX usando las configuraciones
822 +Si usa PaX junto con otra implementación de seguridad como el RBAC
823 +de Grsecurity, o SELinux deberá manejar PaX usando las configuraciones
824 del núcleo provistas para cada implementación.
825 </note>
826
827 <p>
828 -En RSBAC, puede etiquetar todos los archivos Java con la siguiente
829 -orden:
830 +La otra forma es usar su implementación de seguridad para hacer esto
831 +mediante el uso de ganchos (hooks) en el núcleo.
832 </p>
833
834 -<pre caption="Opciones PaX de Java con RSBAC">
835 -# <i>for i in $(ls /opt/*(jdk|sdk)*/{jre,}/bin/*);do attr_set_file_dir FILE $i
836 -pax_flags pmerxs;done</i>
837 -</pre>
838 -
839 </body>
840 </section>
841 -</chapter>
842
843 -<chapter>
844 -<title>Preguntas sobre grsecurity</title>
845 -<section id="grsecinformation">
846 -<title>¿Cuál es el sitio Web de grsecurity?</title>
847 +<section id="paxbootparams">
848 +<title>¿Puedo desactivar las características de PaX al arrancar?</title>
849 <body>
850
851 <p>
852 -El sitio Web de grsecurity es: <uri>http://www.grsecurity.net</uri>.
853 +Aunque no está recomendado excepto cuando se usa para rescatar el sistema
854 +o para situaciones de depuración, el posible cambiar algunos
855 +comportamientos de PaX en el arranque a través de la línea de comandos
856 +del núcleo.
857 </p>
858 -</body>
859 -</section>
860 -
861 -<section id="grsecgentoodoc">
862 -<title>¿Qué documentación hay en Gentoo sobre Grsecurity?</title>
863 -<body>
864
865 <p>
866 -La documentación más actualizada sobre grsecurity es la Guía
867 -Grsecurity v2 de Gentoo en
868 -<uri>http://www.gentoo.org/proj/es/hardened/grsecurity.xml</uri>.
869 +Pasar la opción <c>pax_nouderef</c> en la línea de comandos del núcleo
870 +desactivará uderef que puede causar problemas en algunos entornos de
871 +virtualización y puede causar algunos errores (en ciertos momentos) como
872 +resultado de dejar al núcleo desprotegido contra dereferencias a espacio
873 +de usuario no deseadas.
874 </p>
875
876 -</body>
877 -</section>
878 -
879 -<section id="grsec2681">
880 -<title>¿Puedo usar Grsecurity con un núcleo 2.6.8, 2.6.8.1, o 2.6.9?</title>
881 -<body>
882 -
883 <p>
884 -Debido a los significativos cambios introducidos en el núcleo 2.6.8,
885 -que rompieron el soporte para PaX, no hay parches ni de PaX ni de
886 -grsecurity disponibles para los núcleos 2.6.8, 2.6.8.1 y 2.6.9. Aunque
887 -existe un parche experimental para el núcleo 2.6.10, debería conocer
888 -la postura oficial del Equipo de PaX hacia los núcleos 2.6 y tenerla
889 -en consideración antes de usarlos: <uri>
890 -http://forums.grsecurity.net./viewtopic.php?t=968</uri>.
891 +Pasar la opción <c>pax_softmode=1</c> en la línea de comandos del
892 +núcleo activará el modo soft, el cual puede ser útil cuando arranquemos
893 +un sistema no preparado con un núcleo PaX kernel. En el modo soft
894 +PaX desactivará la mayor parte de las características por defecto
895 +a menos que se le indique lo contrario a través de las marcas. De forma
896 +similar, <c>pax_softmode=0</c> desactivará el modo soft que estaba
897 +activado en la configuración.
898 </p>
899
900 </body>
901 @@ -625,52 +663,45 @@
902 </chapter>
903
904 <chapter>
905 -<title>Preguntas sobre RSBAC</title>
906 -<section id="rsbacinformation">
907 -<title>¿Cuál es el sitio Web de RSBAC?</title>
908 +<title>Preguntas sobre Grsecurity</title>
909 +<section id="grsecinformation">
910 +<title>¿Cuál es la página oficial de Grsecurity?</title>
911 <body>
912
913 <p>
914 -El sitio Web de RSBAC es: <uri>http://www.rsbac.org</uri>.
915 +Esta es la <uri link="http://www.grsecurity.net">página oficial de
916 +Grsecurity</uri>.
917 </p>
918
919 </body>
920 </section>
921
922 -<section id="rsbacgentoodoc">
923 -<title>¿Qué documentación hay en Gentoo sobre RSBAC?</title>
924 +<section id="grsecgentoodoc">
925 +<title>¿Qué documentación está disponible sobre Grsecurity?</title>
926 <body>
927
928 <p>
929 -Toda la documentación de Gentoo sobre RSBAC se encuentra en la página
930 -del subproyecto RSBAC en:
931 -<uri>http://www.gentoo.org/proj/en/hardened/rsbac/index.xml</uri>.
932 -</p>
933 -
934 -<p>
935 -Además, puede encontrar documentación sobre RSBAC que no pertenece a
936 -Gentoo en el manual de RSBAC en:
937 -<uri>http://www.rsbac.org/documentation/rsbac_handbook</uri>.
938 +La documentación sobre Grsecurity más actual es esta <uri
939 +link="http://www.gentoo.org/proj/es/hardened/grsecurity.xml">guía rápida
940 +de Grsecurity2</uri>.
941 </p>
942
943 </body>
944 </section>
945
946 -<section id="rsbacinitrd">
947 -<title>¿Cómo uso un disco de inicio RAM con RSBAC?</title>
948 +<section id="grsecnew">
949 +<title>¿Puedo usar Grsecurity con un núcleo reciente que no esté en el
950 +árbol de portage?</title>
951 <body>
952
953 <p>
954 -Para usar un disco de inicio RAM (initrd) con un núcleo RSBAC se debe
955 -habilitar una opción del núcleo o si no, RSBAC tratará el initrd como
956 -si fuera el dispositivo raíz.
957 +Normalmente liberamos una nueva versión de los fuentes hardened no mucho
958 +más tarde de la liberación de un nuevo parche de PaX/Grsecurity por lo
959 +que la mejor opción es simplemente esperar un poco a que el equipo del
960 +núcleo adapter los parches y los pruebe. Recuerde que no damos soporte
961 +a los fuentes del núcleo que no procedan del árbol de portage.
962 </p>
963
964 -<pre caption="Opciones en menuconfig">
965 -General RSBAC options --->
966 - [*] Delayed init for initial ramdisk
967 -</pre>
968 -
969 </body>
970 </section>
971 </chapter>
972 @@ -683,8 +714,9 @@
973 <body>
974
975 <p>
976 -Puede encontrar un PUF especifico de SELinux en:
977 -<uri>http://www.gentoo.org/proj/en/hardened/selinux/selinux-handbook.xml?part=3&amp;chap=3</uri>.
978 +Existe un <uri
979 +link="http://www.gentoo.org/proj/en/hardened/selinux/selinux-handbook.xml?part=3&amp;chap=3">
980 +PUF específico de SELinux specific</uri> (en inglés).
981 </p>
982
983 </body>