Browse > Home / Archive by category 'Tecnologías de la Información / Sistemas de Información'

| Subcribe via RSS

Dropbox: Ahora hasta 10Gb gratis!

Artículo escrito por Pedro Carrasco

Ríos de tinta se han escrito sobre esta genial herramienta: Dropbox. Para el que todavía ande un poco despistado os contaré qué hace este software. Se trata, a mi parecer, del más sencillo sistema de sincronización de archivos en la nube: eso que está tan de moda que ahora llaman cloud computing.

Personalmente utilizo Dropbox para:

  • Hacer backups automáticos de cosas importantes.
  • Compartir archivos (música, fotos, videos, documentos de texto, etc..) con mis amigos mediante un enlace.
  • Enviar archivos de gran tamaño directamente al disco duro de otros usuarios de Dropbox.
  • Restaurar copias de archivos antiguos. Algo así como el Time Machine de Apple, pero en la nube.
  • Generar documentos colaborativos. Un archivo compartido que cada usuario modifica cuando lo necesita.
  • Si cambias de PC o formateas no pierdes información. Sólo instalando Dropbox tendrás de nuevo todos los ficheros que hayas elegido.

Además, el programa te permite disponer de los archivos que quieras en cualquier ordenador (o dispositivo) del mundo en el que tengas instalado Dropbox!! Incluso entre distintos usuarios si compartes carpetas!! Y lo mejor es que puede utilizarse en Linux, Mac, Windows, Android, Blackberry, iPhone, iPad o simplemente a través de la web. Y con una capacidad de hasta 10Gb totalmente gratis. Empiezan ofreciéndote 2Gb, que se incrementa en +250Mb cada vez que invitas a algún amigo.

Cada vez que quieras compartir un documento o foto sólo tienes que copiarlo en tu carpeta Dropbox y aparecerá como por arte de magia, en todos los ordenadores en los que tengas Dropbox instalado. También podemos obtener un enlace que si lo enviamos a cualquier persona, podrá descargar el archivo sin que sea usuario de Dropbox. Otra funcionalidad que nos ofrece es poder recuperar versiones antiguas de ficheros que ya han sido modificados. Pudiendo restaurarlo en cualquier fecha, incluso si el fichero ya ha sido borrado de tu disco duro.

Lo mejor es que lo pruebes tú mismo y veas lo útil que resulta.

Para instalarlo, es tan sencillo como registrarse aquí introduciendo tus datos (el email es importante que sea válido). ¡Recuerda los datos introducidos porque luego los necesitaremos!

Tras registrarte comenzará automáticamente la descarga del programa. Al acabar, deberás instalar haciendo doble clic en el archivo para instalarlo.

Una vez instalado, preguntará si queremos crear una cuenta nueva o utilizar una existente. Haremos clic en utilizar una cuenta existente y después en Siguiente (Next).

Es en este paso donde rellenaremos el campo email y password con los datos que hemos utilizado al principio.

Nos preguntará qué tipo de cuenta queremos, en la mayoría de casos, al menos al principio para probarlo, utilizaremos la cuenta gratuita. Así que seleccionamos la primera opción, que nos ofrece 2Gb para empezar.

Para finalizar la instalación, nos pregunta si queremos añadir un acceso directo en el escritorio (por defecto viene marcado) y si queremos modificar la ubicación de la capeta Dropbox, que por defecto será Mis Documentos, hay que seleccionar la opción marcado en rojo.

Y ya tenemos el programa listo para usar. Una gran herramienta que desde hace más de un año se ha convertido para mi en imprescindible. Ahora es más fácil que nunca tener todos los documentos de la universidad en cualquier ordenador sin tener que cargar con un pendrive a todos lados. O subir los videos de las vacaciones para que cualquiera que queramos pueda descargarlo con un enlace (es mejor que megaupload!!!).

Tags: , , , , , ,

Manual práctico de hping

Artículo escrito por Pedro Carrasco

Que es y para qué sirve

La herramienta hping es un analizador/ensamblador de paquetes TCP/IP de uso en modo consola. Está inspirado en el comando ping de unix, aunque a diferencia de éste, hping no solo es capaz de enviar paquetes ICMP sino que además también puede enviar paquetes TCP, UDP, y RAW-IP.

Todo esto quiere decir, que con esta herramienta, podemos generar paquetes TCP/IP a medida, que contengan la información que queramos. Esto puede resultar muy interesante para poder efectuar auditorías de red y poder así prevenir ataques malintencionados.

Descarga e instalación

