data mining: técnicas y procedimientos

No Comments
técnicas de data mining

@pedroruizhidalg― A principios de 2002, el director del FBI, John Aschcroft, anunciaba que el Departamento de Justicia comenzaría a analizar las bases de datos comerciales referentes a los hábitos de consumo y preferencias de compra de los consumidores estadounidenses. Expertos aseguran que la intención del FBI es aunar toda la información que dispongan en una mega base de datos con el fin de poder hacer el seguimiento ―en USA es casi sospechoso pagar con efectivo repetidas veces, siempre lo hacen con tarjeta― del reguero de información que vamos dejando en nuestro día a día.

Permitidme ilustrarlo con un ejemplo. Fulano de Tal se levanta un sábado y mira su Facebook, contesta a lo que le ha llamado la atención. Consulta su cuenta de Twitter y retuitea la cosa tan graciosa que ha visto. Luego mira su email. Tras esto desayuna, se ducha y se va en moto hacia una gasolinera para poner 10€ de carburante. Va a unos grandes almacenes, en la búsqueda mira una gorra, la fotografía y la envía a su novia a ver qué le parece; se compra un pantalón vaquero y una camiseta para la playa. En la esquina de siempre, le espera su novia, con la que van a tomar algo a un bar de moda. Fotografían ambos la tapa, la mandan a sus redes sociales, algunos amigos contestan con un «like» otros retwitean. Aquí paramos el ejemplo. Ahora vamos a verlo desde el punto de vista de las redes sociales y quien tenga acceso a ellas.

Cuando accedemos a una de nuestras redes sociales, se graba todo, se graba, por ejemplo, si accedemos con móvil, tablet u ordenador de sobremesa, la hora y el lugar desde el que accedemos, el sistema operativo que usamos, el tipo de navegador, el ancho de nuestra página, la última página que hemos visitado, y, desde luego, nuestra IP, por tanto, también se está grabando si accedemos desde wifi o por conexión directa 3 ó 4G. Así que puede reconstruirse la historia que antes he descrito desde la siguiente óptica:

Nuestro protagonista se conecta el sábado a las 8:35 desde una ubicación determinada ―su casa― accedió mediante la aplicación de Facebook que tenía en el móvil, contestó a su amigo de la primo ―nosotros somos quienes describimos las relaciones en facebook― algo relacionado con Messi ―sí, esto también es catalogado, pues es muy importante para los gurús del márketing―, en Twitter se hace eco del chiste del presidente de gobierno ―ya conocemos su tendencia política―, conocemos quienes le han escrito a su cuenta de Google y cuál ha sido su reacción ante ese mail. Ha puesto 10€ de gasolina 98 a las 9:43 ―llegado el caso la gasolinera tiene cámaras― y lo ha pagado con la tarjeta de crédito de su banco número tal. No ha ido al centro comercial por el camino más corto, lo sabemos por el GPS de su móvil, aparca en la puerta de un bar. Usa la talla XXL de camiseta y de pantalón la XL en lo que ha invertido 44.54€ en total, pero con su tarjeta de crédito ―que caduca el próximo enero― lo pagará el mes que viene. En la puerta del bar donde tiene aparcada la moto, se encuentra con su novia a las 11:17 horas, y tomaron unas patatas bravas con cerveza ―ellos mismos lo tuitearon― a su amigo, Fran ―el de Huelva― le gusta la foto de las patatas bravas.

Y así… podíamos seguir hasta obtener un perfil completo de ese Don Nadie, que si bien no nos aporta nada especial, sí que unido al ejército de «donnadies» que, es verdad, llevan vidas grises aburridas y previsibles, sí podemos coleccionar todos esos datos porque a las empresas de márketing les interesa muchísimo.

Clave pública @pedroruizhidalg.pub.key
#aboutpedroruizhidalgo
[polldaddy poll=9120832]
♻ miotroblogsite ahorra papel

preparar nuestro Linux para ejecutar nuestros comandos

No Comments

Extracto

@pedroruizhidalg― En múltiples ocasiones, a poco que se comienza a usar Linux advertimos que nosotros haríamos las cosas de otra forma. Indudablemente, ese es el camino, el buen camino, del administrador o usuario de Linux. Preparar nuestro sistema para ejecutar nuestros propios scripts requiere de unas técnicas fáciles de realizar. Vamos a describirlas

Abreviaturas usadas

No se describen en este artículo.

Descripción

En Linux las variables de entorno vienen descritas en el sistema cuando instalamos una distribución. Cualquier distribución. La forma de listar todas las variables de sistema es así:

$ env

Este comando sirve para listarlas todas. Si bien, para ver el contenido de una variable en particular usamos el comando echo con el nombre de la variable precedido del símbolo dolar ($). Así:

