miércoles, 21 de enero de 2015

Virus Informaticos

LOS VIRUS INFORMÁTICOS.
Por:  
Gustavo Justo Galeana

Alexis Romero Mendoza


RESUMEN:
El virus informático es un programa diseñado para propagar, infectar y dañar a una computadora y es una amenaza muy persistente en la actualidad, debido a  que no es tan fácil combatirlos por la gran rapidez con que surgen en la red y el poco conocimiento que tienen la mayoría de los usuarios sobre ellos. 

Los virus fueron clasificados desde 1984 por el Dr. Fred Cohen en tres clases: Caballos de Troya, Gusanos y Virus. Existen 5 tipos de virus; virus que infectan archivos, virus del sector de arranque, virus del sector de arranque maestro, virus múltiple y virus macro.  

En la actualidad se menciona que se crean 30 virus por día y que existen más de 300 mil en funcionamiento, lo cual nos dice que la prevención es una  tarea muy difícil pero no imposible, la manera más eficaz de combatirlos son los antivirus, su actualización constante y el conocimiento sobre ellos.

PALABRAS CLAVE: computadora, característica, informática, virus.


INTRODUCCIÓN

En este trabajo se describe el funcionamiento, características y clasificación de los virus informáticos, teniendo en cuenta la historia desde su origen, así como la manera de prevenirlos.

VIRUS INFORMÁTICO  


Los virus informáticos, son pequeños programas diseñados para la contaminación, reproducción y propagación en computadoras, ya sean de escritorio o portátiles, también pueden infectar fuentes donde se puedan almacenar datos y trasladarse de un lugar a otro. Pueden causar daños desde infectar un archivo y eliminar su información, hasta dañar partes tan importantes en una computadora como la pérdida total de la tarjeta madre, en ocasiones pueden ser muchos más los daños.

Cuando los daños ocurren en computadoras aisladas o personales, pueden ser insignificantes a comparación de los daños que pueden causar a empresas u organizaciones, donde existen redes que enlazan a una gran cantidad de computadoras, pudiendo almacenar éstas, datos e instrumentos tan importantes que cualquier contaminación con algún virus, podría significar para ellos perdidas millonarias.

Existen también virus informáticos que  no causan daño alguno aparentemente, pero al instalarse en una computadora ocupan un espacio necesario y utilizable en otras actividades para el usuario y en ocasiones puede ser muy difícil eliminarlos.

El nombre de virus se le da por la aparente similitud que tiene con los virus biológicos, por los daños que causan en los cuerpos de otros y por  su forma de reproducción, esparcimiento y en muchos casos las mutaciones que son capaces de realizar para mejorar su funcionamiento. [1]


HISTORIA DEL VIRUS INFORMÁTICO


La historia del virus informático, comienza con la aparición de la computadora, en 1949, donde el famoso científico matemático John Louis Von Neumann (1903-1957), escribió un artículo, en el que presentaba la posibilidad de desarrollar pequeños programas que pudiesen tomar el control de otros con una estructura similar.  

En la década de los setenta se habló muy poco de los virus informáticos, pero en el año 1984, en su libro "Virus Informáticos: teoría y experimentos", el doctor Fred Cohen, quien es reconocido como el primero en definir los virus informáticos, señaló que "Se denomina virus informático a todo programa capaz de infectar a otros programas, a partir de su modificación para introducirse en ellos". Cohen demostró cómo se podía crear un virus, motivo por el que es considerado como el primer autor de un virus y padre de los virus. [2]

Sin embargo éstos ya existían desde antes. Sus inicios fueron en los laboratorios de Bell Computers. Cuando los programadores H. Douglas Mellory, Robert Morris, Victor Vysottsky y Ken Thompson, desarrollaron un juego llamado Core War, el cual consistía en ocupar toda la memoria RAM del equipo contrario en el menor tiempo posible.

A pesar de haberse confirmado la creación y aparición de los virus informáticos, en los años ochenta se supo muy poco sobre alguna contaminación de alguna clase de virus. Ya que los únicos que tenían alcance económico para sustentar una computadora era el estado, que las utilizaba en proyectos militares y las empresas como los bancos, que nunca dijeron nada por miedo a perder su credibilidad y dar a conocer sus debilidades.   

Algunos virus importantes de la historia son:

·         Viernes 13

·         Brain

·         El gusano de la nasa

