Propósito de la verificación de integridad en los instaladores

1

Hay muchos programas disponibles (como NSIS) que generan instaladores a partir de una colección de archivos. Una cosa que he notado es que los instaladores producidos por estos programas tienen algún tipo de comprobación de integridad incorporado.

Por un momento, pensé que esto tal vez estaba pensado no como medida de seguridad, sino solo para proteger contra una descarga dañada. Pero, si se trata de una descarga dañada, el instalador ni siquiera se ejecutará, ya que la sección de recursos está dañada; e incluso si se ejecuta, la extracción de los datos comprimidos fallará inevitablemente.

La verificación de integridad es, entonces, quizás una medida de seguridad. Sin embargo, estoy realmente en duda con respecto a la efectividad de tal medida. Un atacante capaz de MITM la descarga podría deshabilitar fácilmente la verificación de integridad para propósitos de trojanización (si no sirve un binario completamente diferente).

Entonces, ¿por qué se implementa tal medida de seguridad?

    
pregunta user2064000 23.06.2014 - 16:47
fuente

2 respuestas

3

La extracción de datos comprimidos no "inevitablemente" fallará. Los errores a menudo se detectarán, y eso es porque la mayoría de los formatos de compresión ya incluyen sumas de comprobación. La mayoría, pero no todos. Por ejemplo, el algoritmo de compresión DEFLATE , por sí solo, no incluye suma de comprobación. Las sumas de comprobación se agregan en alguna capa externa, por ejemplo. cuando se usa DEFLATE para un archivo GZIP (se usa CRC32). Un instalador puede decidir empaquetar todo con una única comprobación de integridad general para todo el archivo, evitando así tales sumas de comprobación en elementos individuales.

Si lo prefiere, siempre que un formato de compresión incluya una suma de comprobación, esa suma de comprobación es, de hecho, una "característica de integridad". Dado que una mala RAM puede cambiar un poco en la posición incorrecta, algún tipo de suma de control es una precaución sensata al distribuir software (conocía a un enrutador CISCO que estaba modificando bits en paquetes IP por tal motivo; las sumas de control TCP no siempre detectaban el problema por lo tanto, es probable que cualquier archivo de más de 12 megabytes o más se dañe cuando se transfiera a través de ese enrutador).

Las sumas de comprobación no pueden proteger contra alteraciones maliciosas, ya que quien realice la modificación también puede volver a calcular los valores de suma de comprobación correspondientes. Si desea una verificación de integridad que funcione contra atacantes , entonces necesita los cañones pesados, es decir, firmas digitales .

    
respondido por el Thomas Pornin 23.06.2014 - 19:23
fuente
0

Me ha ocurrido más de una vez que se interrumpió una descarga y, por lo tanto, estaba incompleta, pero la verificación de integridad aún se ha ejecutado. Parece que la comprobación de integridad se realiza antes de desembalar.

Como medida de seguridad, no veo qué valor tendría, ya que es casi seguro que un atacante sobrescriba todo el programa y no solo una pequeña parte de él.

    
respondido por el user2428118 23.06.2014 - 16:56
fuente

Lea otras preguntas en las etiquetas