Menú principal

Mostrando entradas con la etiqueta SSH. Mostrar todas las entradas
Mostrando entradas con la etiqueta SSH. Mostrar todas las entradas

viernes, 16 de febrero de 2018

Aparecen los primeros Tweaks orientados exclusivamente hacia el iPhone X

Con el lanzamiento de jailbreak para iOS 11, los desarrolladores están listos para trabajar en el desarrollo de tweaks para el iPhone X. Con su mayor pantalla y diseño único el iPhone X ofrece un gran número de opciones creativas para desarrollar tweaks que otros iPhone no podrán disfrutar. Semanas después del lanzamiento del jailbreak, los desarrolladores han trabajado duro para traernos unos cuantos tweaks bastante curiosos. Actualmente la principal dificultad para adquirir estos tweaks reside en la ausencia de Cydia en iOS 11, para instalarlos deberás de hacerlo vía SSH. Si no dispones de conocimientos sobre SSH es recomendable esperar a que Saurik actualice Cydia para iOS 11.

A continuación os presentamos 5 tweaks que pueden resultaros interesantes:
  1. Notchless: Este curioso tweak ofrece fondos de pantalla personalizados cuya finalidad es ocultar el borde negro de la cámara frontal. Esto lo hará incluso cuando utilicemos otras aplicaciones.                                                                                                                                           
    Figura 1: Notchless tweak.
                                                                                                                                                   
  2. BatteryPercentX: En este caso nos encontramos frente a un tweak cuya funcionalidad es mostrar el porcentaje exacto de batería de tu iPhone X sustituyendo el indicador original.                         
  3. AutoUnlockX: Desbloquear el dispositivo con Face ID a veces puede resultar tedioso, tras escanear la cara del usuario es necesario deslizar la pantalla hacia arriba para desbloquearlo. Con este tweak podrás acceder al menú más rápidamente omitiendo este paso intermedio, en el caso de tener notificaciones también podrás acceder a ellas con una sola mirada.                                
  4. NoctisXI:  En este caso se trata de una actualización del tweak Noctis, su función sigue siendo la misma, activar el modo oscuro hará que se regule el brillo de tu iPhone y cambie el color de los menús y la barra de tareas.                                                                                     
    Figura 2: Noctis tweak.
  5. Semperon Lite: Uno de los puntos fuertes del iPhone X es su panel OLED. Este tipo de paneles reduce notablemente el consumo de las baterías y hace que este tweak resulte muy útil. Con Semperon Lite se mostrará en pantalla un reloj cuando el teléfono esté bloqueado. 
Estos son solo algunos de los tweaks que han sido lanzados para el iPhone X, con el paso del tiempo seguro que aparecen más herramientas curiosas para el nuevo buque insignia de Apple y se espera que con la actualización de Cydia muchos más usuarios se suban al carro del jailbreak.

domingo, 21 de enero de 2018

Electra Jailbreak para iOS 11-11.1.2 liberado para desarrolladores

El Hacker de iOS CoolStar ha liberado su herramienta Electra Jailbreak, la cual es capaz de “liberar” cualquier modelo de iPhone, iPad e iPod Touch que corra entre las versiones iOS 11 e iOS 11.1.2. A pesar de que Electra Jailbreak ya este disponible para ser descargada es importante tener en mente que está en su versión beta, esto significa que está destinada principalmente a los desarrolladores y creadores de temas, al menos por el momento. Su versión pública será lanzada con el paso del tiempo.

Al igual que LiberiOS para iOS 11, Electra Jailbreak no instala Cydia. De hecho una vez has hecho el Jailbreak tienes que instalar los Tweaks vía SSH, lo que significa que todos aquellos que no conozcan estos métodos deberían abstenerse de usar esta herramienta al menos hasta que se añada Cydia. Cydia y algunas otras herramientas serán implementadas para hacer este Jailbreak apto para cualquier público una vez que Saurik actualice la aplicación para que funcione en iOS 11.

Figura 1: Dispositivos que soportan Electra Jailbreak.

Por otro lado si eres desarrollador o un power usser podrás instalar Tweaks en /bootstrap/Library/SBInject y temas en /bootstrap/Library/Themes utilizando SSH. Si queréis conocer que Tweaks están disponibles para Electra Jailbreak solo tendréis que entrar en su página oficial, página en la que se advierte del riesgo que conlleva usar esta herramienta sin tener conocimientos de SSH y se exime de responsabilidades por cualquier daño causado a los dispositivos por cualquier Tweak instalado posteriormente.

domingo, 10 de septiembre de 2017

Fue noticia en seguridad Apple: del 28 de agosto al 9 de septiembre

Ya es septiembre y desde Seguridad Apple nos disponemos a traeros las mejores noticias en el ámbito de la seguridad informática relacionadas con Apple. Este es nuestro nuevo Fue Noticia, sección en la que os traemos un breve resumen de las noticias más relevantes de las últimas dos semanas. Todo ello aderezado con el mejor contenido de otros sitios de referencia.

Comenzamos el lunes 28 iniciando un análisis sobre el código que se encuentra en las tarjetas de regalo de Apple y de cómo funciona el sistema de reconocimiento y validación que permite su utilización.

El martes día 29 os presentamos Blink Shell, una herramienta que te permitirá tener un emulador de terminal capaz de soportar SSH y Mosh en tu iPhone y que podría ser el sustituto de Panic´s Prompt 2.

El miércoles 30 acabamos con nuestro análisis sobre los códigos de las tarjetas de regalo de Apple
contándoos como su diseño y tipografía hace que sean legibles por la cámara de nuestros terminales. 

El jueves 31 os contamos cómo funcionará la nueva característica de emergencia Emergency SOS y como añadir contactos a los que avisar en caso de emergencia.

El viernes 1 os enseñamos una funcionalidad oculta de Instagram para iOS que permite crear borradores para publicarlos posteriormente con un solo toque.