Estos virus, dejaron su huella en la historia por haber  infectado a una gran cantidad de computadoras, dañado mucha información guardada en archivos y  por perjudicar  solo a empresas e instituciones que contaban con el capital suficiente para tener una computadora,  dejando una gran pérdida de información, recursos, tiempo y capital.

En los año 1991 según la NCSA (Nacional Computer Security Association) constató que en el mundo surgían 6 virus por día, ese mismo año la  IFIP (International Ferderation for Information Processing) dio cuenta que en el mundo operaban unos 420 virus, en 1994 ya eran 26 000, en 1995 aumento a 40 000 y se estimaba que para 1997 aumentarían hasta 120 000, creándose 10 virus por día.

En la actualidad, se crean 30 virus por día, aunque no todos malignos. Esto nos habla de la constante evolución que han sufrido los virus desde su aparición, y se cree que existen en función más de 300 mil virus.

CLASIFICACIÓN Y TIPOS DE VIRUS


CLASIFICACIÓN


Los virus se pueden clasificar por  la entidad en que habitan (sector de arranque o archivos ejecutables), por su grado de dispersión, por su comportamiento, por su agresividad, por sus técnicas de ataque o por la forma en que se ocultan.

 En 1984, el Dr. Fred Cohen clasificó a los nacientes virus de computadoras en tres categorías:

1)     Caballos de Troya: Son impostores, copiando archivos que parecen benignos pero en realidad son malignos. No se reproducen aunque provocan perdida o incluso robo de datos, para que se extienda es necesario dejarlo entrar en el sistema, por ejemplo, abrir un archivo adjunto de correo.

2)     Gusanos  (worms): Son programas que se replican de sistema a sistema, sin utilizar un archivo para hacerlo. En esto son diferentes de los virus, que necesitan extenderse mediante un archivo infectado. Normalmente el gusano generará un documento que contendrá la macro del gusano dentro.

3)     Virus: Es un pequeño programa que altera la forma en que funciona un equipo sin el permiso del usuario. Presenta dos características:

A.   Ser capaz de auto ejecutarse

B.   Ser capaz de replicarse

En la figura 1 se muestra un gráfico para su mejor comprensión.


                            Figura 1. Clasificación de virus. [4]  

 TIPOS


Existen cinco tipos de virus conocidos, los cuales     son:

1)     Virus que infectan archivos: Atacan a los archivos de programa. Normalmente infectan el código ejecutable, contenido en archivos .COM y  .EXE, por ejemplo. Mucho de estos residen en memorias.

2)     Virus del sector de arranque: Infectan el registro de arranque de los disquetes y los discos duros. Se activa cuando el usuario intenta iniciar el sistema desde el disco infectado.

3)     Virus del sector de arranque maestro: La diferencia entre este tipo de virus y el anterior, es el lugar en que se encuentra el código vírico. Los virus del sector de arranque maestro normalmente guardan una copia legítima de dicho sector de arranque en otra ubicación.

4)     Virus múltiple: Infectan tanto los registros de arranque como los archivos de programa. Son especialmente difíciles de eliminar.

5)     Virus macro: Ataca los archivos de datos, utiliza técnicas de programación. Una de las técnicas que utiliza es la llamada Ingeniería social. En ella no se emplea ningún software o elemento de hardware, sólo grandes dosis de ingenio, sutileza y persuasión para lograr que otra persona revele información importante con la que, además, el atacante puede dañar su computadora.


PREVENCIÓN ANTE LOS VIRUS



La mejor prevención ante los virus en la actualidad son los antivirus o vacunas, pero no existe antivirus o vacuna que pueda proteger de todos o por siempre de ellos, esto es porque surgen demasiados, tantos, como 30 cada día. Un antivirus puede ser efectivo hoy pero mañana no lo puede ser.

Un antivirus, es un programa diseñado para detectar, prevenir y combatir los virus que puedan causar algún daño a la pc.

Otra arma muy eficaz contra los virus es el conocimiento de estos, ya que pudiendo identificarlos y sabiendo el modo de propagación que utilizan, la prevención puede ser más eficaz.

Pero existen medidas las cuales el usuario puede utilizar para una mejor prevención:

·         Realizar copias de seguridad de todo el programa informático.
·         Informar a todos los usuarios acerca de que el riesgo de contagio aumenta cuando se intercambian discos flexibles u otros dispositivos con información, se descargan materiales de Internet o se abren adjuntos en la mensajería.
·         Tener programas antivirus instalados y actualizados regularmente para detectar, notificar y erradicar nuevos virus.