$ echo $PATH

En la variable $PATH (ruta, senda o camino en inglés), se almacenan los directorios donde Linux irá a buscar un comando para ser ejecutado, por defecto, sin que nosotros suministremos la ruta.

Necesitamos crear un directorio para almacenar nuestros comandos o scripts de sistema. Yo uso uno llamado .bin. Incluyo el punto delante para hacer que sea un directorio oculto. La forma de crearlo es la siguiente:

$ mkdir ~/.bin

Los simbolos ‘~/’ nos garantiza que estará creado en nuestra carpeta /home/nombredeusuario. Para más información:

$ echo $HOME

Muestra el directorio que contendrá nuestro .bin.

Una vez creado nuestro directorio tenemos que editar el archivo .bashrc (que es como nuestro autoexec.bat) para añadir tras la última línea el siguiente comando con tu editor preferido, gedit si no tienes mucha experiencia está bien:

export PATH=$PATH:/home/TUNOMBREDEUSUARIO/.bin

Con esto ya hemos informado a Linux que cuando el sistema lo estemos usando nosotros, añada en la lista de directorio a ejecutar nuestra .bin.

Nos dirigimos a nuestro recién creado directorio así:

cd ~/.bin

Una vez en él vamos a crear un script de prueba.

$ touch prueba
$ chmod +x prueba

Con el primer comando creamos un archivo llamado prueba aunque está vacío. En la segunda línea asignamos permiso de ejecución a este archivo.  Editamos el archivo con la siguiente orden

$ gedit ~/.bin/prueba &

Escribimos lo siguiente:

#!/usr/bin/env bash
ls -la

Ejecución

Desde cualquier directorio al que tengamos acceso ejecutamos:

$ prueba

Nos debe aparecer un listado del directorio donde nos encontremos.

Epílogo

Este artículo lo he escrito con propósitos de reutilización. Me doy cuenta que en muchos de mis artículos de Linux, tengo que volver a explicar siempre cómo proceder para crear un directorio ejecutable para nuestros propios scripts. Llamaré a este con un link para incluirlo en las instrucciones que describa.

Ayudará bastante que compartas y des like, uses la encuesta, hagas comentarios, y compartas si crees que este artículo es útil.

#aboutpedroruizhidalgo
[polldaddy poll=9120832]
♻ miotroblogsite ahorra papel

el primer día de un hacker

No Comments

@pedroruizhidalg― Si Internet fuera un iceberg, la parte visible ―por muy grande que parezca― sería la web que todos usamos. A esto le llamaremos la «web clara». Pero hay otra. En esa otra web nos encontramos absolutamente de todo. Ahí se venden drogas, armas, prostitución, servicios de información gubernamentales y privados, ejércitos, banca…  lo mejor de cada casa.

Todos tenemos en nuestra ciudad un barrio en el que no entraríamos. Bienvenidos a la «deep web», que es como se denomina a este otro barrio de Internet, donde no es fácil entrar. Donde es peligroso estar. Donde una vez descubiertos es difícil salir. Mi consejo: No entres. No obstante, he leído por ahí que se usan las siguientes herramientas.

Navegador: No, no nos sirve el navegador que usamos normalmente en la web clara. Si lo hiciéramos así estaríamos localizados en el primer segundo de la primera transmisión. Es conveniente usar un navegador que ofusque nuestra posición e identidad.  Onion Tor, es bastante bueno.

Identidad: Tienes que crearte una identidad, por supuesto falsa. De la que nunca, insisto: nunca, debes hacer uso en tus navegadores de la web clara. Has de actuar como si fueras dos personas distintas y una persona no sabe nada de la otra.

Email: Necesitas un email. Pero uno que habrás de obtener en la deep web. No se te ocurra jamás, usar un mail de la web clara. Si no entiendes esto lee el párrafo anterior y tu mano derecha jamás sabrá lo que hace tu mano izquierda.

Obviamente, no debes confiar jamás en un servidor de correo de la deep web. Todo lo que forme parte de la deep web no es confiable. Así que tendrás que encriptar todos los correos que envíes y comunicar la clave por algún medio que no sea electrónico al receptor del correo. Cuando digo que no sea un medio electrónico, me refiero a fax, teléfono, móvil, email, etcétera.

Cómo encriptar: Una vez que has buscado la forma en quien envía el mensaje y quien lo recibe puedan compartir una clave en común, tendrás que tener presente que con cada uno de tus contactos a quienes envíes correos usarán una clave distinta. No se te ocurra usar la misma clave siempre. Encriptas el mensaje usando PGP (que en linux se llama gpg). Con la información que quieres compartir habrás de crear un archivo.

gpg -ca archivo

