S un programa de computadora
GuianCarlos2Tesis14 de Agosto de 2013
12.081 Palabras (49 Páginas)450 Visitas
1 s un programa de computadora que tiene la capacidad de causar daño y su característica más relevante es que puede replicarse a sí mismo y propagarse a otras computadoras. Infecta "entidades ejecutables": cualquier archivo o sector de las unidades de almacenamiento que contenga códigos de instrucción que el procesador valla a ejecutar. Se programa en lenguaje ensamblador y por lo tanto, requiere algunos conocimientos del funcionamiento interno de la computadora.
Un virus tiene tres características primarias:
•
• Es dañino. Un virus informático siempre causa daños en el sistema que infecta, pero vale aclarar que el hacer daño no significa que vaya a romper algo. El daño puede ser implícito cuando lo que se busca es destruir o alterar información o pueden ser situaciones con efectos negativos para la computadora, como consumo de memoria principal, tiempo de procesador, disminución de la performance.
•
• Es autor reproductor. A nuestro parecer la característica más importante de este tipo de programas es la de crear copias de sí mismo, cosa que ningún otro programa convencional hace. Imagínense que si todos tuvieran esta capacidad podríamos instalar un procesador de textos y un par de días más tarde tendríamos tres de ellos o más. Consideramos ésta como una característica propia de virus porque los programas convencionales pueden causar daño, aunque sea accidental, sobrescribiendo algunas librerías y pueden estar ocultos a la vista del usuario, por ejemplo: un programita que se encargue de legitimar las copias de software que se instalan.
•
• Es subrepticio. Esto significa que utilizará varias técnicas para evitar que el usuario se de cuenta de su presencia. La primera medida es tener un tamaño reducido para poder disimularse a primera vista. Puede llegar a manipular el resultado de una petición al sistema operativo de mostrar el tamaño del archivo e incluso todos sus atributos.
La verdadera peligrosidad de un virus no está dada por su arsenal de instrucciones maléficas, sino por lo crítico del sistema que está infectando. Tomemos como ejemplo un virus del tipo conejo. Si este infectara una computadora hogareña la máquina se colgaría, pudiendo luego reiniciarla con un disquete de arranque limpio y con un antivirus para eliminar el virus. Si afectara a un servidor de una PyME, posiblemente el sistema informático de la empresa dejaría de funcionar por algún tiempo significando una pérdida de horas máquina y de dinero. Pero si este virus infectara una máquina industrial como una grúa robótica o algún aparato utilizado en medicina como una máquina de rayos láser para operar, los costos serían muy altos y posiblemente se perderían vidas humanas. ¿Qué pasaría si se alteraran los registros médicos de una persona de forma que se mostrara un tipo de sangre o factor RH diferente? El paciente podría morir. ¿Qué pasaría si el dígito 4 millonésimos en los cálculos para el aterrizaje de una misión espacial se alteraran en un factor del 0.001 por 100? Los astronautas morirían.
Los virus informáticos no pueden causar un daño directo sobre el hardware. No existen instrucciones que derritan la unidad de disco rígido o que hagan estallar el cañón de un monitor. En su defecto, un virus puede hacer ejecutar operaciones que reduzcan la vida útil de los dispositivos. Por ejemplo: hacer que la placa de sonido envíe señales de frecuencias variadas con un volumen muy alto para averiar los parlantes, hacer que la impresora desplace el cabezal de un lado a otro o que lo golpee contra uno de los lados, hacer que las unidades de almacenamiento muevan a gran velocidad las cabezas de L / E para que se desgasten. Todo este tipo de cosas son posibles aunque muy poco probables y por lo general los virus prefieren atacar los archivos y no meterse con la parte física.
• ¿Quién los hace?
En primer lugar debemos decir que los virus informáticos están hechos por personas con conocimientos de programación pero que no son necesariamente genios de las computadoras. Tienen conocimientos de lenguaje ensamblador y de cómo funciona internamente la computadora. De hecho resulta bastante más difícil hacer un programa "en regla" como sería un sistema de facturación en donde hay que tener muchísimas más cosas en cuenta que en un simple virus que aunque esté mal programado sería suficiente para molestar al usuario.
En un principio estos programas eran diseñados casi exclusivamente por los hackers y crackers que tenían su auge en los Estados Unidos y que hacían temblar a las compañías con solo pensar en sus actividades. Tal vez esas personas lo hacían con la necesidad de demostrar su creatividad y su dominio de las computadoras, por diversión o como una forma de manifestar su repudio a la sociedad que los oprimía. Hoy en día, resultan un buen medio para el sabotaje corporativo, espionaje industrial y daños a material de una empresa en particular.
• Algunos métodos de infección
Añadidura o empalme. Por este método el código del virus se agrega al final del archivo ejecutable a infectar, modificando las estructuras de arranque del archivo anfitrión de manera que el control del programa pase primero al virus cuando se quiera ejecutar el archivo. Este cambio de secuencia permite al virus realizar sus tareas específicas y luego pasar el control al programa para que este se ejecute normalmente. La principal desventaja de este método es que el tamaño del archivo infectado es mayor al original, lo que permite una fácil detección.
Inserción. Los virus que utilizan el método de inserción buscan alojarse en zonas de código no utilizadas o en segmentos de datos dentro de los archivos que contagian, de esta manera la longitud total del archivo infectado no varía. Este método, parecido al de empalme, exige mayores técnicas de programación de los virus para poder detectar las zonas posibles de contagio dentro de un ejecutable, por lo que generalmente no es muy utilizada por los programadores de virus informáticos.
Reorientación. Este método es una variante interesante del anterior. Bajo este esquema se introducen centrales virósicas (los códigos principales del virus) en zonas físicas del disco rígido marcadas como defectuosas o en archivos ocultos del sistema. Estos códigos virales, al ejecutarse, implantan pequeños trozos de código en los archivos ejecutables que infectan, que luego actúan como llamadores de las centrales virósicas. La principal ventaja de este método es que el cuerpo del virus, al no estar inserto en el archivo infectado sino en otro sitio oculto, puede tener un tamaño bastante grande, aumentando así su funcionalidad. La desventaja más fuerte es que la eliminación de este tipo de infecciones es bastante sencilla. Basta con borrar archivos ocultos sospechosos o reescribir las zonas del disco marcadas como defectuosas.
Polimorfismo. Este es el método más avanzado de contagio logrado por los programadores de virus. La técnica básica usada es la de inserción del código viral en un archivo ejecutable, pero para evitar el aumento de tamaño del archivo infectado, el virus compacta parte de su código y del código del archivo anfitrión de manera que la suma de ambos sea igual al tamaño original del archivo. Al ejecutar el programa infectado actúa primero el código del virus descompactando en memoria las porciones previamente compactadas. Una variante mejorada de esta técnica permite a los virus usar métodos de encriptación dinámicos para disfrazar el código del virus y evitar ser detectados por los antivirus.
Sustitución. El método de sustitución, usado con variantes por los Caballos de Troya, es quizás el método más primitivo. Consiste en sustituir el código completo del archivo original por el código del virus. Al ejecutar el programa infectado el único que actúa es el virus, que cumple con sus tareas de contagiar otros archivos y luego termina la ejecución del programa reportando algún tipo de error. Esta técnica tiene sus ventajas, ya que en cada infección se eliminan archivos de programas válidos, los cuales son reemplazados por nuevas copias del virus.
Tunneling. Es una técnica usada por programadores de virus y antivirus para evitar todas las rutinas al servicio de una interrupción y tener así un control directo sobre esta. Requiere una programación compleja, hay que colocar el procesador en modo kernel. En este modo de funcionamiento, tras ejecutarse cada instrucción se produce la INT 1. Se coloca una ISR (Interrupt Service Routine) para dicha interrupción y se ejecutan instrucciones comprobando cada vez si se ha llegado a donde se quería hasta recorrer toda la cadena de ISRs que haya colocando el parche al final de la cadena.
Los virus utilizan el tunneling para protegerse de los módulos residentes de los antivirus que monitorean todo lo que sucede en la máquina para interceptar todas las actividades "típicas" de los virus.
Para entender cómo funciona esta técnica basta saber cómo trabaja este tipo de antivirus. El módulo residente queda colgado de todas las interrupciones usualmente usadas por los virus (INT 21, INT 13, a veces INT 25 Y 26) y entonces cuando el virus intenta llamar a INT 21, por ejemplo, para abrir un ejecutable para lectura / escritura (y luego infectarlo), el antivirus emite una alerta, pues los ejecutables no son normalmente abiertos, ni menos para escritura. Y así con todas las llamadas típicas de los virus.
En cambio, cuando se hace una llamada común y corriente, el antivirus no le da mayor importancia y la deja pasar, llamando a la INT 21 original. Un virus con tunneling, entonces, antes de llamar a ninguna
...