Indice:
- Historia
- Porqué y cómo se programa
- Tipos
- Identificación
- ¿Desde dónde llega?
- ¿Cómo se instala en nuestro equipo?
- ¿Cómo podemos evitarlo?
- ¿Cómo podemos detectarlo y eliminarlo?
Historia
Malware (del inglés malicious software), también llamado badware,
software malicioso o software malintencionado es un tipo de software que
tiene como objetivo infiltrarse o dañar una computadora sin el
consentimiento de su propietario. El término malware es muy utilizado
por profesionales de la informática para referirse a una variedad de
software hostil, intrusivo o molesto. El término virus informático es
utilizado en muchas ocasiones para referirse a todos los tipos de
malware, incluyendo los verdaderos virus.El software es considerado
malware en base a las intenciones del autor a la hora de crearlo. El
término malware incluye virus, gusanos, troyanos, la mayoría de los
rootkits, spyware, adware intrusivo, crimeware y otros software
maliciosos e indeseables.
Como todo lo relacionado con la
tecnología el Malware ha avanzado mucho desde el precursor de los virus
informáticos, el juego CoreWar (1959) era un juego basado en la teoría
de Von Neumann y en el que el objetivo es que programas combatan entre
sí tratando de ocupar toda la memoria de la máquina eliminando así a los
oponentes.
En 1972 Robert Thomas Morris crea el primer virus
(Creeper) era capaz de infectar máquinas IBM 360 de la red ARPANET, para
eliminarlo se creó otro virus (vacuna) llamado Reaper.
En 1987
hace su aparición el virus Jerusalem o Viernes 13, que era capaz de
infectar archivos .EXE y .COM. Su primera aparición fue reportada desde
la Universidad Hebrea de Jerusalem y ha llegado a ser uno de los virus
más famosos de la historia.
En 1999 surge el gusano Happy
desarrollado por el francés Spanska que crea una nueva corriente en
cuanto al desarrollo de malware que persiste hasta el día de hoy: el
envío de gusanos por correo electrónico. Este gusano estaba encaminado y
programado para propagarse a través del correo electrónico.
En
el año 2000 hubo una infección que tuvo muchísima repercusión mediática
debido a los daños ocasionados por la infección tan masiva que produjo.
Fuel el gusano I Love You o LoveLetter, que, basándose en técnicas de
ingeniería social infectaba a los usuarios a través del correo
electrónico. Comenzaba aquí la época de grandes epidemias masivas que
tuvieron su punto álgido en el 2004.
Fue en ese año cuando
aparecieron gusanos como el Mydoom, el Netsky, el Sasser, o el Bagle,
que alarmaron a toda la sociedad y lo que buscaban era tener la mayor
repercusión y reconocimiento posible. Ese fue el año más duro de este
tipo epidemias y curiosamente el último. Los creadores de malware se
dieron cuenta de que sus conocimientos servirían para algo más que para
tener repercusión mediática… para ganar dinero.
Fuente : Panda Security, Wikipedia
Porqué y cómo se programa
Cualquier tipo de malware es programado según los ideales que tenga el
programador, el malware actualmente se programa por o para:
*Su estudio y análisis para fortalecer la seguridad
* Su alta demanda en el mercado negro
*Compartirlo y ‘ganar un poco de fama’
*Uso a una baja, media o alta escala
*La competición entre empresas
Hay gente novata que cree que el malware se programa de forma diferente
a un software, el malware se programa como cualquier otro tipo de
software, con cualquier lenguaje de programación y conocimiento sobre
él, se puede programar.
Tipos
Existen muchos tipos de malware, y a medida de que va pasando el tiempo
se van creando nuevos y más avanzados. Actualmente los más oidos en el
mundo ‘underground’ son los siguientes:
Troyano :
Es uno de los malwares mas usados, se basa en la conexión de un cliente
y servidor oculto, ya sea por conexión directa (cliente > servidor) o
conexión inversa (servidor>cliente), el cliente manda ordenes al
servidor y posteriormente el servidor las ejecuta. Un troyano
actualmente puede recopilar todas las funciones que se puedan imaginar
(captura de pantalla, captura de camara web, propagación como un gusano,
administración de archivos.. procesos.. servicios.., keylogger, etc..)
es el malware mas completo que hay hoy en dia ya que reune todas las
funciones de los tipos de malware en uno solo.
Botnet :
Parecido a un troyano pero con otros ideales, el troyano se suele usar
para espiar las maquinas infectadas, en cambio una botnet se suele usar
para infectar un alto numero de maquinas (zombies, bots..) y usarlas
para atacar a un host, con ataques como DDOS.. no suele ser raro que las
companías usen esta clase de malware para quitarse de en medio a la
competencia.
Virus :
Un virus informático es un malware que tiene una función fija a
ejecutar, al contrario que un troyano o una botnet que no tienen
objetivo de destrucción y que se manejan por un usuario. La mayoría de
virus son usados para uso destructivo.
Gusano :
Los gusanos informáticos cumplen una función básica, que es propagarse
así mismo o duplicarse, se suele propagar por canales de comunicación
como la Mensajeria Instantanea, redes P2P, redes compartidas.. su
función secundaria es consumir ancho de banda o dejar inestable una red.
Keylogger :
El keylogger es otro malware espía, su función principal es la captura
de teclas presionadas en el ordenador, posteriormente se enviaría un log
al usuario atacante con todas las teclas capturadas y ventanas
abiertas. Se usa mucho en el cibercrimen para el robo de cuentas de
cualquier tipo. Aparte de la existencia de un keylogger tipo Software,
existe también el keylogger tipo hardware, que tiene la forma de un
pendrive.
Stealer : Un
stealer es un tipo de malware ‘nuevo’ por llamarlo de alguna forma, su
función es el robo de cualquier tipo de información, mayormente cuentas
de programas que necesiten un login como clientes FTPs, Mensajeria
Instantánea o simplemente el robo de información. No es necesaria su
instalación ya que cuando se ejecuta el stealer rapidamente captura los
datos y se los envia al atacante por medio de FTP, E-MAIL o WEB,
posteriormente se borra así mismo.
Rootkit :
Es un malware que tiene una sola función, esconderse así mismo o
esconder a otro tipo de malware ya sea troyano, keylogger…, hay rootkits
para diferentes sistemas operativos e interactúan desde el kernel para
poder tener control total sobre el sistema y así esconderse de una forma
avanzada.
Adware : Es
un malware molesto, el adware es la publicidad que sale al meterse en
alguna pagina web sospechosa o por medio de alguna aplicación, su
objetivo es hacer pagar al usuario un software para que quite el montón
de publicidad, claramente ese software es creado por los creadores de
adware y así cobrar una cantidad de dinero. También obtienen cierta
información del usuario lo cual se caracteriza también como Spyware.
Spyware :
El spyware se encarga de instalarse en el ordenador del usuario,
recopila información privada y se la manda a empresas publicitarias u
otras organizaciones interesadas.
Bootkit :
Los bootkits son un tipo de hibrido entre virus~rootkit, es un malware
avanzado que se instala en el sector cero (MBR) del disco duro, son muy
dificiles de eliminar e invisibles, por más que formatees seguirá ahí.
Backdoor :
Un backdoor es una puerta trasera que deja el programador en una
aplicación para poder saltarse la seguridad o algoritmo que lleva, como
una especie de atajo.
Aparte de estos
tipos de Malware, existen herramientas paralelas para el uso de malware,
aquí entran los programas que se encargan de facilitar el envío de
estos y saltar cualquier tipo de obstáculo que pueda surgir en la
máquina o en la desconfianza del usuario al ejecutarlo.
Crypter :
Los crypters (Encriptadores), se encargan de ofuscar un archivo con un
algoritmo para que los antivirus no puedan detectarlo, posteriormente al
abrir el archivo final, el llamado ‘Stub’ del crypter descifra el
archivo y lo ejecuta en memoria para que los antivirus no puedan
detectarlo.
Binder : Los
binders (Juntadores), se encargan de unir varios archivos en uno solo,
esto facilita al atacante la ingenieria social sobre el usuario a
infectar, juntando el servidor de un troyano por ejemplo con una imagen,
al abrir el archivo final se ejecuta el servidor del troyano en
conjunto con la imagen, haciendole creer al usuario que es una imagen de
verdad.
Joiner : Los
joiners es igual que un binder con una simple diferencia y es que
tambien se encarga de cifrar los archivos para no ser detectados, es el
conjunto de un binder con un crypter.
Spreader :
Los spreaders (Propagadores), se encargan de añadir un gusano al
malware seleccionado, así empezará a propagarse por los diferentes tipos
de protocolos y aplicaciones.
Downloader :
Los downloaders (Descargadores), se suelen usar cuando un malware es
muy pesado por cualquier motivo, empezaron a salir cuando el protector
Themida empezó a usarse para ofuscar distintos tipos de malware y en
consecuencia de ello los dejaba muy pesados, los downloaders descargan
un archivo alojado en un hosting y lo ejecuta silenciosamente.
- ¿Desde dónde llega? -
El malware puede llegar desde cualquier sitio, cuando un sistema es
inseguro puede meterse cualquiera en nuestro sistema, seguidamente
explicaré cómo pueden llegar a nuestro sistema sin darnos cuenta.
*Desde internet :
Internet es una red muy amplia, el 60% de las aplicaciones que usamos
comúnmente en nuestro ordenador utiliza esta gran red. Pongamos el
ejemplo de que encendemos el ordenador e iniciamos sesión, el 90% de las
personas después de encender el ordenador se meten a programas de
comunicación y redes sociales. Nos metemos a nuestro programa de
mensajería instantánea y un amigo te propone enviarte un archivo. Te
fijas que te está enviando un archivo comprimido en (.rar) o (.zip),
donde dentro hay un archivo ejecutable (.exe), él te dice que es una
imagen (en realidad es un archivo ejecutable con el icono cambiado por
un archivo de imagen), a simple vista parece una imagen, pero si tienes
configurado en las opciones de carpeta poder ver la extensión te das
cuenta.
Los extensiones de archivos ejecutables en Windows son : (.exe), (.com
), (.scr), (.pif).. cualquiera de estas extensiones puede ejecutar una
cabecera PE. Hay muchas formas de intrusión de malware por internet :
*Paginas webs falsas:
Hay muchas paginas web con código dañino para que se descargue malware
en tu pc, por ejemplo los llamados ‘fakes’ que son objetos falsos en la
página web, un ejemplo que hacen creer al usuario de que su versión de
Adobe Flash Player está desactualizada y le pide que descargue la que
ofrece la pagina web.
* Paginas webs que explotan vulnerabilidades:
Cada día salen nuevas vulnerabilidades para cualquier tipo de software,
los navegadores no son menos para salvarse, algunas vulnerabilidades se
aprovechan de un fallo en el navegador para que cuando un usuario entre
a la pagina web se le ejecute silecionsamente y automáticamente un
archivo ejecutable sin la necesidad de que el usuario interactue.
*Redes P2P:
El protocolo P2P (Peer to Peer) se encarga de compartir archivos entre
ordenadores que interactuan como cliente y servidor a la misma vez, un
usuario cualquiera puede poner a compartir el servidor de un troyano con
un nombre falso como por ejemplo el nombre de una canción conocida y
todas las personas que busquen el nombre de esa canción y se descargan
ese archivo, lo ejecutarán.
* Vulnerabilidades:
Las vulnerabilidades de las aplicaciones son muy importantes en el tema
de nuestra seguridad, si una persona ataca a nuestro ordenador con un
lanzador de exploits como Metasploit, sabiendo que usamos una aplicación
que es vulnerable a ejecución de código remoto, podrá obtener la
consola de nuestro sistema, ejecutarnos cualquier archivo, listarnos los
procesos, etc.. Para prevenir estos incidentes hay que tener siempre
las aplicaciones que usemos actualizadas u otra aplicación paralela que
cumpla con la misma función.
* E-Mails con adjuntos:
La mayoría de los virus en la época fueron propagados por e-mail, hoy
en dia se sigue haciendo enviando e-mails con archivos adjuntos, aunque
los servicios de correo como hotmail y gmail tengan un antivirus para el
escaneo de esos archivos adjuntos, no hay que confiarse ya que un
antivirus es facil saltarselo.
*Desde red local o físicamente:
Como suelen decir, a veces el enemigo está en casa, suponiendo que un
ordenador no tenga acceso a internet y que este infectado de algun tipo
de malware, es porque hay dos posibles propagaciones. Alguien puede
entrar fisicamente al ordenador y sin saberlo poner un pendrive que
tiene un gusano dentro que ha sido propagado por toda la red y también
cumple con una función de propagación por USB, al conectar el pendrive
automaticamente gracias a un fichero Autorun.inf se ejecutará y seguirá
intentando infectar por red local (compartiendo archivos por netbios) o
por dispositivos extraíbles.
- ¿Cómo se instala en nuestro equipo? -
Dependiendo el tipo de malware y con la estructura de programación que
cumplió el programador a la hora de crearlo se instalará de una forma u
otra o no se instalará. En caso de que el malware se instale siempre
procurará hacerlo oculto y silencioso, es obvio que el programador no
quiera que el usuario se dé cuenta de que se ha instalado un ‘bichito’
en su equipo.
En Windows hay varias maneras de instalarse para que al arrancar el sistema se siga ejecutando el archivo.
* Run :
Por registro (HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCur
rentVersionRun), se agrega una clave nueva en la carpeta Run del
registro, es facil de detectar esta instalación ejecutando el archivo
‘msconfig’ desde la consola y en la pestaña inicio se puede ver los
programas que se inician con la clave de registro.
*RunOnce : Igual que Run, (HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCur rentVersionRunOnce).
*ActiveX :
Por registro, es la carpeta de los componentes instalados, igual que
los dos anteriores pero en este caso no se muestra en la pestaña Inicio
de msconfig, (HKEY_LOCAL_MACHINESOFTWAREMicrosoftActive SetupInstalled
Components).
*Carpeta Inicio :
Es una carpeta de windows cuya ruta es (C:Documents and SettingsAll
UsersMenú InicioProgramasInicio), todo programa que se encuentre en esa
carpeta se ejecutará al inicio.
*ShellExplorer :
Otra ruta de registro, esta se encarga de iniciar el explorer.exe del
sistema windows (HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows
NTCurrentVersionWinlogonShell).
*UserInit : Otra
ruta de registro, esta se encarga de iniciar el userinit.exe del
sistema, (HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows
NTCurrentVersionWinlogonUserinit).
*Complemento de Navegador :
Al instalar un complemento para un navegador especifico, puede saltar
la seguridad del filtro de complementos del navegador y ejecutar algun
malware.
*Driver o Servicio : Algunos
malwares como los Rootkits necesitan instalarse a un nivel para poder
controlar mucho más el pc infectado, algunos llegan hasta el ring0.
El malware antes de agregarse al inicio del sistema se copia en algun
directorio para posteriormente iniciarse, para ayudarse a que no sea
visto se copia con atributos de ocultación o para ayudarse a no ser
eliminado se atribuye también tipo de archivo del sistema. En algunos
casos puede llegar haber dos archivos para la instalación, el segundo
archivo se encargaría de verificar si el archivo se ha borrado volverlo a
instalar, por lo tanto es doble el trabajo para desintalarlo.
¿Cómo podemos evitarlo?
Es dificil estar siempre 100% seguros a ataques ya que siempre se puede
cometer algun error, pero se pueden prevenir los más básicos de las
siguientes formas:
*Descargar software que necesitemos de paginas webs de confianza o de la pagina oficial del autor.
*Tener actualizado al dia cualquier aplicación que usemos.
*Tener un antivirus actualizado al dia, el 40% de las veces no confien
en el escaneo del antivirus, ya que hay muchas técnicas de
indetectabilización de malware.
*Tener un sniffer para controlar las conexiones que se hacen en tu ordenador.
*Tener un firewall seguro y actualizado.
*Instalar una maquina virtual y ejecutar los programas en ella para un
posterior análisis, cuando se esté seguro pasarlo al ordenador personal.
¿Cómo podemos detectarlo y eliminarlo?
En el caso de que nos hallamos despistado y tengamos algún malware
dentro de nuestro ordenador, primero que nada repasar los consejos
anteriores para evitarlos, en el caso de que no podamos encontrarlo o
detectarlo, a continuación haré una breve demostración con la ayuda de
algunas aplicaciones de como podemos detectarlo.
Pongamos el
ejemplo de que empiece a funcionar un poco raro nuestro ordenador, el
led de la camara web se prende y se apaga, hay mucho consumo de banda
ancha, y el sistema vaya un poco lento. Sabemos que algo raro está
pasando pero.. ¿que puede ser?, lo primero que miraremos será las
conexiones entrantes y salientes con un sniffer muy simple y a nivel
usuario, el
TcpView.
Primero de todo
cabe aclarar que algunos malwares se inyectan en algunos procesos del
sistema, o se inyectan en el navegador predeterminado para ello se
necesitan algunos sniffers mas avanzados como por ejemplo el
WireShark o el
SocketSniff
Yo pondré un ejemplo básico para que os de por lo menos una idea, al
abrir el TcpView vemos un montón de conexiones a la izquierda vemos el
icono y el nombre de la aplicación y a la derecha vemos todos los datos
de conexión.
Me capta la atención una conexión, y es que hay un proceso que se está
conectando a una ip con el puerto común del protocolo IRC, pero.. ¿como
puede ser? si yo no estoy en ningún canal chateando por IRC.. si le
damos a click derecho en el proceso y a Process Properties nos mostrará
información sobre la ruta donde se encuentra el archivo, cerrariamos el
proceso y lo borrariamos.
Pero.. yo no me quedo tranquilo,
¿como puedo saber yo si se ha eliminado completamente, y no hay ningún
malware por ahí molestando?.. miraremos haber si hay alguna aplicación
que se haya añadido al inicio de windows, para ello utilizaremos una
aplicación muy conocida,
HijackThis.
Al hacerle click a Scan, mostrará las aplicaciones que están agregadas
al inicio de windows, servicios, etc.. Por suerte nuestro pequeño
‘Bot.exe’ no se inicia con windows, pero ¿y si.. se sobrescribió un
programa que usa mucha gente como el Messenger, y el bot sobreescribió
el archivo del Msn por el del bot? el proceso del MSN se inicia con
windows, por eso siempre hay que fijarse si no hay ninguna sustitución.
Bueno ahora que sabemos donde está y si se instaló o no.. quiero saber
de donde vino.. para ello podemos ir sacando algunos datos, por ejemplo
utilizaremos un editor hexadecimal como el
HexWorkShop.
Con este programa miraremos si hay texto legible en hexadecimal, los
compiladores de los lenguajes de programación añaden datos al
ejecutable, también el servidor de troyanos o distintos tipos de malware
tienen que guardar la información que le pasan en algún lado.. hay
varios lugares donde un malware puede puede guardar los datos de
configuración y las ordenes con las que se programó si se usó un
constructor (builder), dos de ellos son:
*EOF : End Of File
(Final del archivo), algunos constructores que configuran el servidor
guardan los datos al final del archivo, si los datos no llegan estar
cifrados o son faciles de descifrar se puede obtener datos importantes
del atacante mirandolo con un editor hexadecimal.
*Recursos : La
otra forma de guardar los datos que un constructor tiene, es por medio
de los recursos, el constructor añade un recurso al servidor con todos
los datos metidos, para poder ver si tiene recursos que puedan ser
importantes para obtener información se puede usar un editor de recursos
como el
Resource Hacker o
XN Resource Editor.
Aquí podemos ver que el compilador de VB6 ha añadido la ruta del
proyecto, en la ruta viene incluido el nombre de usuario del atacante.
*Se puede deducir que he sido atacado con una botnet manejada por IRC.
Si nos cuesta mucho encontrar donde está el malware, podemos optar a
descargar un antivirus como el NOD32,AVIRA,KIS,KAV actualizarlo y hacer
un escaner para ver si detecta el bicho.
Pero como dice el
refrán mejor prevenir que curar, dejaré algunas aplicaciones de análisis
que les puede servir para cuando descarguen o le pasen un archivo
sospechoso puedan analizarlo completamente, obviamente.. analizandolo
todo desde una maquina virtual como VMWare.
*Herramientas de red de SysInternals (Microsoft)
*Herramientas de procesos y subprocesos de SysInternals (Microsoft) *SysAnalyzer : Ejecuta el archivo y lo analiza, si no quieres infectarte analizalo en una maquina virtual.
*RegShot : Hace un analisis del registro.
* RDG Packer Detector :es
un detector de crypters, packers, etc.. útil si el servidor esta
empaquetado para saber con que está empaquetado y que desempaquetador
usar.
*Anubis (Online) : Pagina web que analiza ejecutables y sitios webs.
*CurrPorts : Programa que monitoriza los puertos abiertos por TCP/IP y UDP.
*IceSword : Anti rootkit.
Autor:
shark0