El sábado 2 comenzamos con una serie de dos artículos en la que resumimos brevemente la evolución de las características de seguridad de Mac OS X y MacOS.

El domingo finalizamos con la serie de artículos que resumen la evolución de las características de seguridad de Mac OSX y MacOS.

El lunes 4 os hablamos de la filtración de un documento interno de Apple en el que se explican las pautas a seguir al revisar un terminal a la hora de determinar si su reparación entrará en la garantía.

El martes 5 os informamos de la llegada de iOS 11 beta 9, la cual ha sido una actualización menor para parchear errores pero ha levantado expectación por la inminente llegada de iOS 11.

El miércoles 6 os contamos cómo funcionará la nueva herramienta de escaneo de documentos que será implementada en iOS 11.

El jueves 7 comenzamos con una serie de artículos en la que explicamos por qué Secure Kernel Extension Loading (la nueva característica de seguridad de High Sierra) esta rota.

El viernes 8 os acabamos de contar porque Secure Kernel Extension Loading esta rota y como la gente de Objective-See ya ha logrado hacerla un Bypass.

Finalmente, el sábado hablamos de lo que puede traer el nuevo iPhone 8 y es que podría silenciar las notificaciones solamente con mirar la pantalla, gracias al reconocimiento facial que se presupone tendrá la nueva generación de iPhone. Sin duda una lectura interesante.

Esto es todo por hoy, recordaros que como cada dos semanas estaremos en el Seguridad Apple para mostraros todo lo que ocurre en el apasionante mundo de la manzana mordida. Os esperamos en dos semanas.

martes, 29 de agosto de 2017

SSH y Mosh Terminal en tu iPad con Blink Shell


La mayoría de las veces que hablamos de terminales rápidamente lo asociamos a ordenadores, sin embargo hoy en día la idea de tener un emulador de terminales en tu iPhone puede no parecer una idea muy convincente. El SSH puede ser muy práctico en algunas ocasiones, durante un tiempo la mejor aplicación para emular terminales en dispositivos móviles era Panic´s Prompt 2, ahora existe un gran numero de aplicaciones capaces de hacer lo mismo que ella, incluso de una manera mas rápida y eficiente, como en el caso de Blink Shell.

A simple vista, Blink Shell es similar a cualquier otro emulador de terminal, pero desde que soporta Mosh tan bien como SSH, las conexiones tienden a ser más fiables y rápidas. Blink Shell soporta teclados externos, una función muy útil si lo estas usando en un iPad. También dispone de una gran cantidad de opciones de customización que permiten cambiar el tipo de fuente y el color de los esquemas. Esto quiere decir que Blink Shell está llevando a cabo una curva de aprendimiento.

Figura 1: Blink Shell en funcionamiento.

Al contrario que otras herramientas Blink Shell no utiliza los menus de iOS. Tendrás que escribir “help” para recibir información relativa a su funcionamiento o “config” para acceder a los ajustes. Todo lo demás está configurado con gestos de deslizamiento. Puedes obtener Blink Shell por unos 20 dólares y es open source; lo que quiere decir que puedes contribuir y construírtelo para ti mismo. También es una aplicación bastante buena, en la mayoría de los casos no necesitamos hacer un SSH remoto, pero si en tu caso es al contrario échale un ojo a esta herramienta.

miércoles, 21 de enero de 2015

Cyberduck: Cliente FTP, SFTP, WebDAV que almacena credenciales de forma segura

Hace 3 años escribimos un post en el que hablábamos de Filezilla y como esta aplicación que permite conectarnos por FTP, SFTP, SSH, FTPS o FTPES no garantizaba la confidencialidad en nuestro disco duro. Es cierto que el atacante debe tener acceso a nuestros archivos, pero hoy día existen cientos de formas de lograrlo. Hoy hablamos de Cyberduck, un cliente similar a Filezilla, que está disponible en la Mac App Store y que cuando probamos como almacena la aplicación las credenciales nos encontramos que almacena las credenciales en el llavero de claves, keychain, del sistema.

Ésta es una de las mejores formas que se tiene en OS X para almacenar las credenciales y garantizar la confidencialidad de los datos sensibles que las aplicaciones manejen diariamente.  ¿Cómo se almacena la información? Al acceder al llavero a través, por ejemplo, de spotlight disponemos de las credenciales que utiliza, tanto el sistema como las aplicaciones. Para acceder al llavero deberemos introducir nuestras credenciales, teniendo permiso para acceder a nuestro llavero. En la imagen se puede ver

Figura 1: Credenciales de Cyberduck en el llavero del sistema

Es recomendable tener el disco duro cifrado para cuando el equipo esté apagado proteger dichos ficheros XML o plist, que herramientas como Filezilla no tenían protegido. Es cierto también que los ficheros quedan protegidos de otros usuarios por permisos, pero siempre se puede tener un descuido o una intrusión que accede a la información en plano. Si utilizas herramientas como Cyberduck puedes estar un poco más tranquilo, ya que realiza una gestión de claves más segura que otras aplicaciones similares.

Figura 2: Mostrar contraseña de Cyberduck en el llavero del sistema

Otra posibilidad es configurar Latch en el servidor FTP para evitar que se puedan ejecutar órdenes o iniciar sesión. Pero algo está claro, y es que este tipo de configuraciones ponen en riesgo la seguridad de todos los servidores, ya que si un equipo robado o que se pierde cuyos datos no están cifrados, tendremos un grave problema de seguridad que se extiende a los servidores remotos. Por esta razón se recomienda, como se comentó anteriormente, tener el disco cifrado, por ejemplo mediante el  uso de FileVault.

lunes, 25 de agosto de 2014

Easy FTP Pro v4.2 para iOS: Bugs de Command Injection

