Check the presence of the OpenSSL's bug Heartbleed (CVE-2014-0160)

What is it?

The Heartbleed Bug is a serious vulnerability in the popular OpenSSL cryptographic software library. This weakness allows stealing the information protected, under normal conditions, by the SSL/TLS encryption used to secure the Internet. SSL/TLS provides communication security and privacy over the Internet for applications such as web, email, instant messaging (IM) and some virtual private networks (VPNs).

The Heartbleed bug allows anyone on the Internet to read the memory of the systems protected by the vulnerable versions of the OpenSSL software. This compromises the secret keys used to identify the service providers and to encrypt the traffic, the names and passwords of the users and the actual content. This allows attackers to eavesdrop on communications, steal data directly from the services and users and to impersonate services and users.

What leaks in practice?

We have tested some of our own services from attacker's perspective. We attacked ourselves from outside, without leaving a trace. Without using any privileged information or credentials we were able steal from ourselves the secret keys used for our X.509 certificates, user names and passwords, instant messages, emails and business critical documents and communication.

How to stop the leak?

As long as the vulnerable version of OpenSSL is in use it can be abused. Fixed OpenSSL has been released and now it has to be deployed. Operating system vendors and distribution, appliance vendors, independent software vendors have to adopt the fix and notify their users. Service providers and users have to install the fix as it becomes available for the operating systems, networked appliances and software they use.

How to check if my server (https) or application (linked with OpenSSL library) has it?

For your web server Heartbleed test site and specify the hostname (or IP address) and port of your HTTPS server

For your Android's mobile apps, install Bluebox Heartbleed Scanner and run it, it will check for any vulnerable apps installed on your phone.

Resources

Noveno Congreso Colombiano de Computación (9CCC) en Septiembre de 2014

El 9CCC invita a presentar trabajos que reporten resultados de investigación y/o experiencia originales en los tópicos del congreso siguientes:

  1. Arquitecturas Paralelas, Sistemas Operativos, Sistemas Distribuidos
  2. Computación de Alto Rendimiento (HPC)
  3. Redes, Seguridad Informática y Teleinformática
  4. Computación en Nube y en Malla
  5. Computación Móvil y Sistemas Ubicuos
  6. Programación, Programación Competitiva, Arquitectura e Ingeniería de Software
  7. Bases y Bodegas de Datos, Minería de Datos, Gestión del Conocimiento e Inteligencia del Negocio
  8. Machine Learning, Inferencia Estadística
  9. Sistemas Inteligentes, Agentes Inteligentes, Sistemas Neuro-Difusos y Sistemas Adaptativos.
  10. Visión por Computador, Computación Gráfica, Realidad Virtual, Realidad Aumentada e Interacción Hombre-Máquina
  11. Computación Web: Redes Sociales, Crowd Sourcing, Web Semántica, Búsqueda y Recuperación de Información
  12. Aprendizaje Colaborativo e Informática Educativa
  13. Aplicaciones: e-health, e-commerce, e-government, e-learning, entre otras.
  14. Teoría de la Computación
  15. Robótica
  16. Computación Bioinspirada
  17. Optimización

El congreso tiene por objetivo propiciar el encuentro de la comunidad académica y científica Colombiana en el área de computación e informática, a través de la presentación de trabajos de investigación, aportes significativos y/o experiencias originales en el área

Este evento se realiza anualmente bajo el auspicio de la Sociedad Colombiana de Computación – SCo2.  La IEEE Sección Colombia participará como co-patrocinador técnico del congreso, lo cual implica indexación de las memorias del evento en IEEE-Xplore.

se realizará del 3 al 5 de Septiembre de 2014 en la ciudad de Pereira y es organizado por la Universidad Tecnológica de Pereira.

El evento incluye además de la presentación de ponencias varias actividades tales como: tutoriales, conferencias plenarias, foros de discusión, simposio de maestría y doctorado, entre otras.

Para mas información visitar el sitio web del congreso: http://www.9ccc.org/.

