stringtranslate.com

Diversidad de software

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

Áreas

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

Las principales áreas son:

Técnicas

Transformaciones de código

Es posible amplificar la diversidad del software a través de procesos de transformación automatizados que crean diversidad sintética. Un "multicompilador" 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 la salida. [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 tienen como objetivo producir cantidades masivas de diferentes versiones 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 agregar aleatoriedad en ciertos procesos centrales, como la carga de memoria. La aleatoriedad implica que todas las versiones del mismo programa se ejecutan de manera 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]

Trabajos recientes sobre diversidad automática de software exploran diferentes formas de transformaciones de programas que varían ligeramente el comportamiento de los programas. El objetivo es convertir un programa 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 solo ataque que podría bloquear todos los programas al mismo tiempo.

Los operadores de transformación incluyen: [11]

Diversidad natural de 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 faltas accidentales y deliberadas". Procedimientos Seguridad, confiabilidad y garantía informática: de las necesidades a las soluciones (Nº de catálogo 98EX358) . Computación IEEE. Soc. págs. 171–181. CiteSeerX  10.1.1.27.9420 . doi :10.1109/csda.1998.798364. ISBN 978-0769503370. S2CID  5597924.
  2. ^ Knight, John C. (2011), "Diversidad", Computación histórica y confiable , Apuntes de conferencias sobre informática, vol. 6875, Springer Berlin Heidelberg, págs. 298–312, doi :10.1007/978-3-642-24541-1_23, ISBN 9783642245404
  3. ^ Justo, James E.; Cornwell, Mark (29 de octubre de 2004). "Revisión y análisis de diversidad sintética para romper monocultivos". Actas del taller de ACM de 2004 sobre códigos maliciosos rápidos . ACM. págs. 23–32. CiteSeerX 10.1.1.76.3691 . doi :10.1145/1029618.1029623. ISBN  978-1581139709. S2CID  358885.
  4. ^ Schaefer, Ina; Rabiser, Rick; Clarke, Dave; Bettini, Lorenzo; Benavides, David; Botterweck, Goetz; Pathak, Animesh; Trujillo, Salvador; Villela, Karina (28 de julio de 2012). "Diversidad de software: estado del arte y perspectivas". Revista Internacional sobre Herramientas de Software para la 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 automatizado". Galois, Inc. 2018-09-10 . 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, S2CID  189007860
  7. ^ Cohen, Federico B. (1993). "Protección del sistema operativo a través de la evolución del programa" (PDF) . Computadoras y seguridad . 12 (6): 565–584. doi :10.1016/0167-4048(93)90054-9. ISSN  0167-4048.
  8. ^ Chenxi Wang; Davidson, J.; colina, J.; Caballero, J. (2001). "Protección de mecanismos de supervivencia basados ​​en software". Actas de la Conferencia internacional sobre sistemas y redes confiables (PDF) . Computación IEEE. Soc. págs. 193-202. CiteSeerX 10.1.1.1.7416 . doi :10.1109/dsn.2001.941405. ISBN  978-0769511016. S2CID  15860593. Archivado (PDF) desde el original el 30 de abril de 2017.
  9. ^ Forrest, S.; Somayaji, A.; Ackley, DH (1997). "Construcción de diversos sistemas informáticos". Actas. El sexto taller sobre temas de actualidad en sistemas operativos (n.º de catálogo 97TB100133) (PDF) . Computación IEEE. Soc. Prensa. págs. 67–72. CiteSeerX 10.1.1.131.3961 . doi :10.1109/fotos.1997.595185. ISBN  978-0818678349. S2CID  1332487.
  10. ^ Schulte, Eric; Fry, Zachary P.; Rápido, 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. 2018-09-10 . 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