En la lista Bugtraq se ha publicado información sobre un exploit de 0day para Easy FTP Pro versión 4.2 para iPhone e iPad, un popular cliente FTP y sFTP (Secure FTP) que podría ser atacado localmente para comprometer la app. Se han publicado las pruebas de concepto en el informe realizado. Son dos vulnerabilidades de Command Injection que permitirían ejecutar comandos en el contexto de la app y podría ser utilizado por usuarios poco privilegiados para conseguir una elevación de privilegios.

Es decir, tendría especial significancia en el entorno de Jailbreak, pero en un entorno sin Jailbreak, parece poco probable una explotación con éxito.

Figura 1: Reportes publicados en Bugtraq

Easy FTP Pro aún no ha sido actualizado y sigue teniendo estos fallos, por lo que parece que no ha tenido ningún impacto en la seguridad de lo usuarios, pese a la validación CVSS de 5.7 que asignan a los bugs.

sábado, 8 de febrero de 2014

Latch para iOS en español y guías de uso

Ya está disponible en la App Store la nueva versión de Latch para iOS, cuya principal novedad es que se ha traducido completamente la app a Español para que todos los usuarios que quieran la puedan tener así. Además se ha añadido un pequeño menú de configuración para configurar algunos tipos de mensajes que se quieren recibir o no en cada momento. La app se puede descargar desde iTunes.

Figura 1: Latch 1.1.0 para iOS disponible en el App Store

Además se han publicado los plugins de Latch para más frameworks que se han publicado en el repositorio de código oficial de Eleven Paths. Todos los proyectos son Open Source y puedes descargarlos, usarlos y modificarlos a gusto.

Figura 2: Canal de Eleven Paths en GitHub

La lista queda de la siguiente forma:
Y se puede integrar en cualquier aplicación o script con los siguientes SDK y plugins.
- Plugin de Latch para PowerShell
- Plugin de Latch para .NET Membership Provider
- SDK de Latch para Java
- SDK de Latch para .NET
- SDK de Latch para C
- SDK de Latch para Python
- SDK de Latch para Ruby
- SDK de Latch para PHP
Además, para aprender a manejarlo mejor se han publicado las guías de instalación y uso, que pueden ser consultadas online como referencia en el canal oficial de Eleven Paths en SlideShare.

Figura 3: Guías en el canal en SlideShare de Eleven Paths
- Guía de instalación de Latch en WordPress
- Guía de instalación de Latch en PrestaShop
- Guía de instalación de Latch en Joomla
- Guía de instalación de Latch en Drupal 7
- Guía de instalación de Latch en Drupal 6

- Guía de instalación de Latch en RoundCube
- Guía de integración de Latch en aplicaciones Asp.NET

martes, 21 de agosto de 2012

Apple Remote Desktop 3.6.1 arregla el CVE-2012-068

Apple ha publicado en las principales listas de seguridad el Apple-SA-2012-20-8-1 para anunciar la disponibilidad de una actualización de seguridad de Apple Remote Desktop 3.6.1, el cliente de escritorios remotos o servidores de terminales, en la que se arregla un único bug de seguridad, descubierto por un estudiante de la Universidad de Central Connecticut State llamado Mark S.C. Smith y catalogado con el CVE-2012-068.

Según la información disponible en el artículo de la Knowledge Base HT5433, el bug permite, cuando se conecta la aplicación Apple Remote Desktop a un servidor VNC de terceros con la opción de cifrar todos lo el tráfico de red. Si dicho cifrado no se produce, no se muestra ningún aviso y las comunicaciones se hacen en claro, pudiendo llevar a un descubrimiento de información sensible por la red. El fallo se ha solucionado añadiendo un túnel SSH para la conexión VNC en la configuración, y evitando la conexión si dicho túnel no puede ser creado.

El bug no afecta a las versiones Apple Remote Desktop 3.5.1 o inferiores y está solucionado en Apple Remote Desktop 3.6.1, que puede ser descargado desde: Descargar Apple Remote Desktop 3.6.1. Si usáis este cliente, os recomendamos que lo actualicéis cuanto antes.

viernes, 16 de diciembre de 2011

iSSH no cifra las credenciales de acceso a servidores

Hace tiempo nos preocupabamos por la seguridad de las contraseñas en clientes como Filezilla, donde con solo acceder a un fichero XML era posible ver qué contraseñas estaban allí guardadas. Este problema es común a muchas aplicaciones que acaban instaladas en nuestros dispositvos móviles, y ayer mismo en Dragonjar explicaban este mismo problema pero con otra aplicación: El cliente iSSH.

iSSH es uno de los más populares, si no el más popular sí que el más descargado de la App Store, clientes SSH para dispositivos con iOS, y tal y como se puede ver en la imagen inferiro, NO CIFRA las claves, por lo que cualquier persona que pueda acceder al archivo /private/var/mobile/Applications/[número_aleatorio]/Library/Preferences/config.dat del dispositivo puede ver en texto claro el usuario, la passowrd y la dirección del servidor.


Sí, hay que acceder al dispositivo o al backup, pero en caso de extravío o robo, podría darse esta situación. Usar un cifrado con clave maestra para el almacenamiento de todas las credenciales hubiera sido lo recomendable. La pregunta que nos surge es, ¿cuántas aplicacions almacenan los datos así, de forma insegura?

Este problema nos llama la atención porque es una aplicación dirigida, comunmente, a administradores de sistemas, responsables de seguridad o técnicos profesionales. Sin embargo, en el resto de aplicaciones dedicadas a usuarios no técnicos, esta es una práctima más que aceptada, y que permite que un análisis forense de un iPhone obtenga petróleo de un terminal.

lunes, 1 de agosto de 2011

Warning!: FileZilla Almacena tus contraseñas en texto claro

