viernes, 31 de marzo de 2017

Malware Analysis Platform: FAME

 

Descripción:

FAME está pensado para facilitar el analisis de archivos maliciosos aprovechando tanto conocimiento como sea posible para acelerar y automatizar el análisis de extremo a extremo.
Mejor escenario: el analista deja caer una muestra, espera unos pocos minutos, y FAME es capaz de determinar la familia de malware y extraer su configuración y IOCs.
FAME debe ser visto como un marco que potenciará sus esfuerzos de desarrollo de análisis de malware.

La aplicación te permite activar o desactivar modulos (Como subir el archivo a una sandbox de cuckoo, subir a sandbox joe, analizar macros de office, analizar pdf, escanear con un antivirus, o subir a virtustotal.) y cada modulo es bastante configurable, esto hace el programa bastante modular y con bastantes funciones.
También podemos obtar por crear nuestro propio modulo, en la documentación te dicen como.
 Puedes mirar, apoyar y probar el proyecto en su Github

Requisitos:

Necesitamos tener MongoDB, para instalarlo en debian (Kali):

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Debian 7:
$ echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.4 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
Debian 8:
$ echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

$ sudo apt-get update
$ sudo apt-get install -y mongodb
$ service mongodb start

Aqui para Ubuntu 

Instalación:

Descargamos FAME:

$ git clone https://github.com/certsocietegenerale/fame
$ cd fame

Lo instalamos:

$ utils/run.sh utils/install.py

Usamos el 1 en tipo de instlación, y ojo con el email que es el que nos pedirá para entrar al server.

Una vez instalado lo iniciamos con el comando:

$ utils/run.sh webserver.py

Configuración:
La configuración es sencilla, nos vamos al apartado y activamos el modulo repositorios lo que nos permitirá ver módulos ya creados, los cuales podemos activar y desactivar a nuestro gusto. (Aunque la primera vez que entré me saltó un error, le tuve que dar a update y a reload, cerre sesión y volví a entrar)

En configuración veremos todos los modulos disponibles.

Para subir nuestro archivo simplemente le damos a Submit.


Muchas gracias por ver la entrada, comenta que te ha parecido, compartela y hasta la próxima.

viernes, 11 de noviembre de 2016

Crear un laboratorio para analizar malware en apps de Android/iOS

0. Prólogo 

Existen multitud de herramientas automáticas para el análisis de ficheros binarios de forma estática que se encargan de automatizar muchas de las tareas de análisis. Al igual que en otros entornos, los resultados por estas herramientas no tienen porque ser correctos al 100%, pueden haber:
- Falsos negativos: Fallos no detectados.
  + La herramienta no está preparada para ellos.
  + La herramienta puede detectarlos, pero no lo hace correctamente.
- Falsos positivos: Fallos que la herramienta marca como existentes pero que realmente no existen.

¡No podemos limitar el análisis de seguridad a la ejecución de estas herramientas. Debemos verificar que cada problema detectado existe realmente.!

1. Introducción

Mobile Security Framework (MobSF) es una aplicación todo-en-uno de código abierto para móviles (Android / iOS) capaz de realizar el análisis estático y dinámico automatizado.

Puede ser utilizado para el análisis de seguridad eficaz y rápida de Android y iOS Aplicaciones y es compatible con los binarios (APK y IPA) y el código fuente comprimido. MobSF también puede realizar la Web API Pruebas de seguridad con su Fuzzer API que puede hacer de recopilación de información, análisis de cabeceras de seguridad, identificar vulnerabilidades específicas de la API móvil como la XXE, FRSS, de traspaso de rutas, IDOR, y otras cuestiones lógicas relacionadas con la Sesión y la API de limitación de velocidad.

