18 oct 2010

Tipos de virus de computadoras

En informatica, un virus de computadora es un programa malicioso desarrollado por programadores que infecta un sistema para realizar alguna acción determinada. Puede dañar el sistema de archivos, robar o secuestrar información o hacer copias de si mismo e intentar esparcirse a otras computadoras utilizando diversos medios.
A continuación se detallan los distintos tipos de virus de computadoras hasta ahora conocidos:

Virus de Boot
Uno de los primeros tipos de virus conocido, el virus de boot infecta la partición de inicialización del sistema operativo. El virus se activa cuando la computadora es encendida y el sistema operativo se carga.

Time Bomb
Los virus del tipo "bomba de tiempo" son programados para que se activen en determinados momentos, definido por su creador. Una vez infectado un determinado sistema, el virus solamente se activará y causará algún tipo de daño el día o el instante previamente definido. Algunos virus se hicieron famosos, como el "Viernes 13" y el "Michelangelo".

Lombrices, worm o gusanos
Con el interés de hacer un virus pueda esparcirse de la forma más amplia posible, sus creadores a veces, dejaron de lado el hecho de dañar el sistema de los usuarios infectados y pasaron a programar sus virus de forma que sólo se repliquen, sin el objetivo de causar graves daños al sistema. De esta forma, sus autores tratan de hacer sus creaciones más conocidas en internet. Este tipo de virus pasó a ser llamado gusano o worm. Son cada vez más perfectos, hay una versión que al atacar la computadora, no sólo se replica, sino que también se propaga por internet enviandose a los e-mail que están registrados en el cliente de e-mail, infectando las computadoras que abran aquel e-mail, reiniciando el ciclo.

Troyanos o caballos de Troya
Ciertos virus traen en su interior un código aparte, que le permite a una persona acceder a la computadora infectada o recolectar datos y enviarlos por Internet a un desconocido, sin que el usuario se de cuenta de esto. Estos códigos son denominados Troyanos o caballos de Troya.
Inicialmente, los caballos de Troya permitían que la computadora infectada pudiera recibir comandos externos, sin el conocimiento del usuario. De esta forma el invasor podría leer, copiar, borrar y alterar datos del sistema. Actualmente los caballos de Troya buscan robar datos confidenciales del usuario, como contraseñas bancarias.
Los virus eran en el pasado, los mayores responsables por la instalación de los caballos de Troya, como parte de su acción, pues ellos no tienen la capacidad de replicarse. Actualmente, los caballos de Troya ya no llegan exclusivamente transportados por virus, ahora son instalados cuando el usuario baja un archivo de Internet y lo ejecuta. Práctica eficaz debido a la enorme cantidad de e-mails fraudulentos que llegan a los buzones de los usuarios. Tales e-mails contiene una dirección en la web para que la víctima baje, sin saber, el caballo de Troya, en vez del archivo que el mensaje dice que es. Esta práctica se denomina phishing, expresión derivada del verbo to fish, "pescar" en inglés. Actualmente, la mayoría de los caballos de Troya simulan webs bancarias, "pescando" la contraseña tecleada por los usuarios de las computadoras infectadas.

Hijackers
Los hijackers son programas o scripts que "secuestran" navegadores de Internet, principalmente el Internet Explorer. Cuando eso pasa, el hijacker altera la página inicial del browser e impide al usuario cambiarla, muestra publicidad en pop-ups o ventanas nuevas, instala barras de herramientas en el navegador y pueden impedir el acceso a determinadas webs (como webs de software antivírus, por ejemplo).

Keylogger
El KeyLogger es una de las especies de virus existentes, el significado de los términos en inglés que más se adapta al contexto sería: Capturador de teclas. Luego que son ejecutados, normalmente los keyloggers quedan escondidos en el sistema operativo, de manera que la víctima no tiene como saber que está siendo monitorizada. Actualmente los keyloggers son desarrollados para medios ilícitos, como por ejemplo robo de contraseñas bancarias. Son utilizados también por usuarios con un poco más de conocimiento para poder obtener contraseñas personales, como de cuentas de email, MSN, entre otros. Existen tipos de keyloggers que capturan la pantalla de la víctima, de manera de saber, quien implantó el keylogger, lo que la persona está haciendo en la computadora.

Zombie
El estado zombie en una computadora ocurre cuando es infectada y está siendo controlada por terceros. Pueden usarlo para diseminar virus , keyloggers, y procedimientos invasivos en general. Usualmente esta situación ocurre porque la computadora tiene su Firewall y/o sistema operativo desatualizado. Según estudios, una computadora que está en internet en esas condiciones tiene casi un 50% de chances de convertirse en una máquina zombie, pasando a depender de quien la está controlando, casi siempre con fines criminales.