La instalación de esta herramienta, al menos en Ubuntu, es realmente sencilla, como la mayoría de aplicaciones. Tan sólo hay que abrir una consola y escribir como root:

root@laptop:/home/root# apt-get install hping3

Para más información puedes consultar la web oficial aquí.

Diferentes usos y su sintaxis

El uso más sencillo que podemos darle es como sustituto de la herramienta ping, aunque veremos que la información que nos aporta es algo diferente. Vamos a comparar ambas herramientas:

root@laptop:/home/root# ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.020 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.016 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.017 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.023 ms
^C
— localhost ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.016/0.019/0.023/0.002 ms

root@laptop:/home/root# hping3 localhost
HPING localhost (lo 127.0.0.1): NO FLAGS are set, 40 headers + 0 data bytes
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=0.1 ms
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=0 flags=RA seq=1 win=0 rtt=0.1 ms
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=0 flags=RA seq=2 win=0 rtt=0.0 ms
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=0 flags=RA seq=3 win=0 rtt=0.0 ms
^C
— localhost hping statistic —
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.0/0.0/0.1 ms

En ambos casos, la información que nos proporciona es muy similar, salvo algún pequeño matiz como el campo de flags, que a continuación veremos de qué se trata.

También podemos utilizarlo como scanner de puertos, utilizando el método idle scan (por cierto, método ideado por Salvatore Sanfilipo, el mismo creador de hping), la sintaxis es la siguiente:

root@laptop:/home/root# hping3 -S localhost -p 9091
HPING localhost (lo 127.0.0.1): S set, 40 headers + 0 data bytes
len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=9091 flags=SA seq=0 win=32792 rtt=0.1 ms
len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=9091 flags=SA seq=1 win=32792 rtt=0.1 ms
len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=9091 flags=SA seq=2 win=32792 rtt=0.1 ms
len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=9091 flags=SA seq=3 win=32792 rtt=0.0 ms
^C
— localhost hping statistic —
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.0/0.1/0.1 ms

Si nos fijamos en el valor del flag, veremos que pone SA, que quiere decir SYN/ACK, que a grosso modo es el mensaje que un servidor responde cuando tiene un puerto abierto (en mi caso tengo un pequeño servidor web en el puerto 9091). Si hubiera estado cerrado, nos habría respondido con el flag RA, que quiere decir RST/ACK, o lo que es lo mismo, que tiene el puerto cerrado; veámoslo utilizando otro puerto distinto:

root@laptop:/home/root# hping3 -S localhost -p 9092
HPING localhost (lo 127.0.0.1): S set, 40 headers + 0 data bytes
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=9092 flags=RA seq=0 win=0 rtt=0.0 ms
len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=9092 flags=RA seq=1 win=0 rtt=0.1 ms
^C
— localhost hping statistic —
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.0/0.0/0.1 ms

En este caso nos responde con un RST/ACK, lo que nos indica que el puerto 9092 está cerrado.

Otro uso que podemos darle es como herramienta traceroute, aunque para este uso, prefiero tcptraceroute, veamos cómo hacerlo con hping:

root@laptop:/home/root# hping3 pedrocarrasco.org -t 1 −−traceroute
HPING pedrocarrasco.org (wlan0 174.132.157.133): NO FLAGS are set, 40 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=10.109.8.1 name=UNKNOWN
hop=1 hoprtt=0.9 ms

El campo ip=10.109.8.1, hace referencia a la IP del primer salto que realiza para llegar al dominio especificado. Ésto lo hemos especificado poniendo -t 1 (también podemos utilizar el comando -z en vez de -t, e incrementar el TTL cuanto queramos de uno en uno presionando Ctrl+Z).

Además podemos “firmar” los paquetes que enviemos, con el contenido que queramos. Aunque este ejemplo es inocuo, utilizándolo (in)debidamente podríamos causar diversas alteraciones en la máquina destino. Veámos el ejemplo:

root@laptop:/home/root# cat firma.txt
esto es solo un ejemplo
root@laptop:/home/root# hping3 -2 -p 7 localhost -d 50 -E firma.txt
HPING localhost (lo 127.0.0.1): udp mode set, 28 headers + 50 data bytes
[main] memlockall(): Success
Warning: can’t disable memory paging!
ICMP Port Unreachable from ip=127.0.0.1 name=localhost
status=0 port=1963 seq=0

Estableciendo la opción -2 enviamos paquetes UDP, con la opción -d 50 indicamos la longitud del mensaje y con la opción -E indicamos que lea del archivo firma.txt. Podemos ver lo que hemos enviado si capturamos con cualquier sniffer (yo he usado wireshark) el tráfico de la red.