FileZilla es una de esas aplicaciones que no suelen faltar en los equipos de los  profesionales de hoy en día. Es un cliente multiprotocolo capaz de realizar conexiones FTP, SFTP, SSH, FTPS o FTPES entre otros. La utilidad proporciona conexiones con protocolos bastante seguros para gestionar servidores. Sin embargo, la pregunta que nos hicimos en Seguridad Apple ¿Es tan segura localmente?¿Dónde almacenará las credenciales?¿Lo hará de manera cifrada? Hoy exponemos algunas respuestas a estas preguntas.

¿Dónde almacena la configuración FileZilla?

FileZilla almacena la configuración en ficheros XML en la ruta /Users/"usuario"/.filezilla. Algunos se preguntarán como acceder desde Finder a esa ruta oculta, si por defecto Finder de Mac OS X no muestra archivos ocultos. Para acceder desde Finder a los archivos ocultos deberemos ejecutar en el terminal la siguiente orden 'defaults write com.apple.finder AppleShowAllFiles TRUE'. Lo que estamos cambiando es el valor por defecto de la directiva AppleShowAllFiles para que Finder muestre todos los archivos, incluyendo los ocultos. Como recordatorio, un archivo oculto en Mac OS X es un archivo que comienza por un punto.

Figura 1: Habilitando archivos ocultos en Finder

Una vez realizada la acción anterior, se puede abrir una instancia de Finder e ir a la ruta /Users/"usuario"/.filezilla y encontraremos los archivos de configuración de la aplicación. Hay que tener en cuenta que esa es la configuración del usuario local, otro usuario del sistema tendrá otra configuración en su carpeta personal. El resultado es que en el Finder se observará una situación parecida a la de la imagen que se muestra a continuación.

Figura 2: Archivos de configuración de Filezilla para un usuario local

Investigando los archivos de configuración

Ahora se puede investigar los distintos archivos que se han encontrado. Pero llaman la atención dos archivos en concreto, recentservers.xml y sitemanager.xml. Editando el primer archivo, recentservers.xml, encontramos información muy interesante. Al parecer, FileZilla ha estado almacenando las credenciales de los servidores a los que el usuario ha estado accediendo.

¿Por defecto guarda un histórico? Parece ser que sí. A continuación podéis ver parte del archivo recentservers.xml y las credenciales con las direcciones de los servidores.

Figura 3: Fichero recentservers.xml

El fichero sitemanager.xml almacena la configuración del gestor de sitios que viene con Filezilla. El gestor de sitios ayuda al usuario no tener que configurar una nueva conexión cada vez que quiera conectarse a un servidor. A continuación se puede observar cómo toda esa configuración, incluyendo credenciales, se almacenan en texto plano.

Figura 4: Fichero sitemanager.xml

En la imagen anterior, en el interior del rectángulo verde encontramos el servidor y puerto al que se conectará. En rojo las credenciales en plano, en azul el nombre del servidor remoto y en amarillo el directorio local y el directorio remoto, que en este caso no está configurado por lo que entrará al de por defecto del usuario remoto.

Cierre de sesión de local y cifrado de datos

Parece que FileZilla ofrece muchos protocolos de seguridad pero no protege de manera adecuada la información local del usuario, información muy sensible. Es por este tipo de cosas, que los administradores de red o los que trabajamos en seguridad implantan de modo el famoso ataque David Hasselhoff, que no tiene como objetivo nada más que hacer entender a un usuario que dejar la sesión abierta es un riesgo de seguridad. Si conseguimos que un usuario cierre la sesión de su equipo, aunque sea solo por no ver a David Hasselhoff en su equipo, estaremos logrando mejorar la seguridad de la compañía.

Por otro lado, este tipo de configuraciones pondría en riesgo la seguridad de todos los servidores si un equipo portátil es robado o perdido, y los datos no están cifrados, por lo que os recomendamos que hagáis uso de FileVault o FileVault 2 en Mac OS X Lion, o de TrueCrypt para cifrar los volúmenes de datos de vuestras aplicaciones.

jueves, 23 de diciembre de 2010

SSHFS: Montar en tu Mac OS X los ficheros de tu iPhone

SSHFS (Secure SHell File System) es un sistema de ficheros remoto al que se accede por medio del protocolo SSH. SSHFS proporciona al usuario un sistema de archivos montado en local, en el lugar especificado por el usuario, que le permite acceder de forma remota y segura al repositorio original. De este modo, el usuario podrá tener al alcance de su Finder los archivos de su cuenta remota en otro equipo sin riesgo para su seguridad. En este ejemplo, queremos recoger el proceso para acceder, por medio de SSHFS, a los archivos de un iPhone, así que vamos a ponernos manos a la obra.

Preparando el entorno en Mac OS X

Para la instalación del sistema de ficheros SSHFS en Mac OS, se necesitan las siguientes aplicaciones:

- Los binarios de SSHFS.
- MacFUSE.
- Interfaz Gráfico de Usuario (GUI) para MacFUSE, realizada por MacFusion.

Para simplificar todo este proceso, el paquete completo de herramientas se puede descargar del proyecto MacFusion de forma totalmente gratuita.

Requisitos para iPhone: Instalación de un servidor SSH

El requisito único es tener un servidor SSH instalado en el dispositivo móvil. En Seguridad Apple se explicó cómo configurar un servidor SSH seguro en iPhone. Una vez se tiene instalado el servidor SSH en el dispositivo móvil ya se puede acceder mediante SSHFS al contenido de cualquier cuenta que la política del servidor SSH del equipo remoto permita acceder.

Ejecutando por primera vez MacFusion

En la primera ejecución se deberá configurar la conexión SSH de la cuenta con la que se quiera acceder al iPhone. Como se puede ver en la imagen de la izquierda, se ha especificado la dirección IP del servidor SSH en iPhone, la cuenta mobile, su contraseña y la carpeta $HOME del usuario en él como información remota.