Virus de Macro
Los virus de macro (o macro virus) vinculan sus acciones a modelos de documentos y a otros archivos de modo que, cuando una aplicación carga el archivo y ejecuta las instrucciones contenidas en el archivo, las primeras instrucciones ejecutadas serán las del virus.
Los virus de macro son parecidos a otros virus en varios aspectos: son códigos escritos para que, bajo ciertas condiciones, este código se "reproduzca", haciendo una copia de él mismo. Como otros virus, pueden ser desarrollados para causar daños, presentar un mensaje o hacer cualquier cosa que un programa pueda hacer.

Nuevos medios
Mucho se habla de prevención contra virus informáticos en computadoras personales, la famosa PC, pero poca gente sabe que con la evolución hoy existen muchos dispositivos que tienen acceso a internet, como teléfonos celulares, handhelds, telefonos VOIP, etc. Hay virus que pueden estar atacando y perjudicando la performance de estos dispositivos en cuestión. Por el momento son casos aislados, pero el temor entre los especialistas en seguridad digital es que con la propagación de una inmensa cantidad de dispositivos con acceso a internet, los hackers se van a empezar a interesar cada vez más por atacar a estos nuevos medios de acceso a internet.También se vio recientemente que los virus pueden llegar a productos electrónicos defectuosos, como pasó recientemente con iPODS de Apple, que traían un "inofensivo" virus (cualquier antivírus lo elimina, antes de que él elimine algunos archivos contenidos en el iPOD).

Síntomas

¿Cuales son los síntomas mas comunes cuando tenemos un virus?

  • Reducción del espacio libre en la memoria o disco duro.
    Un virus, cuando entra en un ordenador, debe situarse obligatoriamente en la memoria RAM , y por ello ocupa una porción de ella. Por tanto, el tamaño útil operativo de la memoria se reduce en la misma cuantía que tiene el código del virus.
    • Aparición de mensajes de error no comunes.
    • Fallos en la ejecución de programas.
    • Frecuentes caídas del sistema
    • Tiempos de carga mayores.
    • Las operaciones rutinarias se realizan con mas lentitud.
    • Aparición de programas residentes en memoria desconocidos.
  • Actividad y comportamientos inusuales de la pantalla.
    Muchos de los virus eligen el sistema de vídeo para notificar al usuario su presencia en el ordenador. Cualquier desajuste de la pantalla, o de los caracteres de esta nos puede notificar la presencia de un virus.
  • El disco duro aparece con sectores en mal estado
    Algunos virus usan sectores del disco para camuflarse, lo que hace que aparezcan como dañados o inoperativos.
  • Cambios en las características de los ficheros ejecutables
    Casi todos los virus de fichero, aumentan el tamaño de un fichero ejecutable cuando lo infectan. También puede pasar, si el virus no ha sido programado por un experto, que cambien la fecha del fichero a la fecha de infección.
  • Aparición de anomalías en el teclado
    Existen algunos virus que definen ciertas teclas que al ser pulsadas, realizan acciones perniciosas en el ordenador. También suele ser común el cambio de la configuración de las teclas, por la del país donde se programo el virus.

Técnicas

Detallamos las técnicas mas utilizadas por los virus para ocultarse, reproducirse y camuflarse de los antivirus.

OCULTACIÓN
Mecanismos de Stealth
É
ste es el nombre genérico con el que se conoce a las técnicas de ocultar un virus. Varios son los grados de stealth, y en ellos se engloban argucias tan diversas como la originalidad y nivel del autor permiten. A un nivel básico basta saber que en general capturan determinadas interrupciones del PC para ocultar la presencia de un virus, como mantener la fecha original del archivo, evitar que se muestren los errores de escritura cuando el virus escribe en discos protegidos, restar el tamaño del virus a los archivos infectados cuando se hace un DIR o modificar directamente la FAT, etc.

  • Mantener la fecha original del archivo
  • Restaura el tamaño original de los archivos infectados
  • Modifica directamente la FAT
  • Modifican la tabla de Vectores de Interrupcion
  • Se instalan en los buffers del DOS
  • Soportan la reinicializacion del sistema por teclado
  • Se instalan por encima de los 649 KB normales del DOS
  • Evita que se muestren mensajes de error, cuando el virus intenta escriir sobre discos protegidos.

