On 2014-06-07 17:00, Juan Erbes wrote:
El día 7 de junio de 2014, 8:43, Carlos E. R. <> escribió:
IP es "instruction pointer", el puntero de instrucciones o contador de programa. Nada que ver con redes.
Nada que ver con las redes???
Lo de IP no, desde luego.
Y esto que es???:
login: [22159.145146] kernel tried to execute NX-protected page - exploit attempt? (uid: 1018)
Mira en http://en.wikipedia.org/wiki/NX_bit lo que es. :-) "The NX bit, which stands for No-eXecute, is a technology used in CPUs to segregate areas of memory for use by either storage of processor instructions (code) or for storage of data, a feature normally only found in Harvard architecture processors. However, the NX bit is being increasingly used in conventional von Neumann architecture processors, for security reasons." En español e incompleto: http://es.wikipedia.org/wiki/Bit_NX "NX significa No eXecute (no ejecutar). Es una tecnología utilizada en CPUs para separar las áreas de memoria usadas para albergar las instrucciones del procesador (código) y las de almacenamiento de datos. Cualquier sección de memoria designada con el atributo NX significa que sólo se usa para datos, por lo tanto las instrucciones del procesador no pueden ni deben residir ahí. Es una técnica utilizada para prevenir que cierto tipo de software malicioso tome el control de la máquina insertando su código en el área de almacenamiento de datos de otro programa y ejecute su propio código desde dentro de esta sección; esto se conoce como desbordamiento de búfer, y NX puede prevenirlo." La idea es marcar una zona de memoria como no ejecutable. Si un programa trata de ejecutar un area no ejecutable, puede ser un error de programador, o puede ser un ataque intencionado, normalmente local. Suponte que un programa (troyano) carga un array de datos en memoria (para lo cual tiene permiso absoluto, por supuesto). Pero esos datos también pueden ser un programa: basta con cargar como datos la secuencia de bytes que quieras. Luego el programa, de repente, hace un salto a ejecutar esos datos, que ahora se interpretan como código... un código que no ha instalado el administrador de sistema, que puede hacer algo malvado... o no. ¿Quien sabe? Mejor impedirlo. Bueno, con ese bit resulta imposible tratar de ejecutar esos datos. Cuando lo intentas, salta esa excepción, y el programa se aborta. Claro, si abortas alguna pieza de programa importante, pues puedes echar abajo el sistema entero, depende de lo crucial que sea ese programa... Puede ocurrir que haya un programa que ha estado funcionando bien durante años. Pero si el sistema operativo activa ese bit del procesador, el programa aborta con esa excepción porque tiene ese error de programación que nunca se detectó. Así que de repente no funciona. Y si está en el arranque del sistema, este no arranca. Uno de los bugzillas que he visto con ese error en el google afectaba al grub. -- Cheers / Saludos, Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar)