# Malware

Un malware, traducido del inglés como programa malicioso, programa maligno, programa malintencionado o código maligno, es cualquier tipo de software que realiza acciones dañinas en un sistema informático de forma intencionada (al contrario software defectuoso) y sin el conocimiento del usuario (al contrario que el software potencialmente no deseado). Ejemplos típicos de estas actividades maliciosas son el robo de información (p. ej. a través de troyanos), dañar o causar un mal funcionamiento del sistema informático (p. ej. mediante Stuxnet, Shamoon o Chernobyl), provocar perjuicios económicos, chantajear a propietarios de los datos de sistemas informáticos (p. ej. con un ransomware), permitir el acceso de usuarios no autorizados, provocar molestias o una combinación de varias de estas actividades.
Antes de que el término «malware» fuera acuñado por Yisrael Radai en 1990, el software maligno se agrupaba bajo el término «virus informático» (un virus es en realidad un tipo de malware).
Para el 2020, un programa malicioso conocido con el nombre de Joker —debido a que el ícono que utiliza al momento de aparecer en tiendas de aplicaciones es el de un payaso— infectó a más de 1700 aplicaciones que tuvieron que ser retiradas de once tiendas de aplicaciones. Sin embargo, este programa malicioso se adapta muy rápidamente a la tienda y se puede ocultar fácilmente.

## Motivaciones

Durante los años 1980 y 1990, se creaba malware como una forma de vandalismo o travesura. Sin embargo, en la actualidad, la principal motivación es la obtención de un beneficio económico. En los últimos años, está apareciendo malware asociado a amenazas persistentes avanzadas, que son campañas fuertemente orquestadas realizadas por grupos asociados a estados o a importantes instancias con poder, cuyo objetivo más habitual es el robo de información estratégica o producir daños en sistemas de organizaciones objetivo.
Las motivaciones más habituales para la creación de programas maliciosos son:
* Experimentar al aprender (p. ej. el Gusano Morris)
* Realizar bromas, provocar molestias y satisfacer el ego del creador. (p. ej. Melissa y los virus joke)
* Producir daños en el sistema informático, ya sea en el hardware (p. ej. con Stuxnet y Chernobyl), en el software (p. ej. Ramen que cambia la página inicial del servidor web), en los datos (p. ej. Shamoon o Narilam que buscan destruir los datos) o provocando la caída de servidor (p. ej. Code Red)
* Provocar una degradación en el funcionamiento del sistema. Por ejemplo, consumiendo ancho de banda de la red o tiempo de CPU.
* Sacar beneficio económico. Por ejemplo:
** Robando información (personal, empresarial, de defensa...) para luego usarla directamente en fraudes o revenderla a terceros. Al tipo de programa malicioso que roba información se le llama programa espía o spyware.
** Chantajeando al propietario del sistema informático (p. ej. el ransomware)
** Presentar publicidad. A este tipo de programa malicioso se le llama adware.
** Mediante la suplantación de identidad. Es el objetivo final de muchos ataques de phishing.
** Tomando control de computadoras para su explotación en el mercado negro. Estas computadoras zombis son usadas luego para, por ejemplo, el envío masivo de correo basura, para alojar datos ilegales como pornografía infantil, distribuir malware (pago por instalación) o para unirse en ataques de denegación de servicio distribuido (DDoS).
Cuando el malware produce pérdidas económicas para el usuario o propietario de un equipo, también se clasifica como crimeware o software criminal. Estos programas suelen estar encaminados al aspecto financiero, la suplantación de personalidad y el espionaje.
Algunos autores distinguen el malware del grayware (también llamados greyware, graynet o greynet), definiendo estos como programas que se instalan sin la autorización del usuario y se comportan de modo tal que resultan molestos o indeseables para el usuario, pero son menos peligrosos que el malware. En esta categoría, por ejemplo, se incluyen los programas publicitarios, marcadores, programas espía, herramientas de acceso remoto y virus de broma. El término grayware comenzó a utilizarse en septiembre del 2004.

## Estructura

Dentro del código del malware podemos tener un código destinado a aportantes distintos tipos de funcionalidades:
* La carga útil, que es la parte del código relacionada con la actividad maliciosa que realiza el malware.
* Opcionalmente, el malware puede tener un código para su distribución automática, se le llama reproducción, que propaga el malware a otras ubicaciones. Así, la infección por el malware puede ser directa, por ejemplo, a través de la ejecución de programas descargados de la red, o a través de esta reproducción automática.
* Usualmente, el malware puede tener un código útil para el usuario destinado a ocultar la funcionalidad verdadera del software. Es típico ocultar el malware en plugins o programas de utilidad básica como salvapantallas. Al malware que tiene este componente se les llama troyanos.
El malware, para realizar alguna de sus funciones, puede hacer uso de programas legítimos aprovechando sus funcionalidades para, por ejemplo, eliminar, bloquear, modificar, copiar datos o alterar el rendimiento de computadoras o redes. A este tipo de programas legítimos se les llama Riskware. Algunos tipos de programas que son riskware son: utilidades de administración remota, clientes IRC, descargadores de archivos, monitorizadores de la actividad de la computadora, utilidades de administración de contraseñas, servidores de Internet (FTP, Web, proxy, telnet, ...). Es habitual que los antivirus permitan detectar el riskware instalado.

## Tipos

