miércoles, 22 de abril de 2009

virus

Virus.

Es un código o software que se auto ejecuta y propaga insertando copias de sí mismo en otros ficheros (programas o documentos), existen varios métodos para la inserción del código en un fichero, y dependiendo de cual se use así será fácil detectarlo.
Se puede colocar al inicio del fichero pero esto lo hace fácil de encontrar otros se insertan después de algunas líneas del código del fichero y otras al final poniendo un jump al inicio para asegurarse que se ejecute el código del virus al inicio. También algunos virus ponen una bandera en los archivos para no infectarlos más de una vez pero esta bandera los hace detectables otra forma de verificar es dándole un tamaño exacto a un fichero infectado, por ejemplo 1mg exacto entonces si el fichero mide exacto 1 mg no lo infecta, mas así es mas difícil de detectar por un antivirus.
Una característica importante de diferencia a un virus de otros conceptos como gusanos, troyanos o malware, es que se ejecuta y se propaga únicamente cuando se abre el fichero, mientras que los troyanos permiten o crean acceso al equipo, un gusano se expande o reproduce automáticamente y un malware no es un virus si no que es un software dañino que a través de psicología social se convence a un usuario de ejecutarlo.
También creo que es importante mencionar que un Virus no daña el hardware, lo más que podría hacer es borrar o dañar la Bios pero que un virus haga que una computadora explote o se encienda en llamas eso no sucederá a como algunos USUARIOS mencionan.

Los virus y por decirlo así todos su sucesores se aprovechan de los bugs (“errores” o vulnerabilidades) de los sistemas operativos para realizar la tarea para la que son creados. Entonces contradiciendo las frases populares “en Linux no hay virus”, todo sistema operativo puede tener un virus, con la diferencia que son mucho más comunes en Windows debido a que la cantidad de usuarios de estos OS es mayor por lo tanto hay más gente que conoce a detalle el funcionamiento y vulnerabilidades de este sistema operativo.
Todavía hay pocos escritores de virus que usan Linux habitualmente. Algunos han instalado Linux en una partición para hacer sus pruebas y conocen bastantes cosas de él, pero no tienen en absoluto la soltura que han conseguido durante años de uso de DOS y Windows. Supongo que esto cambiará con el tiempo, y pronto los creadores de virus usarán Linux a diario. Cuando esto ocurra, yo creo que habrá una nueva hornada de virus para Linux programados desde la experiencia, no como un experimento de laboratorio.
Se puede decir que mientras más usuarios usen Linux mas virus surgirán para este sistema operativo porque en si en un .deb, .rpm o .mdk que son paquetes en estos se pude introducir algún código malicioso que incluso dañe el kernel. Me atrevería a mencionar que +Usuarios = +Virus.
Les dejo algunos link donde pueden encontrar mas información al respecto, e incluso uno donde se dice como hacer un virus para Linux prubenlo y si a alguien le funciona que lo postee.

http://www.theinquirer.es/2009/02/19/como-escribir-un-virus-para-linux-en-sencillos-5-pasos.html

http://www.geekzone.co.nz/foobar/6229#compact

http://www.informatica-hoy.com.ar/software-seguridad-virus-antivirus/Tipos-de-virus.php

martes, 24 de febrero de 2009

RAID (Redundant Array of Inexpensive Disks)






Redundant Array of Independent Disks,con sus siglas en ingles RAID conjunto redundante de discos independientes, se refiere a un sistema de almacenamiento que utiliza varios discos duros entre los cuales distribuye los datos.

Las ventajas de usar raid:

  • Mayor integridad.
  • Mayor tolerancia de fallos.
  • Mayor rendimiento.
  • Mayor capacidad.
La idea inicial era conbinar varios dispocitivos de bajo costo y tegnologia antigua para que en conjutno ofreciera una mayor capacidad, fiabilidad, velocidad a un bajo costo.

Historia