Mobile Security Framework realiza dos tipos de análisis:

    El analizador estático es capaz de realizar: la revisión de código automático, detección de permisos y configuraciones inseguras, detectar código inseguro SSL, derivación SSL, cifrado débil, códigos ofuscados, permisos incorrectos, secretos codificados, el uso indebido de APIs peligrosas, fugas de  información sensible y el almacenamiento de archivos inseguros.

    El analizador dinámico ejecuta la aplicación en una máquina virtual o en un dispositivo configurado y detecta los problemas en tiempo de ejecución. Se realiza un análisis más detallado en los paquetes de red capturados descifrando: el tráfico HTTPS, los informes de registros, informes de error, la información de depuración y seguimiento de la pila. Sobre los activos de aplicaciones como: archivos de configuración, las preferencias y bases de datos.

Mobile Security Framework es altamente escalable, permite agregar  reglas personalizadas con facilidad. Permite generar al final del test de penetración informes de una forma rápida y concisa.

2. Instalación

Antes de nada, recomiendo mirar el proyecto en github.
En esta entrada vamos a instalar MobSF con docker (Solo análisis estático), os dejo el link del dockerfile. Si queremos instalarlo sin docker os dejo la documentación oficial que explica paso a paso el proceso.

2.1 Requisitos

2.1.1 Instalar Docker

$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
$ echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" > sudo tee -a /etc/apt/sources.list.d/docker.list
$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo usermod -aG docker $USER #Deberás cerrar sesión para que se apliquen los cambios
$ docker --version
Docker version 1.12.1, build 23cf638

2.1.2 Descargar Imagen MobSF

$ docker pull opensecurity/mobsf

3.Uso

 Para iniciarlo simplemente usaremos el siguiente comando:
$ docker run -i -t -p 8000:8000 opensecurity/mobsf:latest

Si queremos hacer un análisis dinámico podremos ver como se configura en la documentación oficial del proyecto.
Ahora nos vamos al navegador web ponemos la IP:PUERTO y ya estaremos preparados para analizar APKS.

Podremos llevarnos la imagen de docker exportandola (docker save opensecurity/mobsf > mobsf.tar) e importandola (docker load -i mobsf.tar) en otra máquina con docker.

4. Vídeo DEMO: 

 

El análisis estático puede ofrecer información sobre las conexiones y URL a las que se conecta una aplicación, pero no se pueden extraer conclusiones definitivas hasta que no se ejecuta la misma, es necesario complementar con un análisis dinámico de la aplicación.

miércoles, 2 de noviembre de 2016

MALICE: Analiza malware con múltiples antivirus

1. Introducción

Malice de blacktop es un multi-antivirus local que pretende ser un "Virustotal de código abierto" que todo el mundo pueda usar a cualquier escala, desde un único analista de malware hasta una gran compañía.

Está escrito en Go por lo que requerirás la versión 1.5 o superior y necesitarás también Docker ya que irá levantando contenedores para el análisis según los plugins habilitados, todos controlados por un contendedor supervisor con ELK (Elasticsearch, Logstash y Kibana).

Antes de nada te recomiendo que vayas a su github, en el podrás ver documentación y algunos ejemplos, también podrás apoyar al proyecto ya que vale la pena.

2. Instalación 

En este caso vamos a instalar Malice en ElementaryOs 0.4

2.1. Instalar Docker

$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
$ echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" > sudo tee -a /etc/apt/sources.list.d/docker.list
$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo usermod -aG docker $USER #Deberás cerrar sesión para que se apliquen los cambios
$ docker --version
Docker version 1.12.1, build 23cf638

2.2. Instalar Malice

$ wget https://github.com/maliceio/malice/releases/download/v0.2.0-alpha/malice_0.2.0-alpha_linux_amd64.zip -O /tmp/malice.zip
$ sudo unzip /tmp/malice.zip -d /usr/local/bin/

Puedes obtener más información de la instalación en el github.

3. Uso

1º Descargamos un malware de prueba para analizar:
$ cd $HOME
$ mkdir malware
$ cd malware
$ wget http://www.eicar.org/download/eicar.com.txt

2º Escaneamos el archivo:
$ malice scan [Archivo]

Podremos redireccionar la salida a un archivo con:
$ malice scan [Archivo] > results.md

  *La primera vez demorará bastante ya que tendrá que actualizar todos los plugins.

