74
Understanding Malware for fun and Profit 1 Software Malicioso Luis Guillermo Castañeda Estañol Solution Architect || Logrhythm [email protected]

Software Malicioso - cryptomex.orgcryptomex.org/SlidesSeguridad/IntroMalware.pdf · -Ejemplos Como trabajan?-Conceptos básicos de arquitectura y sistema operativo.-Conceptos de arreglos

Embed Size (px)

Citation preview

Understanding Malware for fun and

Profit

1

Software Malicioso

Luis Guillermo Castañeda Estañol

Solution Architect || Logrhythm

[email protected]

Material Adicional

Acceso a Material Adicional

Para acceder al material adicional de este módulo:

http://itesm.daemonlab.org

l:itesm

p: _______

Mat

eria

l Adi

cion

al

2

Índice de temas

Agenda

Introducción

-Características básicas del malware.

-Historia-Clasificación extensa.

-Ejemplos

Como trabajan?

-Conceptos básicos de arquitectura y sistema operativo.

-Conceptos de arreglos y seguridad de arquitecturas.-Conceptos internos básicos de Windows

-Métodos de escalamiento y bypass de seguridad.-Overflows (Buffer/Stack/Heap/Off-By-One)-Client Side Exploitation-Leaks-Fallos comunes de configuración

-Escalamiento, deploy y errores comunes.-Creación-Replicación-Métodos de ofuscación (Stealth and Obfuscation Methods).

Daños que un virus puede generar.

Agen

da

3

Índice de temas

Agenda

Como se analizan (Ingeniería Inversa)

-Assembly Language 101-Debugging (Depuración) y Debugging against Disassembling

(Depuración en contra de desensamble)-Cracking????....-Desensamble Fraccionado

-Problemas comunes.-Empaquetadores-Polimorfismo / Metamorfismo-Código Ofuscado (Obfuscated Code).

-Eliminación de problemas comunes.-Ejemplos.

DETECCION Y FRENADO

-Pattern Matching (Comparación de Patrones).-Model Validation (Validación de Patrones).-Heurística (Heuristics).

Agen

da

4

Características

Características básicas del código malicioso

5

-Replication

-Stealth Methods

-Activation/Trigger

-Payload

*Exploitation/Privilege

Scalation Methods

-Replicación

-Métodos de ocultamiento

-Activación

-Manifestación

*Explotación y escalamiento de

privilegios

Características

Replicación

6

Si un programa cuenta con esta característica se le considera

virus, sin importar que tenga alguna otra característica.

Características

Ocultamiento

7

Es la capacidad que tiene el código malicioso para evadir las

protecciones comunes de los sistemas operativos, detectores

de intrusos y sistemas antivirus.

-Encripcion (Polimorfismo Básico)

-Polimorfismo Avanzado o Metamorfismo

-Cambio de extensiones*

-Companion/Hidra o Multi-infector

Características

Activación

8

Es la capacidad del código malicioso para activarse,

comúnmente:

-Contador

-Doble Click

-Encender el ordenador

-Ejecutar un programa

-Etc.

Características

Manifestación

9

Comúnmente es la capacidad que nos hará notar que tenemos

código malicioso en nuestro ordenador.

-Enviar un mensaje

-Formatear el disco rígido

-Borrar información

-Modificar información

-Robar Información

-Deteriorar el rendimiento de la

infraestructura de networking

-Etc.

Historia

Pequeña historia del código malicioso

10

1983: Frederick B. Cohen – Demuestra como es posible replicar codigo,inyectarlo y fusionarlo.

1983: Ken Thompson y el laboratorio de investigacion y desarrollo de Bell Labs y ATT comienzan

a difundir el conocido juego corewars.

Años despues los primeros virus en unix del dr. Cohen comienzan a salir on the wild en

lenguajes tales como C y scripting basico.

Mas tarde XEROX tiene un leak de su tecnologia y se comienzan a difundir los famosos Worms

de xerox.

1986: Dos programadores pakistanies crean el virus ASHTAR que evolucionaria como BRAIN

para infectar disketes de 5 ¼.

Historia

Pequeña historia del código malicioso

11

1987: Es detectado el virus VIENA que tenia la capacidad de infectar binarios tales como el

fichero “command.com”, de aqui comienzan a crearse virus tales como el famosísimo Viernes 13

o Jerusalem, de aquí comienzan los primeros reales peligros como STONED en todas sus series