A Norman Ken Ouchi de IBM le fue concedida en 1978 la patente USPTO no.4092732 , titulada «Sistema para recuperar datos almacenados en una unidad de memoria averiada» (System for recovering data stored in failed memory unit), cuyas demandas describen los que más tarde sería denominado escritura totalmente dividida (full striping). Esta patente de 1978 también menciona la copia espejo(mirroring o duplexing), que más tarde sería denominada RAID 1, y la protección con cálculo de paridad dedicado, que más tarde sería denominada RAID 4, que eran ya arte previo en aquella época.

La tecnología RAID fue definida por primera vez en 1987 por un grupo de informáticos de la Univesidad de California, Berkeley. Este grupo estudió la posibilidad de usar dos o más discos que aparecieran como un único dispositivo para el sistema.

En 1988, los niveles RAID 1 a 5 fueron definidos formalmente por David A. Patterson, Garth A. Gibson y Randy H. Katz en el ensayo Un caso pra conjuntos de discos redundantes economicos (RAID) —A Case for Redundant Arrays of Inexpensive Disks (RAID)—, publicado en la Conferencia SIGMOD de 1988 (págs. 109-116). El término «RAID» se usó por vez primera en este ensayo, que dio origen a toda la industria de los conjuntos de discos.

Referencia: http://es.wikipedia.org/wiki/RAID


Niveles de RAID

La elección de los diferentes niveles de RAID va a depender de las necesidades del usuario en lo que respecta a factores como seguridad, velocidad, capacidad, coste, etc.
Cada nivel de RAID ofrece una combinación específica de tolerancia a fallos (redundancia), rendimiento y coste, diseñadas para satisfacer las diferentes necesidades de almacenamiento. La mayoría de los niveles RAID pueden satisfacer de manera efectiva sólo uno o dos de estos criterios. No hay un nivel de RAID mejor que otro; cada uno es apropiado para determinadas aplicaciones y entornos informáticos. De hecho, resulta frecuente el uso de varios niveles RAID para distintas aplicaciones del mismo servidor. Oficialmente existen siete niveles diferentes de RAID (0-6), definidos y aprobados por el el RAID Advisory Board (RAB). Luego existen las posibles combinaciones de estos niveles (10, 50, ...). Los niveles RAID 0, 1, 0+1 y 5 son los más populares.

RAID 0: Disk Striping "La más alta transferencia, pero sin tolerancia a fallos".

También conocido como "separación ó fraccionamiento/ Striping". Los datos se desglosan en pequeños segmentos y se distribuyen entre varias unidades. Este nivel de "array" o matriz no ofrece tolerancia al fallo. Al no existir redundancia, RAID 0 no ofrece ninguna protección de los datos. El fallo de cualquier disco de la matriz tendría como resultado la pérdida de los datos y sería necesario restaurarlos desde una copia de seguridad. Por lo tanto, RAID 0 no se ajusta realmente al acrónimo RAID. Consiste en una serie de unidades de disco conectadas en paralelo que permiten una transferencia simultánea de datos a todos ellos, con lo que se obtiene una gran velocidad en las operaciones de lectura y escritura. La velocidad de transferencia de datos aumenta en relación al número de discos que forman el conjunto. Esto representa una gran ventaja en operaciones secuenciales con ficheros de gran tamaño. Por lo tanto, este array es aconsejable en aplicaciones de tratamiento de imágenes, audio, video o CAD/CAM, es decir, es una buena solución para cualquier aplicación que necesite un almacenamiento a gran velocidad pero que no requiera tolerancia a fallos. Se necesita un mínimo de dos unidades de disco para implementar una solución RAID 0.

RAID 1: Mirroring "Redundancia. Más rápido que un disco y más seguro"

