Menú principal

jueves, 23 de octubre de 2014

Instalar y Configurar Latch para proteger OS X

Cada vez son más los usuarios que protegen sus identidades digitales con Latch, al igual que cada vez son más los servicios y plataformas que integran Latch. En el artículo de hoy vamos a mostrar de forma sencilla como se puede integrar Latch en tu OS X. El plugin lo podemos descargar desde el GitHub de ElevenPaths. Tras realizar la descarga, y disponer una cuenta de desarrollador en el sitio web de Latch, ya podremos llevar a cabo la instalación del plugin y la configuración de éste para poder proteger nuestra sesión de OS X. Pero, tenemos que tener claro que no solo es la sesión lo que podemos proteger, ya que podemos "latchear" el servicio de SSH, sudo, su, etcétera. 

Paso 1: Creación de la aplicación Latch

En primer lugar, como comentamos anteriormente, nos dirigimos al Developer Area del sitio web de Latch. En esta página disponemos de un menú a la izquierda con el cual debemos seleccionar "Mis aplicaciones". Desde esta vista podremos añadir una nueva aplicación.

Figura 1: Mis aplicaciones - Developer Area

Cuando vamos a crear la aplicación se muestra información sobre la misma. Los datos que debemos tener en cuenta son el ID de Aplicación y el Secreto. Además, hay más parámetros que pueden ser útiles para el desarrollador:
  • Nombre. Este campo refleja el nombre de la aplicación con la que los usuarios finales la verán en su dispositivo móvil.
  • Imagen. Icono que representa a la aplicación y que se verá en el dispositivo móvil.
  • 2º Factor OTP (One-Time Password). Posibilita que el servicio esté protegido además por una contraseña, que se le enviaría al usuario final en el momento en que quisiera acceder al servicio.
  • Bloqueo tras consulta. Posibilita que el servicio se bloquee automáticamente una vez que se ha accedido al mismo.
  • Correo electrónico de contacto y teléfono de contacto. Cuando se produzca una notificación al usuario, estos datos serán mostrados.
  • Operaciones. Se corresponde con cada una de las acciones incluidas en el servicio pero independientes entre sí, y que el desarrollador quiere proteger con Latch.
Figura 2: Edición de la información de la aplicación

Paso 2: Instalación del plugin de Latch en OS X

Tras descargar el plugin abrimos una terminal en OS X y ejecutamos, sobre la carpeta descargada, la siguiente instrucción ./configure && make && sudo make install.

Figura 3: Compilación del plugin de Latch for Mac

Tras la compilación, el módulo PAM de Latch, pam_latch.so, se instala en el sistema operativo en el directorio /usr/local/lib. Ahora debemos copiar, con permisos de administrador, la librería en el directorio /usr/lib/pam. Tras reubicar el módulo PAM, hay que mover el binario de Latch a /usr/bin y asegurarse de que los permisos del archivo son 755, mediante la instrucción sudo chmod 755 /usr/bin/latch.

Figura 4: Binario de Latch

Ahora tenemos que editar la configuración del servicio PAM, para ello vamos a la carpeta /etc/pam.d. Podemos editar los servicios que se encuentren dentro de la carpeta, en este caso vamos a editar el de autorización. Para editar, abrimos por ejemplo con nano y con permisos de administrador, y añadimos la siguiente línea en el fichero:
auth required pam_latch.so config=/etc/latch/latch.conf accounts=/etc/latch/latch.accounts operation=alias_de_operacion otp=yes|no.
En este caso de ejemplo, el alias de operación se corresponde con login que es el que podríamos utilizar en la operación dentro del Developer Area.

Paso 3: Configurar el App_id y el Secret de la aplicación Latch

Por último debemos añadir el app_id y secret_key en el fichero latch.conf y también el ID de la operación login. En la siguiente imagen podemos ver cómo quedaría el fichero. Tras realizar esta acción tendremos integrado Latch en el login de tu sistema OS X.

Figura 5: Configuración del fichero latch.conf

Paso 4: Pareando nuestra cuenta de usuario Latch con el servicio de Lath para OS X

Para realizar el pareo, simplemente hay que solicitar el token de pareo en la aplicación del Latch en el móvil y ejecutar el binario de latch con la siguiente sintaxis:
latch -p token
Con la app del dispositivo móvil solicitamos crear un nuevo servicio y nos proporcionarán un nuevo token  el cual debemos introducir como parámetro al binario.

Figura 6: Pareado con Latch

Cuando el usuario pone su Latch a su cuenta de OS X y éste intenta entrar se encontrará con la notificación de intento de acceso, cuando la contraseña se configure correctamente. Por cada operación configurada con el plugin de OS X podremos observar qué operación ha generado la notificación. En otras palabras, si tenemos configurado Latch en OS X para operaciones como sudo, su o conexiones a SSH.

Figura 7: Bloqueo de login en OS X

Como se puede visualizar en la imagen junto al nombre que elegimos para nuestra aplicación Latch, en este caso  Mac OS X, encontramos la operación que ha generado la notificación, en este caso el login. En la pantalla de login de OS X no nos proporcionará ningún mensaje de error y simplemente no se permitirá el acceso. En este caso, OS X no indica ningún error, simplemente sacude la caja de texto dónde se introduce la contraseña para indicar que no se puede acceder, mientras que como hemos visto antes recibimos la notificación en nuestra app móvil de Latch.

Figura 8: Login en OS X

Paso 5: Configurar Latch para proteger operaciones su