(?)- Para ver la lista de plugins usaremos:
$ malice plugin list

(?)- Si queremos ver los detalles:
$ malice plugin list --all --detail

(?)- Y para actualizarlos:
$ malice plugin update --all

4. Vídeo DEMO:

 

sábado, 29 de octubre de 2016

Crear un laboratorio para analizar malware

0. Introducción

Cuckoo Sandbox es un software de código abierto para la automatización de análisis de archivos sospechosos, como actualmente son los Malware y Crimeware que afectan mucho a los sistemas Financieros.

Para ello Cuckoo hace uso de componentes personalizados que monitorean el comportamiento de los procesos maliciosos mientras se ejecuta en un entorno aislado.

0.1 Material

En esta práctica vamos a necesitar: 

·Ubuntu 16.04 (Como sistema base) 
    ·Cuckoo +Requisitos   
·Windows XP SP3 (En máquina virtual) 
    ·Python 2.7

1. Requisitos (En Ubuntu)

$ sudo apt-get install python
$ sudo apt-get install python-pip
$ sudo apt-get install python-sqlalchemy
$ sudo apt-get install python-dpkt python-jinja2 python-magic python-pymongo python-libvirt python-bottle python-pefile ssdeep
$ sudo pip install dpkt jinja2 pymongo bottle pefile
$ sudo apt-get install build-essential git libpcre3 libpcre3-dev libpcre++-dev
$ sudo pip install Django==1.8.4

$ sudo pip install requests
$ sudo pip install python-dateutil

pydeep:
$ cd /opt
$ git clone https://github.com/kbandla/pydeep.git pydeep
$ cd /opt/pydeep/
$ sudo python setup.py build
$ sudo python setup.py install

yara:
$ sudo apt-get install automake -y
$ cd /opt
$ svn checkout http://yara-project.googlecode.com/svn/trunk/yara
$ cd /opt/yara
$ sudo ln -s /usr/bin/aclocal-1.11 /usr/bin/aclocal-1.12
$ ./configure
$ make
$ sudo make install
$ cd yara-python
$ python setup.py build
$ sudo python setup.py install


tcdump:
$ sudo apt-get install tcpdump
$ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
$ sudo apt-get install libcap2-bin
$ sudo chmod +s /usr/sbin/tcpdump


$ sudo apt-get install mongodb
 
Cuckoo:
$ git clone git://github.com/cuckoobox/cuckoo.git

$ sudo pip install -r cuckoo/distributed/requirements.txt
$ sudo pip install -r cuckoo/requirements.txt
$ sudo cucko/utils/community.py --all --force

Virtual Box (Solo si usas Kernel 3.5) - Para saber el kernel introduce el comando "uname -a" en la terminal.
$ sudo apt-get install linux-headers-3.5.0.17-generic


2. Configuración de Windows XP

2.1 Configuración Virtual box

INICIAR VIRTUALBOX COMO SUDO ("sudo virtualbox") ya que sino alfinal cuckoo no encontrará la máquina virtual.
Especificaciones de la máquina virtual:

1GB RAM memory
10 GB of hard disk space
VDI format for the virtual disk
Dynamically allocated storage
Windows XP SP3
     ·Deberemos ir a Preferencias - Red - Redes Solo-anfitrion y añadir un nuevo adaptador de red. (El nombre por defecto es vboxnet0) La IP es por defecto 192.168.56.1
·Luego iremos a nuestra máquina virtual de xp y le cambiaremos la tarjeta de red por Adaptador solo-anfitrion.

    2.2 Configuracion de XP

·Deshabilitar el firewall y las actualizaciones
·Instalar python 2.7
·Instalar PIL (Python Imaging Library)
·Instalar Guest Additions
·(OPCIONAL) Intalar aplicaciones estándar como Firefox, Word, Adobe Reader... (oldapps)
·Deberemos configurar una IP estática:

IP: 192.168.56.101
Mascara: 255.255.255.0
Puerta de Enlace: 192.168.56.1
DNS: 8.8.8.8

2.3 Instalar agente cuckoo Windows XP

