¿Puede escribir virus relacionados con el sistema operativo usando lenguajes de alto nivel como Python?

0

Es un hecho bien conocido que los virus relacionados con el sistema operativo se escriben comúnmente en lenguajes de bajo nivel como C o C ++ que requieren acceso directo al núcleo de la CPU. Me pregunto si es posible que los virus se puedan escribir en alto. lenguajes de nivel como Python o Java que no tienen tanto acceso al núcleo de la CPU ???

    
pregunta Computernerd 16.04.2014 - 17:36
fuente

3 respuestas

10

Sí, el malware existe en todo tipo de idiomas. Sin embargo, a menudo, algunos de los fragmentos más críticos de muchas explotaciones se escriben no en C o C ++, sino directamente en código de máquina, y se ensamblan cuidadosamente con la mano. Este puede ser el único que desea obtener el tamaño y la alineación correctos para lo que estás tratando de hacer.

La distancia del "metal" es una cuestión de abstracciones y suposiciones.

Escribir en código de máquina no utiliza abstracciones y no crea suposiciones.

Escribir en ensamblaje proporciona cierto nivel de abstracción, pero ahora estás tratando con las suposiciones hechas por el ensamblador. Por lo tanto, es posible que el código no esté alineado como usted desea, pero las instrucciones serán predecibles.

Escribir en C agrega otra capa de abstracción, pero ahora estás limitado al tipo de código de ensamblaje que producirá el compilador de C.

Escribir en C ++ agrega bastante abstracción, especialmente con respecto a la administración de memoria y las llamadas de función. Ahora su código puede ser reorganizado un poco, y puede obtener más código en su binario que el que realmente escribió. Dependiendo de su objetivo, esto no suele ser un problema, pero muchos programas (el kernel de Linux, pero también otros) evitan C ++ porque no quieren ninguna impredecibilidad.

Escribir en Python cambia las cosas bastante significativamente. Ahora ni siquiera está produciendo código de máquina, está produciendo instrucciones para un intérprete. La forma en que se ejecuta el código depende de la versión y la compilación del intérprete instalado, y sus suposiciones deben ajustarse en consecuencia. Solo se puede usar donde está instalado un intérprete de python, y solo en contextos donde se puede invocar a python.

Usted utiliza la herramienta para el trabajo. Muchas vulnerabilidades involucran incluso el código Bash, que es mucho menos capaz que Python, pero es simple y está disponible. Si realmente sabes lo que estás haciendo, entonces esta no es una pregunta que merezca la pena reflexionar; utiliza la herramienta que obtiene el resultado que está buscando.

    
respondido por el tylerl 16.04.2014 - 19:08
fuente
3

Puedes escribir un virus en cualquier idioma. La condición es la vulnerabilidad del sistema operativo que se está explotando y las herramientas de idioma que están disponibles para aprovecharla.

Los lenguajes de "alto nivel" no están "más allá" del kernel del sistema operativo, sino que están más abstraídos del kernel desde el punto de vista del programador. Incluso Python puede acceder a sockets de red, direcciones de memoria y manipular buffers.

    
respondido por el schroeder 16.04.2014 - 17:47
fuente
0

Si por "virus" quiere decir "código de auto-replicación", por supuesto, puede escribirse en cualquier idioma.

Érase una vez, escribí un virus que se propagó a través de Pascal como un experimento educativo para mostrar este punto, en realidad. Consistía en una subrutina ejecutable. Lo que hizo la subrutina fue:

  1. busque archivos en el disco local con una extensión de .pas
  2. copie el archivo .pas en .clean, luego abra el archivo .pas para editarlo
  3. verifique que el archivo .pas no tenga una subrutina llamada "infectar", o salga
  4. encuentre una subrutina grande y agregue una llamada a "infectar".
  5. agregarse al final, como una subrutina llamada "infectar".

Cuando se ejecutó, se copió a sí mismo en cualquier archivo .pas que encontró localmente, y luego, si ese archivo fue a otra ubicación y fue infectado, se propagaría a archivos adicionales.

Era grande, ruidoso y obvio (esa era una característica, en realidad) y escribir en un lenguaje de alto nivel probablemente tendrá muchas de las mismas características.

Creo que si quisiera un gusano, probablemente lo escribiría en perl. Pero entonces, escribo todo en perl.

    
respondido por el Robert Weaver 29.04.2015 - 17:01
fuente

Lea otras preguntas en las etiquetas