que tenia la capacidad de modificar la tabla de particiones.

1990: El virus ping-pong crea revuelo, posteriormente dark avenger libera la tecnologia

polimórfica, una tecnología que haría revuelo y que hasta hoy en día crea perdidas millonarias y

hace que muchos antivirus queden a merced de virus de este tipo

1996-2004: Los virus han evolucionado de manera tal que gracias a internet lo que podría ser un

experimento escolar, o un regalo para una stripper se han convertido en cataclismos graves que

hacen perder millones y millones de dólares cada año.

Clasificación

Virus

12

VIRUS:

Simplemente considerados como tal si se replican en memoria o en disco sin el consentimiento del usuario.

Algunos pueden contener un payload malicioso o no, todo depende del codificador[programador] del mismo.

Clasificación

Bombas Lógicas

13

BOMBAS LOGICAS:

Comúnmente se definen como código malicioso en espera de un trigger para detonar su

payload.

Clasificación

Macrovirus

14

MACROVIRUS:

Entran dentro de esta clasificación los códigos que se auto repliquen en memoria o en disco programados en lenguaje macro. El lenguaje macro es una característica de programas como microsoftoffice [word, excel, powerpoint, access, project, etc], Microsoft visual InterDev, etc, etc.

Clasificación

Troyanos

15

TROYANOS:

Denominados así a los programas que se ocultan dentro de otro que posiblemente necesitemos, simulando el ataque de la ciudad de micenas liberada por agamenon en contra de la ciudad de troya.

El fin de un troyano es infectar y esparcir un programa malicioso comúnmente un backdoor que viene contenido dentro de otro que comúnmente es utilizado por muchos usuarios, de ahí el termino romanización.

Clasificación

Backdoors

16

BACKDOORS:

Denominados de esta manera los códigos que contienen una puerta trasera, nos referimos a puerta trasera a una forma de evadir una medida de seguridad o “entrar por otro lado”.

Clasificación

Polimorfismo/Metamorfismo

17

POLIMORFISMO:

Polimórficos/polimorfos y Metamórficos.

Polimorfismo: Dícese del código que cambia su forma, es el código que genera una variación en los métodos de infección, propagación, programación, etc.

Metamorfismo: Dícese del código que cambia su forma de una manera aun mas extraña y “brutal”, convirtiéndose en uno “casi nuevo”. Es una de las técnicas de creación MAS difíciles, debido a su grado de mutación.

Clasificación

Boot Sector

18

VIRUS DE BOOT SECTOR:

Es el código malicioso que se aloja en algún sistema [device]de booteo, le llamamos booteo a un medio para arrancar el ordenador.

Clasificación

Worms

19

GUSANOS (Worms):

Son el código que se disipa en redes de ordenadores, como un gusano[fisico], también puede ser reconocido por sus interminables “cabezas” y persistencia.

GUSANOS DE INTERNET (I-Worms o Internet Worms):

Son aquellos que se replican por internet, su método de replicación puede ser escalamiento de privilegios, envió de correo electrónico [massive mailing], enumeración nula por protocolos [SMB,NMB], etc, etc.

MAILERS MASIVOS [Massive Mailers @mm]:

Gusanos que se su técnica de replicación es el mailing masivo.

GUSANOS DE PEER TO PEER:

Aquellos gusanos que cuentan con un método de disipación mediante programas Peer to peer, como kazaa, morpheus, audiogalaxy, etc etc.

Clasificación

Worms

20

Octopus / Pulpos:

Tipo de gusano sofisticado que se copia en diferentes partes de un “universo” (red, ordenador, array, cluster) y que opera de forma independiente para llegar a un fin común y permanecer “indetectable”.

Rabbits/Conejos:

Tipo de gusano que se copia en un cierto punto y después “brinca” a otro borrando total traza de el mismo, utilizando sus propios fines. Algunos otros los describen como programas que consumen recursos de ordenadores desmedidamente.

Clasificación

Multipartitas

21

MULTIPARTITAS (Companion/Hydras):

Estos son un caso especial, son aquellos que llevan varios distintos tipos de código [programas] que ejecutan payloads, modos de replicación, etc, etc, dentro de un mismo código [programa] que los ejecuta y reparte al ejecutarlo.

Clasificación

TSR

22

RESIDENTES EN MEMORIA (TSR):

