Verificación de la "integridad" del programa residente antes de cada ejecución

1

Soy consciente de que los sistemas operativos verifican la autenticidad & integridad de un archivo de programa al instalar un programa en un sistema.

Mi pregunta es, ¿los sistemas operativos populares proporcionan una forma de verificar (y advertir al usuario si el malware en el sistema lo modifica o modifica) la integridad de un programa que reside en un disco, cada vez que un usuario lo ejecuta? El contenido de mi programa estaría firmado y llevaría un certificado de una CA válida.

También soy consciente de que el malware podría reemplazar todo el programa y eliminar cualquier código que solicite al sistema operativo que ejecute una verificación de integridad. Pero me interesa solo detectar ataques, como un ataque de DLL, donde no se reemplaza / modifica todo el programa.

    
pregunta user3272983 24.05.2018 - 07:59
fuente

1 respuesta

1

Linux admite IMA , la Arquitectura de medición de integridad. Esta es una característica que almacena un hash criptográfico de cada archivo en atributos extendidos en el sistema de archivos. Cuando se carga una página de un archivo, todo el archivo se lee, se revisa y se verifica el hash. El hash es parte de un árbol hash, verificando los hash hasta un solo hash de confianza. Este hash raíz se puede firmar o proteger en el TPM del sistema. Los intentos de cargar un archivo que ha sido modificado devolverán -EIO .

Debido a que todo el archivo debe leerse necesariamente para calcular su hash, una optimización del rendimiento denominada paginación por demanda , que solo carga las páginas solicitadas en la memoria en lugar de todo el archivo, ya no funcionará. Esto puede aumentar el tiempo de inicio para ejecutables grandes o ejecutables que se vinculan con varias bibliotecas grandes, especialmente en discos lentos.

    
respondido por el forest 15.06.2018 - 23:50
fuente

Lea otras preguntas en las etiquetas