7 Reasons Why You’re Not A Millionaire

  1. You’re Not Your Own Boss.
  2. You Avoid Taking Risks.
  3. You Never Act on Your Good Ideas.
  4. You Don’t Manage Your Money Wisely.
  5. You Don’t Set Clear Goals for Yourself.
  6. You Don’t Put in Enough Time, Effort, and Energy.
  7. You Aren’t Networking with the Right People.

Tomado de 7 Reasons Why You’re Not A Millionairehttp://www.lifehack.org/articles/money/7-reasons-why-youre-not-millionaire.html

Instalación de un recovery personalizado en un Samsung Galaxy S4 utilizando Ubuntu 13.10

Introducción

clockworkmod6-300x300La instalación de un recovery personalizado como ClockworkMod Recovery en un teléfono Android no solo permite la instalación de ROMs preparados por terceros (como CyanogenMod) sino que también permite realizar la limpieza del caché de las aplicaciones, del caché de Dalvik y, la realización y restauración de copias de seguridad completas de la ROM activa.

Para hacer esto se siguieron sin modificaciones los pasos propuestos en el wiki de Cyanogen para el modelo Samsung Galaxy S4 (SGH-i337M).  Para la instalación del mismo recovery en un Samsung Galaxy S3 (i9300 – International) se siguieron unos pasos similares.

El procedimiento a continuación describe los pasos necesarios para realizar la instalación con Linux y ha sido probado con Ubuntu 13.10.  Para su implementación con MacOSX o Windows consulte las wikis citadas en busca de las modificaciones necesarias.

Se debe tener en cuenta que manipular de esta manera los teléfonos alterando su firmware de stock puede invalidar la garantía y producir daños en los equipos.  Estos pasos se deben seguir bajo su propio riesgo.  También se debe tener en cuenta que los procedimientos y recursos varían de equipo en equipo, inclusive entre sus respectivas versiones.  El seguir este procedimiento en un equipo diferente al mencionado puede producir problemas graves.

Procedimiento

  1. Descargar la distribución de Koush's ClockworkMod Recovery.  Durante este procedimiento se utilizó la versión 6.0.4.4 (touch).
  2. Descargar la distribución de Heimdall Suite.  Durante este procedimiento se utilizó la versión 1.4RC1.
  3. Descomprimir el paquete de heimdall y ubicarlo en el mismo directorio del recovery-clockwork.
  4. Apagar el teléfono Samsung Galaxy S4 (SGH-i337M).
  5. Conectar el cable USB al PC pero no aún al teléfono.
  6. Iniciar el teléfono Samsung Galaxy S4 (SGH-i337M) en modo de descarga (donwload) presionando los botones Volúmen abajo + Home + Encendido (power).
  7. Aceptar la notificación y conectar el cable USB al teléfono Samsung Galaxy S4 (SGH-i337M).
  8. Abrir una terminal y ubicarla en el directorio donde se descargaron los archivos.
  9. Ejecutar el siguiente comando:
    $ sudo ./heimdall flash –RECOVERY recovery-clockwork-touch-6.0.4.4-jfltecan.img –no-reboot
  10. Esperar mientras se transfiere el software y se completa la barra azul de progreso en el teléfono Samsung Galaxy S4 (SGH-i337M).
  11. Reiniciar el teléfono Samsung Galaxy S4 (SGH-i337M) presionando los botones Volúmen arriba + Home + Encendido (power).