CONCLUSIÓN


Después de haber leído varios documentos sobre los virus informáticos, sus características y las consecuencias que producen, los he llegado  a comprender mejor. Veo casi imposible erradicarlos por completo, porque no importa cuántos detectemos,  siempre habrá uno más.

Creo que el conocimiento es el arma más eficaz para combatirlos, porque al saber a qué nos enfrentamos sabremos cómo y con qué armas defendernos. Los virus son problema de todos.

 

REFERENCIAS

[1] D. M.-Canes-Fauces. Y.- Pérez –Infante. S.- Callis-Fernández
 (2014, Enero 7) pdf  [En línea]. Disponible en: http://scielo.sld.cu/scielo.php?pid=S1029-30192011000200018&script=sci_arttext


[2]   R. Jijena. (2014, Enero 7) pdf  [En línea]. Disponible en: http://www.rderecho.equipu.cl/index.php../rderecho/article/viewFile/345/321


[3] R.- Orlando-Bello-Hernández. I.-R.-Alfonso-Sánchez  (2014, Enero 7) pdf  [En línea]. Disponible en: http://scielo.sld.cu/scielo.php?pid=S1024-94352003000500004&script=sci_arttext


[4]            (2014, Enero 7) pdf  [En línea]. Disponible en: http://importanciadelaingeneria.blogspot.mx/

sábado, 17 de enero de 2015

Java y C++ Características principales


Lenguaje de programación C++

Características principales:
1.      Tiene un conjunto completo de instrucciones de control.
2.      Permite la agrupación de instrucciones.
3.      Incluye el concepto de puntero (variable que contiene la dirección de otra variable).
4.      Los argumentos de las funciones se transfieren por su valor.
5.      E/S no forma parte del lenguaje, sino que se proporciona a través de una biblioteca de funciones.
6.      Permite la separación de un programa en módulos que admiten compilación independiente.

Otras características importantes son:
1.    Tamaño pequeño. 
2.    Uso extensivo de llamadas a funciones. 
3.    Comandos breves (poco tecleo). 
4.    Lenguaje estructurado. 
5.    Programación de bajo nivel (nivel bit) 
6.    Implementación de apuntadores - uso extensivo de apuntadores para la memoria, arreglos, estructuras y funciones 

Razones por las cuales es considerado un lenguaje profesional:
1.    El uso de constructores de alto nivel. 
2.    El poder manejar actividades de bajo-nivel. 
3.    El generar programas eficientes. 
4.    La posibilidad de poder ser compilado en una variedad de computadoras, con pocos cambios (portabilidad). 
5.    Un punto en contra es que tiene una detección pobre de errores, lo cual en ocasiones es problemático para los principiantes

Funciones predefinidas de C++

Funciones de Biblioteca del C++
Al igual que las funciones de entrada-salida por consola se encuentran en la librería "iostream.h", existen otras librerías en C++, cada una con sus propias funciones. La mejor forma de descubrirlas es echar un vistazo a un manual de C++.
Las cabeceras de algunas librerías de utilidad son:

 "iostream.h": Contiene los objetos cin, cout, cerr y clog que corresponden al flujo de entrada y salida estándar, y flujo de error respectivamente. Esta librería nos proporciona funciones de entrada y salida con o sin formato.

"stdlib.h": Contiene muchas funciones útiles, entre ellas algunas para convertir números a cadenas de caracteres y a la inversa (funciones atoi, atol, …).


string": Contiene las funciones de tratamiento de cadenas de caracteres (strings).


"ctype.h": Define funciones para operar sobre los caracteres y averiguar de qué tipo son mayúsculas, números (funciones isupper, islower, isdigit, …)


""math.h": Contiene funciones para cálculos matemáticos. 
 
 Algunas de las más útiles son:
Funciones aritméticas
Prototipo
Descripción
Cabecera
Int abs (int)
Valor absoluto
Stdlib.h
Long labs(long)
Valor absoluto
Stdlib.h
Doublé fabs(doublé)
Valor absoluto
Stdlib.h
Doublé sqrt(doublé)
Raiz cuadrada
Math.h
Doublé pow(doublé, doublé)
Devuelve el primer argumento elevado a la potencia del segundo argumento.
Math.h
Doublé exp(doublé)
Devuelve e(base de los logaritmos naturales elevado a la potencia de su argumento)
Math.h
Doublé log(doublé)
Logaritmo natural (ln)
Math.h
Doublé log10 (doublé)
Logaritmo base 10
Math.h
Doublé ceil (doublé)
Devuelve el entero más pequeño, mayor o igual que su argumento.
Math.h
Doublé floor (doublé)
Devuelve el entero más grande, menor o igual que su argumento.
Math.h