Técnicas de stealth avanzadas pretenden incluso hacer invisible al virus frente a un antivirus. En esta categoría encontramos los virus que modifican la tabla de vectores de interrupción (IVT), los que se instalan en alguno de los buffers de DOS, los que se instalan por encima de los 640KB e incluso los hay que soportan la reinicialización del sistema por teclado.

Técnicas de auto encriptación

Esta técnica muy utilizada, consigue que el virus se encripte de manera diferente cada vez que se infecta el fichero, para intentar pasar desapercibido ante los antivirus
PROTECCIÓN ANTIVIRUS
Anti-debuggers

Un debugger es un programa que permite descompilar programas ejecutables y mostrar parte de su código en lenguaje original.

Los virus usan técnicas para evitar ser desensamblados y así impedir su análisis para la fabricación del antivirus correspondiente.
Armouring
M
ediante esta técnica el virus impide que se examinen los archivos que él mismo ha infectado. Para conocer más datos sobre cada uno de ellos, éstos deben ser abiertos (para su estudio) como ficheros que son, utilizando programas especiales (Debuger) que permiten descubrir cada una de las líneas del código (lenguaje de programación en el que están escritos). Pues bien, en un virus que utilice la técnica de Armouring no se podrá leer el código.

CAMUFLAJE

Mecanismos Polimorficos
E
s una técnica para impedir ser detectados, es la de variar el método de encriptación de copia en copia. Esto obliga a los antivirus a usar técnicas heurísticas ya que como el virus cambia en cada infección es imposible localizarlo buscándolo por cadenas de código. Esto se consigue utilizando un algoritmo de encriptación que pone las cosas muy difíciles a los antivirus. No obstante no se puede codificar todo el código del virus, siempre debe quedar una parte sin mutar que toma el control y esa es la parte más vulnerable al antivirus.

La forma más utilizada para la codificación es la operación lógica XOR. Esto es debido que esta operación es reversible:

2 XOR 5 = 3
3 XOR 2 = 5

En este caso la clave es el número 9, pero utilizando una clave distinta en cada infección se obtiene una codificación también distinta.

Otra forma también muy utilizada consiste en sumar un numero fijo a cada byte del código vírico.

EVASIÓN
Técnica de Tunneling

Con esta técnica, intentar burlar los módulos residentes de los antivirus mediante punteros directos a los vectores de interrupción.

Requiere una programación compleja, hay que colocar el procesador en modo paso a paso. En este modo de funcionamiento, tras ejecutarse cada instrucción se produce la interrupción 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 halla colocando el parche al final de la cadena.

RESIDENTES
TSR

Los virus utilizan esta técnica para permanecer residente en memoria y así mantener el control sobre todas las actividades del sistema y contaminar todo lo que encuentren a su paso.

El virus permanece en memoria mientras el ordenador permanezca encendido.

Por eso una de las primeras cosas que hace al llegar a la memoria es contaminar los ficheros de arranque del sistema para asegurarse de que cuando se vuelva a arrancar el ordenador volverá a ser cargado en memoria.


17 oct 2010

Desfragmentación

De Wikipedia, la enciclopedia libre

Esquema que muestra cómo se desfragmenta un disco. Los archivos se representan con colores diferentes, y en un principio están fragmentados (regados por todo el disco). Luego el proceso de desfragmentación va acomodando los archivos de tal manera que cada uno quede en un área contigua y no haya espacios entre ellos.

La desfragmentación es el proceso mediante el cual se acomodan los archivos de un disco de tal manera que cada uno quede en un área contigua y sin espacios sin usar entre ellos. Al irse escribiendo y borrando archivos continuamente en el disco duro, éstos tienden a no quedar en áreas contiguas, así, un archivo puede quedar "partido" en muchos pedazos a lo largo del disco, se dice entonces que el archivo está "fragmentado". Al tener los archivos esparcidos por el disco, se vuelve ineficiente el acceso a ellos.

El problema de almacenamiento no contiguo de archivos se denomina fragmentación, se produce debido al almacenamiento de archivos en dispositivos como disco duro y memoria RAM por el uso del computador.

La fragmentación es un problema que surge debido al ordenamiento interno de los datos en algunos sistema de archivos. Se da muy comúnmente en el sistema operativo Windows aunque también afecta a otras plataformas pero en una escala mucho menor. También se produce fragmentación dentro de la memoria del computador (memoria RAM) cuando se asignan los procesos a los diferentes bloques de memoria. Existen dos tipos de fragmentación: doble y triple.

Desfragmentar no hace que el ordenador trabaje más rapido, sino que hace que la navegación por los archivos sea mas rápida.


Fragmentación

File system fragmentation.svg