Son aquellos que aun, que dentro del disco no se encuentre un solo rastro de infección, el mismo se encuentra activo [Terminate and Stay Resident], esto se logra bajo la interrupción [int 27h] bajo plataformas de 16 bits, dentro de plataformas de 32 bits, es común que no se encuentren estas malformaciones, aunque existen casos como i-worm.slammer, el cual solo la infección se realiza mediante un buffer overflow, después de el escalamiento de privilegios solo la infección permanece en memoria.

Clasificación

Script Malware

23

VIRUS DE SCRIPT (Script Based Viruses):

Este tipo de código necesita ser ejecutado o parseado por un interprete para poder ser ejecutado.Dentro de esta clasificación nombraremos algunos:

VBS: Programados bajo lenguaje Visual Basic Script, denominados [.vbs], son de los mas comunes dentro de los principiantes en programación de malware.PHP: Programados bajo lenguaje PHP, debido a que PHP es un lenguaje multiplataforma, existe código malicioso que comúnmente es utilizado para dispersar infecciones dentro del mismo.PERL: Programados bajo lenguaje PERL, también multiplataforma.JAR/JS: Programados en java o javascript es común ver este tipo de gusanos bajo los includes de un sitio web. HTML/JML/DHTM: Programados bajo lenguaje HTML el cual es interpretado por el browser.SQL: Programados como scripts de auto ejecución en bases de datos MySQL, MSQL, Oracle, Sybase, etc.

Clasificación

Script Malware

24

VIRUS DE SCRIPT (Continuacion):

BAT: Programados bajo lenguaje Batch o procesos por lotes de Windows.SH/CSH/TCSH/KSH: Programados bajo lenguaje Batch o por lotes de unix.ABAP: Programados sobre plataformas propietarias.INF: Scripts de instalación de Windows por instrucciones directas al kernel.

Clasificación

Plataformas Extrañas

25

Virus para plataformas Extrañas*:

Son código para plataformas y programas no muy utilizados o que no existen muchos virus para ellos.

OS/2: Programados para sistema OS/2Unix [Linux, Solaris, HP/UX, BSD, etc]: Programados para plataformas unix, en forma binaria.HLL: Bajo archivos de “ayuda” cifrados.HLP: Archivos de “ayuda” no cifrados.PALM: Programados para PALM/OS.ANSI BOMB: Bombas ansi para plataformas.Macintosh: Virus para plataformas mac.Amiga: Virus para plataforma amiga.Atari/Comodore: Virus para plataformas atari o C32/C64Autocad: Virus para plataformas Autocad.Z80: Plataformas para Z80.SAP: Virus para SAP.

Clasificación

Otros

26

Programas Peligrosos (Harmfull Code):

-Hydras-Droppers-Ciphers y empaquetadores (Zippers).-Fuzzers-Dialers-Injectors-Rootkits-Virus Generatos-Spammers-Flooders-Keyloggers

MALICIOSOS (Not Viruses):

-Spyware*-Ad-ware*-Jokes-Hoaxes-Exploits*-Joiners

Clasificación

APT

27

Análisis

Formato de Binarios / PE

28

Estrategias

Infección

29

• MBR

– Manipulación del Bootstrap– Cambio de entradas PT– Reemplazo pero no salvar– Salvarlo al final del disco– Marcar sectores como malos– Formatear sectores extra– Con sistema operativo cargado

• Infeccion de archivos