Hay distintos tipos de programas maliciosos, aunque estos pueden pertenecer a varios tipos a la vez:
* Virus: secuencia de código malicioso que se aloja en fichero ejecutable (huésped) de manera que al ejecutar el programa también se ejecuta el virus. Tienen las propiedades de propagarse por reproducción dentro de la misma computadora.
* Gusano: programa malicioso capaz de ejecutarse por sí mismo. Se propaga por la red explotando vulnerabilidades para infectar otros equipos.
* Troyano: programa que bajo apariencia inofensiva y útil tiene otra funcionalidad oculta maliciosa. Típicamente, esta funcionalidad suele permitir el control de forma remota del equipo (administración remota) o la instalación de puertas traseras que permitan conexiones no autorizadas al equipo. Además, no se reproducen. Los troyanos conocidos como droppers son usados para empezar la propagación de un gusano inyectándolo dentro de la red local de un usuario.
* Bomba lógica: programas que se activan cuando se da una condición determinada causando daños en el sistema. Las condiciones de ejecución típicas suelen ser que un contador llegue a un valor concreto o que el sistema esté en una hora o fecha concreta.
* Adware: muestran publicidad no solicitada de forma intrusiva provocando molestias. Algunos programas shareware permiten usar el programa de manera gratuita a cambio de mostrar publicidad, en este caso, el usuario acepta la publicidad al instalar el programa. Este tipo de adware no debería ser considerado malware, pero muchas veces los términos de uso no son completamente transparentes y ocultan lo que el programa realmente hace.
* Programa espía (spyware): envía información del equipo a terceros sin que el usuario tenga conocimiento. La información puede ser de cualquier tipo como, por ejemplo, información industrial, datos personales, contraseñas, tarjetas de crédito, direcciones de correo electrónico (utilizable para enviarles correos basura) o información sobre páginas que se visitan (usable para seleccionar el tipo de publicidad que se le envía al usuario). Los autores de estos programas que intentan actuar de manera legal pueden incluir unos términos de uso, en los que se explica de manera imprecisa el comportamiento del programa espía, que los usuarios aceptan sin leer o sin entender. La mayoría de los programas espías son instalados como troyanos junto a programas deseables descargados de internet. Sin embargo, otras veces los programas espías provienen de programas famosos de pago (ej. Red Shell fue distribuido a través de la plataforma Steam por los propios desarrolladores de juegos). Los programas espías suelen estar centrado en obtener tipos específicos de información. Según como operan o la clase de información al que están orientados, tenemos distintos tipos de programas espías. Hay que tener en cuenta que un programa espía concreto puede ser de varios tipos a la vez. Algunos de los tipos más frecuentes son:
** Keylogger: software que almacena las teclas pulsadas por el usuario con el fin de capturar información confidencial. Este tipo de software permite obtener credenciales, números de tarjeta de crédito, conversaciones de chat, contenido de correos, direcciones de los sitios web a los que se accede, etc.
** Banking Trojan: software que aprovecha vulnerabilidades para adquirir credenciales de financieras (de bancos, portales financieros por Internet, cartera de criptomonedas, brókeres por Internet, ...). Además, este tipo de software suele modificar el contenido de transacciones o de la página web, así como insertar transacciones adicionales.
** Ladrón de contraseñas (del inglés: Password Stealer): software que se encarga de recopilar cualquier contraseña introducida dentro del dispositivo infectado.
** Infostealer: software que roba información sensible guardada en el equipo (navegadores, clientes de correo, clientes de mensajería instantánea, ...), como por ejemplo contraseñas, usuarios, direcciones de correo electrónico, ficheros de log, historial del navegador, información del sistema, hojas de cálculo, documentos, ficheros multimedia...
** Cookies de seguimiento (del inglés: Tracking Cookie) o Cookies de terceros (del inglés: third-party cookies). Es una cookie que se usa para compartir detalles de las actividades de navegación realizadas por el usuario entre dos o más sitios o servicios no relacionados. Suelen estar relacionadas con empresas de publicidad que tienen algún acuerdo con sitios web y utilizan esa información para realizar marketing dirigido, orientar y mostrar anuncios de forma tan precisa como sea posible a segmentos relevantes de usuarios (Adware Tracking Cookie). También pueden utilizarse para crear un perfil y realizar un seguimiento detallado de la actividad del usuario. Por ejemplo, en 2000 se anunció que la Oficina de la Casa Blanca de la Política Nacional para el Control de Drogas, en colaboración con DoubleClick, había usado cookies de terceros para medir la eficacia de una campaña por Internet antidrogas haciendo seguimiento de quien había clicado en el anuncio y que páginas fueron vistas a continuación (Cookiegate). Google tiene previsto eliminar el soporte de cookies de terceros en 2023 e imponer el uso de la API FLoC como sustituto.
** Stalkerware. Es un programa espía especialmente diseñado para dispositivos móviles que tiene como objetivo obtener todo tipo de datos e información de la víctima, su actividad por Internet y controlar todos sus movimientos.
* Malvertising: se aprovecha de recursos disponibles por ser un anunciante publicitario, para buscar puertas traseras y poder ejecutar o instalar otro programa malicioso. Por ejemplo, un anunciante publicitario en una página web aprovecha cualquier brecha de seguridad de navegador para instalar programas maliciosos.
* Ransomware o criptovirus: software que afecta gravemente al funcionamiento del ordenador infectado (p. ej.: cifra el disco duro o lo bloquea) y le ofrece al usuario la posibilidad de comprar la clave que permita recuperarse de la información. En algunas versiones del malware (p. ej. Virus ucash) se enmascara el ataque como realizado por la policía y el pago como el abono de una multa por haber realizado una actividad ilegal como, por ejemplo, descargar un software ilegal.
* Rogueware: es un falso programa de seguridad que no es lo que dice ser, sino que es un malware. Por ejemplo, falsos antivirus, antiespía, cortafuegos o similar. Estos programas suelen promocionar su instalación usando técnicas de scareware, es decir, recurriendo a amenazas inexistentes como, por ejemplo, alertando de que un virus ha infectado el dispositivo. En ocasiones también son promocionados como antivirus reales sin recurrir a las amenazas en la computadora. Una vez instalados en la computadora, es frecuente que simulen ser la solución de seguridad indicada, mostrando que han encontrado amenazas y que, si el usuario quiere eliminarlas, es necesario la versión de completa, la cual es de pago.
* Decoy o señuelo: software que imita la interfaz de otro programa para solicitar la contraseña del usuario y así poder obtener esa información.
* Dialer: toman el control del módem dial-up, realizan una llamada a un número de teléfono de tarificación especial, muchas veces internacional y dejan la línea abierta cargando el coste de dicha llamada al usuario infectado. La forma más habitual de infección suele ser en páginas web que ofrecen contenidos gratuitos, pero que solo permiten el acceso mediante conexión telefónica. Actualmente la mayoría de las conexiones a Internet son mediante ADSL y no mediante módem, lo cual hace que los dialers ya no sean tan populares como en el pasado.
* Secuestrador de navegador: son programas que realizan cambios en la configuración del navegador web. Por ejemplo, algunos cambian la página de inicio del navegador por páginas web de publicidad o páginas pornográficas, otros redireccionan los resultados de los buscadores hacia anuncios de pago o páginas de phishing bancario.
* Wiper: es un malware orientado al borrado masivo de datos. Por ejemplo, discos duros o bases de datos.
* Clipper malware: es un malware que se aprovecha de que los usuarios tienden a, en lugar de insertar manualmente, copiar cierto tipo de informaciones en el portapapeles (en inglés clipboard) y luego la utilizan pegándola en donde necesitan. Lo que hace este tipo de malware es monitorizar el portapapeles y cuando su contenido se ajusta a ciertos patrones lo reemplaza de manera oculta con lo que el atacante quiera. El uso más habitual de este tipo de aplicaciones es el secuestro de transacciones de pago al cambiar el destino de estas. Lo que hacen es sustituir dirección de una cartera digital o cartera de criptomonedas, posible destino de la transacción, copiada en el portapapeles, por una perteneciente al atacante. Este tipo de ataque explota la complejidad inherente a cierto tipo de datos, los cuales son largas cadenas de números y/o letras que parecen aleatorios. Esto favorece que el usuario se apoye en la acción de copiar y pegar del portapapeles y además, dificulta que al pegar pueda ser advertido que el dato ha sido reemplazado.
* Criptominado malicioso (del inglés cryptojacking): es un tipo de programa malicioso que se oculta en un ordenador y se ejecuta sin consentimiento utilizando los recursos de la máquina (CPU, memoria, ancho de banda, ...) para la minería de criptomonedas y así obtener beneficios económicos. Este tipo de programa se puede ejecutar directamente sobre el sistema operativo de la máquina o desde plataforma de ejecución como el navegador.
* Cryptostealer o malware para el robo de criptomonedas. Para este cometido es habitual el uso de Clipper malware, tipo de malware ya visto, diseñado para controlar el portapapeles y cuando detecta una dirección de criptomonedas, automáticamente la reemplaza por la del atacante. De esta forma, si queremos realizar una transferencia a la dirección que creemos que tenemos en el portapapeles, en este caso, iría a la dirección del atacante. Otros malware, como HackBoss, se centran en robar claves de carteras de criptomonedas.
* Web skimming: software que los atacantes instalan en aplicaciones webs de comercio electrónico con el fin de recopilar información de pago (datos personales y de tarjetas de crédito, fundamentalmente) de los usuarios que visitan dicho sitio web comprometido.
* Apropiador de formulario: software que permite robar información que es introducida en formularios web.

## Técnicas de evasión

Para que un programa maligno pueda completar sus objetivos es esencial que permanezca oculto, ya que si es detectado tanto el proceso como el propio malware serían eliminados, frustrando los objetivos del mismo. Las principales técnicas de evasión, algunas de ellas calificadas como técnicas de evasión avanzadas (advanced evasion techniques, AET), son:
* Estrategias orientadas a evadir la detección haciendo que el código del malware en las distintas infecciones sea lo menos identificable posible por patrones de código o basado en hash. Para implementar este tipo de estrategias se usan técnicas de cifrado y ofuscación. Las estrategias más importantes son las siguientes:
** El cifrado base, o simplemente malware cifrado, que consiste en cifrar una parte significativa del programa malicioso y tener un descifrador/cargador, el cual carga en memoria el texto cifrado, lo descifra en memoria y lo ejecuta. La clave para descifrar puede estar explícita o implícita dentro del mismo descifrador. Es habitual que cada instancia use una clave distinta, pudiendo cambiar cada cierto tiempo, teniendo que recifrar el texto y actualizar el cargador en consecuencia. Dado que los elementos que residen en el disco no exponen comportamientos maliciosos, hacer detecciones confiables basadas en los componentes no cifrados es difícil. Las herramientas que a partir de un programa automáticamente generan otro proceso que realiza el cifrado base son llamadas crypters.
** Oligomórfico. Es una forma avanzada de uso del cifrado en el malware que consiste en tener una colección de descifradores diferentes, eligiéndose uno al azar para cada nueva víctima. De esta forma, el código cargado no es el mismo en todos los casos. Esto dificulta su detección, ya que en lugar de comprobar un solo descifrador, se tiene que comprobar todas sus formas posibles. El número de posibilidades suele ser de varios centenares.
** Polimórfico. Es una forma avanzada de uso del cifrado en el malware que consiste en generar diferentes descifradores a partir de un motor polimórfico incorporado. El motor polimórfico es un software que permite automáticamente generar un gran número de descifradores, del orden de millones. Para ello utiliza distintas técnicas de ofuscación. En 1990 se creó el primer virus polimórfico conocido como V2PX, también llamado 1260, y en 1992 se creó el primer toolkit polimórfico llamado Mutation Engine (MtE), el cual permitía crear malware polimórfico.
** Metamórfico. Esta técnica se creó debido a la facilidad que tenían las herramientas antimalware de detectar código malicioso una vez descifrado. Este tipo de software se basa en el uso de un motor metamórfico integrado dentro del mismo que muta su código, cambiando por completo el cuerpo del malware, incluido el propio motor de mutación. El malware metamórfico no tiene parte cifrada y, por lo tanto, no necesita descifrador. Se trata de malware polimórfico que emplea un motor de mutación para mutar todo su cuerpo en lugar de modificar sólo el descifrador. De esta forma, el malware nunca revela su contenido común en memoria, lo que hace más difícil su detección por parte de sistemas antimalware. Así, cada vez que se propaga un malware metamórfico bien construido, se genera una nueva versión que mantendrá el mismo efecto y comportamiento general. Un buen motor metamórfico crea un número infinito de versiones sin patrones de cadena identificables, lo que hace que su detección mediante firmas sea prácticamente imposible. Para detectar este tipo de malware se han de emplear técnicas basadas en el análisis de comportamiento y heurísticas.
* El cifrado de los datos transferidos. Lo habitual es usar cifrado simétrico debido a que el cifrado asimétrico tiene un coste computacional alto.
* Uso de protectores de software para dificultar la detección del malware. Se pueden utilizar técnicas de empaquetamiento de ejecutables, cifrado y ofuscación.
* Infección sin afectar a ficheros (en inglés fileless infections). Infecciones que no tocan el disco y sólo residen en memoria para evitar la detección. Por ejemplo, el kit de exploit Angler efectuaba este tipo de infecciones.
* Uso del protocolo de Diffie-Hellman de intercambio de claves para ocultar el tráfico de herramientas de detección de tráfico de red malicioso. Este sistema es usado por los kits de exploit web Angler y Nuclear.
* Uso de técnicas de DNS Fluxing destinadas a ocultar la ubicación real de determinados recursos dentro de una red.
* Uso de algoritmos de generación de dominio. Estos algoritmos generan automáticamente dominios nuevos que son usados para alojar servidores utilizados en el ciberataque. Típicamente se usan para alojar servidores de mando y control.
* Uso de técnicas de Blind proxy redirection. Consiste en usar equipos intermedios como proxy inverso con el propósito de dificultar los intentos de descubrir los servidores desde donde se controla el ataque. Estos nodos actúan como intermediarios entre sí, además de nodos esclavos y servidores de C&C. Agentes bot actúan como redireccionadores que canalizan las solicitudes y los datos hacia y desde otros servidores bajo el control del operador del ataque.
* Ocultar el tráfico malicioso en el tráfico habitual. Es habitual aprovechar comunicaciones IRC, programas de mensajería (p. ej. Skype), blogs, webs de compartición de video, redes sociales o, en general, cualquier servicio como Google Groups, Google Calendar o Reddit. Por ejemplo, estos servidores se pueden utilizar para dejar la localización de los servidores C&C (p. ej. Casbaneiro y Stantinko usan descripciones de vídeos YouTube para dejar direcciones de máquinas involucradas en el ataque) o para dejar los comandos que son leídos por el malware. A menudo (p. ej. Stego) se usan técnicas esteganográficas, pasando del todo inadvertidas para cualquier que acceda.
* Establecer comunicaciones y tráficos aleatorios entre servidores comprometidos y servidores de C&C.
* Camuflaje de dominio (domain shadowing). Consiste en tomar el control de un dominio registrado consiguiendo las credenciales de administración de modo que sea posible crear registros DNS para nuevos subdominios. Creando multitud de subdominios, el atacante configura una lista lo más amplia posible. Este comportamiento ha demostrado ser altamente efectivo para evitar técnicas de bloqueo típicas como el blacklisting o sinkholing de sitios o direcciones IP. A diferencia del fast-flux, donde se cambia rápidamente la IP asignada a un único dominio, el camuflaje de dominio rota subdominios asociados a un dominio. Estos pueden apuntar a una única IP, o a un conjunto de ellas según las necesidades y circunstancias.
* Abuso de servicios de DNS gratuitos y dinámicos para generar dominios y subdominios maliciosos. Esto les permite a los atacantes entregar cargas maliciosas que cambian constantemente las IP de alojamiento, ya sea las computadoras de usuarios infectados o los sitios web públicos comprometidos.
* Fragmentar los payloads maliciosos y enviarlos a través de diferentes protocolos, normalmente poco habituales, con el fin de que una vez que hayan sorteado las protecciones del sistema atacado se vuelvan a unir para poder así continuar con el proceso de comprometimiento del sistema. Cambiar de una inspección basada en paquetes a una inspección basada en el flujo completo no es fácil, hacerlo requiere grandes cambios en el manejo de paquetes de bajo nivel y diferencias fundamentales en la arquitectura de los dispositivos de seguridad de red. La inspección basada en el flujo completo usa más memoria y afecta al rendimiento del dispositivo.
* Canales encubiertos. Por ejemplo, enviar información empleando para ello las cabeceras de los protocolos de comunicación. Al llegar los paquetes a su destino correspondiente, se procesan los valores de las cabeceras, de modo que se obtiene la información deseada.
* Utilizar campos poco habituales de protocolos.
* Realizar ataques de denegación de servicio. Por ejemplo, para provocar la ralentización del procesamiento de datos por parte de un dispositivo de red, de modo que se imposibilite la capacidad de gestionar correctamente todo el tráfico. Este hecho puede provocar que el dispositivo funcione en modo de error y se bloquee o que permita todo el tráfico.
* Técnicas para evitar la identificación de todos los nodos pertenecientes a una botnet. Para ello los nodos de las botnets se envían únicamente listas parciales del resto de nodos de la botnet, es decir, envían únicamente el listado de nodos que se conocen (peerlist) de manera fragmentada. Además, algunas botnets, como es el caso de Zeus, implementan mecanismos mediante los cuales bloquean los nodos que solicitan peerlists frecuentemente.
* Técnicas para evitar infiltraciones en la botnet que puedan tomar el control de esta. Para ello incorporan esquemas de reputación para determinar qué nodos dentro de la botnet son confiables y cuáles no, y bloquean los nodos que consideran sospechosos.
* Comprobación del entorno en el que se ejecutan, con el fin de determinar si lo están haciendo en sandboxes o en entornos de análisis de malware. En el caso de identificar estos entornos, su comportamiento es distinto con el fin de parecer software confiable. Incluso, en ocasiones, generan blacklists con las IPs de las sandboxes y entornos de análisis de malware con el fin de que otros malware utilicen ese conocimiento para evitar ser detectados.
* Dividir la funcionalidad en distintos malware con diferentes propósitos. Un ejemplo son los droppers encargados de introducir en el sistema una carga útil que es la que realmente contiene la funcionalidad en cuestión. De este modo, puede ocurrir que se detecten los droppers y downloaders y no la carga útil o viceversa.
* Descentralización de la estructura de una botnet. La utilización de botnets con estructura descentralizada, como es el caso de las P2P, dificulta significativamente su desmantelamiento. En algunos casos, utilizan múltiples servidores C&C con distintas versiones del malware. Así mismo, la utilización de servicios alojados en la red Tor permite enmascarar la localización real de los servidores C&C.
* En sistemas Windows, esconder el código malicioso en el registro de Windows. De esta forma, el programa no parece malware si no se tiene acceso al contenido de la clave de registro.