Esto va a generar un archivo con el mismo nombre y la extensión .asc, copia el texto así:

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1

jA0EAwMCDYZWvgRbCKdgyUFRrfzQJSy36SgCOQEGJsT4aZl6mmQjRvpCIhgDj8TC
yAnfl+Owq6sbTy2uEhVDTVo29Kd2G+io+0rFZrYtnSwyYA==
=kGwV
—–END PGP MESSAGE—–

El mensaje anterior contiene “el perro de san roque no tiene rabo” con la clave 12345. Puedes probarlo.

Y esto es lo que envías.

Cómo desencriptar: Lo haces al revés, pegas lo que encuentres en tu correo y desencriptas así (te pedirá la contraseña):
gpg -d archivo

Información  comprometida: Créeme, los servicios secretos de Rusia están volviendo a la máquina de escribir y a los archivos de papel y las hojas de calco. Con un buen protocolo se ha demostrado que es lo más seguro. No obstante, si tienes información comprometida debes mantenerla suficientemente encriptada. Hay herramientas para mantener la información comprometida.

Borrado: El borrado de archivos debe ser una tarea muy cuidadosa. Existen técnicas que te podrían interesar. La situación ideal sería procesar todo en un ordenador que no esté conectado, y nunca vaya a estarlo, a Internet.

Según he leído por ahí…

#aboutpedroruizhidalgo
[polldaddy poll=9120832]
♻ miotroblogsite ahorra papel

duckduckgo el buscador que no te rastrea

No Comments

@pedroruizhidalg― En esa especie de cruzada que mantengo contra el abuso de captura de información contra las grandes empresas de Internet me encuentro el buscador duckduckgo.com que promete hacer búsquedas sin rastrear al usuario. Además es configurable, dejando al criterio del usuario si desea pasar los datos por GET  o bien pasarlos por POST.

Implicaciones

Pasar los datos por GET significa que todos los parámetros de la búsqueda se van añadiendo como variables a la dirección de la web que estemos consultado, siendo mucho más indiscreto. Cuando los datos son pasados por POST los datos son enviados por otro «canal» quedando fuera de la URL y, aunque también susceptible de ser interceptada la consulta, da un poco de más trabajo.

Un ejemplo de datos GET en Google sería cómo queda la url para buscar «el perro de san roque», donde en la URL puede observarse las distintas variables que usa google separadas por un andpersand (&).

Desde la resolución de tu pantalla, el ancho del navegador, la página anterior, la dirección y ubicación, nuestra IP, si estamos navegando mediante un proxi o no, el sistema operativo, el tipo de dispositivo son informaciones que TODO buscador indexa en su base de datos por cada una de las búsquedas. Asegura no hacerlo duckduckgo.com.

#aboutpedroruizhidalgo
[polldaddy poll=9120832]
♻ miotroblogsite ahorra papel

borrar archivos de forma segura II

No Comments

 @pedroruizhidalg―Lo admito, el método anterior para borrar archivos puede ser muy efectivo, si bien es poco práctico ya que el tiempo es un gran inconveniente borrando con srm.

He creado un script que aunque no es tan seguro como srm, borra de forma efectiva y con un ahorro de tiempo significativo.

cread el archivo borrar con touch borrar
le damos permisos de ejecución con chmod +x borrar

Con vuestro editor preferido editar el siguiente código.

#!/bin/bash
dd bs=1024 count=1024 < /dev/urandom > ~/myfileRandom
 echo ""
 echo "saludando a la afición!"
 echo ""
 echo "borrando en 10 pasadas"
 shred -n 10 -u -v --random-source ~/myfileRandom $1
 echo ""
 echo "borrado de forma semi segura " $1 " para más seguridad usa srm"
 rm ~/myfileRandom

Donde la línea dd crea un archivo myfileRandom en vuestra /home que lo lee directamente de /dev/uramdom con una longitud de 1024.

En la línea shred borramos tras diez pasadas el archivo que hemos especificado a nuestro script borrar tomando como fuente de entropía el archivo myfileRandom

Tras todo el trabajo borramos el archivo random que no nos servirá ya para nada.

Para probarlo:

 touch ~/qqq
 borrar ~/qqq
 

Espero que este artículo os sirva de mucha ayuda.

[polldaddy poll=9120832]

♻ miotroblogsite ahorra papel

borrar archivos de forma segura

No Comments

 @pedroruizhidalg― Uno de los retos más importantes, a la vez que tontos, al que nos enfrentamos los informáticos es eliminar permanentemente y de forma segura un archivo. Por extraño que os parezca la información contenida en un disco funciona de una forma muy parecida al índice de un libro, si bien algo más complicado. Así, cuando el sistema busca alguna información se dirige a índice, interroga por la dirección, o direcciones donde se halla el archivo que estamos buscando, el índice responde, y el sistema se dirige a la dirección o direcciones que le han sido proporcionadas.

