Computación parasitaria
La computación parasitaria es una técnica de programación en la que un programa en interacciones normales autorizadas con otro programa logra que el otro programa realice cálculos de naturaleza compleja. Es, en cierto sentido, una vulnerabilidad de seguridad en la que el programa que implementa la computación parásita no tiene autoridad para consumir los recursos disponibles para el otro programa.
Fue propuesto por primera vez por Albert-Laszlo Barabasi, Vincent W. Freeh, Hawoong Jeong & Jay B. Brockman de la Universidad de Notre Dame, Indiana, EE. UU., en 2001. El ejemplo dado por el artículo original era el de dos computadoras que se comunicaban a través de Internet, disfrazadas de una sesión de comunicaciones estándar. La primera computadora está tratando de resolver un problema 3-SAT grande y extremadamente difícil; ha descompuesto el problema 3-SAT original en un número considerable de problemas más pequeños. Luego, cada uno de estos problemas más pequeños se codifica como una relación entre una suma de verificación y un paquete, de modo que si la suma de verificación es precisa o no, también es la respuesta a ese problema más pequeño. Luego, el paquete/la suma de verificación se envía a otra computadora. Esta computadora, como parte de recibir el paquete y decidir si es válido y está bien formado, creará una suma de verificación del paquete y verá si es idéntica a la suma de verificación proporcionada. Si la suma de verificación no es válida, solicitará un nuevo paquete de la computadora original. La computadora original ahora conoce la respuesta a ese problema más pequeño en función de la respuesta de la segunda computadora y puede transmitir un paquete nuevo que incorpore un subproblema diferente. Eventualmente, todos los subproblemas serán respondidos y la respuesta final se calculará fácilmente.
El ejemplo se basa en una explotación del Protocolo de control de transmisión (TCP), utilizado para las conexiones a Internet, por lo que, al final, la(s) computadora(s) de destino no saben que han realizado cálculos en beneficio de la otra computadora, o incluso hecho algo además de tener una sesión normal de TCP/IP.
La prueba de concepto es obviamente extremadamente ineficiente ya que la cantidad de cómputo necesaria para simplemente enviar los paquetes en primer lugar excede fácilmente los cómputos extraídos del otro programa; el problema de 3-SAT se resolvería mucho más rápidamente si se analizara localmente. Además, en la práctica, los paquetes probablemente tendrían que ser retransmitidos de vez en cuando cuando ocurren errores reales de suma de comprobación y problemas de red. Sin embargo, la computación parásita a nivel de sumas de verificación es una demostración del concepto. Los autores sugieren que a medida que uno avanza en la pila de aplicaciones, podría llegar un punto en el que el parásito obtenga una ganancia computacional neta; tal vez uno podría desglosar problemas interesantes en consultas de protocolos criptográficos complejos utilizando claves públicas. Si hubiera una ganancia neta, en teoría se podría usar una cantidad de nodos de control para los cuales muchos hosts en Internet forman una red informática distribuida sin darse cuenta.
Estudiantes de la Universidad de Ciencias Aplicadas de Berna, Suiza, ampliaron este concepto a una máquina virtual programable en 2002.
Minería parasitaria de Bitcoin
En 2011, los proveedores de software de seguridad detectaron un grupo de programas maliciosos que utilizaban unidades de procesamiento de gráficos (GPU) de alto rendimiento para la minería de Bitcoin, una cadena de tareas informáticas intensivas para generar unidades de criptomonedas. Estos programas invadieron los sistemas y se ejecutaron como otro malware, en lugar de explotar los protocolos subyacentes. Las poderosas GPU en las computadoras personales se crearon originalmente principalmente para juegos, pero con interfaces como CUDA y OpenCL, se volvieron utilizables para tareas informáticas generales, superando el rendimiento de una Unidad Central de Procesamiento (CPU) varias veces. Hasta entonces, la computación parasitaria carecía de recursos y resultados informáticos potentes para convertir fácilmente en dinero en efectivo para los delincuentes.
En enero de 2014, el malware de minería de Bitcoin se distribuyó a través de un exploit de Java mediante anuncios comprometidos que se mostraban en el sitio web de Yahoo. En 2013, el malware de minería de Bitcoin se instaló como adware junto con otras descargas, y algunos señalaron la funcionalidad en extensos textos de EULA. El malware, incluida la funcionalidad de minería de Bitcoin, también se descargó y activó en secreto mediante el software publicitario incluido con las descargas regulares de software, ambos distribuidos por empresas relacionadas en Israel y Ucrania.
La extracción de Bitcoin por parte de computadoras personales infectadas con malware está siendo desafiada por hardware dedicado, como plataformas FPGA y ASIC, que son más eficientes en términos de consumo de energía y, por lo tanto, pueden tener costos más bajos que el robo de recursos informáticos.
Contenido relacionado
Servidor de archivos
Condición previa
Problema de marco