## Técnicas de resiliencia

Hay programas maliciosos que tienen técnicas de resiliencia que permiten que sea difícil su eliminación. Por ejemplo:
* Instalar varios servicios que se ejecutan al inicio del sistema, donde cada uno tiene la habilidad de reinstalar al otro en caso de que sea borrado del sistema. Esto provoca que para eliminar completamente la amenaza ambos deban borrarse al mismo tiempo. Por ejemplo, Stantinko tiene esta estrategia.
* Actualización del malware. El malware, como cualquier otro software, puede tener mantenimiento. Esto permite mejorar sus características. Por ejemplo, se pueden mejorar sus métodos de ocultación para evitar que sea detectado. Tener algún mecanismo que permita la actualización permite mejorar dinámicamente su comportamiento para así evitar su detección y eliminación.

## Malware como servicio

En el marco del cibercrimen como servicio o CaaS (del inglés cybercrime as a service) hay organizaciones de ciberdelincuentes que ofrecen servicios de programas maliciosos ilegales en la nube (por ejemplo, para interrumpir operación, robar datos, ...) dando lugar al llamado malware como servicio o MaaS (del inglés: malware as a service). Estos servicios son accesibles desde cualquier lugar y son extremadamente fáciles de usar. Cualquiera los puede usar y por tanto se les pueda vender a cualquiera. Estos servicios son contratados por operadores externos. Por ejemplo, empresas que quieren eliminar competidor o personas que quieren cometer fraude con tarjetas de crédito.
Como con cualquier otro servicio, el proveedor es importante realizar la atención al cliente, para garantizar la satisfacción del cliente e intentar ventas adicionales. Dada la facilidad de manejo de estos servicios y el pago a través de criptomonedas, los ciberdelincuentes solo deben preocuparse de propagar esta amenaza entre la mayor cantidad de víctimas posible.
El MaaS amenaza a las organizaciones de dos maneras:
* Crea una demanda de programas maliciosos cada vez mejores y más fáciles de usar, ya que los desarrolladores de malware luchan por distinguirse de su competencia. Esto conduce a avances significativos en la accesibilidad y sofisticación de las amenazas de malware.
* Aumenta enormemente el número de amenazas individuales, ya que permite a los usuarios que de otro modo no tendrían la habilidad técnica para crear sus propios programas maliciosos. Esto efectivamente permite que casi cualquier persona inicie ataques cibernéticos.
Según el tipo de actividad maliciosa que realiza, se distinguen varios tipos de software: ransomware como servicio (Ransomware as a Service, abreviado RaaS), phishing como servicio (Phishing as a Service, PHaaS), DDoS como servicio (DDoS as a service, DDoSaaS), etc.
Es habitual que este tipo de servicios se alojen en la red de anonimato Tor, para dificultar a las autoridades identificarlos.

