Como estudiante de biología de nivel A, he pensado mucho sobre los vínculos con la biología y la informática, y algo que a menudo me viene a la mente son los vínculos entre la inmunología y la seguridad / virus informáticos. Por ejemplo, yo (al leer cómo funcionan los programas antivirus) decidí que la forma en que el sistema inmunitario maneja los virus es muy similar a los programas antivirus (ambos contienen una base de datos de definiciones de virus (ya sea,células de memoria o firmas de virus) y ambas contienen un método de extrapolación). Para mí, la progresión natural era pensar en la evolución natural de los virus en comparación con los virus informáticos. Entonces a mi pregunta:
¿Sería posible que los virus informáticos evolucionen en nuevas cepas que posean nuevos "genes" que les permitan realizar su trabajo?
Parece que este tipo de pensamiento solo podría aplicarse realmente a los virus, es decir, su calculadora antigua nunca estará sujeta a una "selección natural". Pero por lo que yo sé virus no mutan a sí mismos, a fin de evitar los programas anti-virus, pero se supone que éstos son más bien controlados, por lo que el virus podría no aumentar de mutaciones no beneficiosos que de otro modo podría hacerla inútil. Si la verdadera naturaleza aleatoria de la naturaleza pudiera aplicarse a los virus, ¿alguna vez podrían desarrollar una nueva funcionalidad, como por ejemplo convertirse en un retrovirus que se haga cargo de un programa antivirus o mutar para incluir un nuevo código que le permita derribar un cortafuegos? ¿Estarían involucrados en algún tipo de selección computacional natural, donde los virus más fuertes sobreviven y transmiten sus genes beneficiosos?
fuente
Respuestas:
Supongo que sería posible en teoría, pero el malware informático (virus, gusanos, etc.) generalmente no funciona de esta manera hoy en día, y hay buenas razones por las cuales están escritos de la manera en que están.
Es posible que le interese el código polimórfico , que cambia para evadir la detección. Cambia la secuencia de instrucciones a alguna otra secuencia de instrucciones que tendrá el mismo efecto, pero tendrá un binario diferente. Esto ayuda a evadir la detección mediante herramientas antivirus que buscan una "firma" específica de bytes. Sin embargo, esta no es la forma de mutación por la que está preguntando, porque nunca hará que el malware "desarrolle" un comportamiento nuevo que ya no tenía.
Realmente, no hay muchas razones por las cuales los autores de malware querrían o necesitarían su malware para desarrollar una nueva funcionalidad. Pueden construir el comportamiento deseado en el malware. O bien, pueden hacer que el malware se ponga en contacto con un servidor central de "comando y control" para descargar nuevos códigos ("actualizaciones de software" para el malware) periódicamente, para permitirles controlar el comportamiento del malware. Por lo general, los tipos malos determinan sin conexión qué ataques quieren montar y luego implementan esto en el malware o le ordenan al malware que realice esos ataques.
Al resolver los ataques fuera de línea, de antemano, los atacantes pueden probar esos ataques en sus propios sistemas y asegurarse de que funcionen correctamente y no sean detectados. Desde la perspectiva del atacante, esto es mucho mejor que escribir malware que intente cosas al azar con la esperanza de que evolucione a un ataque útil; El malware que intenta cosas aleatorias será mucho más probable que active alarmas y sea detectado.
Por lo tanto, en realidad no hay ninguna necesidad o motivación para usar la "selección natural" en el malware, y normalmente no se ve en la práctica.
fuente
TL; DR: las computadoras no son entidades autónomas como los organismos, con ningún instinto de supervivencia. Simplemente ejecutan instrucciones y, a veces, ejecutan instrucciones que no nos gustan, por lo que ejecutamos otras instrucciones para encontrar las malas.
Empecé a decir esto en los comentarios, pero creo que hay mucho más que decir.
La metáfora del virus está desactualizada y es muy utilizada por personas que no entienden cómo funcionan realmente las computadoras. Tratan de compararlos con los seres vivos, porque entienden a los seres vivos. Aquí hay una mejor metáfora.
Eres un empleado de oficina. Trabajas para una mega corporación gigante, donde no ves a tu jefe. Nunca se te dice por qué haces tu trabajo, ni siquiera sabes lo que hace tu empresa. Todo lo que sabes es que te presentas a trabajar todos los días y sigues tus instrucciones.
Hay una pequeña ventana junto a su escritorio, que es la única forma en que interactúa con alguien más. No ves a nadie, pero a veces salen trozos de papel por la ventana.
Sus instrucciones son siempre las mismas al principio, pero tiene una gran pila de papeles en su escritorio. Algunos de estos contienen instrucciones, algunos contienen cosas que has escrito. A veces, sus instrucciones le dirán que busque un papel diferente y comience a usarlo como sus instrucciones. A veces te dicen que cambies los trozos de papel, los rompas o borres partes de ellos. (Esto es lo que es ejecutar un programa. A veces los programas editan archivos, a veces ejecutan otros programas, etc.)
A veces, sus instrucciones le dicen que espere junto a la ventana para que llegue más papel. El papel puede tener una imagen, puede tener texto o puede tener más instrucciones. (Esto es lo que sucede cuando una computadora espera la entrada del mouse o del teclado, o algo de una red (es decir, archivos)).
No haces nada más que seguir estas instrucciones. Nunca sabes por qué, nunca sabes para quién, pero simplemente lo haces.
A veces, sus instrucciones le dicen que realice múltiples tareas. Tienes un montón de papeles. Establece un temporizador y trabaja en las instrucciones del documento superior durante 5 minutos. Cuando pasa el tiempo, pones ese papel en la parte inferior de la pila y haces lo que sea que esté en el nuevo papel superior. (Así es como las computadoras ejecutan más de un programa a la vez).
Ahora, un día estás esperando un pedazo de papel junto a la ventana, y sabes que cuando lo recibas, harás lo que sea que diga, porque eso es lo que el último pedazo de instrucciones te dijo que hicieras. Lo obtienes, y dice que encuentres algunos de tus papeles principales, con tus instrucciones principales, y los borres. Te dice nuevas instrucciones para poner allí. Estas están haciendo algunas cosas extrañas, como enviar sus archivos por la ventana a lugares extraños o recopilar copias de seguridad de todas las cosas que entran por la ventana. Pero lo importante es que no piensas nada de eso. Son solo más instrucciones. Solo los haces.
Esto es lo que es un virus. Es solo un conjunto de instrucciones que engañas a la computadora para que se ejecute.
Ahora, digamos que eres un trabajador multitarea. Obtiene una de estas instrucciones de borrado en la ventana. Pero estás ocupado, así que lo pones en el fondo de la pila. Miras la parte superior de tu montón de cosas para hacer, y hay un conjunto de instrucciones marcadas como "antivirus". Dice leer todos sus documentos y ver si alguno de ellos se parece a su papel de muestra. Lo haces, y ves que las instrucciones de borrado están en tu lista.
Tenga en cuenta que si comienza a ejecutar las instrucciones de virus, no piensa en nada. Sin un antivirus, no hay ataque, no hay respuesta inmune. No te está atacando, es solo un conjunto de instrucciones. El antivirus es solo una lista TODO que implica mirar sus otras instrucciones y encontrar las que coincidan con un patrón. No está tratando de preservar el sistema en su conjunto, es solo una hoja de papel que alguien le dio desde la ventana, porque evita que otras personas lo engañen para que haga cosas al poner cosas por la ventana.
Ahora, ¿qué pasa con sus virus "en evolución"? Esto es ciertamente posible, pero veamos qué implica esto. Un virus en evolución es básicamente una hoja de instrucciones que le dice cómo hacer más instrucciones. Es un trozo de papel que le indica que borre un montón de sus antiguas instrucciones y luego coloque otras nuevas en su lugar, pero esas nuevas instrucciones también le dicen que borre las viejas instrucciones y que ponga nuevas, y así sucesivamente. Entonces las instrucciones originales no están cambiando. El virus no está mutando. En cambio, solo está haciendo lo que sea que hace, mientras que también deja instrucciones para crear su próxima generación.
Entonces, ¿es posible hacer esto? Si. Pero es extremadamente complicado. Tener un programa que se cambie a sí mismo, pero que esa secuencia de cambio no converja finalmente en un programa que no hace nada útil, es increíblemente complejo.
fuente
La pregunta general es sobre la evolución del malware. La pregunta específica es acerca de los genes. de hecho, existe un mecanismo de algoritmo genético que utiliza "genes" digitales para la optimización y ciertamente podría ser utilizado en virus / malware, aunque hasta ahora no parece haber informes de esto "en la naturaleza". Por otro lado, el malware ha evolucionado durante muchos años de una curiosidad más teórica a una que involucra el cibercrimen organizado, etcétera, con una creciente sofisticación en las amenazas. Hasta ahora, esto es impulsado en gran medida (¡pero no del todo!) por la "evolución" impulsada por el desarrollo humano. En cierto sentido, se puede decir que los virus informáticos generalmente están desarrollando una mayor "inteligencia" o "sofisticación de ataque" con el tiempo.
Aquí hay algunas referencias que estudian la "evolución de / en malware".
Darwin dentro de las máquinas: la evolución del malware y las consecuencias para la seguridad informática Dimitris Iliopoulos, Péter Ször y Christoph Adam
Evolución del malware La evolución del malware y el panorama de amenazas: una revisión de 10 años / Microsoft
Un estudio empírico de la evolución del malware Archit Gupta, Pavan Kuppili, Aditya Akella y Paul Barford
La nueva tendencia en "Malware Evolution" / Raff (estudio de caso de "Carberp")
El gusano Stuxnet es un caso de estudio extraordinario de características / antecedentes de virus avanzados / en evolución. Estados Unidos e Israel desarrollaron el virus informático Flame para frenar los esfuerzos nucleares iraníes, dicen las autoridades
fuente
Lo principal es ponerlo en funcionamiento. Las versiones ingenuas, es decir, tomar una pieza de malware existente con cierto éxito y hacer que cada intento de reproducción tenga mutaciones, probablemente sean letales para el malware en la mayoría de los casos.
Sin embargo, esto no significa que no pueda evolucionar, solo que su propósito original, la replicación, podría verse obstaculizado. Con una tasa de mutación suficientemente baja y suficiente paciencia, finalmente se seleccionarían mutaciones benéficas y benéficas.
Sin embargo, un problema es que evolucionarían. Específicamente, evolucionarían sobre principios darwinianos puros. Si escribo un fragmento de código que se ejecuta, y luego, solo en una ejecución exitosa, copia su archivo binario 1000 veces en 1000 ubicaciones con un error aleatorio o varios en cada uno y los ejecuta a todos, podría parecer que he hecho que la replicación esté supeditada a completar cualquier tarea que se realice con éxito, pero en realidad, la replicación solo depende del programa PENSANDO que ha completado esa tarea con éxito.
Por lo tanto, existe una buena posibilidad de que si se tratara de una pieza de malware, sus dos objetivos básicos, específicamente, replicar y arruinar las computadoras de las personas, estarían en desacuerdo entre sí. Durante un período de tiempo suficientemente largo, probablemente surgiría una mutación que haría que no arruinara tanto sus computadoras, lo que haría que fuera menos importante para el antivirus tratar, por lo tanto, replicar con síntomas mínimos, como es la estrategia temprana más efectiva en pandemia o plaga inc, o hacer que se mienta a sí mismo que incluso logró arruinar sus computadoras, convirtiendo la función primaria en un intrón con bastante rapidez cuando no se ejecuta pero la función de replicación continúa funcionando.
Muchas personas se maravillan de la efectividad del sistema inmune para derrotar todo tipo de amenazas, pero en muchos sentidos, las computadoras son mucho más seguras que las células. Su computadora realmente no puede descargar un virus en primer lugar. Un sistema antivirus perfecto con un usuario perfecto no necesita escanear el disco duro nunca. El código de la computadora no se puede insertar físicamente en el disco duro.
Contraste las células, donde los virus han desarrollado algunos mecanismos FÍSICOS bastante únicos de deslizarse más allá de las defensas de las células. Por ejemplo, algunos virus son totalmente inertes hasta que encuentran una célula, pero luego su estructura física se agarra y perfora violentamente la membrana celular para inyectar su material genético. Esto es como un virus informático que físicamente abre su máquina y agrega nuevo hardware mientras su sistema operativo y antivirus piensan "esto está bien" y ejecutan el código que se encuentra en ese hardware.
Por lo tanto, es bastante probable que cuanto más benigno sea el código, mejor reproducción puede hacer. En algunos casos, puede ser más fácil para la evolución convencer al usuario de que lo ayude que desarrollar un nuevo antivirus. IE se agrega a los archivos que probablemente se compartirán con otros usuarios.
Entonces, en última instancia, me parece más probable que la posibilidad de replicación sea mayor cuando es inútil como una pieza de malware como tal, y probablemente aún mayor si puede convencer al usuario o al código antivirus de que, de hecho, es algo benigno , importante o beneficioso.
Otra cosa es que la mayoría de las máquinas tienen operaciones no válidas, por lo que es probable que las ediciones aleatorias del código no solo eviten la funcionalidad, sino que también hagan que el código se bloquee, incluso con memoria desprotegida.
fuente
Imagine programas informáticos no maliciosos como los microbios en su intestino. Imagine un virus informático como una bacteria infecciosa.
La computadora no puede distinguir la diferencia entre las bacterias buenas y las malas, a diferencia del sistema inmune.
Sería simple hacer un programa auto modificable, pero el 99% de las mutaciones darían lugar a un error. Un programa es como una lista de instrucciones, y las computadoras son muy estrictas acerca de cómo se escriben esas instrucciones. Digamos que tenemos este programa:
Una mutación puede resultar en este programa:
Aunque está claro para el ser humano que significa "maní", eso no está claro para la computadora. Podría escribir un script simple que se mute a sí mismo en Python, pero la mayoría de las veces las mutaciones harán que falle.
Estaría muy interesado en un virus que mutara y pudiera permanecer vivo, incluso podríamos clasificarlo como vida.
Sí, llego tarde a la fiesta, pero este es un tema interesante sobre el que vale la pena escribir.
fuente