Categoría: Seguridad

  • Creando una cold wallet para guardar tus bitcoins

    Ante el creciente número de ataques informáticos a gente o entidades que poseen bitcoins, se hace necesario establecer medidas drásticas de seguridad a fin de salvaguardar nuestros ahorros protegiendo las carteras virtuales donde depositamos nuestros bitcoins.

    Una de las alternativas que tenemos a la hora de acometer esta tarea es la creación de «cold wallets«, esto es, carteras offline que no estén almacenadas en internet (nada de fiarse de webs de terceros) ni en ningún dispositivo conectado a internet. Hoy os voy a detallar como crear y manejar una de estas cold wallets de forma sencilla usando Tails y Electrum.

    Electrum
    Electrum

    (más…)
  • Ya hay API para WhatsApp!

    Lo que mucha gente esperaba ahora ya es posible, hoy han lanzado una API no oficial para WhatsApp, bien es cierto que no está completa porque no incorpora la función leer mensajes, pero esto debería ser fácil de implementar.

    WhatsApp image

    A partir de esto las posibilidades que se abren son ilimitadas: bots, clientes para PC o cualquier otra plataforma, spam masivo usando una base de datos de sus usuarios (recordad que para mandar mensajes no hace falta que el destinatario te tenga entre sus contactos ;)), etc.

    (más…)
  • Blindando SSH

    SSH (Secure SHell) nos permite acceder a máquinas remotas de forma segura, gracias a que cifra toda la información que transmite, para abrir un terminal, iniciar una sesión gráfica o enviar y recibir ficheros.

    En este mini-tutorial vamos a ver como blindar un servidor OpenSSH, usado frecuentemente en sistemas Unix, para protegernos de los ataques más comunes.

    Cambiar el puerto por defecto

    SSH usa por defecto el puerto 22, esto es algo que todos los posibles juankers y script kiddies que traten de hacerse con el control de tu servidor saben, por lo que es una buena idea cambiarlo.

    Para modificar esta opción y las siguientes editaremos el fichero de configuración shd_config, que por defecto se encuentra en el directorio /etc/ssh/. Utilizad vuestro editor de texto favorito, aquí usaré nano:

    sudo nano /etc/ssh/sshd_config

    Tenemos que usar un puerto cualquiera por encima del 1024, así que escoged el que queráis. En este ejemplo usaré el 3729, así que la opción Port del fichero de configuración quedaría así:

    Port 3729

    Apuntadlo para abrirlo en el router y poder especificarlo en el cliente al conectaros con la opción -p.

    Desactivar el Protocolo 1

    La primera versión del protocolo SSH tiene varias vulnerabilidades conocidas y por tanto no hay razón para permitir su uso.

    Buscamos la opción Protocol y nos aseguramos de que quede así:

    Protocol 2

    De esta forma sólo aceptaremos conexiones que usen la segunda versión del protocolo SSH.

    Deshabilitar el acceso del superusuario (root)

    No es muy recomendable permitir el acceso remoto directo al usuario root, por lo que lo desactivaremos:

    PermitRootLogin no

    Una vez logueados con otro usuario podremos cambiar a root usando su.

    Definir un número máximo de intentos de conexión

    Muchos de los ataques llevados a cabo por los malvados script kiddies se basan en fuerza bruta, estableciendo un número máximo de intentos de conexión lograremos disuadirles o, al menos, retrasar su «sofisticado» intento de hacking:

    MaxAuthTries 2

    El número de intentos de logueo fallidos antes de desconectar ya depende de la torpeza o mala memoria de los usuarios legítimos del sistema 🙂 .

    Restringir el acceso a determinados usuarios

    Si un usuario de nuestro sistema no necesita acceder de forma remota al mismo, no hay razón para permitírselo. Para hacerlo modificaremos la siguiente opción:

    AllowUsers yo

    De esta forma el usuario «yo» sería el único que puede hacer login remoto de forma directa a nuestro sistema.

    Activar el modo estricto

    La opción StrictModes debe activarse para que, por ejemplo, los usuarios despistados que establecen permisos de escritura para todo el mundo en sus archivos y directorios no se lleven una desagradable sorpresa cuando otro usuario los modifique 😛 .

    StrictModes yes

    Impedir la conexión al servidor gráfico

    Si nuestro servidor no tienen entorno gráfico instalado, o no queremos que los usuarios se conecten a él, definiremos esta opción en el fichero de configuración:

    X11Forwarding no

    Desactivar todo autenticación basada en .rhosts

    La autenticación basada en ficheros .rhosts está obsoleta y es insegura, así que la desactivaremos:

    IgnoreRhosts yes
    HostbasedAuthentication no
    RhostsAuthentication no
    RhostsRSAAuthentication no

    Ahora guardamos los cambios realizados en el fichero de configuración y reiniciamos el servidor para que sean efectivos:

    sudo /etc/init.d/ssh restart

    Una vez seguidos todos estos pasos tendremos funcionando un servidor OpenSSH medianamente seguro al que podremos conectarnos usando el comando ssh y especificando el puerto destino de la siguiente forma:

    ssh -p 3729

    Donde 3729 es el puerto usado en este ejemplo.

    Si queréis más información sobre las diferentes opciones de configuración del servidor OpenSSH, podéis consultad las páginas del manual en internet o ejecutar:

    man sshd_config

    Para terminar, una frase de Gene Spafford sobre seguridad:

    El único sistema seguro es aquél que está apagado en el interior de un bloque de hormigón protegido en una habitación sellada rodeada por guardias armados.