1º Copiamos el agente.py que vendrá en el repositorio cuckoo:  “cucko/agent/agent.py” al Windows XP en la carpeta C:\Python27.
2º Ponemos para que se ejecute al inicio (C:\Document and settings\username\Start Menu\Programs\Startup)
3º Le cambiamos la terminación por *.pyw (Así no invocará la consola).
4º Después de ejecutar el ajente se quedará un servicio abierto en el puerto :8000 (Podemos comprobar que es así con el comando netstat -aon).

3. Instalación de cuckoo

Antes deberemos configurar las reglas de forwarding y filtering usando IPTABLES (Más informacion).
$ iptables -A FORWARD -o [Interfaz de red con salida a internet] -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT
$ iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$ iptables -A POSTROUTING -t nat -j MASQUERADE
$ sysctl -w net.ipv4.ip_forward=1 

3.1 Creación de Usuario

$ sudo adduser cuckoo
$ sudo usermod -G vboxusers cuckoo
$ sudo usermod -G libvirtd cuckoo

3.2 Configuración de Cuckoo

Vamos a configurar cuckoo, para ello nos vamos a la carpeta conf/
Empezamos:
1ºArchivo auxiliary.conf
[sniffer]
enabled = yes
tcpdump = [ruta tcpdump (Podemos comprobarlo con el comando "locate tcpdump"]

2º Archivo cuckoo.conf
[cuckoo]
version_check = off

[resultserver]
ip = [IP del adaptador VBOXNET0]

3º Archivo kvm.conf
[kvm]
machines = [Nombre de la maquina virtual]

[cuckoo1] ---Cambiar por ---> [Nombre de la maquina]
label = [Nombre de la maquina]
ip = [IP de VBOXNET0] (La IP debe estar en la red de VBOXNET0)

4ºArchivo processing.conf
[memory]
enabled = yes

 5º Archivo virtualbox.conf
Comprobamos que el path está bien (Hacemos "locate vboxmanage" para saber la ruta)
machines = [Nombre de la maquina virtual]
[cuckoo1] ---Cambiar por ---> [Nombre de la maquina]
label = [Nombre de la maquina]
ip = [IP de WindowsXP]

6º Archivo reporting.conf
[mongodb]
enabled = yes

7º Archivo /web/web/local_settings.conf
DEBUG = False

Y ya tendremos todos los archivos configurados. Ahora tendremos que hacer una snapshot de la máquina, para ello usaremos los siguientes comandos:
$ sudo vboxmanage snapshot "windows-cuckoo" take "windows-cuckooSnap01" --pause
$ sudo vboxmanage controlvm "windows-cuckoo " poweroff
$ sudo vboxheadless --startvm "windows-cuckoo"

4. Funcionamiento

La máquina de Windows XP deberá estar apagada, sino saltará un error.
Iniciamos cuckoo en Ubuntu.
$ sudo ./cuckoo.py
Cuckoo estará a la espera de que hagamos submit de una muestra:
Para subir una muestra, primero la descargamos, una vez descargada la subimos con el comando:
$ cd utils/
$ sudo ./submit.py [Ruta archivo malicioso]
Cuckoo empezará el análisis en la máquina virtual
Una vez acabado podremos ver el resultado en la parte web de Cuckoo, arrancamos la parte web (Más información):
$ cd web/
$ sudo ./manage.py runserver [IP:Puerto] --insecure

5. +Documentación:

Para más documentacion acerca de cuckoo os dejo un enlace de un libro que recomiendo (Explica todo desde lo más básico) y el github del proyecto.

Libro
Github

6. Vídeo DEMO:

 

miércoles, 5 de octubre de 2016

Sandboxie: Caja de arena para analizar archivos sospechosos

Introducción:

Hay dos formas básicas para poner en marcha de forma segura un archivo ejecutable sospechoso; debajo de la máquina virtual, o en la denominada "caja de arena" (sandbox). Y por último, se puede utilizar de una manera elegante para adaptarse al análisis operativo del archivo, sin necesidad de utilidades especializadas y servicios en línea y no utilizar una gran cantidad de recursos.

ADVERTENCIA

El uso inadecuado de las técnicas descritas puede dañar el sistema y provocar una infección! Sea cuidadoso y cauteloso. 

Definición:

Las personas que se ocupan de la seguridad informática, están familiarizados con el concepto de "caja de arena". En resumen, "caja de arena" es un entorno de prueba en el que se ejecuta un cierto programa. Este trabajo está organizado de tal manera que todas las actividades del programa se supervisan, todos los archivos modificados y los ajustes se guardan, pero en un sistema real, no pasa nada. En general, se puede ejecutar cualquier archivo con plena confianza de que esto no afectará el rendimiento del sistema. Tales herramientas se pueden utilizar no sólo para la seguridad, sino también para el análisis de las acciones maliciosas que se realizan después de su ejecución.

Por supuesto, en internet hay un montón de servicios en línea ya preparadas que ofrecen los ficheros de análisis: Anubis , Camas , ThreatExpert , ThreatTrack . Estos servicios utilizan diferentes enfoques y tienen sus ventajas y desventajas, algunas desventajas son:
 
• Debe tener acceso a Internet. 

• Es necesario esperar en la cola en el procesamiento (la versión gratuita). 
• Como regla general, los archivos creados o modificados durante la ejecución, no están disponibles.
 • No es posible controlar los parámetros de rendimiento (la versión gratuita). 
• No se puede interferir en el proceso de puesta en marcha (por ejemplo, pulsar los botones que aparecen ventana). 
• Por regla general, es imposible proporcionar bibliotecas específicas que se requieren para funcionar (en la versión gratuita). 
• Como regla general, se analizan sólo los archivos ejecutables PE.

Sandboxie:

 Hoy vamos a tratar de hacer nuestro propio analizador basado en la "caja de arena", es decir, la utilidad de Sandboxie. Este programa está disponible como shareware en el sitio web del autor www.sandboxie.com . Para nuestro estudio la versión gratuita limitada es muy adecuada. El programa se ejecuta aplicaciones en un entorno aislado, por lo que no se producen cambios perjudiciales en el sistema real. Pero hay dos escollos:

    Sandboxie le permite monitorizar sólo el programa en el nivel de modo de usuario. Toda la actividad de código malicioso en modo de núcleo no se supervisa. Por lo tanto, el máximo que será capaz de aprender al estudiar rootkits - así es como se está introduciendo el código malicioso en el sistema. Para analizar el comportamiento en sí en el nivel de modo de núcleo, por desgracia, es imposible.
    Dependiendo de la configuración, Sandboxie puede bloquear el acceso a la red para permitir el acceso completo o sólo el acceso a ciertos programas. Está claro que si el malware de funcionamiento normal necesitan tener acceso a la Internet, debe proporcionarla. Por otro lado, si usted tiene una pizca unidad flash mentira, que se extiende, recoge todas las contraseñas en el sistema y los envía a la ftp atacante, el Sandboxie con acceso público a Internet no le protegerá contra la pérdida de información confidencial! Esto es muy importante, y debe ser consciente de ello.  


Para instalarlo es muy fácil y cuenta con un tutorial básico de iniciación.

Configuración BSA Plugin:

BSA es portable, así que simplemente descargaremos el rar de la última versión y lo descomprimiremos en el directorio que deseemos. Por ejemplo en c:\BSA:

Dentro del directorio podemos ver varios ficheros de configuración importantes:

    BSA.DAT: puntos de control de ficheros y entradas del registro
    config\APIExclude.TXT: APIs excluídas
    config\MA-Calc.ini: Umbrales de cálculo de riesgo
    config\MA-RATINGS.INI: Puntuación de seguridad para cada evento
    config\RegistryExclude.TXT: Entradas de registro excluídas
    config\WindowMessages.TXT: Mensajes de Windows excluídos

A continuación es recomendable crear un sandbox específico y dedicado para BSA (Control de Sandboxie -> Sandbox -> Crear Nueva Sandbox):

Ahora será necesario que añadamos las siguientes opciones en la configuración de Sandboxie (Sandboxie.ini localizado en la carpeta de Windows o la de la instalación del programa). Para ello modificaremos el fichero de configuración sandboxie.ini con nuestro editor favorito (Control de Sandboxie -> Configurar -> Editar Configuración):

    Sección sandbox BSA[BSA]

-   InjectDll=C:\bsa\LOG_API\64\LOG_API32_VERBOSE.DLL
     InjectDll64= C:\bsa\LOG_API\64\LOG_API64_VERBOSE.DLL: se inyecta una DLL en cada proceso del sandbox para hookear funciones que procesan y envían “Mensajes de Windows” a la aplicación BSA (que se ejecuta fuera del sandbox).

       Si el sistema operativo donde se trabaja es de 64 bits es necesario especificar ambas librerías (son complementarias).

       Las librerías ‘verbose’ registrarán las operaciones de ficheros y el registro. Aumentará el detalle pero disminuirá la velocidad de ejecución de BSA.

-    OpenWinClass=TFormBSA: especifica el nombre de la clase de BSA (fuera del sandbox) que puede ser accedida por el proceso ejecutándose en el sandbox.

-    NotifyDirectDiskAccess=y: con esta opción Sandboxie notificará cuando un programa está intentando obtener acceso fuera del sandbox (mensaje SBIE1313).

-    ProcessLimit1=20
     ProcessLimit2=30 (opcional): limita el número de procesos que Sandboxie permite en un sandbox a la vez. ProcessLimit1 indica el número de procesos a partir del cual el siguiente se ejecutará a partir de una pausa de 10 segundos. ProcessLimit2 indica el número a partir del cual el siguiente será terminado. Es decir, con la configuración propuesta sólo se permitirán 30 procesos concurrentes y a partir del proceso número 20 tardarán en ejecutarse 10 segundos.

    Sección configuración de usuario [UserSettings_xxxxxxxx]

-    SbieCtrl_HideMessage =*: Desactiva los mensajes de Sandboxie.

Al final, el fichero de configuración quedará de la siguiente manera:

[UserSettings_xxxxxxxx]

SbieCtrl_UserName=vmotos
SbieCtrl_NextUpdateCheck=875344338989
SbieCtrl_UpdateCheckNotify=y
SbieCtrl_ShowWelcome=n
SbieCtrl_AutoApplySettings=n
SbieCtrl_WindowCoords=414,112,660,448
SbieCtrl_ActiveView=40031
SbieCtrl_ReloadConfNotify=n
SbieCtrl_BoxExpandedView=1,BSA,DefaultBox
SbieCtrl_HideMessage=*

[BSA]

ConfigLevel=7
AutoRecover=y
Template=AutoRecoverIgnore
Template=Firefox_Phishing_DirectAccess
Template=LingerPrograms
Template=BlockPorts
RecoverFolder=%Desktop%
RecoverFolder=%Favorites%
RecoverFolder=%Personal%
RecoverFolder=%{374DE290-123F-4565-9164-39C4925E467B}%
BorderColor=#00FFFF,ttl
DropAdminRights=y
Enabled=y
BoxNameTitle=y
FileRootPath=D:\Sandbox\BSA
InjectDll=C:\bsa\LOG_API\64\LOG_API32_VERBOSE.DLL
InjectDll64=C:\bsa\LOG_API\64\LOG_API64_VERBOSE.DLL
OpenWinClass=TFormBSA
NotifyDirectDiskAccess=y
ProcessLimit1=20
ProcessLimit2=30

Una vez modificado, procederemos a recargar la configuración de Sandboxie (Control de Sandboxie -> Configurar-> Recargar Configuración):


Iniciaremos BSA normal y iremos a «Opciones -> Modo de Análisis -> Manual» y luego «Opciones -> Opciones de programa -> Windows Shell Integración -> Agregar haga clic con la acción« Run BSA »».

Listo ahora botón derecho > run BSA a cualquier malware que queramos analizar. 

Vídeo:

Lista de webs donde descargar malware: