Riesgos asociados con la compilación de proyectos de código abierto

2

Después de leer esta pregunta sobre si es más seguro descargar y compilar la fuente para un proyecto de código abierto o descargar y ejecutar el instalador, pensé en otra posible vulnerabilidad: es posible que un compilador pueda ser diseñado para dejar una puerta trasera ( u otro malware) dentro de un archivo que produce? En otras palabras, ¿podría comprometerse el compilador utilizado para compilar el código fuente? La única forma en que se podría atrapar tal cosa sería desensamblar un ejecutable compilado y comparar el código con el original. Esto sería muy difícil.

También necesitarías un compilador preexistente para compilar un compilador de código abierto. ¿Es teóricamente posible tener un sistema que sea todo software de código abierto y el propietario de la computadora (o un grupo de personas de confianza) haya revisado el código de los programas utilizados?

    
pregunta Celeritas 18.04.2014 - 14:03
fuente

2 respuestas

1

Necesitas mirar la cadena de confianza. ¿Confía en la fuente del autor del código, si usted o alguien de su confianza revisó el código? ¿Confía en el compilador ? De hecho, es posible que se distribuya un compilador que inserta puertas traseras, código malicioso, etc.

  

Reflexiones de Ken Thompson sobre la confianza en su confianza, su Premio Turing   discurso de aceptación en 1984, fue el primer trabajo importante para describir    problemas de backdoor de caja negra, y señala que la confianza es relativa .

También es posible que su compilador no actúe según lo previsto y podría reducir la inseguridad del código :

  

Cuatro investigadores en Informática e Inteligencia Artificial del MIT   Laboratorio, en un documento que se presentará la próxima semana en la ACM.   Simposio sobre Principios de Sistemas Operativos, analizó el problema de   código inestable de optimización, que es el código que se elimina por un   compilador porque incluye un comportamiento indefinido. Comportamiento indefinido es   código que puede comportarse de forma impredecible, como dividir por cero, nulo   Desreferenciación de punteros y desbordamientos de búfer. A diferencia de otro código,   los escritores de compilación son libres de lidiar con un comportamiento indefinido sin embargo   deseo. En algunos casos, optan por eliminarlo por completo, lo que puede   provocar vulnerabilidades si el código en cuestión contiene seguridad   cheques.

    
respondido por el Eric G 18.04.2014 - 15:22
fuente
1

Sí, el compilador, como cualquier otro programa que ejecuta código en su computadora, puede usarse para agregar instrucciones maliciosas en un programa, antes o también después de compilarlo (eg encabezado de ELF y manipulación de secciones ).

    
respondido por el ack__ 18.04.2014 - 14:29
fuente

Lea otras preguntas en las etiquetas