¿Por qué la versión de 64 bits de Windows es más segura?
Desde hace años, la mayoría de las PC nuevas se distribuyen con la versión de 64 bits de Windows, tanto Windows 7 como 8. Las versiones de Windows de 64 bits no solo se basan en aprovechar la memoria adicional. También son más seguras que las versiones de 32 bits..
Los sistemas operativos de 64 bits no son inmunes al malware, pero tienen más características de seguridad. Parte de esto también se aplica a las versiones de 64 bits de otros sistemas operativos, como Linux. Los usuarios de Linux obtendrán ventajas de seguridad al cambiar a una versión de 64 bits de su distribución de Linux.
Distribución del espacio de direcciones Aleatorización
ASLR es una característica de seguridad que hace que las ubicaciones de datos de un programa se ordenen aleatoriamente en la memoria. Antes de ASLR, las ubicaciones de datos de un programa en la memoria podían ser predecibles, lo que hacía que los ataques a un programa fueran mucho más fáciles. Con ASLR, un atacante tiene que adivinar la ubicación correcta en la memoria cuando intenta explotar una vulnerabilidad en un programa. Una suposición incorrecta puede hacer que el programa se bloquee, por lo que el atacante no podrá volver a intentarlo.
Esta función de seguridad también se usa en las versiones de 32 bits de Windows y otros sistemas operativos, pero es mucho más potente en las versiones de 64 bits de Windows. Un sistema de 64 bits tiene un espacio de direcciones mucho mayor que un sistema de 32 bits, lo que hace que el ASLR sea mucho más efectivo.
Firma obligatoria del conductor
La versión de 64 bits de Windows impone la firma obligatoria del controlador. Todo el código del conductor en el sistema debe tener una firma digital. Esto incluye controladores de dispositivos en modo kernel y controladores en modo usuario, como controladores de impresora.
La firma obligatoria de controladores evita que los controladores sin firma proporcionados por el malware se ejecuten en el sistema. Los autores de malware deberán pasar por alto de algún modo el proceso de firma a través de un rootkit de tiempo de inicio o gestionar firmar los controladores infectados con un certificado válido robado a un desarrollador de controladores legítimo. Esto hace que sea más difícil para los controladores infectados ejecutarse en el sistema..
La firma de controladores también se podría imponer en versiones de Windows de 32 bits, pero no lo es, es probable que continúe la compatibilidad con los controladores antiguos de 32 bits que pueden no haber sido firmados.
Para deshabilitar la firma de controladores durante el desarrollo en ediciones de 64 bits de Windows, tendría que adjuntar un depurador de kernel o usar una opción de inicio especial que no persista en los reinicios del sistema.
Protección del parche del kernel
KPP, también conocido como PatchGuard, es una característica de seguridad que solo se encuentra en las versiones de 64 bits de Windows. PatchGuard evita que el software, incluso los controladores que se ejecutan en modo kernel, apliquen parches al kernel de Windows. Esto siempre ha sido incompatible, pero es técnicamente posible en versiones de Windows de 32 bits. Algunos programas antivirus de 32 bits han implementado sus medidas de protección antivirus utilizando parches del kernel.
PatchGuard evita que los controladores de dispositivos apliquen parches al kernel. Por ejemplo, PatchGuard evita que los rootkits modifiquen el kernel de Windows para integrarse en el sistema operativo. Si se detecta un intento de parcheo del kernel, Windows se cerrará de inmediato con una pantalla azul o se reiniciará.
Esta protección podría implementarse en la versión de 32 bits de Windows, pero no lo ha sido, probablemente para una compatibilidad continua con el software heredado de 32 bits que depende de este acceso.
Protección de ejecución de datos
DEP permite que un sistema operativo marque ciertas áreas de la memoria como "no ejecutables" al configurar un "bit NX". Las áreas de la memoria que se supone que solo contienen datos no serán ejecutables.
Por ejemplo, en un sistema sin DEP, un atacante podría usar algún tipo de desbordamiento de búfer para escribir código en una región de la memoria de una aplicación. Este código podría entonces ser ejecutado. Con DEP, el atacante podría escribir código en una región de la memoria de la aplicación, pero esta región se marcaría como no ejecutable y no podría ejecutarse, lo que detendría el ataque.
Los sistemas operativos de 64 bits tienen DEP basado en hardware. Aunque esto también es compatible con las versiones de Windows de 32 bits si tiene una CPU moderna, la configuración predeterminada es más estricta y DEP siempre está habilitada para programas de 64 bits, mientras que está desactivada de manera predeterminada para programas de 32 bits por razones de compatibilidad.
El diálogo de configuración de DEP en Windows es un poco engañoso. Como indica la documentación de Microsoft, DEP siempre se utiliza para todos los procesos de 64 bits:
“Los ajustes de configuración de DEP del sistema solo se aplican a aplicaciones y procesos de 32 bits cuando se ejecutan en versiones de Windows de 32 o 64 bits. En las versiones de Windows de 64 bits, si el DEP forzado por hardware está disponible, siempre se aplica a los procesos de 64 bits y los espacios de memoria del kernel y no hay ajustes de configuración del sistema para desactivarlo ".
WOW64
Las versiones de Windows de 64 bits ejecutan el software de Windows de 32 bits, pero lo hacen a través de una capa de compatibilidad conocida como WOW64 (Windows de 32 bits en Windows de 64 bits). Esta capa de compatibilidad impone algunas restricciones en estos programas de 32 bits, lo que puede impedir que el malware de 32 bits funcione correctamente. El malware de 32 bits tampoco podrá ejecutarse en modo kernel (solo los programas de 64 bits pueden hacerlo en un sistema operativo de 64 bits), por lo que esto puede evitar que algunos malware de 32 bits más antiguos funcionen correctamente. Por ejemplo, si tiene un CD de audio antiguo con el rootkit de Sony, no podrá instalarse en una versión de Windows de 64 bits..
Las versiones de Windows de 64 bits también eliminan la compatibilidad con programas antiguos de 16 bits. Además de evitar que se ejecuten virus antiguos de 16 bits, esto también obligará a las compañías a actualizar sus antiguos programas de 16 bits que podrían ser vulnerables y no parcheados..
Dado el grado de difusión de las versiones de Windows de 64 bits, es probable que el nuevo malware sea capaz de ejecutarse en Windows de 64 bits. Sin embargo, la falta de compatibilidad puede ayudar a proteger contra el malware antiguo en la naturaleza..
A menos que use programas antiguos de 16 bits, hardware antiguo que solo ofrece controladores de 32 bits o una computadora con una CPU de 32 bits bastante antigua, debe usar la versión de Windows de 64 bits. Si no está seguro de qué versión está utilizando pero tiene una computadora moderna con Windows 7 u 8, es probable que esté usando la edición de 64 bits..
Por supuesto, ninguna de estas características de seguridad es infalible, y una versión de Windows de 64 bits sigue siendo vulnerable al malware. Sin embargo, las versiones de 64 bits de Windows son definitivamente más seguras.
Crédito de la imagen: William Hook en Flickr