optimización de código y seguridad?

3

Mi experiencia es en compiladores / optimización de código, y me pregunto si podría haber alguna aplicación interesante de especialización de código de tiempo de ejecución extremadamente agresiva para mejorar las aplicaciones de seguridad. Entonces: supongamos que tenemos un compilador JIT que puede realizar optimizaciones de código agresivas basadas en constantes de tiempo de ejecución. (Estos valores de tiempo de ejecución no se conocen en el momento de la compilación, por lo que las optimizaciones correspondientes no se pueden realizar en el momento de la compilación). ¿Hay problemas interesantes relacionados con la seguridad que podrían beneficiarse de algo como esto?

    
pregunta debray 08.05.2014 - 00:47
fuente

1 respuesta

0

Es probable que esto sea inverosímil (y ciertamente especulativo), pero publicaré para estimular las ideas en otros:

En el diseño de software tradicional, la dependencia de las rutas de código era clara y no se determinó dinámicamente. Como tal, cualquier análisis de seguridad [estático] que se basó en el análisis de rastreo de fuente-sumidero fue "fácil" de hacer. (Por ejemplo, encontrar una ruta de código a través del análisis estático que utiliza la entrada del usuario en un SQL sin haber pasado por una función de limpieza; o la entrada del usuario reflejada en la apertura de la salida a XSS; o la contraseña para registrar archivos en texto simple).

Sin embargo, con los patrones de diseño modernos como IoC y la naturaleza dinámica de algunos lenguajes como JavaScript, el análisis de fuente-fuente se vuelve intrínsecamente "difícil", ya que las fuentes y los sumideros no están [aún] conectados en tiempo de compilación.

Una cosa que podría hacer un compilador JIT, al menos en teoría, es identificar las nuevas rutas de fuente-sumidero que se crean, y realizar al menos un análisis de tipo rudimentario, o quizás generar un evento que una aplicación de monitoreo de seguridad podría interceptar y realizar un análisis en profundidad en tiempo de ejecución.

El obstáculo aquí no es solo la identificación de fuente-sumidero basada en JIT de manera económica, sino también que el análisis de tipo de seguridad que se encuentra sobre [actualmente] es prohibitivamente lento (AFAIK). Pero tal vez se pueda realizar un análisis de tipo rudimentario en tiempo de ejecución a un costo de rendimiento razonable.

    
respondido por el LB2 08.05.2014 - 01:20
fuente

Lea otras preguntas en las etiquetas