## Conceptos relacionados

Relacionados con los programas maliciosos hay una serie de conceptos informáticos:
* Puerta trasera (backdoor). Vía alternativa de acceso que elude los procedimientos habituales de autenticación al conectarse a una computadora. En relación con el malware es frecuente que:
** Un malware instale una puerta trasera para permitir un acceso remoto más fácil en el futuro
** Se use una puerta trasera como vía para instalar un malware.
* Drive-by-Download. Consiste en la descarga involuntaria de software proveniente de Internet. Es una vía típica para descargar malware, especialmente las descargas ocultas que se producen cuando navegamos por ciertas páginas web. Por esta razón, a los navegadores se les están agregando bloqueadores antimalware que muestran alertas cuando se accede a una página maliciosa, aunque no siempre dan una total protección.
* Rootkits. Son juegos de herramientas disponibles que permiten a usuarios externos acceder sin autorización a un sistema informático y modifican el sistema operativo para encubrir acciones maliciosas. Por ejemplo, para encubrir pueden proporcionar herramientas que oculten los puertos abiertos que evidencian comunicación, ocultar archivos u ocultar procesos involucrados. Al instalar malware es frecuente hacer uso de estos juegos de utilidades. Hoy día también es frecuente que el propio malware incluya las rutinas de ocultación del rootkit. Algunos programas malignos también contienen rutinas para evitar ser borrados, como por ejemplo tener dos procesos-fantasmas corriendo al mismo tiempo y cada proceso-fantasma debe detectar que el otro ha sido terminado y debe iniciar una nueva instancia de este en cuestión de milisegundos. Con este sistema la única manera de eliminar ambos procesos-fantasma es eliminarlos simultáneamente, cosa muy difícil de realizar, o provocar un error al sistema deliberadamente.
* Botnets. Son redes de computadoras infectadas por malware, a las que se llama zombis, que pueden ser controladas a la vez por un individuo y realizan distintas tareas. Este tipo de redes son usadas para el envío masivo de spam o para lanzar ataques DDoS contra organizaciones como forma de extorsión o para impedir su correcto funcionamiento. La ventaja que ofrece a los spammers el uso de ordenadores infectados es el anonimato, que les protege de la persecución policial. Típicamente, la computadora infectada inicia una sesión en una canal de IRC u otro sistema de chat desde donde el atacante puede dar instrucciones a todos los sistemas infectados simultáneamente. Las botnets pueden ser usadas para actualizar el malware en los sistemas infectados, manteniéndolos así resistentes ante antivirus u otras medidas de seguridad.
* Vulnerabilidades. Las vulnerabilidades son puntos débiles de un sistema informático que permiten que un atacante comprometa la integridad, disponibilidad o confidencialidad de este. Estas vulnerabilidades son aprovechadas por el malware para ejecutar su código maligno. Las vulnerabilidades suelen ser producidos por errores de software, privilegios de usuarios (usuarios a los que se les ha concedido más privilegios de los que se debería haber otorgado), privilegios de código (programas a los que se le ha concedido más privilegios del que se debería haber otorgado), ejecución por parte del usuario de software no confiable. Otro factor que afecta a la vulnerabilidad de un sistema complejo formado por varios ordenadores es que todos los ordenadores del sistema funcionen con el mismo software (homogeneidad). Por ejemplo, cuando todos los ordenadores de una red funcionan con el mismo sistema operativo, si se puede comprometer ese sistema, se podría afectar a cualquier ordenador que lo use.
* Exploits. Es un software que aprovecha un defecto del programa (vulnerabilidad). Es la forma de aprovechar una vulnerabilidad. Están incorporados en el malware, ya sea para su instalación en el sistema objetivo, para reproducirse o para realizar su funcionalidad objetivo.
* Honeypots y honeynets. Los honeypots son un recurso de red destinado a ser atacado o comprometido. Por ejemplo, por un malware. Su objetivo es que sea examinado, atacado y probablemente comprometido por cualquier atacante. Son los encargados de proporcionarnos información valiosa sobre los posibles atacantes en potencia a nuestra red antes de que comprometan sistemas reales. Una vez realizadas las primeras pruebas con éxito, se propuso la extensión de este concepto, dando lugar a las honeynets. Una honeynet es un honeypot que es una red real, con todos sus elementos funcionando, diseñada para ser comprometida y poder obtener información sobre los atacantes.
* Kits de exploits. Son herramientas que ayudan en la creación de malware proveyendo distintos exploits a modo de biblioteca. Con este software es fácil crear malware que puede ser aprovechado para realizar tests de intrusión y validar la seguridad del sistema. Ejemplos de este tipo de software son Metasploit Framework, Immunity CANVAS, Core Impact, unicorn, Malicious Macro Generator o Lucky Strike. Otros sitios, como Packet Storm y Miw0rm, poseen igualmente importantes cantidades de código de explotación disponible para ayudar en esta tarea.
* Herramientas de simulación de ataque. Permiten emular cualquier amenaza real en una red para comprobar la eficacia de los sistemas de seguridad frente a ella. Un ejemplo de este tipo de software es Cobalt Strike.
* Escáner de puertos. Herramientas que realizan la comprobación de qué puertos de un sistema están abiertos. Es habitual este tipo de herramientas cuando se diseña un malware para usar con un sistema objetivo concreto. El ejemplo típico de este tipo de herramientas es nmap.
* Escáner de vulnerabilidades. Son herramientas utilizadas para buscar vulnerabilidades en un sistema. Es habitual este tipo de herramientas cuando se diseña un malware para usar con un sistema objetivo concreto. Ejemplos de este tipo de herramientas son Shadow Security Scanner, Retina, OpenVAS y Nessus.
* Servicios de resolución de CAPTCHA. Es frecuente que el malware haga uso de servicios de resolución de CAPTCHA con el fin de poder acceder a recursos gratuitos que ofrece la red. Por ejemplo, malware que crea cuentas falsas en redes sociales.
* Acortador de URL. Es habitual que el malware haga de servicios de URL acortadas. Estos servicios permiten ocultar la URLs final de servicios maliciosos. Además, en ocasiones, permiten introducir publicidad y registrar datos sobre los usuarios (navegador, sistema operativo, ...). Por todas estas razones, es frecuento que algunos servicios que acortan URL, especialmente los que no controlan los destinos de los enlaces, se han dominios prohibidos en las listas negras.
* Sumidero de DNS. Para luchar contra el malware a veces es efectivo tener un sumidero de DNS que proporcione IPs falsas o nulas como resolución de cierto dominio que solicita el malware. De esta forma se evita que el malware use un cierto nombre de dominio en el ataque (p. ej. servidor de mando y control, servidor objetivo de un ataque de denegación de servicio).