Funciones trigonométricas
Prototipo
Descripción
Cabecera
Doublé acos(doublé)
Arco coseno
Math.h
Doublé asin(doublé)
Arco seno
Math.h
Doublé atan(doublé)
Arco tangente
Math.h
Doublé cos (doublé)
Coseno
Math.h
Doublé cosh (doublé)
Coseno hiperbólico
Math.h
Doublé sin (doublé)
Seno
Math.h
Doublé sinh (doublé)
Seno hiperbólico
Math.h
Doublé tan (doublé)
Tangente
Math.h
Doublé tanh (doublé)
Tangente hiperbólica
Math.h


















Generador de números aleatorios
Prototipo
Descripción
Cabecera
Int random (int)
La llamada random (n) devuelve un entero
pseudoaleatorio mayor o igual que 0 y menor o igual
que n-1. (No está disponible en todas las
implementaciones. Si no está disponible, debe utilizar
rand).
Stdlib.h
Int rand ()
La llamada rand() devuelve un entero pseudoaleatorio
mayor o igual que 0 y menor o igual que
RAND_MAX. RAND_MAX. es una constante entera
predefinida en stdlib.h. El valor de RAND_MAX
depende de la implementación pero por lo menos es
32767.
Stdlib.h
Void srand (unsigned int)
Reinicializa el generador de números aleatorios. El
argumento es la semilla. El uso de srand varias veces
con el mismo argumento hace que rand o random (el
que utilice) produzca la misma sucesión de números
pseudoaleatorios. Si rand o random se invoca sin una
llamada previa a srand, la sucesión de números que se
produce es la misma que si se hubiera invocado srand
con un argumento 1.
Stdlib.h




Palabras reservadas de C++
¿Qué son?
Las palabras reservadas son identificadores predefinidos que tienen significados especiales y no pueden usarse como identificadores creados por el usuario en los programas.
Pueden dividirse en tres grupos:

1er grupo: contiene palabras de C  y que C++ como evolución de C también usa.
auto
const
double
Float
int
short
struct
unsigned
break
continue
else
for
long
signed
switch
register
sizeof
typedef
volatile
char
do
extern
if
return
static
union
while

2do grupo: palabras que solo usa C++
asm
Dynamic_cast
namespace
Reinterpret_cast
try
bool
explicit
new
Static_cast
typeid
catch
false
operator
template
typename
class
friend
private
this
using
Const_cast
inline
public
throw
virtual
delete
mutable
protected
true
Wchar_t
3er grupo: las siguientes palabras reservadas se han añadido como alternativas para algunos operadores de C++ y hacen los programas más legibles y fáciles de escribir.
and
bitand
compl
Not_eq
Or_eq
Xor_eq
And_eq
bitor
not
or
xor






























Uso de comentarios en C++
Un comentario es texto que el compilador omite pero que es útil para los programadores. 
Los comentarios se usan normalmente para anotar código para su referencia futura. El compilador los trata como si fueran espacios en blanco. 

Puede usar comentarios en las pruebas para desactivar algunas líneas de código; sin embargo, para esto es mejor utilizar directivas de preprocesador #if/#endif porque se puede incluir entre ellas código que contiene comentarios, pero no se pueden anidar comentarios.

Los comentarios de C++ se escriben de una de las maneras siguientes:
·         Los caracteres /* (barra diagonal, asterisco), seguidos de cualquier secuencia de caracteres (incluidas nuevas líneas), seguidos de los caracteres */. Esta sintaxis es la misma que para ANSI C.

·         Los caracteres // (dos barras diagonales), seguidos de cualquier secuencia de caracteres. Una nueva línea que no va precedida inmediatamente de una barra diagonal inversa finaliza esta forma de comentario. Por tanto, normalmente se denomina "comentario de una sola línea".

Los caracteres de comentario (/*, */ y //) no tienen ningún significado especial dentro de una constante de caracteres, un literal de cadena o un comentario. Por tanto, los comentarios que usan la primera sintaxis no se pueden anidar.