También llamado "Mirroring" o "Duplicación" (Creación de discos en espejo). Se basa en la utilización de discos adicionales sobre los que se realiza una copia en todo momento de los datos que se están modificando. RAID 1 ofrece una excelente disponibilidad de los datos mediante la redundancia total de los mismos. Para ello, se duplican todos los datos de una unidad o matriz en otra. De esta manera se asegura la integridad de los datos y la tolerancia al fallo, pues en caso de avería, la controladora sigue trabajando con los discos no dañados sin detener el sistema. Los datos se pueden leer desde la unidad o matriz duplicada sin que se produzcan interrupciones. RAID 1 es una alternativa costosa para los grandes sistemas, ya que las unidades se deben añadir en pares para aumentar la capacidad de almacenamiento. Sin embargo, RAID 1 es una buena solución para las aplicaciones que requieren redundancia cuando hay sólo dos unidades disponibles. Los servidores de archivos pequeños son un buen ejemplo. Se necesita un mínimo de dos unidades para implementar una solución RAID 1.

RAID 0+1/ RAID 0/1 ó RAID 10: "Ambos mundos"

Combinación de los arrays anteriores que proporciona velocidad y tolerancia al fallo simultáneamente. El nivel de RAID 0+1 fracciona los datos para mejorar el rendimiento, pero también utiliza un conjunto de discos duplicados para conseguir redundancia de datos. Al ser una variedad de RAID híbrida, RAID 0+1 combina las ventajas de rendimiento de RAID 0 con la redundancia que aporta RAID 1. Sin embargo, la principal desventaja es que requiere un mínimo de cuatro unidades y sólo dos de ellas se utilizan para el almacenamiento de datos. Las unidades se deben añadir en pares cuando se aumenta la capacidad, lo que multiplica por dos los costes de almacenamiento. El RAID 0+1 tiene un rendimiento similar al RAID 0 y puede tolerar el fallo de varias unidades de disco. Una configuración RAID 0+1 utiliza un número par de discos (4, 6, 8) creando dos bloques. Cada bloque es una copia exacta del otro, de ahí RAID 1, y dentro de cada bloque la escritura de datos se realiza en modo de bloques alternos, el sistema RAID 0. RAID 0+1 es una excelente solución para cualquier uso que requiera gran rendimiento y tolerancia a fallos, pero no una gran capacidad. Se utiliza normalmente en entornos como servidores de aplicaciones, que permiten a los usuarios acceder a una aplicación en el servidor y almacenar datos en sus discos duros locales, o como los servidores web, que permiten a los usuarios entrar en el sistema para localizar y consultar información. Este nivel de RAID es el más rápido, el más seguro, pero por contra el más costoso de implementar.

RAID 2: "Acceso paralelo con discos especializados. Redundancia a través del código Hamming"

El RAID nivel 2 adapta la técnica comúnmente usada para detectar y corregir errores en memorias de estado sólido. En un RAID de nivel 2, el código ECC (Error Correction Code) se intercala a través de varios discos a nivel de bit. El método empleado es el Hamming. Puesto que el código Hamming se usa tanto para detección como para corrección de errores (Error Detection and Correction), RAID 2 no hace uso completo de las amplias capacidades de detección de errores contenidas en los discos. Las propiedades del código Hamming también restringen las configuraciones posibles de matrices para RAID 2, particularmente el cálculo de paridad de los discos. Por lo tanto, RAID 2 no ha sido apenas implementado en productos comerciales, lo que también es debido a que requiere características especiales en los discos y no usa discos estándares.
Debido a que es esencialmente una tecnología de acceso paralelo, RAID 2 está más indicado para aplicaciones que requieran una alta tasa de transferencia y menos conveniente para aquellas otras que requieran una alta tasa de demanda I/O.

RAID 3: "Acceso síncrono con un disco dedicado a paridad"