En la pestaña SSH Advanced, si se hubiera cambiado el puerto del servidor SSH, se puede configurar el valor del puerto de conexión al servidor entre otros valores avanzados de la conexión SSH. La pestaña Macfusion da la posibilidad de modificar el icono con el que se mostrará la aplicación y elegir el punto de montaje donde colgará este sistema de ficheros.

Montaje del sistema de ficheros remoto en local

Una vez configurada la aplicación se podrá iniciar la conexión con el servidor para el montaje en la ruta especificada en el cuadro anterior. Como se puede observar en la imagen la cuenta se montará simplemente pulsando en mount.

Montar y desmontar el sistema SSHFS desde Macfusion con un solo clic

Cuenta montada en el equipo

En la imagen de la izquierda se puede observar como queda la cuenta montada como un dispositivo más. MacFusion ofrece la cuenta como si fuera un dispositivo físico cualquier conectado a nuestro sistema Mac OS X.

Por último, hay que recordar que la seguridad está garantizada con el protocolo SSH de fondo. Siempre se puede mejorar ampliando los bits de las claves o logueando a través de clave pública-privada como se explicó en en el artículo dedicado a la fortificación del servidor SSH en un iPhone. Todas las opciones de configuración del cliente, se configuran en Macfusion en el panel de SSH Advanced.

miércoles, 15 de septiembre de 2010

Configuración OpenSSH en dispositivos iPhone (4 de 4)

========================================================================
- Configuración OpenSSH en dispositivos iPhone (1 de 4)
- Configuración OpenSSH en dispositivos iPhone (2 de 4)
- Configuración OpenSSH en dispositivos iPhone (3 de 4)
- Configuración OpenSSH en dispositivos iPhone (4 de 4)
========================================================================

Este último post de la serie sobre la fortificación del servidor OpenSSH en los dispositivos iPhone/iPad/iPod Touch se centra en el uso de certificados digitales tanto para autenticar al servidor, como para configurar un canal cifrado seguro o autenticar a los usuarios para evitar el uso de contraseñas.

Claves RSA

Cuando en este artículo se hace referencia a una clave RSA se ha de tener presente que se refiere a un par de claves pública y privada utilizadas en los sistemas criptográficos de cifrado asimétrico. La pública es la parte de la clave RSA que puede ser conocida por todos mientras que la parte privada debe estar bien almacenada con seguridad mediante permisos estrictos y debe transmitirse siempre por canales seguros que no puedan ser interceptados.

Generación de la clave de Host

Por defecto, nada más instalarse el servidor OpenSSH en el dispositivo, se crea un par de claves RSA, es decir, una parte pública y una parte privada para identificar al servidor y que el cliente pueda autenticar su veracidad. Este par de claves son autofirmadas, es decir, no están creadas por ninguna entidad certificadora conocida, y se almacenan en la siguiente ruta: /etc/ssh.


Dentro de ese directorio se crean tres pares de claves para diferentes usos: 

- ssh_host_key: parte privada de la clave RSA para la versión 1 del protocolo SSH. Se desaconseja el uso de la versión 1 del protocolo SSH ya que éste fue roto.

- ssh_host_key.pub: parte pública de la clave RSA para la versión 1 del protocolo SSH.

- ssh_host_rsa_key: parte privada de la clave RSA para la versión 2 del protocolo SSH. Es la que OpenSSH utiliza por defecto.

- ssh_host_rsa_key.pub: parte pública de la clave RSA para la versión 2 del protocolo SSH.

- ssh_host_dsa_key: parte privada de la clave DSA. Es la alternativa a RSA.

- ssh_host_dsa_key.pub: parte pública de la clave DSA.

Por defecto, como se puede observar en el fichero sshd_config, la última versión de OpenSSH utiliza las claves, pública y privada, RSA para la versión 2.

Algoritmos de cifrado utilizados en las distintas versiones de SSH

Dependiendo de la versión del protocolo que se esté utilizando, el protocolo soportará unos algoritmos u otros. En la versión 1 del protocolo se disponen los siguientes algoritmos de cifrado: DES, 3DES, IDEA, Blowfish. Mientras que para la versión 2 del protocolo se aumentaron el número de algoritmos disponibles y se incluyeron algoritmos de cifrado más potentes: 3DES, Blowfish, Twofish, Arcfour, Cast128-cbc.

Creación de una clave de host más segura

Para generar una nueva clave de host más fiable que la que se genera en la instalación del OpenSSH se ejecutará la siguiente acción:


De este modo se genera un par de claves RSA para identificar al host. Parte privada y parte pública que se almacenarán dónde se indique con el modificador '-f'. En este caso se generarán en el directorio por defecto del servidor /etc/ssh. Es recomendable cambiar el tamaño de la clave de host a un tamaño de 2048 bits y no  usar la clave por defecto de sólo 1024 bits. 

Distribución segura de la clave de host

Los clientes, cuando se conecten al servidor, durante el proceso de handshake SSL deberán identificar correctamente al servidor. Para ello, las claves públicas de los hosts de confianza son almacenadas en el cliente. El lugar donde se almacenan estas claves depende de la herramienta cliente que se esté utilizando. En los sistemas Linux se encuentra en la ruta ~/.ssh/known_hosts

Si el cliente se conecta a un servidor del que no se tiene la clave pública almacenada, se generará una alerta de seguridad y se pedirá confirmación al usuario antes de iniciar la conexión. Se debe tener claro que en este punto en concreto se puede sufrir un ataque Man In The Middle si un atacante cogiera el certificado de host que envía el servidor, por lo que se recomienda distribuir la clave pública del host previamente a la primera conexión por medio de un dispositivo externo e instalarlo en el servidor sin utilizar la red. En el caso de los dispositivos iPhone, iPod Touch o iPad se puede conectar el dispositivo a un PC o Mac y realizar la operación o bien enviar ese archivo por correo electrónico como un adjunto protegido con clave.