De manera sencilla podemos añadir Latch, simplemente tenemos que añadir operaciones en nuestra cuenta de Developer Area y nuestra aplicación Mac OS X. Tal y como se puede visualizar en la imagen podemos añadir distintas operaciones, tenemos que tener claro que cuando bloquemos, activemos Latch, la aplicación todas las operaciones quedarán protegidas por Latch.

Figura 9: Adición de operación para su

Para configurar Latch para OS X con la operación su, una vez que obtenemos el token de la operación abrimos el fichero de configuración de Latch, que se encuentra en la ruta /etc/latch/latch.conf. En este fichero debemos añadir en la sección de operaciones este valor junto al ID de la operación. En la imagen se puede ver como todas las operaciones que quisiéramos añadir también deberíamos pegarlas en este fichero.

Figura 10: Operaciones en el fichero latch.conf

Además, debemos recordar que su es un servicio PAM, por lo que debemos modificar en el fichero /etc/pam.d/su el contenido e indicar lo siguiente:
auth required pam_latch.so config=/etc/latch/latch.conf  accounts=/etc/latch/latch.accounts operation=alias_de_operacion otp=yes|no. 
Una vez realizamos esta operativa, al ejecutar su para cambiar de cuenta o identidad ocurre lo que se puede ver en la imagen.

Figura 11: Bloqueo del comando su
Paso 6: Configurar Latch para proteger operaciones sudo

En el caso de sudo la operativa es idéntica. En primer lugar generar la operación en el Developer Area, añadir la operación al fichero de latch.conf y posteriormente en el servicio PAM de sudo, que se encuentra en /etc/pam.d/sudo añadir la línea:
auth required pam_latch.so config=/etc/latch/latch.conf  accounts=/etc/latch/latch.accounts operation=alias_de_operacion otp=yes|no
Donde alias de operación es el nombre que le hayamos puesto a la operación en el fichero latch.conf, por ejemplo sudo. El resultado, como puede verse en la imagen es el mismo que en el caso anterior, no se consigue realizar el sudo, ya que tenemos activado Latch.

Figura 12: Bloqueo de sudo

El resultado se refleja en el dispositivo móvil dónde se puede observar la notificación instantánea dónde ver que alguien ha utilizado nuestra identidad. En este caso se puede ver fácilmente qué operación ha sido la que ha generado la notificación.


Figura 13: Notificación de bloqueo de sudo en OS X

Paso 6: Configurar Latch para proteger conexiones SSH

Para disponer de Latch con nuestro servicio de SSH, lo primero que debemos realizar el configurar el servicio PAM de SSH. Para ello modificamos el fichero de SSH, que se encuentra en /etc/pam.d/sshd. Posteriormente debemos editar el fichero sshd_config, generalmente situado en el directorio /etc, y añadimos o modificamos los siguientes valores a las directivas:
  • UsePAM yes
  • ChallengeResponseAuthentication yes
  • PasswordAuthentication no
Una vez configurado esto, el acceso queda protegido con Latch, pero además, podemos proteger el uso de las claves públicas y privadas. Esto es realmente interesante y  otorga un control total sobre el nivel de exposición de estas claves.

¿Cómo protegemos las claves públicas/privadas?
  1. Mover, con permisos administrativos, el fichero latch-shell dónde se ubico el binario de latch, por ejemplo. Los permisos que debe tener el fichero latch-shell deberían ser 4755. 
  2. Se debe modificar cada una de las claves que queramos proteger, añadiendo una instrucción que nos permita utilizar Latch antes de realizar la autenticación. Estas claves se encuentran, por defecto, en el fichero ~/.ssh/authorized_keys:
command="latch-shell -o alias_sshd_keys ssh-rsa clave alguien@host

Figura 14: Bloqueo de conexión SSH con Latch

En este caso el alias es el que se utilizará en la operación tanto en el Developer Area como en el fichero latch.conf. Si quisiéramos añadir más operaciones, en primer lugar las crearíamos en el Developer Area, para posteriormente añadir el ID en la sección Operations del fichero latch.conf. Realmente, podemos integrar Latch en diversas operaciones que realicemos desde nuestro OS X de manera sencilla.

Paso 7: ¿Qué ocurre si el sistema no tiene conectividad en Internet?

Por defecto el plugin está configurado para que, en caso de no disponer de conectividad, se pueda iniciar sesión sin contactar con Latch. Este es el comportamiento permisivo, pero el usuario pude configurar un comportamiento más restrictivo, el cual dice que si no se puede consultar el estado de Latch, no se podrá iniciar sesión.

Figura 15: Acciones disponibles cuando Latch no está disponible

¿Cómo se configura esto? En el fichero latch.conf, el cual se encuentra en /etc/latch, existe una directiva denominada action. Por defecto, el valor de la directiva es de open, pero si queremos que en caso de no existir conectividad el login u otra operación sea restrictiva por omisión, debemos cambiar el valor de la directiva a close.

4 comentarios:

  1. En el caso de poner Latch en tu Mac vinvulado a tu móvil cómo borrarías Latch de tu Mac si te arrepientes de haberlo puesto?

    ResponderEliminar
  2. Saludos, pues no se bien que pasó pero al configurar el plugin de latch en mi mac me quede sin poderme logear al equipo. Tengo la app desbloqueada pero igual no funciona

    ResponderEliminar
  3. Alguien podria ayudarme? ingrese por bash pero nada no logro ingresar al equipo. Creo que estoy bien bloqueado

    ResponderEliminar

Entrada destacada

Vente al "Security Innovation Day 2016: Let Security Be"

El Security Innovation Day es el evento desde el que Telefónica y ElevenPaths comparten los últimos lanzamientos y novedades en innovació...

Otras historias relacionadas

Entradas populares