Observaciones

  1. Tenga en cuenta que este tipo de procedimientos pueden dañar y/o invalidar la garantía de su teléfono, además que se deben utilizar los archivos específicos para la referencia del mismo.
  2. Durante la implementación de este procedimiento se utilizaron las versiones del software disponibles en el wiki de CyanogenMod.  Se recomienda consultarlo para verificar cambios en las mismas.
  3. Heimdall Suite viene disponible en versiones de 32bits y 64bits, sin embargo no fue posible utilizar la versión de 64bits así que se utilizó la versión de 32bits.
  4. Es posible que al inicio del ROM de stock se sobreescriba el recovery personalizado, para evitar esto, una vez realice el reinicio final ingrese directamente ClockworkMod Recovery manteniendo presionados los botones Volúmen arriba + Home + Encendido (power).
  5. En caso de que se sobreescriba por algún motivo el recovery personalizado sólo es necesario repetir estos pasos para recuperarlo.
  6. Si se desea actualizar la versión de ClockworkMod Recovery o instalar la versión touch (como en este caso) descargar la imagen correspondiente a su teléfono desde el sitio oficial, par el caso del Samsung Galaxy S4 (SGH-i337M) se utilizó la imagen Samsung Galaxy S4 (Canada/Bell).

Procesando la documentación de Laravel 4 para mejor lectura o impresión

Introducción

Aún no me acostumbro a leer textos largos desde un PDF en el computador, en especial libros y manuales me gusta tenerlos impresos para resaltarlos y hacer anotaciones en ellos.  Por este motivo hice este script muy sencillo en PHP que obtiene las secciones del sitio web de la documentación de Laravel 4 y las une en un único documento que puede ser impreso o leído con mayor facilidad.

Documentación de Laravel 4

Requisitos

El único requisito para ejecutar el script es contar con el paquete de la interfaz de línea de comando de PHP (php-cli) instalado.

Ejecución

$ php laravel4.php

Al final la ejecución se encontrará el archivo output.html en el mismo directorio con la documentación generada.

Personalización

Si desea seleccionar cuales secciones de la documentación son finalmente incluidas durante la generación del documento, modifique la variable $urls (inicialmente comentada) definiendo en ella los URL de las respectivas secciones.  En caso de no definirse (por defecto) se tomarán automáticamente las secciones encontradas en la página en linea de la documentación.

También es posible modificar la presentación del documento resultante.  Para esto ajuste como se considere las clases CSS definidas en la plantilla en la función prepareTemplate.

Licenciamiento

Este script se distribuye bajo la licencia MIT.

Versiones

Recursos

Errores "Connection reset by peer" durante la conexión a Windows con rdesktop

Introducción

Durante la conexión a máquinas Windows desde Linux Ubuntu utilizando el protocolo Remote Desktop y a rdesktop como herramienta se empezaron a obtener errores de conexión como el siguiente.

ERROR: recv: Connection reset by peer

El problema

rdesktop permite la conexión de escritorio remoto entre máquinas Windows y otros sistemas operativos como Linux, sin embargo no soporta aún el nivel de autenticación de red que implementa por defecto el servicio de Remote Desktop.

La solución

En la máquina Windows que se encuentra ejecutando el servidor de Remote Desktop acceder a la opción del panel de control de Allow remote access to your computer o acceder directamente a las System Properties.

Allow Remote Access - Remote Desktop

Allow remote access to your computer

En la pestaña de Remote y bajo la sección de Remote Desktop seleccionar la opción Allow connections from computers running any version of Remote Desktop (less secure).  Por defecto se encuentra seleccionada la tercera opción.

Allow connections from any Remote Desktop protocol's version

Otra alternativa

Como otra alternativa de conexión al escritorio remoto que parece no tener el problema de rdesktop con la autenticación de red es freerdp el cual se invoca desde la línea de comando de la siguiente manera.

$ xfreerdp -u USERNAME -d DOMAIN -p PASSWORD HOST

Esta herramienta incluye un parámetro adicional (-g) que encontré muy interesante y que permite escalar en un porcentaje específico la ventana local en la que se despliega el escritorio remoto.

Recursos

Instalación de Cloud9 IDE en Ubuntu 13.04

Introducción

Cloud9IDE_logoDespués de una primera instalación hace poco mas de un año, quedé con la sensación de que este procedimiento era demasiado complejo y me di a la tarea de experimentar un poco en busca de simplificarlo un poco.