Creación del canal seguro

El Handshake son todas las acciones que se realizan entre el cliente y el servidor para verificar que los dos son quien dicen ser y establecer una clave de cifrado simétrica que pueda utilizarse para generar un canal de comunicaciones seguro.

En primer lugar, el cliente manda un mensaje "Hello" al servidor junto con la lista de algoritmos de firma y cifrado que soporta.

El servidor, contestará con el envío de la clave pública de host con su identidad es decir,  la  Host Key, los algoritmos que van a utilizar en la comunicación, si es que el cliente soporta alguno de los permitidos por el servidor, junto la parte pública de una clave RSA de sesión que se genera cada cierto tiempo.

El cliente verificará la identidad del servidor comprobando la host key recibida con la información almacenada en la carpeta de host conocidos. Una vez verificado generará, basándose en los algoritmos marcados por el servidor, una clave de cifrado simétrico de sesión de 256 bits que enviará al servidor cifrada con la clave pública de sesión recibida.

El servidor, después de este paso, enviará una copia al cliente con todo lo acordado ya cifrado simétricamente. Una vez el canal esta creado, ya pueden intercambiar datos de forma segura. OpenSSH utiliza Diffie Hellman efímero que es uno de los métodos más seguros.

Cambio del tamaño de la clave de sesión

Otra de las recomendaciones para fortificar la comunicación es cambiar el tamaño de la clave de sesión para que sea de 1024 bits y no de 768 bits como se configura por defecto. Esta recomendación es debido a que durante este año se han realizado pruebas de concepto en las que se han roto las claves 768 bits.


En el fichero de configuración del servidor que se encuentra en la ruta /etc/ssh/sshd_config se puede observar la directiva ServerKeyBits dónde se puede cambiar el tamaño de la clave de sesión. Se recomienda un valor de 1024.

También se observa una línea por encima, en el mismo fichero, como se encuentra la directiva KeyRegenerationInterval. Esta directiva indica el tiempo que tiene que pasar para renovar la clave de sesión que puede ser reducido si se quiere hacer más difícil aún la ruptura de las claves, ya que habría que romper más claves por unidad de tiempo de una conversación en caso de un ataque.

Creando el par de claves en el cliente para autenticarse

Lo primero que se va a intercambiar tras el establecimiento del canal seguro es la petición de login por parte del servidor y en este caso se va a configurar una autenticación basada en certificados de usuario. Para ello se utiliza el esquema de clave pública y privada. Con esta técnica se pretende que el usuario no envíe una contraseña cada vez que intente entrar al sistema remoto sino que se utilicen claves RSA.

Primero se tiene que crear el par de claves para el usuario. Se crearán con el comando ssh-keygen:
ssh-keygen –q –f ~/.ssh/id_rsa –t rsa


Para el passphrase se recomienda no utilizar la contraseña de usuario que tiene en el sistema, ni dejarla en blanco. Se recomienda que al menos tenga 16 caracteres de longitud, y que se mezclen caracteres alfanuméricos, no solamente letras.

La clave privada y pública del usuario deben estar en el cliente, almacenadas en la ruta configurada para ello en el cliente SSH. Es por ello que el Path dónde se encuentre el par de claves, que en los sistemas Linux es  ~/.ssh debe tener seguridad respecto a otros usuarios del sistema. Por lo que sería buena idea dotar de permisos 700 al directorio .ssh.

Distribuyendo la clave del usuario

El servidor OpenSSH debe tener asociada la clave pública del par de claves generado para identificar al usuario. Para ello debe copiarse el fichero id_rsa_pub, es decir, la parte pública en el servidor. Para copiar el fichero id_rsa.pub al iPhone se puede usar el comando SCP que forma parte del protocolo SSH si ya estamos en una sesión SSH previa o hacerlo conectando el dispositivo al equipo.


La calve se debe guardar en un fichero especial denominado authorized_keys que se encuentra en el directorio del home ~/.ssh del usuario al que queremos asociar la clave en el servidor.


Autenticándose con la clave RSA

Cuando el usuario se quiere conectar utilizando utilizando su clave debe realizarlo desde el cliente donde tiene instalada la parte privada. El cliente SSH, cuando encuentre la clave privada, solicitará la passphrase creada para poder acceder a ella. Una vez se introduzca la passphrasse se procederá al desafío del usuario. Para ello el servidor enviará un desafío que el cliente cifrará con la parte privada de la clave. El servidor comprobará si con alguna de las claves autorizadas, almacenadas en el directorio de ese usuario, se puede descifrar y obtener el desafío. Si es así, el usuario queda autenticado sin enviar su contraseña, tal y como se ve en la siguiente imagen.


Conclusiones

Con este último paso se tiene un servidor OpenSSH más fortificado para nuestro pequeño dispositivo. Normalmente SSH es un protocolo seguro, pero hay técnicas como ataques de fuerza bruta las cuales pueden debilitar nuestro sistema hasta acceder a él. Con todo lo que hemos ido viendo a lo largo de la serie se puede observar como paso a paso se han bastionado los aspectos más relevantes del servidor. Aún así, como puede aparecer una vulnerabilidad en cualquier momento, se recomienda estar muy atento a nuevas actualizaciones de OpenSSH.

========================================================================
- Configuración OpenSSH en dispositivos iPhone (1 de 4)
- Configuración OpenSSH en dispositivos iPhone (2 de 4)
- Configuración OpenSSH en dispositivos iPhone (3 de 4)
- Configuración OpenSSH en dispositivos iPhone (4 de 4)

========================================================================

sábado, 4 de septiembre de 2010

Configuración OpenSSH en dispositivos iPhone (3 de 4)

========================================================================
- Configuración OpenSSH en dispositivos iPhone (1 de 4)
- Configuración OpenSSH en dispositivos iPhone (2 de 4)
- Configuración OpenSSH en dispositivos iPhone (3 de 4)
- Configuración OpenSSH en dispositivos iPhone (4 de 4)
========================================================================