Firmar paquetes con hping

Firmar paquetes con hping

Otra interesante habilidad de hping es poder enviar archivos a través de la red. Para esto, necesitamos una máquina que envíe algún archivo, y otra que esté a la escucha para recibirlo. Primero, preparamos la máquina que permanecerá a la escucha, para ello utilizaremos el parámetro −−listen en el que especificaremos el texto que nos servirá de indicador de inicio de mensaje (en este caso utilizo signature), el protocolo que usaremos es ICMP y lo establecemos utilizando el parámetro −−icmp (también puede usarse UDP o TCP). Al ejecutarlo veremos algo así:

root@laptop:/home/root# hping3 localhost −−listen signature −−safe −−icmp
Warning: Unable to guess the output interface
hping3 listen mode
[main] memlockall(): Success
Warning: can’t disable memory paging!

Ahora toca preparar por otro lado el comando que nos servirá para enviar el fichero que queramos.

root@laptop:/home/root# hping3 localhost −−icmp -d 50 −−sign signature −−file firma.txt
HPING localhost (lo 127.0.0.1): icmp mode set, 28 headers + 50 data bytes
[main] memlockall(): Success
Warning: can’t disable memory paging!
len=78 ip=127.0.0.1 ttl=64 id=5268 icmp_seq=0 rtt=0.1 ms
len=78 ip=127.0.0.1 ttl=64 id=5287 icmp_seq=1 rtt=0.1 ms
len=78 ip=127.0.0.1 ttl=64 id=5289 icmp_seq=2 rtt=0.1 ms
len=78 ip=127.0.0.1 ttl=64 id=5291 icmp_seq=3 rtt=0.1 ms
len=78 ip=127.0.0.1 ttl=64 id=5293 icmp_seq=4 rtt=0.1 ms
len=78 ip=127.0.0.1 ttl=64 id=5295 icmp_seq=5 rtt=0.1 ms
len=78 ip=127.0.0.1 ttl=64 id=5297 icmp_seq=6 rtt=0.1 ms

El resultado es que en el lado en que estábamos esperando recibir algo, empieza a verse lo siguiente:

root@laptop:/home/root# hping3 localhost −−listen signature −−safe −−icmp
Warning: Unable to guess the output interface
hping3 listen mode
[main] memlockall(): Success
Warning: can’t disable memory paging!
esto es solo un ejemplo
esto es solo un ejemplo
esto es solo un ejemplo
esto es solo un ejemplo
esto es solo un ejemplo
esto es solo un ejemplo

Conociendo este último uso, y con un poco de imaginación podremos utilizar hping como si de un troyano se tratase. Aunque mas que para ser usado como troyano, esta herramienta es perfecta para realizar ataques de DoS, spoof o flood. Acabaremos el artículo viendo un sencillo ejemplo de ataque flooding:

root@laptop:/home/root# hping3 −−rand-source −−flood localhost
HPING localhost (lo 127.0.0.1): NO FLAGS are set, 40 headers + 0 data bytes
hping in flood mode, no replies will be shown
^C
— localhost hping statistic —
189742 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

Podemos ver que en tan solo unos segundos, hemos inundado la red con casi doscientos mil paquetes transmitidos de forma ininterrumpida. Esto puede (suele) causar que la red se colapse, impidiendo a otros usuarios poder utilizarla, ya que hping no deja espacio (entre paquete y paquete) para que otras máquinas transmitan ningún tipo de información. El parámetro −−rand-source hace que cada paquete tenga un origen distinto y aleatorio, y −−flood no deja espacio entre paquete y paquete. Si tenemos wireshark a la escucha, podemos ver cual es el resultado:

hping-flood

hping-flood

Ahora os toca practicar con hping para aprender más sobre el protocolo TCP/IP y sus debilidades. No creo que haga falta decirlo, pero por si acaso aviso de que el uso malintencionado de esta herramienta puede ser ilegal, así que utilizad esta información de un modo educativo o para auditar vuestra propia red.

Tags: , , , , , , ,

Códigos QR

¿Qué es un código QR?

Un código QR, es una imagen bidimensional que contiene información textual. Para que nos hagamos una idea, es como un código de barras, pero creando un dibujo dentro de un área cuadrada. El acrónimo QR viene de las palabras “Quick Response”, ya que el creador de este sistema, la compañía japonesa Denso Wave en 1994, esperaba poder decodificar muy rápidamente estos códigos. La información que puede contener un código QR es tan variada como puedas imaginar, desde simples mensajes textuales, hasta URL’s, pasando por puntos geográficos, tarjetas virtuales (vCard) o incluso SMS (muy cómodo por cierto!).