Concluyo que el prinicpal obstáculo que tuve durante las pruebas fue la versión de NodeJS de la cual depende Cloud9 IDE.  De momento la mejor opción es utilizar la rama 0.8.x ya que aún no es compatible con la 0.10.x y la 0.9.x se considera inestable.  Al respecto encontré que la herramienta nvm (Node Version Manager) permite gestionar diferentes versiones de Node JS instaladas para ser utilizadas con diferentes aplicaciones de terceros sin que estas interfieran entre sí.

Otra herramienta que ayudó a simplificar el proceso de instalación fue npm (Node Packaged Modules) la cual se encarga ahora de realizar la construcción de Cloud9 IDE y sus dependencias.

A continuación se detallan los pasos necesarios para realizar esta instalación y posteriormente ejecución del software.

Instalación

Prerequisitos

$ sudo apt-get install -y build-essential g++ curl libssl-dev apache2-utils git libxml2-dev

Desinstalar cualquier versión previa de NodeJS que pueda interferir con la versión que se va a utilizar con Cloud9.

$ sudo apt-get remove nodejs

Node Version Manager

El Node Version Manager (NVM) permite gestionar diferentes versiones de NodeJS evitando su instalación y control manual para el uso con software de terceros (como es el caso de Appcelerator Titanium).

$ git clone git://github.com/creationix/nvm.git ~/nvm
$ echo '. ~/nvm/nvm.sh' >> ~/.bashrc && . ~/.bashrc

Node JS

La versión utilizada durante esta instalación fue la 0.8.25 la cual era la última versión disponible de la serie 0.8.x.  Se constató que sucedían problemas con la versión 0.10.12 y se omitió experimentar con la versión 0.9.x al ser esta (impar) inestable.

Para identificar las versiones de Node JS disponibles consulte el listado de archivos de las distribuciones.

$ nvm install v0.8.25
$ nvm use v0.8.25

Cloud9 IDE

$ git clone https://github.com/ajaxorg/cloud9.git
$ cd cloud9
$ npm install

Ejecución

Para ejecutar una instancia de Cloud9 IDE se recomienda utilizar los siguientes comandos que seleccionan la versión de NodeJS a utilizarse y levantan el servicio del IDE.

$ nvm use 0.8.25 && ~/cloud9/bin/cloud9.sh -w /directorio/de/trabajo

Estos son los principales parámetros que puede recibir cloud9.sh.

-w /directorio/de/trabajoPermite especificar el directorio de trabajo que utilizará el IDE.
-p puertoPermite especificar el puerto que utilizará el servicio.  Por defecto es el 3131.
-l interfazPor defecto el servicio sólo escucha a localhost, esta opción permite escuchar una interfaz diferente.  Utilizar la interfaz 0.0.0.0 para escuchar a través de todas las direcciones IP disponibles.
--username usuario --password contraseña
Permite especificar un nombre de usuario y una contraseña para autenticar el acceso a la instancia del IDE.

 Recursos

Actualizando Ubuntu

Acerca de la política de actualización

La política de actualizaciones del sistema operativo determina que tipos de actualizaciones disponibles serán tenidas en cuenta para ser sugeridas al usuario y ser finalmente instaladas en el equipo.

Las políticas disponibles corresponden a las siguientes.

  1. Tener en cuenta las versiones nuevas y estables (normal).
  2. Tener en cuenta sólo actualizaciones LTS (lts).
  3. Nunca tener en cuenta actualizaciones (never).

Para modificar la política de actualización vigente se debe editar el archivo /etc/update-manager/release-upgrades y ajustar el valor de la variable Prompt.

Este procedimiento también se puede realizar desde la interfaz gráfica de usuario ejecutando la aplicación Software & Updates y bajo el tab de Updates, modificar el valor de la opción Notify me of a new Ubuntu version.

Server Edition

$ sudo aptitude install update-manager-core
$ sudo do-release-upgrade

Desktop Edition

Utilizar la aplicación Update Manager o Software Updater desde la interfaz gráfica de usuario.

Ejecute el Update Manager (System > Administration > Update Manager)  o Software Updater desde Unity.

$ sudo /usr/bin/update-manager