## Protección contra programas maliciosos
### Prevención

Algunas prácticas permiten aumentar considerablemente la seguridad de una computadora.
* Tener el sistema operativo y el navegador web actualizados.
* Tener instalado un antivirus y un firewall y configurarlos para que se actualicen automáticamente de forma regular ya que cada día aparecen nuevas amenazas.
* Utilizar una cuenta de usuario con privilegios limitados, la cuenta de administrador solo debe utilizarse cuando sea necesario cambiar la configuración o instalar un nuevo software.
* Tener precaución al ejecutar software procedente de Internet o de medio extraíble como CD o memorias USB. Es importante asegurarse de que proceden de algún sitio de confianza.
* Una recomendación en tableta, teléfono celular y otros dispositivos móviles es instalar aplicaciones de tiendas muy reconocidas como App Store, Google Play o Microsoft Store, pues esto garantiza un muy mínimo riesgo de contener malware alguno. Existe, además, la posibilidad de instalar un antivirus para este tipo de dispositivos.
* Evitar descargar archivos (programas, contenido multimedia, documentos) de origen no confiable (ej. redes P2P, páginas web de descarga de contenidos).
* No conectar dispositivos externos no confiables. Los dispositivos pueden contener archivos infectados, que pueden ejecutarse automáticamente, o incluso el dispositivo en sí puede tener como objetivo dañar eléctricamente los equipos (Ej. USB Killer).
* Desactivar la interpretación de Visual Basic Script y permitir JavaScript, ActiveX y cookies solo en páginas web de confianza.
* Utilizar contraseñas de alta seguridad para evitar ataques de diccionario.
* Uso de tecnologías que analicen la fiabilidad de sitios web. Son tecnologías que antes de acceder a una página web avisan si el sitio web ha sido notificado como malicioso o que un análisis de su código ha dado como conclusión que tiene contenido malintencionado. Por ejemplo, en Windows la opción SmartScreen del Internet Explorer hace este tipo de funcionalidades. Hay extensiones/complementos de navegador como WOT muestras reputaciones de páginas web basadas en opiniones de usuarios. Algunos buscadores (ej. Google) alertan en los resultados de búsquedas de sitios web que pudieran ser de sitios maliciosos. Hay páginas web como que dada una página web muestran su reputación desde diferentes sistemas de reputación (WOT, Avira,...).
Es recomendable hacer copias de respaldo regularmente de los documentos importantes a medios extraíbles como CD, DVD o disco duro externo, para poderlos recuperar en caso de infección por parte de algún malware, pero solamente si se está seguro que esas copias están limpias.