En las dos primeras partes de la serie de configuración OpenSSH en dispositivos iPhone se ha hablado acerca de como instalar el servidor SSH en el dispositivo móvil, como se podía cambiar las contraseñas de los usuarios para dotar a éstos de una mayor seguridad, como realizar conexiones desde equipos al dispositivo móvil y dónde se encuentran los ficheros de configuración de OpenSSH. En este tercer post de la serie se va a hablar sobre como mejorar la seguridad del servidor para que a un atacante malintencionado le cueste tener acceso al dispositivo móvil.

Ficheros de configuración: /etc/ssh/sshd_config


Este fichero es el que contiene la configuración del demonio servidor SSH. En él se pueden modificar aspectos tan importantes para la seguridad como:
  • El puerto por el que está escuchando.
  • El número de intentos para loguearse.
  • Número de conexiones simultáneas
  • La posibilidad de poder loguearnos como root.
  • Tiempo para loguearse.
  • Banner para los usuarios que se logueen en el sistema.
Estas características son sólo algunas de las que se pueden realizar con el fichero de configuración y vamos a ver como se pueden configurar en detalle.

Lanzador de demonios


El sistema operativo del iPhone no dispone del comando service, el cual puede parar, arrancar y reiniciar un servicio en otras versiones de sistemas de las familias UNIX. En el sistema iOS de  iPhone se dispone de una ruta, /Library/LaunchDaemons, en la cual se almacenan los ficheros XML de aquellos servicios que se deben arrancar al encender el dispositivo. Este fichero es el que se se usará después para poder configurar la ejecución del puerto del servidor.

Fichero de servicios

En el sistema operativo de iPhone existe un fichero que es el encargado de establecer qué puerto utiliza cada servicio. El archivo se encuentra en la ruta /etc/services.

Se puede observar en la imagen como en el fichero tiene una estructura fácil de comprender: En la columna de la izquierda se establece el nombre del  servicio, en la columna del centro el puerto y protocolo de transporte que utilizan, y en la columna de la derecha un breve descripción del puerto, opcional, siempre después del carácter de comentario #.

Cambiar puerto de escucha por defecto

El puerto del protocolo SSH es, por defecto, el 22. Este dato es conocido por todo usuario medio/avanzado por lo que sería interesante que nuestro servidor no estuviera tan visible a ojos ajenos si sólo queremos usarlo nosotros. Una buena práctica en seguridad es cambiar el puerto por el que el servidor está escuchando las peticiones de conexión con el fin de evitar los ataques realizados mediante el uso de scanners.

Para realizar el cambio de puerto por el que el servidor está a la escucha de peticiones basta con insertar en el fichero de servicios un nuevo puerto y un nuevo nombre de servicio para él. Para el ejemplo se ha utilizado el nombre securessh como nombre de servicio y el puerto escogido es el 9123.

Una vez realizada esta inserción se debe editar el fichero  com.openssh.sshd.plist situado en  la ruta /Library/LaunchDaemons/ Como se ha comentado anteriormente, el fichero está en formato XML y es el que alberga la configuración de arranque del demonio SSH.

Para configurar el puerto de escucha, se debe buscar la clave Bonjour y cambiar, entre la apertura y el cierre de las etiquetas  string  el valor ssh por securessh, o el nombre que se haya puesto en el fichero de servicios. Además, también es necesario cambiar en la clave SockServiceName el valor ssh por securessh.

Una vez editado el fichero y guardado se debe reiniciar el dispositivo mediante la ejecución del comando reboot. Hay otros medios para hacer esto, pero de momento valdrá para los propósitos.

Probando el cambio del puerto


Utilizando la herramienta Putty - en nuestro caso - se puede realizar una nueva conexión sobre el dispositivo y, tal y como se puede apreciar en la imagen, por el puerto por defecto no se puede conectar al dispositivo. Sin embargo, se puede conectar por el nuevo puerto configurado. De este modo, se ha conseguido “esconder” un poco más el servidor SSH.


Posibilidad de loguearse como root

Para evitar la posibilidad de que un usuario pueda hacer login con la cuenta de  root se debe editar el fichero /etc/ssh/sshd_config y modificar la directiva PermitRootLogin que se debe descomentar y cambiar el valor de yes por un no. Una vez se reinicie el sistema esta directiva estará operativa. Esto evitará los ataques de fuerza bruta a la conexión que típicamente se realizan a la cuenta de root.

Número de intentos para loguearse


Para controlar el número de intentos que tiene un usuario para loguearse también se debe editar el fichero /etc/ssh/sshd_config. En este caso hay que descomentar la directiva MaxAuthTries y establecer el número de intentos que se quiere que un usuario tenga antes de dejarle un tiempo sin poder loguearse. Se recomienda 3 intentos, ya que siempre se puede olvidar la clave y no acertar a la primera... ni a la segunda.

Tiempo máximo de login

Esta directiva es importante ya que permite configurar un tiempo máximo para realizar el login al servidor SSH. Está pensada para las conexiones olvidadas en la mesa de trabajo, es decir, para que una sesión de login no se quede abierta esperando a que alguien introduzca las credenciales. Si salta, se da por supuesto que el usuario que se quería conectar ha perdido foco y mejor cerrar la sesión.

Para configurar la directiva se debe también editar el fichero /etc/ssh/sshd_config y buscar la directiva LoginGraceTime. Hay que descomentar la directiva y modificar su valor. Se recomienda un valor entre 10 y 20 segundos. Cuando el usuario se vaya a loguear tendrá ese número de segundos para hacerlo si no la conexión se cerrará.

Eso no es todo