QR CodePara ver qué pinta tienen estos códigos, a la izquierda os dejo mi vCard en formato QR Code :)

Existen muchos otros formatos similares a los códigos QR, como los Aztec Codes, Data Matrix, HCCB, PDF417, Semacode, ShotCode, SPARQCode etc… Los más utilizados en Japón y EEUU son los QR Codes, aunque también son populares los códigos SPARQCode (que están basados en QR), y los Data Matrix. También tienen su hueco los PDF417 sobre todo para uso en billetes de vuelos reservados online, o documentos bancarios guardados en PDF.

¿Cómo leer los códigos QR?

Para leer estos códigos sólo necesitas un móvil con cámara y un pequeño software. Yo, personalmente, utilizo i-nigma reader, la verdad es que es bastante rápido, aunque también he probado kaywa y no está nada mal. He leído que QuickMark funciona muy bien, tendré que probarlo algún día. Así que ya tenéis dónde elegir. Y si ninguno de estos programas es compatible con tu terminal, prueba visitando esta colección de aplicaciones QR para diferentes móviles, sólo tienes que ir seleccionando tu marca, y modelo de teléfono y aparecerán distintas alternativas disponibles para tu dispositivo.

¿Dónde puedo usar los códigos QR?

En la actualidad, la publicidad es el lugar en el que más llama la atención. Empresas como Durex, Lego o Audi ya han utilizado esta tecnología para dar a conocer nuevos artículos o promociones. Os dejo los videos de Lego y Audi.

Audi

LEGO

Aunque no son pocas las promociones de películas que utilizan códigos QR en su cartel principal. Películas como 9, 28 Weeks Later, The Happening o LOST son sólo algunos ejemplos.

También resulta llamativo su uso en el arte, desde hace ya algunos años, el grupo La Pluma Eléctr*k utiliza códigos QR para empapelar literalmente muros, mesas y cualquier superficie lisa susceptible de ser pintada. Y en japón también utilizan estos códigos para decorar sus edificios, hacer castillos-QR de arena en la playa y cualquier cosa que se les ocurra.

Aunque en mi opinión, este tipo de tecnología debería extender su uso en más lugares, especialmente en España (la verdad es que el único código QR que he visto ha sido en cartuchos de tinta para impresoras EPSON), imagina lo cómodo que puede ser en un museo, cada cuadro junto a su código QR y con el móvil poder acceder a TODA la información sobre el cuadro directamente en internet! O en bibliotecas! O códigos QR en la calle con información para turistas! O para conocer el precio de cualquier artículo en el supermercado sin tener que imprimir y cambiar los precios de todos los artículos cada día! O integrar esta tecnología en vehículos para obtener información extra mientras viajas por cualquier autopista (accidentes, retenciones, obras)! O para insertarlo en tu tarjeta de contacto y poder añadir a la gente al móvil directamente! Códigos QR en periódicos o revistas para interactuar con sus lectores!… Se me ocurren mil ideas!

¿Cómo generear códigos QR?

La verdad es que es muy sencillo, existen multitud de webs, que permiten crear gratuitamente estos códigos. Os dejo algunos enlaces con los que entretenerse:

Fuentes:

http://en.wikipedia.org/wiki/QR_Code

http://qrcode.es/?page_id=46&language=es

http://2d-code.co.uk/qr-code-generators/

http://www.google.es/#q=qr+codes

Artículo original: http://pedrocarrasco.org/2010/07/codigos-qr/

http://en.wikipedia.org/wiki/Data_Matrix
Tags: , , ,

La vida de un defecto – Its defect speaking

febrero 17th, 2010 | 3 Comments | Posted in Sistemas de Información

Pere Felices me acaba de enviar un texto muy simpático sobre la vida de un defecto (de software), que comparto con vosotros para que también la disfrutéis:

I am defect. For some people I am a mild inconvenience and for some I am their worst nightmare, probably a life threatening nightmare. For many years, people like you have treated me as a hunting target and treated me as a non-living entity – without any emotion, say or dreams. Till now, I kept my silence but now I had it enough. TestingGeek has allowed me to tell my story to the world, to tell you truth about me and my feelings.

You call me so many names (And all of them are bad BTW), but do you know anything at all about me? Do you know where I lived before you forced me to live in your code – to be found, discussed, killed, ignored and humiliated?  People tell me so many things, but do you realize reasons for my existent? I know I am not desired, I know I am not welcomed and to be honest, I do not want to come anywhere near your (sometime dirty) code, requirements etc. But you force me to live in your requirements, code, network and so many unimaginable places because of your misunderstandings, lack of knowledge or plain sloppiness some time.