– Sobreescritura– Sobreescritura aleatoria– Appending (apendizar)– Prepending (prependizar)– Parasitacion– Uso de cavidades (cavity viruses) (fraccionado y no fraccionado– Compresion– Amoeba*– Decriptor embedido (embedded decryptor)– Saltos (tricky jump)

Estrategias

Infección

30

– EPO (Ocultación de Entrypoint)

• Reemplazo de Tabla de Imports (Import table replacing)

• Trazado de instrucciones (instruction tracing)

• Entrypoints desconocidos (unknown entrypoint)

• Integración de código (code integration)

– Generación de código (Code Builders)

• En memoria

– Cargado Normal (Direct-action)

– Residentes en memoria (TSR)

– Manejo de interruciones y Enganchado (Interrupt Handling and Hooking)

– Enganchado a IAT (Hook to Interrupt Address Table)

– Read Stealth

– Full Stealth

– Hardware Stealth

– Disk Cache y System Buffer

– Swapping

Clasificación

Nombramiento

Nombramiento:

Desde 1991, los miembros de CARO (Computer Antivirus Researchers Organization) designaron un nombramiento (COMPUTER MALWARE NAMING SCHEME) para su uso en antivirus

<tipo de malware>://<plataforma>/<nombredefamilia>.<nombredegrupo>.<tamañodeinfector>.<variante><devolución><modificadores>

31

Clasificación

NombramientoABAP ABAP Malware for the SAP /R3 Advanced Business Application Programming environment.

ALS ACADLispScript Malware that requires AutoCAD Lisp Interpreter.

BAT BAT Malware that requires a DOS or Windows command shell interpreter or close clone.

BeOS BeOS Requires BeOS.

Boot Boot Requires MBR and/or system boot sector of IBM PC–compatible hard drive and/or floppy. (Rarely used in practice.)

DOS DOS Infects DOS COM and/or EXE (MZ) and/or SYS format files and requires some version of MS-DOS or a closely compatible OS. (Rarely used in practice.)

EPOC EPOC Requires the EPOC OS up to version 5.

SymbOS SymbianOS Requires Symbian OS (EPOC version 6 and later).

Java Java Requires a Java run-time environment (standalone or browser-embedded).

MacOS MacOS Requires a Macintosh OS prior to OS X.

MeOS MenuetOS Requires MenuetOS.

MSIL MSIL Requires the Microsoft Intermediate Language runtime.

Mul Multi This is a pseudo-platform, and its use is reserved for a few very special cases.

PalmOS PalmOS Requires a version of PalmOS.

OS2 OS2 Requires OS/2.

32

Clasificación

NombramientoOSX OSX Requires Macintosh OS X or a subsequent, essentially similar version.

W16 Win16 Requires one of the 16-bit Windows x86 OSes. (Note: Several products use the Win prefix.)

W95 Win95 Requires Windows 9x VxD services.

W32 Win32 Requires a 32-bit Windows (Windows 9x, Me, NT, 2000, XP on x86).

W64 Win64 Requires Windows 64.

WinCE WinCE Requires WinCE.

WM WordMacro Macro malware for WordBasic as included in WinWord 6.0, Word 95, and Word for Mac 5.x.

W2M Word2Macro Macro malware for WordBasic as included in WinWord 2.0.

W97M Word97Macro Macro malware for Visual Basic for Applications (VBA) v5.0 for Word (that shipped in Word 97) or later. Changes in VBA between Word 97 and 2003 versions (inclusive) are sufficiently slight that we do not distinguish platforms even if the malware makes a version check or uses one of the few VBA features added in versions subsequent to VBA v5.0.

AM AccessMacro Macro malware for AccessBasic.

A97M Access97Macro Macro malware for Visual Basic for Applications (VBA) v5.0 for Access that shipped in Access 97 and later. As for W97M, changes in VBA versions between Access 97 and 2003 (inclusive) are insufficient to justify distinguishing the platforms.

P98M Project98Macro Macro malware for Visual Basic for Applications (VBA) v5.0 for Project that shipped in Project 98 and later. As for W97M, changes in VBA versions between Project 98 and 2003 (inclusive) are insufficient to justify distinguishing the platforms.

33

Clasificación

NombramientoV5M Visio5Macro Macro malware for Visual Basic for Applications (VBA) v5.0 for Visio that shipped in Visio 5.0 and later. As for

W97M, changes in VBA versions between Visio 5.0 and 2002 inclusive are insufficient to justify distinguishing theplatforms.

XF ExcelFormula Malware based on Excel Formula language that has shipped in Excel since the very early days.

XM ExcelMacro Macro malware for Visual Basic for Applications (VBA) v3.0 that shipped in Excel for Windows 5.0 and Excel for Mac 5.x.

X97M Excel97Macro Macro malware for Visual Basic for Applications (VBA) v5.0 for Excel that shipped in Excel 97 and later. As for W97M, changes in VBA versions between Excel 97 and 2002 (inclusive) are insufficient to justify distinguishing the platforms.

O97M Office97Macro This is a pseudo-platform name reserved for macro malware that infects across at least two applications within the Office 97 and later suites. Cross-infectors between Office applications and related products, such as Project or Visio, can also be labeled thus.

AC14M AutoCAD14Macro VBA v5.0 macro viruses for AutoCAD r14 and later. As with W97M malware, minor differences in later versions of VBA are insufficient to justify new plat form names.

ActnS ActionScript Requires the Macromedia ActionScript interpreter found in some ShockWave Flash (and possibly other) animation players.

AplS AppleScript Requires AppleScript interpreter.

APM AmiProMacro Macro malware for AmiPro.

CSC CorelScript Malware that requires the CorelScript interpreter shipped in many Corel products.

HLP WinHelpScript Requires the script interpreter of the WinHelp display engine.

INF INFScript Requires one of the Windows INF (installer) script interpreters.

34

Clasificación

NombramientoJS JScript, JavaScript Requires a JScript and/or JavaScript interpreter. Hosting does not affect the platform

designator—standalone JS malware that requires MS JS under WSH, HTML-embedded JS malware, and JS malware embedded in Windows-compiled HTML help files (.CHM) all fall under this platform type.

MIRC mIRCScript Requires the mIRC script interpreter.

MPB MapBasic Requires MapBasic of MapInfo product.

Perl Perl Requires a Perl interpreter. Hosting does not affect the platform designator—standalone Perl infectors under UNIX(-like) shells, ones that require Perl under WSH and HTML-embedded Perl malware all fall under this platform type.

PHP PHPScript Requires a PHP script interpreter.

Pirch PirchScript Requires the Pirch script interpreter.

PS PostScript Requires a PostScript interpreter.

REG Registry Requires a Windows Registry file (.REG) interpreter. (We do not distinguish .REG versions or ASCII versus Unicode.)

SH ShellScript Requires a UNIX(-like) shell interpreter. Hosting does not affect the platform name—shell malware specific to Linux, Solaris, HP-UX, or other systems, or specific to csh, ksh, bash, or other interpreters currently all fall under this platform type.

VBS VBScript, VisualBasicScript Requires a VBS interpreter. Hosting does not affect the platform designator—standalone VBS infectors that require VBS under WSH, HTML-embedded VBS malware, and malware embedded in Windows-compiled HTML help files (.CHM) all fall under this platform type.

35

Clasificación

Nombramiento

UNIX UNIX This is a common name for binary viruses on UNIX platforms. (More specific platform names are available.)

BSD BSD Used for malware specific to BSD (-derived) platforms.

Linux Linux Used for malware specific to Linux platforms and others closely based on it.

Solaris Solaris Used for Solaris-specific malware.

36

Como trabajan

Diferencias entre modo real y modo protegido-Modo Real: Las instrucciones son accedidas sin problemas en la arquitectura, se pueden realizar llamadas directas a interrupciones para manipular devices complejos, como el CMOS, el teclado, etc.

-Modo Protegido: Las instrucciones son accedidas con restricciones de seguridad, lo cual hace difícil el acceso directo a interrupciones.Las características principales de el modo protegido son:

-Paginación; Las unidades de memoria son divididas en paginas para agilizar su acceso y manipulación.

-Segmentación: Las unidades de memoria de paginación son accedidas en segmentos, esto ayuda a que las aplicaciones por diseño del procesador no se “pisen”, eso quiere decir que las aplicaciones utilizan su propia memoria para funcionar.

-Multi-tasking: Se permite correr aplicaciones múltiples en múltiples ambientes, un ejemplo muy importante es mostrar la interrupcion 27h, la cual invoca el modo TSR (Terminate and StayResident).

-Modo-virtual

37

Como trabajan

Diferencias entre modo real y modo protegido

-SMM (System Management Mode): Este modo provee al sistema operativo o kernel ejecutivo con un mecanismo transparente para la implementación de funciones nativas “platform-specific” como manejo de corriente o seguridad del sistema.

38

39

Como trabajan

El señor de los anillosDe ahí el procesador y el sistema operativo permutan los niveles internos de seguridad.

Llamados anillos.

The lord of the rings ☺

Ring 0

Ring 1

Ring 2

Ring 3

Ring 0: Kernel Level

Ring 1: Sub Started Kernel Level

Administrative for Shared Libs.*

Ring 2: Maximum User Level Non

Administrative Shared Libs

Used.*

Ring 3: User Land

40

Clasificacion

Nombramiento

Copyright. Peter Ször www.peterszor.com

41

Como trabajan

Memoria virtual y stack

Copyright. Mark Rusinovich. www.sysinternals.com

Virtual memory Physical Memory

42

Como trabajan

32bit Address space

43

Como trabajan

Espacios de memoria

32bit Address Space 64bit Address Space

44

Como trabajan

64 bit address space

45

Como trabajan

64 bit address space

46

Como trabajan

Arquitectura simplificada

Arquitectura Simplificada

47

Como trabajan

Arquitectura general

48

Como trabajan

Arquitectura de ejecución de procesos

49

Como trabajan

PEB

Diplomado Seguridad Informática

50

Como trabajan

DEP

51

Como trabajan

AWE y HEAP

52

Como trabajan

El scheduler

53

Como trabajan

Arquitectura de Seguridad

Comunicacion entre el SRM y LSA

54

Como trabajan

Arquitectura de Seguridad

55

Como trabajan

Arquitectura de Seguridad

56

Como trabajan

Escalamiento de privilegios

Kernel Level Ring 0

Kernel Level Ring 3

Kernel Level Ring 1*

Kernel Level Ring 2*

Advapi32.dll Comctl32.dll Gdi32.dll Kernel32.dll User32.dll Shell32.dll

Ntdll.dll Rpcrt4.dll

Irda32.dll

atapi32.dll

Sim32.dll

Icq32.exe Imtta.exe Notepad.exeWinword.exeIexplore.exe Sam.dll

Sys.com Msim.exe Microdu.exe

Virus.exe

Ejecutando

Infectando

Virus.exe

Virus.exe

Virus.exe

Virus.exe

Escalando

Virus.exe

Virus.dll

A userland para infectar mas equipos

57

Como trabajan

Métodos de escalamiento de privilegios

Buffer Overflow [Desbordamiento de Buffer]: Sobrecarga de pila generada por Emisión de números demasiado grandes que el preprocesador no puede analizar, generando el volcado de la memoria residente para uso. Es importante recalcar que puede ser utilizado para ejecución de código arbitrario en ordenadores donde es aplicado.

Format Bugs [Bugs de Formato]: Errores de impresión dentro de los cuales se puede tanto ver como manipular la memoria, así es posible cambiar el flujo de la salida de un programa y/o su ejecución.

Off By One: Manipulación de código arbitraria por un fallo de conteo en el formato de la aplicación.

58

Otros vectores de explotacion

Client side exploitation

Cualquiera de los ataques anteriores sugiere o se piensa que su principal método de ataque

puede ser utilizando un exploit en contra de un servicio”en un servidor”, pero no siempre es

así, pocas veces como administradores le damos importancia a las explotaciones “del lado

del cliente” o client-side exploitation.

Examinemos algunos casos:

-XSS Exploitation

-ActiveX Exploitation

-RealPlayer-WMP-etc Exploitation

-Flash Player Exploitation

-Several Apps (Exploitation)

59

Creación

Métodos de creación

-En su mayoría los programadores de código malicioso utilizan lenguajes de alto nivel aunque algunos de ellos se valen de lenguajes de mediano y bajo, programar buen código en la actualidad es un arte, consideramos que un código que esta bien diseñado es IMPOSIBLE de detectar, eliminar y trazar.

-En su mayoría, el programador se tiene que valer a veces de fallos de seguridad en el sistema operativo, fallos en compilación, fallos en diseño de programas a atacar, fallos en el diseño de interrupciones a memoria, fallo en su utilización y/o ingeniería social. El código “impune” o perfecto, es realmente difícil de alcanzar debido a que en su mayoría el programador recurre al sistema operativo, utiliza sus funciones, recurre al diseño del lenguaje, recurre a un sin número de problemas que aunque el código sea perfecto, siempre podrá ser detectado.

Ahora bien, quien crea los virus y porque?

60

Creación

Métodos de creación

61

Creación

Métodos de creación

62

Creación

Métodos de creación

63

Creación

Métodos de creación

64

Creación

Métodos de creaciónTipos de virus y métodos de ocultamiento y creación.

Infectores Primarios:

ELF [Infector]Common Output File [Infector]PE [Infector]COM [Infector]X [Infector] (macros, fallas y demas).

Infectores Secundarios:

Virus Dobles [Multipart] o Companion COM.Parasitarios Infectores COM.Residentes en memoria.Parasitos PE.Virus Residentes [Por usurpación arbitraria de memoria].Virus de Boot SectorVirus Infectores de Dispositivos.

65

Creación

Métodos de creación

Infectores parasitarios a SourceCode.Virus de MacroVirus Dobles o Companion [PE]Parasitación de binarios por expandimiento de memoria.Mecanismos reales de ocultamiento [STEALTH Mechanism].Polimorfismo en Código.Polimorfismo Avanzado.Encripción de código a memoria.Encripción de código a archivos para no detección.Instalación de máquinas virtuales para descripción del mismo.Esteganografía a código.Esteganografía a memoria.Segmentación de memoria.Segmentación parcial de memoria [Utilización de fallas de seguridad

66

Creación

Métodos de ocultamientoUna vez colocado, el siguiente paso es… ocultarlo

Ocultamiento de archivos

-Estricto uso de polimorfismo (No empacadores basicos UPX/FSG-Estricto uso de mecanismos e replicacion automatizada para mantener el incidente vivo.-En NTFS puede utilizar file streams para ocultar archivos (NTFS utiliza streams para manipular datos, puedeutilizar ese flujo para ocultar datos).-Mantener permisos heredados (EFS?)

Ocultamiento en memoria

-Utilización del device physicalmemory-Moverse en la memoria utilizando polimorfismo

Utilizando la red

-Comunicación cifrada (cryptoapy?)-Manejo de señales básicas (SEH)-Connect Back

67

Creación

EjemploEl polimorfismo es una buena forma de evadir antivirus.Virus polymorficos tales como methaphor (w32.simil.gen) prueba que la evolución de los virus pueden destruir los metodosanticuados de detección que comunmente utilizan los antivirus.Variaciones de w32.simil hoy en dia, no son detectadas por software antivirus.

Los mecanismos de replicacion automata son buenas formas de mantener vivos los backdoos y pueden ser utilizados paramantener las amenazas vivas en si.

ADS are a probe of the NTFS “dark side”…. Lets check the facts.Symantec Norton Antivirus do not detect ADS in filesTrendMicro OfficeScan Antivirus do not detect ADS in filesNOD32 Antivirus do not detect ADS in filesPanda Software do not detect ADS in filesClamav do not detect ADS in files.Mcafee and Kaspersky detect ADS in files.

Mantener permisos heredados de EFS (Encrypted File Systems), tambien puede hacer que algunos antivirus no detecten elsoftware para el cual se esta generando una amenaza.

68

Creación

EjemploMost Microsoft Windows Corporate Server runs on systems that hold NTFS file systems preferred for stability, security andmanageability, the worst case is that we can use Alternate Data Streaming (ADS) to hide executable code even in MacintoshHierarchical File System (MHFS), for example we can use images, music, bin´s, to hide executable code.

A basic example is:1- Hello world Program jmp @F

szDlgTitle db "NTFS FileStream Example",0szMsg db "EXAMPLE EXAMPLE EXAMPLE",0

@@:

push MB_OKpush offset szDlgTitlepush offset szMsgpush 0call MessageBox

push 0call ExitProcess

end start

@echo off

if exist test.obj del test.objif exist test.exe del test.exe

\masm32\bin\ml /c /coff /nologo test.asm\masm32\bin\Link /SUBSYSTEM:WINDOWS /MERGE:.rdata=.text test.obj > nul

dir test.*

pause

.386

.model flat, stdcalloption casemap :none

include \masm32\include\windows.incinclude \masm32\include\user32.incinclude \masm32\include\kernel32.inc

includelib \masm32\lib\user32.libincludelib \masm32\lib\kernel32.lib

.code

start:

Write

Build

Then..

69

Ejemplo

Módulo 23 Understanding Malware for fun and Profit. Diplomado Seguridad Informática

70

Ejemplo

Módulo 23 Understanding Malware for fun and Profit. Diplomado Seguridad Informática

71

Ejemplo

Módulo 23 Understanding Malware for fun and Profit. Diplomado Seguridad Informática

72

Replicación

Métodos de replicación

Los métodos de dispersión en la actualidad son muy variados, los podemos encontrar de cualquiera de las siguientes formas:

-Ejecución de simples archivos ejecutables.

-Ejecución de simples archivos interpretados.-Correo Electrónico **

-Archivos y/o carpetas compartidas

-Fallos de seguridad **

-Explotación de memoria parcial por mal diseño de código.

-Infección de booteadores maestros en dispositivos exportables [discos duros, discos flexibles].-Infección esteganográfica por máquina virtual.-Ingeniería Social.

73

Danos

Análisis básico

Trivial

Solo replicarse

Moderado

Destrucción de la Información

Mayor

Corrupción de Archivos o Información

Severo

Alteración o Modificación de la Información

Ilimitado

Robo de Información

74