En el siguiente post se terminará la serie con las últimas modificaciones para fortificar el servidor SSH. En este punto se tiene un servidor con claves seguras y distintas entre usuarios, no se puede loguear como root en el servidor y además el puerto por el que el servidor escucha no es el de por defecto. Con esto tenemos un poco más de seguridad, pero se puede mejorar aún bastante.

========================================================================
- Configuración OpenSSH en dispositivos iPhone (1 de 4)
- Configuración OpenSSH en dispositivos iPhone (2 de 4)
- Configuración OpenSSH en dispositivos iPhone (3 de 4)
- Configuración OpenSSH en dispositivos iPhone (4 de 4)
========================================================================

miércoles, 1 de septiembre de 2010

Configuración OpenSSH en dispositivos iPhone (2 de 4)

========================================================================
- Configuración OpenSSH en dispositivos iPhone (1 de 4)
- Configuración OpenSSH en dispositivos iPhone (2 de 4)
- Configuración OpenSSH en dispositivos iPhone (3 de 4)
- Configuración OpenSSH en dispositivos iPhone (4 de 4)
========================================================================

En la primera parte de este artículo se explicó como instalar el servidor OpenSSH descargándolo de algún repositorio de Cydia y como conectarse por primera vez con un cliente SSH a través de una red segura. En esta segunda parte el objetivo es fortificar la configuración del servidor SSH para no comprometer la seguridad del dispositivo por haber instalado OpenSSH.

Contraseñas y usuarios por defecto

Lo primero que hay que tener en cuenta es que al instalar OpenSSH se abre un portal a la red que puede ser aprovechado por atacantes remotos si no se han cambiado las contraseñas de los usuarios por defecto del dispositivo iPhone.

La contraseña por defecto del usuario root depende de la versión exacta del firmware que tenga instalado el terminal. Será dottie si está instalado una versión del firmware igual o inferior a la versión 1.0.2 y alpine hasta la versión actual. Otro usuario que se instala con el mismo password es el usuario mobile que, aun teniendo menos privilegios dentro del sistema, puede ser peligroso dejarlo con la clave por defecto.

Todas las personas que naveguen por Internet pueden obtener estos datos en múltiples páginas, por lo que si no modificas la password del usuario root del dispositivo iPhone, cualquier atacante podrá conectarse en remoto si tienes instalado un

Esta vulnerabilidad, es decir, el mantener las contraseñas por defecto, fue utilizada en Noviembre de 2009 para que se crearan los primeros virus que aprovechaban las conexiones OpenSSH. Primero el que en Holanda avisaba de la inseguridad de los dispositivos con jailbreak y después en Australia el gusano que configuraba como fondo de pantalla a Rick Astley, para disfrute de todos.

Cambio de contraseñas de los usuarios

La primera y más importante recomendación es cambiar la contraseña, tanto de la cuenta root como de la cuenta mobile. Por supuesto, hay que evitar que estas contraseñas sean iguales, ya que si un atacante averigua la contraseña de un usuario obtendría automáticamente la del otro usuario también.  Por supuesto, es recomendable cumplir con las buenas prácticas a la hora de elegir las contraseñas:

- Longitud mínima de 8 caracteres.
- Complejidad de contraseñas.
- No usar palabras que aparezcan en diccionarios.
- Evitar repetir contraseñas de otros servicios.

Para cambiar la contraseña de una cuenta de usuario, primero hay que conectarse por medio de una conexión SSH al dispositivo móvil. Después introducir el comando de contraseñas para los sistemas UNIX: passwd usuario


El cambio de la contraseña es realmente sencillo, ya que iPhone por debajo tiene la estructura de un sistema Unix, por lo que su funcionamiento es similar.

Conexiones administrativas

Se recomienda que las conexiones al terminal iPhone se hagan siempre con el usuario mobile a no ser que sea imprescindible la conexión con la cuenta de  usuario root, ya que éste dispone de menos privilegios. Evita que la conexión se realice con la cuenta de administración siempre que sea posible y sólo úsala para tareas de mantenimiento y en redes de confianza.

Ubicación de los archivos de configuración de OpenSSH

Para fortificar el servidor SSH estudiaremos dónde se localizan los archivos de configuración de OpenSSH y cuales son los archivos más importantes. Hay que tener claro que el tratamiento de estos archivos será igual que en un sistema basado en Unix.

Para localizar los archivos debemos tener una consola abierta ya sea por medio SSH, o por algún Software que dote al iPhone de consola. En el ejemplo se ha realizado, al igual que en el post anterior, con putty.


En la imagen superior se ha navegado hasta la ruta /etc/ssh, que coincide con la ruta que por defecto se instala en los sistemas basados en Unix, y al hacerse un ls se observan todos los ficheros de configuración relacionados con SSH.

Hay que diferenciar el fichero de configuración del servidor y el que es del cliente. El archivo sshd_config es el fichero de configuración del demonio, por lo que de este modo sabemos que es el del servidor. El archivo ssh_config es el archivo de configuración del cliente.

En la imagen de la derecha se observa el contenido del fichero sshd_config. Es muy importante para fortificar el servidor SSH en el dispositivo iPhone saber que significa cada directiva del fichero.

En el próximo post investigaremos y entraremos más a fondo en la configuración de los ficheros, y obtendremos resultados importantes en la fortificación del servidor SSH.

========================================================================
- Configuración OpenSSH en dispositivos iPhone (1 de 4)
- Configuración OpenSSH en dispositivos iPhone (2 de 4)
- Configuración OpenSSH en dispositivos iPhone (3 de 4)
- Configuración OpenSSH en dispositivos iPhone (4 de 4)
========================================================================

Entrada destacada

Proteger tu cuenta de Google y de Gmail con Latch Cloud TOTP #Latch #Gmail #Google

La semana pasada se liberó la nueva versión de Latch y nuestro compañero Chema Alonso hizo un repaso de todo ello en su artículo Latch...

Otras historias relacionadas

Entradas populares