### Software antimalware

Es un tipo de programa diseñado para prevenir, detectar y remediar software malicioso en los dispositivos y sistemas informáticos. Los términos antivirus y antimalware se utilizan a menudo como sinónimos ya que los virus informáticos son un tipo específico de malware.
Tipos de software antimalware:
* Antivirus. Son programas que detectan y eliminan o bloquean la actividad de programas maliciosos. Puede proteger de varias formas:
** Escaneando el tráfico procedente de la red en busca de malware que bloquea.
** Interceptando intentos de ejecución automática no permitida
** Interceptando intentos de modificaciones no permitidas sobre aplicaciones importantes como el navegador web.
** Detectando y eliminando o bloqueando malware que ya ha sido instalado en una computadora. Para ello analiza los programas instalados, el contenido del registro de Windows (para sistemas Windows), los archivos del sistema operativo y la memoria. Al terminar el escaneo muestra al usuario una lista con todas las amenazas encontradas y permiten escoger cuales eliminar o bloquear.
* Antispyware. software que sirve para detectar, prevenir y eliminar programas espías. Está centrado en este tipo de específico de programas maliciosos.
* Virtualización, permite dar acceso ilimitado, pero solo a recursos virtuales.
* Aislamiento de procesos también conocido como sandbox.
* Cortafuegos o firewall. software diseñado para controlar el tráfico de red. Ejemplos de funciones: Filtrar paquetes de red sospechosos a partir de la información que contiene (por ejemplo, dirección origen, dirección destino, tipo de mensaje, ...), autenticación y autorización de accesos. Proporcionan cierto grado de protección frente a ataques de malware.
* Sistemas de detección de intrusos (IDS). Sistema que recolecta y analiza información con el objetivo de identificar posibles fallos de seguridad debido. Por ejemplo, esta actividad puede ser debida a malware. El sistema cuando detecta acción sospechosa genera alarmas. La detección suele basarse en ver si el comportamiento se ajusta a algunos de los comportamientos típicos de malware que tiene en su base de datos, la detección de ciertas secuencias en el código y en los análisis estadísticos de parámetros (ancho de banda, protocolos y puertos usados, dispositivos conectados,...). Los tipos más habituales son:
** IDS de host (HIDS). Reside en un equipo monitorizado y se encarga de analizar todos los logs para detectar actividades sospechas.
** Sistema de detección de intrusos en red (NIDS). Está conectado a un segmento de red y se encarga de detectar actividades sospechosas en el tráfico, como por ejemplo ataques de denegación de servicio, escáneres de puertos o intentos de acceso.
* Sistema de prevención de intrusos (IPS). Hardware o software que tiene la habilidad de detectar ataques tanto conocidos como desconocidos y reaccionar a ellos para impedir su éxito. suelen usar un software de cortafuegos asociado o trabajar de forma coordinada con un cortafuegos.

## Convenciones de nombres

El número de programas maliciosos identificados es enorme. Por ejemplo, en 2013 se localizaron 170 millones de programas maliciosos distintos, y de ellos 70 millones habían aparecido nuevos ese mismo año. Cada organización que trabaja con programas maliciosos usa sus propios nombres internos para identificarlos. Sin embargo, para que las distintas organizaciones se puedan intercambiar información, es necesario un sistema estándar de identificación precisa. Esto es complicado debido al gran volumen de programas maliciosos y a que varios pueden ser muy similares. Ha habido distintas iniciativas:
* La primera convención de nombres para programas maliciosos fue propuesta en 1991 por la Computer Antivirus Researcher Organization. Esta convención se basaba en dar un nombre con base en las características reseñables, agruparlos en familias y desglosarlos en variantes. Debido a su propia naturaleza era frecuente que las distintas organizaciones que lo adoptaban daban distinto nombre al mismo programa lo que causaba confusión.
* En 2004, el Mitre desarrolla la iniciativa Common Malware Enumeration (CME) con el objetivo de dar un identificador único a cada programa malicioso. Su propósito era intentar que la industria colaborara en este proyecto y con consenso conseguir identificadores únicos. El sistema pareció funcionar en 2005, pero en 2006 el gran incremento en la cantidad de estos programas redujo la necesidad de tener un identificador para cada uno. Lo importante era el desarrollo de heurística que, al analizar de forma genérica, permitiera la detección de gran número de instancias de malware. De este modo, el último CME-ID fue generado a principios de 2017.
* Malware Attribute Enumeration and Characterization (MAEC). Lenguaje basado en XML estandarizado por Mitre para la descripción y comunicación de información sobre malware. Está basado en atributos como comportamiento, artefactos, patrones de ataque, capacidades, relaciones con otros malware, etc. Es un lenguaje de caracterización de malware basada en atributos que permite eliminar la ambigüedad y la inexactitud en su descripción. Ha habido distintas versiones. Debido a que el malware concreto a partir de su comportamiento se puede considerar como un indicador de compromiso. A causa del nivel de detalle propuesto en MAEC, es prohibitivo caracterizar un conjunto amplio de malware. Además, el conjunto de muestras que es posible caracterizar con este método está muy sesgado hacia aquellos que se pueden ejecutar en un entorno controlado de sandbox.

## Antimalware Day

El Antimalware Day se celebra el 3 de noviembre de cada año. Se trata de una fecha que fue establecida en 2017 por la compañía de seguridad ESET con el objetivo de destacar la labor que realizan los investigadores que se desempeñan en el campo de la seguridad de la información y la industria en general. Asimismo, también para recordar la importancia de estar protegidos en un mundo cada vez más influenciado por la tecnología. La fecha elegida es el 3 de noviembre en homenaje a Frederick Cohen y Leonard Adleman, ya que esa misma fecha, pero del año 1983, el estudiante de Ingeniería de la Universidad del Sur de California, Fred Cohen, presentó un prototipo de programa maligno en un seminario de informática que luego su profesor, Len Adleman, bautizaría como virus informático.