Presione el botón Upgrade el cual se activará únicamente si se detecta una actualización disponible.

Enlaces

Reemplazar DuckDuckGo con Google en las búsquedas de Firefox en Linux Mint

Introducción

Por defecto Linux Mint utiliza Duck Duck Go como motor de búsquedas en la web a través de Firefox.  Esto lo hace debido a que este buscador mejora la privacidad del usuario en las búsquedas y además le genera un ingreso económico al proyecto sin embargo es un tanto incómodo para quienes estamos acostumbrados ya a utilizar Google para las búsquedas.

En el presente artículo se detallan los pasos necesarios para configurar a Firefox para que realice sus búsquedas en Google.

En la barra de direcciones

about:config - Mozilla Firefox

  1. En Firefox abra un nuevo tab.
  2. Acceda a la dirección: about:config.
  3. Filtre por la llave keyword.url.
  4. Modifique su valor (value) por http://www.google.com/search?ie=UTF-8&oe=UTF-8&q=

Enlaces

  1. Change address bar search in Firefox
    http://community.linuxmint.com/tutorial/view/1109

Uso de NX 3.5 con GNOME Fallback en Ubuntu 12.10

Introducción

Cómo se mencionó en el post anterior, la versión 3.5 de NX no soporta sistemas de escritorio como Unity o GNOME3 ya que no a su vez no soporta los efectos de escritorio compuesto provistos por Compiz.  Por este motivo es necesario utilizar un sistema de escritorio diferente.

En mi caso decidí experimentar con la versión fallback de GNOME3 con buenos resultados.  A continuación se detallan los proceso de instalación y configuración necesarios para utilzar este manejador de ventanas con NX 3.5.

Instalación de GNOME Fallback en el servidor

Para instalar el sistema de escritorio en el servidor es necesario ejecutar los siguientes comandos.

$ sudo apt-get install gnome-session-fallback
$ sudo apt-get install indicator-applet-appmenu

Verificar los tipos de sesiones disponibles en el servidor

Para listar las sesiones disponibles en el servidor se debe ejecutar el siguiente comando.

$ ls /usr/share/gnome-session/sessions/
gnome.session  gnome-classic.session  gnome-fallback.session  ubuntu.session

Las sesiones gnome y ubuntu las incluye por defecto Ubuntu y hacen referencia a Unity.  Las sesiones gnome-* son las instaladas por GNOME Fallback en el paso anterior, la diferencia entre estos dos tipos de sesiones consiste en que gnome-fallback no utiliza los efectos de Compiz por lo que es preferible utilizarlo en este contexto.

Configurar el cliente de NX para establecer conexiones utilizando GNOME Fallback

Desde el cliente de NX elija la sesión que desea modificar y presione el botón de configuración mostrado en la imagen a continuación.

Configuración del cliente NX

Configuración del cliente NX

En la congiruación de la sesión bajo las opciones del escritorio, seleccione Unix (para utilizar el protocolo NX), Custom (para personalizarlo) y presione el botón Settings.

Configurar sesión de NX

Configurar sesión de NX

En la configuración del escritorio, bajo la sección de aplicación seleccione la opción Run the following command y especifique el siguiente comando, siendo gnome-fallback el sistema de escritorio a utilizar.

gnome-session --session=gnome-fallback

Bajo la sección de opciones se recomienda marcar la opción New virtual desktop como se muestra a continuación.

Configuración de escritorio del cliente NX

Configuración de escritorio del cliente NX

Alternativa del lado del servidor

Si se desea evitar que cada cliente deba realizar esta modificación para utilizar el sistema de escritorio de GNOME Fallback, esta modificación puede realizarse del lado del servidor de la siguiente manera.

$ vi /usr/NX/etc/node.conf
COMMAND_START_GNOME='gnome-session --session=gnome-fallback'

O con la siguiente opción si se desea ejecutar al cliente NX en una ventana y tener mayor control sobre su configuración.

COMMAND_START_GNOME="/etc/X11/Xsession 'gnome-session --session=gnome-fallback'"

Enlaces