La fragmentación es la memoria que queda desperdiciada al usar los métodos de gestión de memoria. Tanto el primer ajuste, como el mejor y el peor producen fragmentación externa (Conocidos como estrategias de Colocación).

La fragmentación es generada cuando durante el reemplazo de procesos quedan huecos entre dos o más procesos de manera no contigua y cada hueco no es capaz de soportar ningún proceso de la lista de espera. Tal vez en conjunto si sea espacio suficiente, pero se requeriría de un proceso de defragmentación de memoria o compactación para lograrlo. Esta fragmentación se denomina fragmentación externa.

Existe otro tipo de fragmentación conocida como fragmentación interna, la cual es generada cuando se reserva más memoria de la que el proceso va realmente a usar. Sin embargo a diferencia de la externa, estos huecos no se pueden compactar para ser utilizados. Se debe de esperar a la finalización del proceso para que se libere el bloque completo de la memoria.

Fragmentación interna

La fragmentación interna es la pérdida de espacio en disco debido al hecho de que el tamaño de un determinado archivo sea inferior al tamaño del cluster, ya que teóricamente el archivo estaría obligado a ser referenciado como un cluster completo. Los cluster(s) son contiguos de forma que desde el último bit del archivo situado en el cluster "a" hasta el primer bit del archivo situado en el cluster contiguo (es decir "b") queda un espacio sobrante siempre teniendo la condición de que el archivo del cluster "a" fuera más pequeño que el cluster en sí.

Por eso se sugiere no disponer de un gran tamaño de partición en los discos nuevos donde la capacidad es muy importante. Por ejemplo si nuestro clúster es de 18KB (18.432 bytes) por más que un archivo ocupe menos, en nuestro disco ocupara 18KB. Esto sugiere una pérdida de ese espacio que dice utilizar pero no utiliza.

Por eso, en nuestro ejemplo, un archivo de 3KB ocupara en nuestro disco lo mismo que uno de 10KB, o sea 18 KB. Esa pérdida de espacio se denomina fragmentación interna, y no se corrige con el desfragmentador, sino disminuyendo el tamaño de la partición.

Fragmentacionpng.png

Fragmentación externa

Este tipo de fragmentación aparece como consecuencia de las distintas políticas de ajuste de bloques que tiene un sistema de ficheros, o al utilizar asignaciones dinámicas de bloques en el caso de la memoria. En el sistema de ficheros, la sucesiva creación y eliminación de ficheros de distintos tamaños puede conducir al aislamiento de los bloques libres de un disco y, dependiendo de la política de ajuste, su no elección para futuros ficheros.

En la memoria del sistema la fragmentación se produce cuando los procesos asignados han ocupado posiciones no contiguas de memoria dejando demasiados bloques libres de pequeño tamaño, en los que no "caben" nuevos procesos.

En sistemas de ficheros la desfragmentación trata de resolver este problema, alineando los bloques de datos contiguos y juntando los bloques libres, produciendo así fragmentos mayores que sí serán elegidos para futuros ficheros. En la memoria principal se soluciona compactando los procesos para que estos ocupen posiciones contiguas y dejar los bloques libres juntos, o también se soluciona con la paginación de memoria.

Desfragmentación

Este proceso consta de ordenar los trozos de información distribuida a través de todo el disco, para mejorar la velocidad de acceso y distribuir de mejor forma el espacio libre del dispositivo. Como este proceso consta en la reorganización de partes de archivos, requiere de suficiente memoria para realizar los movimientos de los trozos de información. Al mover en forma física la información, la estructura lógica no sufre alteraciones.

Aspectos de la desfragmentación

En Windows la presencia de archivos inamovibles del sistema, o que el desfragmentador no moverá para simplificar su tarea (sobre todo con el archivo de intercambio, o swap file), puede impedir un buen porcentaje de desfragmentación en el disco.

Ciertos sistemas de archivos son más susceptibles a cambios por desfragmentación que otros. Por ejemplo, una partición del tipo FAT se fragmenta más rápido que una de partición del tipo NTFS (Windows) , EXT 4 (Linux) o HFS + (MacOSX).

Utilidades

Los programas de desfragmentación, por lo general, vienen incorporados al sistema operativo (excepto en Windows NT 4). También existen aplicaciones externas, las cuales poseen opciones más avanzadas que las propuestas por los fabricantes del sistema operativo.

El desfragmentador más conocido es el Defrag, que es usado en MS-DOS y en las plataformas de Windows (en estas últimas con el nombre de "Desfragmentador de disco"). Puede ser encontrado en las versiones de Windows en Inicio -> Programas -> Accesorios -> Herramientas de Sistema.