Dedica un único disco al almacenamiento de información de paridad. La información de ECC (Error Checking and Correction) se usa para detectar errores. La recuperación de datos se consigue calculando el O exclusivo (XOR) de la información registrada en los otros discos. La operación I/O accede a todos los discos al mismo tiempo, por lo cual el RAID 3 es mejor para sistemas de un sólo usuario con aplicaciones que contengan grandes registros.
RAID 3
ofrece altas tasas de transferencia, alta fiabilidad y alta disponibilidad, a un coste intrínsicamente inferior que un Mirroring (RAID 1). Sin embargo, su rendimiento de transacción es pobre porque todos los discos del conjunto operan al unísono.
Se necesita un mínimo de tres unidades para implementar una solución RAID 3.

RAID 4: "Acceso Independiente con un disco dedicado a paridad."

Basa su tolerancia al fallo en la utilización de un disco dedicado a guardar la información de paridad calculada a partir de los datos guardados en los otros discos. En caso de avería de cualquiera de las unidades de disco, la información se puede reconstruir en tiempo real mediante la realización de una operación lógica de O exclusivo. Debido a su organización interna, este RAID es especialmente indicado para el almacenamiento de ficheros de gran tamaño, lo cual lo hace ideal para aplicaciones gráficas donde se requiera, además, fiabilidad de los datos. Se necesita un mínimo de tres unidades para implementar una solución RAID 4. La ventaja con el RAID 3 está en que se puede acceder a los discos de forma individual.

RAID 5: "Acceso independiente con paridad distribuida."

Este array ofrece tolerancia al fallo, pero además, optimiza la capacidad del sistema permitiendo una utilización de hasta el 80% de la capacidad del conjunto de discos. Esto lo consigue mediante el cálculo de información de paridad y su almacenamiento alternativo por bloques en todos los discos del conjunto. La información del usuario se graba por bloques y de forma alternativa en todos ellos. De esta manera, si cualquiera de las unidades de disco falla, se puede recuperar la información en tiempo real, sobre la marcha, mediante una simple operación de lógica de O exclusivo, sin que el servidor deje de funcionar.
Así pues, para evitar el problema de cuello de botella que plantea el RAID 4 con el disco de comprobación, el RAID 5 no asigna un disco específico a esta misión sino que asigna un bloque alternativo de cada disco a esta misión de escritura. Al distribuir la función de comprobación entre todos los discos, se disminuye el cuello de botella y con una cantidad suficiente de discos puede llegar a eliminarse completamente, proporcionando una velocidad equivalente a un RAID 0.
RAID 5 es el nivel de RAID más eficaz y el de uso preferente para las aplicaciones de servidor básicas para la empresa. Comparado con otros niveles RAID con tolerancia a fallos, RAID 5 ofrece la mejor relación rendimiento-coste en un entorno con varias unidades. Gracias a la combinación del fraccionamiento de datos y la paridad como método para recuperar los datos en caso de fallo, constituye una solución ideal para los entor
nos de servidores en los que gran parte del E/S es aleatoria, la protección y disponibilidad de los datos es fundamental y el coste es un factor importante. Este nivel de array es especialmente indicado para trabajar con sistemas operativos multiusuarios.
Se necesita un mínimo de tres unidades para implementar una solución RAID 5.
Los niveles 4 y 5 de RAID pueden utilizarse si se disponen de tres o más unidades de disco en la configuración, aunque su resultado óptimo de capacidad se obtiene con siete o más unidades. RAID 5 es la solución más económica por megabyte, que ofrece la mejor relación de precio, rendimiento y disponibilidad para la mayoría de los servidores.

RAID 6: "Acceso independiente con doble paridad"

Similar al RAID 5, pero incluye un segundo esquema de paridad distribuido por los distintos discos y por tanto ofrece tolerancia extremadamente alta a los fallos y a las caídas de disco, ofreciendo dos niveles de redundancia. Hay pocos ejemplos comerciales en la actualidad, ya que su coste de implementación es mayor al de otros niveles RAID, ya que las controladoras requeridas que soporten esta doble paridad son más complejas y caras que las de otros niveles RAID. Así pues, comercialmente no se implementa.