stringtranslate.com

Diversidad de software

La diversidad del software es un campo de investigación sobre la comprensión y la ingeniería de la diversidad en el contexto del software.

Áreas

Las diferentes áreas de diversidad de software se discuten en encuestas sobre diversidad para tolerancia a fallas [1] o para seguridad. [2] [3]

Las áreas principales son:

Técnicas

Transformaciones de código

Es posible ampliar la diversidad del software mediante procesos de transformación automatizados que crean diversidad sintética. Un "compilador múltiple" es un compilador que incorpora un motor de diversificación. [5] Un entorno de ejecución multivariante (MVEE) es responsable de seleccionar la variante a ejecutar y comparar el resultado. [6]

Fred Cohen fue uno de los primeros promotores de este enfoque. Propuso una serie de transformaciones de reescritura y reordenamiento de código que apuntan a producir cantidades masivas de versiones diferentes de funciones de sistemas operativos. [7] Estas ideas se han desarrollado a lo largo de los años y han llevado a la construcción de esquemas de ofuscación integrados para proteger funciones clave en grandes sistemas de software. [8]

Otro enfoque para aumentar la diversidad de protección del software consiste en añadir aleatoriedad a ciertos procesos centrales, como la carga de memoria. La aleatoriedad implica que todas las versiones del mismo programa se ejecutan de forma diferente entre sí, lo que a su vez crea una diversidad de comportamientos del programa. Esta idea fue propuesta y experimentada inicialmente por Stephanie Forrest y sus colegas. [9]

Los trabajos recientes sobre la diversidad automática de software exploran diferentes formas de transformaciones de programas que varían ligeramente el comportamiento de los programas. El objetivo es hacer evolucionar un programa hasta convertirse en una población de programas diversos que brinden servicios similares a los usuarios, pero con un código diferente. [10] Esta diversidad de código mejora la protección de los usuarios contra un único ataque que podría bloquear todos los programas al mismo tiempo.

Los operadores de transformación incluyen: [11]

Diversidad natural del software

Se sabe que algunas funcionalidades están disponibles en múltiples implementaciones intercambiables. Esta diversidad natural se puede aprovechar; por ejemplo, se ha demostrado que es valiosa para aumentar la seguridad en los sistemas en la nube . [12]

Referencias

  1. ^ Deswarte, Y.; Kanoun, K.; Laprie, J.-C. (julio de 1998). "Diversidad frente a fallos accidentales y deliberados". Actas de la revista Computer Security, Dependability, and Assurance: From Needs to Solutions (Cat. No.98EX358) . IEEE Comput. Soc. pp. 171–181. CiteSeerX  10.1.1.27.9420 . doi :10.1109/csda.1998.798364. ISBN 978-0769503370. Número de identificación del sujeto  5597924.
  2. ^ Knight, John C. (2011), "Diversidad", Computación confiable e histórica , Lecture Notes in Computer Science, vol. 6875, Springer Berlin Heidelberg, págs. 298-312, doi :10.1007/978-3-642-24541-1_23, ISBN 9783642245404
  3. ^ Just, James E.; Cornwell, Mark (29 de octubre de 2004). "Revisión y análisis de la diversidad sintética para romper con los monocultivos". Actas del taller de la ACM de 2004 sobre Rapid malcode . ACM. págs. 23–32. CiteSeerX 10.1.1.76.3691 . doi :10.1145/1029618.1029623. ISBN .  978-1581139709. Número de identificación del sujeto  358885.
  4. ^ Schaefer, Ina; Rabiser, Rick; Clarke, Dave; Bettini, Lorenzo; Benavides, David; Botterweck, Goetz; Pathak, Animesh; Trujillo, Salvador; Villela, Karina (2012-07-28). "Diversidad de software: estado del arte y perspectivas". Revista Internacional de Herramientas de Software para Transferencia de Tecnología . 14 (5): 477–495. CiteSeerX 10.1.1.645.1960 . doi :10.1007/s10009-012-0253-y. ISSN  1433-2779. S2CID  7347285. 
  5. ^ "Protección de aplicaciones con diversidad de software automatizada". Galois, Inc. 10 de septiembre de 2018. Consultado el 12 de febrero de 2019 .
  6. ^ Coppens, Bart; De Sutter, Björn; Volckaert, Stijn (1 de marzo de 2018), "Entornos de ejecución multivariante", La carrera armamentista continua: ataques y defensas con reutilización de código , ACM, págs. 211-258, doi :10.1145/3129743.3129752, ISBN 9781970001839, Número de identificación del sujeto  189007860
  7. ^ Cohen, Frederick B. (1993). "Protección del sistema operativo mediante la evolución del programa" (PDF) . Computers & Security . 12 (6): 565–584. doi :10.1016/0167-4048(93)90054-9. ISSN  0167-4048.
  8. ^ Chenxi Wang; Davidson, J.; Hill, J.; Knight, J. (2001). "Protección de mecanismos de supervivencia basados ​​en software". Actas de la Conferencia Internacional sobre Sistemas y Redes Confiables (PDF) . IEEE Comput. Soc. pp. 193–202. CiteSeerX 10.1.1.1.7416 . doi :10.1109/dsn.2001.941405. ISBN  978-0769511016. S2CID  15860593. Archivado (PDF) del original el 30 de abril de 2017.
  9. ^ Forrest, S.; Somayaji, A.; Ackley, DH (1997). "Construcción de diversos sistemas informáticos". Actas. Sexto taller sobre temas de actualidad en sistemas operativos (Cat. No.97TB100133) (PDF) . IEEE Comput. Soc. Press. págs. 67–72. CiteSeerX 10.1.1.131.3961 . doi :10.1109/hotos.1997.595185. ISBN  978-0818678349.S2CID 1332487  .
  10. ^ Schulte, Eric; Fry, Zachary P.; Fast, Ethan; Weimer, Westley; Forrest, Stephanie (28 de julio de 2013). "Robustez mutacional del software" (PDF) . Programación genética y máquinas evolutivas . 15 (3): 281–312. arXiv : 1204.4224 . doi :10.1007/s10710-013-9195-8. ISSN  1389-2576. S2CID  11520214.
  11. ^ "Diversidad de software automatizado: a veces más no es mejor". Galois, Inc. 10 de septiembre de 2018. Consultado el 12 de febrero de 2019 .
  12. ^ Gorbenko, Anatoliy; Kharchenko, Vyacheslav; Tarasyuk, Olga; Romanovsky, Alexander (2011), Uso de la diversidad en el entorno de implementación basado en la nube para evitar intrusiones , Lecture Notes in Computer Science, vol. 6968, Berlín, Heidelberg: Springer Berlin Heidelberg, págs. 145-155, doi :10.1007/978-3-642-24124-6_14, ISBN 978-3-642-24123-9