El problema del borrado consiste en que el sistema tan solo anula la dirección en el índice ―estoy simplificando muchísimo, pero mi intención es que se me entienda―, de forma que el sistema supone que lo que antes era el espacio ocupado por un archivo, ahora simplemente es «espacio libre» donde puede volver a escribir.

Como estarás suponiendo la información literalmente sigue estando allí, en esos sectores, intacta y capaz de ser recuperada. Llevas razón: está ahí.

Otra posibilidad sería la de reescribir en el archivo anterior, pero antes ya dije que el «índice» respondía con la «dirección o direcciones» que ocupaba el archivo. Esto es debido a la fragmentación, es decir, un archivo puede no estar ―de hecho es lo normal― en direcciones contiguas. Así que tampoco cuando sobreescribimos estamos seguros de lo que estamos haciendo. Pueden ser borrados algunos sectores, pero no otros, con lo que la información ―ahora parcialmente― sigue estando ahí y con posibilidad de ser recuperada.

Aún conociendo los sectores exactos, hay tecnología en manos de algunas empresas y todos los servicios de información para recuperar esa información, al menos parcialmente, y conocimientos matemáticas y física suficientes para recuperarlo.

Bien, si queremos eliminar información de una forma paranoica, bien porque nos es una información que nos compromete, o por cualquier otra causa tenemos una herramienta que lo hace a la perfección. Su único inconveniente es su principal virtud. Borra de forma tan efectiva que tarda como dos hora en borrar un archivo de video de una hora duración.

Secure Delete

sudo apt-get install secure-delete
srm miarchivo.txt

realiza los siguientes procesos:

  • 1 pasada con 0xFF. (cero  hexadecimal)
  • 5 pasadas aleatorias.
  • 27 pasadas con valores especiales definidas por el algoritmo de Peter Gutmann.
  • 5 pasadas aleatorias.
  • Se cambia el nombre del archivo a un valor aleatorio.
  • Se fragmenta el archivo.

Y ahora podemos considerar con bastante seguridad que el archivo es muy, muy difícil de recomponer.

 

[polldaddy poll=9120832]

♻ miotroblogsite ahorra papel

esteganografía, cómo encriptar información dentro de una imagen.

No Comments

@pedroruizhidalg― La esteganografía es la parte de la criptografía que permite ocultar mensajes dentro de objetos ―llamados portadores― de modo que no se perciba la existencia del mensaje.

Mediante el comando de Linux outguess podemos encriptar y desencriptar mensajes dentro de imágenes de forma sumamente sencilla.

Desde el funesto 11S estamos ya acostumbrados a que nos hagan pasar en los aeropuertos por controles más o menos absurdos en los que nos hacen quitar los zapatos, no pasar un zumo, nada de colonia para los vuelos largos y un largo etcétera que no describiré por estar seguro que es de dominio público, o mal de muchos.

Pero pasar mensajes ocultos es más sencillo de lo que a priori parece, funciona de la siguiente forma así. Una imagen no es más que una matriz de dos dimensiones ―como el juego de los barquitos para los no iniciados― donde cada elemento ―celda de los barquitos― es un punto de color. Este punto de color está codificado, en última instancia, en binario. La codificación binaria es menos significativa para le dígito que esté situado a la derecha y el más significativo es el que está situado a la izquierda. Una forma de entenderlo es que en el número 3128, es preferible perder los ocho de la derecha ―menos significativos― que los tres de la izquierda. No abundaré en esto.

Alterar levemente el bit menos significativo de una imagen produce una variación tan leve en el color que sería casi imposible su detección. Además cuando viajamos podemos llevar en nuestras cámaras miles de fotos. Literalmente.

Procedimiento

sudo apt-get install outguess

Con esto tenemos instalado y listo para funcionar el comando necesario: OutGuess.

Ni que decir tiene que tanto el emisor como el receptor tienen que conocer la clave de encriptación/desencriptación.

Proceso del emisor

outguess -k "laclavesecreta" -d archivosecreto.txt imagen.jpg imagenresultante.jpg
Esto encriptará en imagenresultante.jpg el archivosecreto.txt tomando como modelo la imagen.jpg.

Proceso del receptor

outguess -k "laclavesecreta" -r imagenresultante.jpg archivoparaleerelmensaje.txt.

La imagen que adjunto es portadora de un mensaje, la contraseña que usé fue “micontraseña”. Podéis hacerme comentarios acerca del mensaje que incluyo.

Espero que haya sido de vuestro interés y tenga utilidad este artículo.
Saludos

imagen