MALWARE Y CÓDIGOS MALICIOSOS CONCEPTOS BÁSICOS DE ATAQUES Malware y códigos maliciosos – Conceptos básicos de ataques © Structuralia 2 Malware y códigos maliciosos – Conceptos básicos de ataques ÍNDICE ÍNDICE........................................................................................................................................................................... 3 1. INTRODUCCIÓN ....................................................................................................................................................... 4 1.1 Fases del Hacking Ético ........................................................................................................................................ 4 1.2 Malware ................................................................................................................................................................. 8 2. DEFINICIÓN Y TIPOS DE MALWARE ................................................................................................................... 13 2.1 Definición de malware ......................................................................................................................................... 13 2.2 Tipos de Malware ................................................................................................................................................ 14 3. ANÁLISIS ESTÁTICO Y DINÁMICO....................................................................................................................... 22 3.1 Análisis estático ................................................................................................................................................... 23 3.2 Análisis dinámico ................................................................................................................................................. 27 4. TERMINOLOGÍA ..................................................................................................................................................... 31 5. RESUMEN DE LA UNIDAD .................................................................................................................................... 36 5.1 ¿Cuál es la historia del malware?........................................................................................................................ 36 5.2 ¿Cómo puedo protegerme frente al malware? .................................................................................................... 39 6. REFERENCIAS ....................................................................................................................................................... 42 3 © Structuralia Malware y códigos maliciosos – Conceptos básicos de ataques 1. INTRODUCCIÓN Dentro de la disciplina de la ciberseguridad, el pentesting es una parte fundamental de la misma. La misma palabra lo dice; es la “penetration testing”, o test de penetración. Intentaremos hacer una definición un poco más formal: ▪ Un pentesting es un conjunto de ataques simulados dirigidos a un sistema informático con una única finalidad: detectar posibles debilidades o vulnerabilidades para que sean corregidas y no puedan ser explotadas. Dentro de esto, debemos distinguir dos tipos de ataques; los ataques dirigidos cuyo objetivo es alguien específico; una empresa o un sistema; donde todas las fases que veremos en el punto siguiente están enfocadas hacia ese objetivo; o un objetivo genérico donde el objetivo no es un individuo; por ejemplo, tener o crear una botnet, o robar datos bancarios. En estos casos, las fases están adaptadas a buscar dentro de los sistemas, los que son vulnerables a un determinado tipo de ataques y ejecutarlos. 1.1 Fases del Hacking Ético Dentro de esta actividad, que se denomina Hacking ético, y que se suele hacer por equipos que se llaman Red Teams, se realizan, habitualmente en cinco fases bien diferenciadas, cada una de ellas tiene una serie de herramientas específicas en función del tipo de ataque que estemos realizado. © Structuralia 4 Malware y códigos maliciosos – Conceptos básicos de ataques 1.1.1. Fase I. reconocimiento En la fase de reconocimiento lo que buscamos es obtener el máximo de información posible de nuestro objetivo. Cuanta más información recopilemos, más probable es que encontremos algún vector de ataque. Dentro de la fase de reconocimiento, podemos distinguir dos tipos diferentes: ▪ El reconocimiento pasivo implica la recopilación de información sobre un objetivo potencial sin el conocimiento de la compañía o del individuo afectado. o Cuando buscamos información sobre un objetivo, una de las primeras cosas que se hacen es recopilar el máximo posible de información buscando en internet; intentando localizar información sobre la empresa, personal, etc. 5 © Structuralia Malware y códigos maliciosos – Conceptos básicos de ataques Este proceso cuando se utiliza para recopilar información relativa generalmente se llama (gathering information) recopilación de información. o Sniffing es otra técnica de reconocimiento pasivo. Se trata de “escuchar” todo el tráfico de red de los equipos del objetivo. Esta acción nos puede ofrecer información útil tal como rangos de direcciones IP, convención de nombres, servidores o redes ocultas, y otros servicios disponibles en el sistema o red. Sniffar el tráfico de red es similar a vigilar las entradas y salidas de un sitio. Las herramientas de Sniffing son simples y fáciles de usar y generan un gran volumen de información que puede resultar valiosa si se interpretan bien. Una de las principales herramientas en esta área es WireShark. ▪ El reconocimiento activo implica el interactuar con la red para descubrir diferentes componentes, hosts, IP, puertos y servicios de red. Para ello se hacen llamadas a los propios servicios y se identifica las respuestas. Este proceso implica más riesgo de detección que el reconocimiento pasivo puesto que se interactúa con el objetivo y algunas veces es llamado rattling the doorknobs. Por ejemplo, con sublist3r entre otras. © Structuralia 6 Malware y códigos maliciosos – Conceptos básicos de ataques Tanto el reconocimiento pasivo y activo puede conducir al descubrimiento de información útil para utilizar en un ataque. Esta información nos permite tener un amplio espectro para encontrar una vulnerabilidad en esa versión del sistema operativo y aprovechar la vulnerabilidad para obtener más acceso. 1.1.2. Fase II. Escaneo En esta fase lo que buscamos son los vectores por los que realizar el ataque; para ello tomamos toda la información descubierta durante el reconocimiento y la utilizamos para para examinar la red y localizar posibles puntos para realizar el ataque. Las herramientas que se pueden emplear durante la fase son muchas y, entre otras están: ▪ Dialers. ▪ Escáneres de puertos. ▪ Escáneres ICMP (Protocolo de Mensajes de Control de Internet). ▪ Barrido de ping. ▪ Mapeadores de red. ▪ Barrido de SNMP (Protocolo de manejo simple de red). ▪ Escáneres de vulnerabilidades. Además, seguimos en esta fase obteniendo más información como: 7 ▪ Nombres de computadora. ▪ Sistema operativo (SO). ▪ Software instalado. ▪ Direcciones IP. ▪ Cuentas de usuario. © Structuralia Malware y códigos maliciosos – Conceptos básicos de ataques 1.1.3. Fase III. Obteniendo acceso En esta fase es cuando, una vez que tenemos el listado de vulnerabilidades y posibles vectores de ataque, evaluamos cuales son las más interesantes, efectivas o conocemos más y las explotamos para obtener acceso al sistema de destino. El ataque informático se puede entregar en el sistema de destino a través de una red de área local (LAN), por cable o inalámbricamente; por acceso local a un PC; por Internet; o fuera de línea. Una vez que el ataque tiene éxito, el sistema es nuestro; lo que se conoce como “Owning the System” o simplemente Owning, lo cual se puede traducir como “Apropiarse el sistema”. 1.1.4. Fase IV. Persistencia En esta fase, una vez que hemos logrado acceso, es donde tenemos que hacer los despliegues de lo que queremos hacer; pero antes le tenemos que dar persistencia a nuestro acceso. Esto quiere decir que, ya que hemos accedido, dejaremos algún tipo de backdoor, rootkit o troyano para poder acceder o trabajar con el sistema objetivo sin tener que hacer todas las fases anteriores. 1.1.5. Fase V. Ocultación Esta última fase se da cuando ya hemos logrado un acceso persistente a nuestro objetivo. Lo que buscamos ahora es que nadie sepa que estamos dentro ni que tenemos acceso persistente; por lo que, lo que buscamos es cubrir nuestras huellas y borrar cualquier rastro de paso. Así nos evitamos ser descubiertos y, por lo tanto, poder utilizarlo cuando queramos. Una de las cosas que siempre se hace es “eliminar la evidencia del hackeo”, entre otras cosas para evitar acciones legales. Lo que tenemos que hacer es eliminar todos los rastros del ataque, así como de los archivos de registro (logs) o las alertas de los sistemas de detección de intrusos (IDS). 1.2 Malware Los malwares son herramientas, software o aplicaciones que realizan determinadas acciones dentro de todo el proceso anterior. Pero, ¿Por qué se crea el malware? © Structuralia 8 Malware y códigos maliciosos – Conceptos básicos de ataques 1.2.1. ¿Por qué se crea malware? En los años 1980 y 1990, el malware era creado como una forma de vandalismo o travesura. Sin embargo, hoy día la motivación principal es la obtención de un beneficio económico. En los últimos años está apareciendo malware asociado a amenazas persistentes avanzadas (APT), que son campañas fuertemente coordinadas y creadas por grupos de poder, asociaciones o estados, cuyo objetivo es obtener más poder o gestión de cualquier forma; entre ellas la más habitual es el robo de información estratégica o producir daños en sistemas de organizaciones objetivo. Repasaremos las principales causas para la creación de malware: ▪ Experimentar al aprender. Al aprender a programar es frecuente querer profundizar y aprender un poco más sobre sistemas, virus y gusanos. Esto, en un momento, se puede producir por error algún tipo de virus o gusano. ▪ Como paso siguiente al punto anterior, puede ser que se quieran realizar bromas, provocar o incordiar a alguien Ejemplos de este tipo de virus son Melissa y los llamados Virus joke. ▪ Si lo que se busca es producir daños en el sistema informático, estamos hablando de otro tipo de malware más peligroso. Por ejemplo, en hardware (Stuxnet y Chernobyl), en el software (Ramen, que cambia la página inicial del servidor web), en los datos (Shamoon o Narilam buscan la destrucción de los datos) o provocando la caída de servidor (por ejemplo Code Red). ▪ Provocar una degradación en el rendimiento del sistema. Por ejemplo, consumiendo ancho de banda de la red o tiempo de CPU o llenando el disco duro de información. ▪ Los más extendidos a día de hoy buscan sacar beneficio económico: o Robando información (personal, empresarial, de defensa...) para luego usarla directamente en fraudes o revenderla a terceros. 9 o Chantajeando al propietario del sistema informático. o Presentar publicidad no deseada y sin control del usuario. o Tomando control de computadoras para su venta o alquiler a terceros. © Structuralia Malware y códigos maliciosos – Conceptos básicos de ataques Todo este malware, puede producir pérdidas económicas para el usuario la empresa o el propietario del equipo que sea infectado. En estos casos se habla de crimeware o software criminal. Estos programas suelen estar encaminados al aspecto financiero, robos de tarjetas, suplantación de identidad y robo de información de empresas u organismos (espionaje). En algunos sitios se habla del malware más inofensivo como grayware (también llamados greyware, graynet o greynet), definiendo estos como programas que se instalan sin la autorización usuario y se comportan de modo tal que resultan molestos o indeseables para el usuario, pero son menos peligrosos que los malware. En esta categoría por ejemplo incluyen adware, dialers, spyware, herramientas de acceso remoto, o virus joke. El término grayware comenzó a utilizarse en septiembre del 2004; aunque algunas como es Spyware y el acceso remoto son bastante más peligrosas que el resto. 1.2.2. Malware como servicio Una tendencia cada vez más fuerte dentro de la Dark Web es el cibercrimen como servicio o CaaS (cybercrime-as-a-service). Es relativamente fácil encontrar organizaciones de ciberdelincuentes que ofrecen diferente tipo de servicios relacionado con el malware; desde programas maliciosos ilegales en la nube (para interrumpir operación, robar datos, etc.) dando lugar al llamado Malware como servicio o MaaS (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. Todas las operaciones se realizan en entornos que facilitan el anonimato, red TOR, Matrix y otros entornos fuera de la Clear Web. Además, los pagos se hacen habitualmente con criptomonedas, lo que dificulta su rastreo. 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. © Structuralia 10 Malware y códigos maliciosos – Conceptos básicos de ataques 11 © Structuralia Malware y códigos maliciosos – Conceptos básicos de ataques 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 podemos tener malware de distintos tipos: ▪ Ransomware como servicio o RaaS (Ransomware as a Service). ▪ Phishing como servicio o PHaaS (Phishing-as-a-Service). ▪ DDoS como servicio DDoSaaS (DDoS as a service). © Structuralia 12