You do not realize, but I pay a great price for your sloppiness and your lack of understanding. I take blame for lost life, money and happiness for many users. Plane is crashed because there was a defect; transaction was not complete because there was a bug and so on. Why don’t you pause, think and say plane was crashed because someone did not do their job properly. I am there not because I love staying in your code, but because someone took short cut, invited me there to be found by someone else. I was invited, ignored and now I am blamed. Where is justice? Unfortunately defects cannot trial humans in their court, but I hope our fate will change.

My life is extremely comfortable till you guys put me in the code. After that, it’s all misery and my life becomes extremely miserable. From that moment onwards, I live my life in anticipation of to be found, broken in pieces, discussed and humiliation. I do not like being here and so always gives you hint of my presence. Sometime, I have power to give strong hints and it becomes impossible for you to ignore me. But sometime, you just do not recognize my hints, you over look what I say in log files, you don’t notice when I create slight flicker or make your system slow. You attribute things like these to something else and leave me there to rot, to get worsen. That doesn’t leave me any option but to gather strength and try harder. Most of the time I succeed and you notice me. Unfortunately I cannot understand your situation so some time by the time you notice me, I might have crashed a plane or ruined millions. So please, practice, observe and understand my hints. I will be very happy if you find me and kill me in such a way that I do not have to come again, but alas it doesn’t happen.

Most of the time, instead of killing me you just change my dress and location. Sometime, you even break me in to pieces and scatter me in your code base. Unfortunately, we do not follow the law of physics so some time when you break me in pieces, every piece could be bigger than the original itself. Even in pieces we communicate with each other, we affect each other and because of this you get confused. Rather than finding all the pieces, you take one piece and kill it or unfortunately break it in even more pieces…and cycle continues.

Buried in your millions of line of code, I wait patiently for my angles called testers who have skills and mandate to discover me. Given the right environment these angles could find most of us. But look, what have you done to my angles? You have converted them from angel to robot so rather than finding me, they are following some steps. If I am lucky, they will find me otherwise my angles will pass by me and ignore me, because someone has given them steps to follow rather than mandate to find me. Will I not feel angry about it? How would you feel if you struggle to survive in a sea and rescue boat follow the route given to them and ignores your plea? Well, that’s how I feel.

Sometime my angels create robot themselves and call it test automation. This can be extremely useful, but only if mandate for them is to find me rather than creating more robots. Unfortunately, for many people mandate is limited to the creation of these robots and they are worse for me. Well, it’s like missing rescue boat in periodic manner, after every check-in, after every few hours or on nightly basis.

I am not selfish and understand that sometime you just can’t kill me, but believe me I will be very happy if you can find me, discuss me meaningfully and take conscious decision to keep me in the code. Because, if you do that I’ll understand that I’ll never ever kill someone because of my presence, I’ll know that I will not ruin your millions. So as long as you have assessed risk associated with me staying in your code, I can live there happily. I just do not want to live there with feeling that I am not wanted here and I can possibly hurt someone.

Please, I do not want to stay in your code or system. I am extremely happy outside, don’t invite me inside. I know some of us are a bit naughty and will come without invitation. For those naughty defects, give our angels mandate to find them in best possible way rather than following steps or creating just robots. I am good at heart and do not want to hurt anyone, so please find me and get me out of your code base.

Remember, I am a defect buried in your code and waiting for you. Please be aware of my presence and keep your eyes open for me.

Waiting to be found – A defect.

Fuente: Testinggeek.com

Tags: , , , , , , ,

ISTQB Advanced (Test Manager) – Mapa Mental

ISTQB Mind Map

Hace unas semanas andaba preparando el examen de certificación ISTQB Advanced Level (Test Manager). Se trata de una titulación oficial que demuestra la cualificación de los candidatos en varias disciplinas:

  • Software Testing Basics.
  • Testing Process.
  • Test Management.
  • Reviews.
  • Defect and Incident Management.
  • Standards and Test Improvement Process.
  • Test Tools and Automation.
  • Team Composition.

Para preparar la certificación me hice un mapa mental con todos los conceptos básicos del temario, que podéis descargar siguiendo estos enlaces:

ISTQB Advanced Level – Test Manager (FreeMind format)

ISTQB Advanced Level – Test Manager (Xmind format)

Si te interesa el mapa mental en algún otro formato, puedo enviártelo.

Tags: , , , , , , , , , ,