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: pax-quickstart.xml
Date: Sun, 08 May 2011 11:40:07
Message-Id: 20110508113956.7715920057@flycatcher.gentoo.org
1 nimiux 11/05/08 11:39:56
2
3 Added: pax-quickstart.xml
4 Log:
5 New spanish translation: pax-quickstart.xml
6
7 Revision Changes Path
8 1.1 xml/htdocs/proj/es/hardened/pax-quickstart.xml
9
10 file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/es/hardened/pax-quickstart.xml?rev=1.1&view=markup
11 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/es/hardened/pax-quickstart.xml?rev=1.1&content-type=text/plain
12
13 Index: pax-quickstart.xml
14 ===================================================================
15 <?xml version='1.0' encoding="UTF-8"?>
16 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/es/hardened/pax-quickstart.xml,v 1.1 2011/05/08 11:39:56 nimiux Exp $ -->
17 <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
18
19 <guide lang="es">
20 <title>Guía de inicio rápido para usa PaX con Gentoo Hardened</title>
21
22 <author title="Author">
23 <mail link="tseng@g.o">Brandon Hale</mail>
24 </author>
25 <author title="Editor">
26 <mail link="blackace@g.o">Blackace</mail>
27 </author>
28 <author title="Editor">
29 <mail link="solar@g.o">solar</mail>
30 </author>
31 <author title="Traductor">
32 <mail link="nimiux"/>
33 </author>
34
35 <abstract>
36 Una guía de inicio rápido que cubre PaX y Gentoo Hardened.
37 </abstract>
38
39 <!-- The content of this document is licensed under the CC-BY-SA license -->
40 <!-- See http://creativecommons.org/licenses/by-sa/2.0 -->
41 <license/>
42
43 <version>1.4</version>
44 <date>2007-09-11</date>
45
46 <chapter>
47 <title>¿Qué es Gentoo Hardened?</title>
48 <section>
49 <body>
50
51 <p>
52 Gentoo Hardened es un proyecto interesado en reforzar el sistema Gentoo.
53 Soportamos diferentes soluciones y existe una adecuada flexibilidad para
54 crear su propia configuración. En el corazón de la configuración de un
55 sistema Gentoo común está <e>PaX</e>.
56 </p>
57
58 </body>
59 </section>
60 </chapter>
61
62 <chapter>
63 <title>¿Qué es PaX?</title>
64 <section>
65 <body>
66
67 <p>
68 PaX es un parche para el núcleo Linux que ofrece reforzamiento del mismo
69 de dos formas.
70 </p>
71
72 <p>
73 La primera, <e>ASLR</e> (Address Space Layout Randomization o Esquema de
74 Aleatorización del Espacio de Direcciones) ofrece una forma de
75 aleatorizar la distribución de direcciones de todos los datos cargador
76 en memoria. Cuando se construye una aplicación como un <e>PIE</e>
77 (Position Independent Executable o Ejecutable Independiente de la
78 Posición), Pax puede aleatorizar las direcciones de la aplicación base.
79 </p>
80
81 <p>
82 La segunda forma de protección ofrecida por PaX es la memoria no
83 ejecutable. Esto impide una forma muy común de ataque en el cual
84 código ejecutable es insertado en memoria por un atacante. Se puede
85 encontrar más información sobre PaX en esta guía, pero la página
86 oficial está en <uri>http://pax.grsecurity.net</uri>.
87 </p>
88
89 </body>
90 </section>
91 </chapter>
92
93 <chapter>
94 <title>Una introducción a PIE y SSP</title>
95 <section>
96 <body>
97
98 <p>
99 Como se ha mencionado arriba, PaX se complementa con PIE. Este método
100 de construir ejecutables almacena información necesaria para relocalizar
101 partes del ejecutable en memoria, de ahí el nombre <e>Independiente de la
102 Posición</e>.
103 </p>
104
105 <p>
106 <e>SSP</e> (Stack Smashing Protector o Protector contra Ataques a la Pila)
107 es una tecnología que se añade la ejecutable en el momento de su
108 construcción. SSP fue originalmente introducida por IBM bajo el nombre
109 <e>ProPolice</e>. Modifica el compilador de C para insertar código de
110 inicialización en funciones que crean un buffer en memoria.
111 </p>
112
113 <note>
114 En las nuevas versiones de SSP, es posible aplicar SSP a todas las
115 funciones, añadiendo protección a funciones cuyo buffer normalmente
116 estaría por debajo del límite de tamaño para SSP. Esto es habilitado
117 mediante la CFLAG -fstack-protector-all.
118 </note>
119
120 <p>
121 Durante la ejecución, cuando se crea un buffer, SSP añade un valor
122 aleatorio secreto al final del buffer: el canario. Cuando la función
123 retorna, SSP se asegura de que el canario está intacto. Si un
124 atacante quisiera intentar un desbordamiento de buffer, sobreescribiría
125 este valor y esto desembocaría en un manejador de ataque a pila.
126 Consecuentemente esto causaría la finalización del proceso atacado.
127 </p>
128
129 <p>
130 <uri link="http://www.trl.ibm.com/projects/security/ssp/">Más información
131 sobre SSP.</uri>
132 </p>
133
134 </body>
135 </section>
136 </chapter>
137
138 <chapter>
139 <title>Construyendo un núcleo con PaX habilitado</title>
140 <section>
141 <body>
142
143 <p>
144 Varios árboles con el núcleo parcheado con PaX están disponibles en
145 Gentoo.
146 </p>
147
148 <p>
149 Para las máquinas basadas en 2.4/2.6, los núcleos recomendados son
150 <c>hardened-sources</c>
151 </p>
152
153 <p>
154 Obtenga uno de los árboles fuente recomendados, o aplique los parches
155 apropiados presentes en <uri>http://pax.grsecurity.net</uri> a su árbol
156 y configúrelo como normalmente lo haría para la máquina destino.
157 </p>
158
159 <p>
160 En <c>Security Options -&gt; PaX</c>, aplique las opciones que se
161 muestran abajo.
162 </p>
163
164 <pre caption="Configuración del núcleo">
165 [*] Enable various PaX features
166
167 PaX Control -&gt;
168
169 [ ] Support soft mode
170 [*] Use legacy ELF header marking
171 [*] Use ELF program header marking
172 MAC system integration (none) ---&gt;
173
174 Non-executable page -&gt;
175
176 [*] Enforce non-executable pages
177 [*] Paging based non-executable pages
178 [*] Segmentation based non-executable pages
179 [*] Emulate trampolines
180 [*] Restrict mprotect()
181 [ ] Disallow ELF text relocations
182
183 Address Space Layout Randomization -&gt;
184
185 [*] Address Space Layout Randomization
186 [*] Randomize kernel stack base
187 [*] Randomize user stack base
188 [*] Randomize mmap() base
189 [*] Randomize ET_EXEC base
190 </pre>
191
192 <p>
193 Construya este núcleo como lo haría normalmente e instálelo en
194 <path>/boot</path>.
195 </p>
196
197 </body>
198 </section>
199 </chapter>
200
201 <chapter>
202 <title>Construyendo una zona de usuario con PIE/SSP habilitado</title>
203 <section>
204 <body>
205
206 <p>
207 Gentoo Hardened ha añadido soporte para la construcción transparente
208 de PIE/SSP usando un fichero de especificación de GCC. Esto significa
209 que cualquier usuario que realice una actualización de instalaciones
210 anteriores de Hardened deberá eliminar cualquier LDFLAGS o CFLAGS
211 usadas para activar PIE/SSP. También, se debe tener en cuenta que
212 el paquete <c>hardened-gcc</c> es ahora obsoleto y debe ser
213 desinstalado (la versión 5.0 es una paquete inútil). Para obtener
214 la versión actual de GCC, añada <c>USE="hardened pic"</c> a
215 <path>/etc/make.conf</path> si no está usando el perfil hardened.
216 </p>
217
218 <p>
219 Para mantener un conjunto de herramientas consistente, haga
220 <c>emerge binutils gcc virtual/libc</c> en primer lugar.
221 A continuación, reconstruya el sistema completo haciendo
222 <c>emerge -e world</c>. A partir de ese momento todos los paquetes
223 se construirán usando las tecnologías PIE/SSP.
224 </p>
225
226 <warn>
227 Tanto PIE como SSP pueden causar algún tipo de problema con algunos
228 paquetes. Si encuentra alguno que falle al compilar, por favor,
229 informe de una nueva y detallada incidencia incluyendo los datos
230 de la compilación que ha fallado y la salida de <c>emerge info</c> en
231 <uri>http://bugs.gentoo.org/</uri>.
232 </warn>
233
234 <p>
235 Probablemente quiera también hacer emerge de pax-utils.
236 A menudo, si un fichero ELF tiene relocalizaciones ejecutables en
237 el segmento de texto, éstas pueden causarnos problemas.
238 scanelf -BRylptq
239 </p>
240
241 </body>
242 </section>
243 </chapter>
244
245 <chapter>
246 <title>Cuando las cosas no van como debieran (PaX Control)</title>
247 <section>
248 <body>
249
250 <p>
251 Algunas aplicaciones legítimas intentarán generar código en tiempo de
252 ejecución, el cual se ejecuta fuera de memoria. Naturalmente, PaX no
253 lo permitirá y terminará las aplicaciones que intenten hacerlo.
254 </p>
255
256 <note>
257 La más notable de este tipo de aplicaciones es XFree/Xorg, mplayer y
258 herramientas multimedia basadas en xine-lib. La forma más fácil de
259 evitar estos problemas es desactivar las protecciones de PaX.
260 </note>
261
262 <p>
263 Afortunadamente existe una utilidad para activar o desactivar las
264 protecciones para un ejecutable: <e>paxctl</e>. Al igual que otros
265 paquetes en Gentoo, instale paxctl mediante el comando
266 <c>emerge paxctl</c>. El uso de esta utilidad se muestra mediante
267 <c>paxctl -h</c>.
268 </p>
269
270 <note>
271 Si tiene una versión antigua de binutils, necesitará usar <e>chpax</e>,
272 el cual edita las marcas de PaX con el formato antiguo. El uso de chpax
273 es muy parecido al de paxctl. Esto también requiere el soporte de marcas
274 construido en su núcleo.
275 Las nuevas versiones de paxctl hacen chpax obsoleto.
276 </note>
277
278 <pre caption="paxctl -h">
279 usage: paxctl &lt;options&gt; &lt;files&gt;
280
281 options:
282 -p: disable PAGEEXEC -P: enable PAGEEXEC
283 -e: disable EMUTRMAP -E: enable EMUTRMAP
284 -m: disable MPROTECT -M: enable MPROTECT
285 -r: disable RANDMMAP -R: enable RANDMMAP
286 -x: disable RANDEXEC -X: enable RANDEXEC
287 -s: disable SEGMEXEC -S: enable SEGMEXEC
288
289 -v: view flags -z: restore default flags
290 -q: suppress error messages -Q: report flags in short format flags
291 </pre>
292
293 <p>
294 La primera opción que se suele usar es <c>-v</c>, la cual muestra los
295 ajustes realizados en un binario en particular.
296 </p>
297
298 <pre caption="paxctl -v">
299 shell user # paxctl -v /usr/bin/Xorg
300 PaX control v0.2
301 Copyright 2004 PaX Team &lt;pageexec@××××××××.hu&gt;
302
303 - PaX flags: -p-sM--x-eR- [/usr/bin/Xorg]
304 PAGEEXEC is disabled
305 SEGMEXEC is disabled
306 MPROTECT is enabled
307 RANDEXEC is disabled
308 EMUTRAMP is disabled
309 RANDMMAP is enabled
310 </pre>
311
312 <p>
313 Esto muestra un binario XFree con todas las protecciones deshabilitadas.
314 </p>
315
316 <p>
317 Para activar un ajuste en un binario, es útil la opción <c>-z</c> ya que
318 restaura el valor por defecto de ese ajuste.
319 </p>
320
321 <p>
322 Para desactivar las protecciones en Xorg, ejecute
323 <c>paxctl -zpeMRxs /usr/bin/Xorg</c>.
324 </p>
325
326 <p>
327 Puede probar a activar/desactivar varias protecciones para comprobar
328 cuáles son las mínimas para poder trabajar. A menudo se comprueba que
329 son necesarias las combinaciones -m -sp.
330 </p>
331
332 </body>
333 </section>
334 </chapter>
335 </guide>