Navegar / buscar

  • config

    Desarrollo web

    Desarrollo de aplicaciones web desde cero en php, html, css, javascript...

  • billing

    Wordpress

    Creación y maquetación de diseños, mantenimiento e instalación.

  • document-library

    Maquetación

    Maquetación de un diseño en HTML y CSS, respetando los estándares web.

  • finished-work

    Optimización

    Optimización de web para buscadores y mejora de posicionamiento en Google.

Actualización de seguridad Bash “Shellshock”

Leyendo por Internet y gracias a un correo que he recibido me ha llegado una notificación diciendo que se ha detectado una vulnerabilidad donde el atacante puede saltarse las restricciones del entorno y ejecutar comandos de shell desde bash de forma indiscriminada. A esto se le llama Shellshock.

El problema de esto es que hay servicios y aplicaciones que proporcionan acceso a estas variables de entorno por lo que permiten explotar dicha vulnerabilidad desde estas aplicaciones y servicios. Resumiendo, que no necesitan acceso directo directo a la línea de comandos, terminal o SSH para aprovecharse de este fallo de seguridad.

Por este motivo y al disponer de un VPS he tenido que actualizar de forma inmediata la versión de bash para solucionar lo antes posible este bug. Por eso si tu también dispones de un servidor con Linux, te recomiendo que lo actualices, si es que no lo has hecho ya.

¿Cómo se si mi servidor es vulnerable a este fallo de seguridad?

Para saber si tu servidor tiene una versión de bash afectada por esta vulnerabilidad, tan solo, tienes que acceder a él mediante SSH y ejecutar el siguiente código en a línea de comandos:

Si es vulnerable la salida estándar de este comando te devolverá la palabra Vulnerable. Si no es vulnerable no te devolverá nada.

¿Cómo solucionar este fallo de seguridad si me servidor está afectado?

Tienes que acceder a tu servidor por SSH con usuario root y ejecutar los siguientes comandos dependiendo de tu distribución de Linux.

Para saber tu versión de Debian ejecuta:

Solucionar “Shellshock” en Debian 7 y Ubuntu

Solucionar “Shellshock” en Debian 6

Para actualizar bash en Debian 6, primero tenemos que agregar un repositorio. Para ello tenemos que editar el siguiente archivo:

Y agregar la siguiente línea al final del mismo:

Una vez agregado el repositorio seguir los pasos que hemos realizado para solucionar el problema en Debian 7.

Para terminar, tendremos que borrar la línea que hemos agregado en el fichero sources.list

Si en esta versión de Debian aparece un error como este:

W: GPG error: http://ftp.us.debian.org squeeze-lts Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY XXXXXXXXXXXX
tendremos que ejecutar los comandos:

Poniendo el mismo id en las XXXX que aparece en el error.

Soluciona “Shellshock” en CentOS, RHEL, Fedora, Scientific Linux

Una vez hecho esto ya habremos solucionado el fallo de seguridad de nuestros servidores Linux. Para estar seguro de ello podremos ejecutar la línea del principio y ver si devuelve la palabra Vulnerable, o si todo es correcto, no devolver nada.

Probando una pantalla LCD con Arduino

Después de una cuentas semanas trasteando con mi Arduino Uno Rev. 3, aquí os traigo otra entrada en el blog para explicaros el funcionamiento de una pantalla LCD de 16×2 (16 caracteres y 2 columnas), la cual me venía cuando compré el Arduino.

Lo bueno de este LCD es que viene con un módulo soldado para la comunican en serie por I2C, así de esta forma nos ahorramos una buena cantidad considerable de pines.

Este display LCD está basado en el controlador HD44780 donde son necesarios 8 pines del Arduino para conectarlo y hacerlo funcionar, pero como ya he comentado, en este caso trae un módulo soldado para hacer la conexión por I2C, así de esta forma tan solo necesitaremos 2 pines más la alimentación a 5v.

I²C es un bus de comunicaciones en serie. Su nombre viene de Inter-Integrated Circuit (Inter-Circuitos Integrados). La versión 1.0 data del año 1992 y la versión 2.1 del año 2000, su diseñador es Philips. La velocidad es de 100 kbit/s en el modo estándar, aunque también permite velocidades de 3.4 Mbit/s. Es un bus muy usado en la industria, principalmente para comunicar microcontroladores y sus periféricos en sistemas integrados (Embedded Systems) y generalizando más para comunicar circuitos integrados entre si que normalmente residen en un mismo circuito impreso.

La principal característica de I²C es que utiliza dos líneas para transmitir la información: una para los datos y por otra la señal de reloj. También es necesaria una tercera línea, pero esta sólo es la referencia (masa). Como suelen comunicarse circuitos en una misma placa que comparten una misma masa esta tercera línea no suele ser necesaria.

Las líneas se llaman:

SDA: datos
SCL: reloj
GND: tierra

Módulo I2C
Módulo I2C

Para hacer la conexión con el módulo I2C, la librería que viene por defecto en el IDE de Arduino no funciona por lo que necesitamos otra llamada LiquidCrystal_I2C, la cual la podemos descargar desde aquí abajo. Esta librería reemplaza la que ya viene con el IDE y según su creador dice que es mucho más rápida que la ofrecida por el IDE.

Una vez descargada la librería tendremos que copiarla y pegarla en la carpeta libraries, que se encuentra donde tengamos instalado el software de Arduino.

Conexionado de hardware

La conexión del LCD se queda de la sigueinte forma:

  • El pin GND del display al pin GND del Arduino.
  • El pin VCC del display al pin 5V del Arduino.
  • El pin SDA del display al pin analógico 4 del Arduino.
  • El pin SDL del display al pin analógico 5 del Arduino.

La dirección del displays es 0×27. Esta dirección se configura usando los pines 1, 2 y 3 del controlador I2C PCF8574.

Tabla de direcciones I2C para el controlador PCF8574.
Tabla de direcciones I2C para el controlador PCF8574.

El código

Y aquí esta el resultado:

LCD Arduino
LCD Arduino

Código para saber la dirección I2C

Como siempre pongo el código del sketch usado en mi cuenta de Github para que lo podáis descargar de forma fácil. Además se hacen sugerencias y modificaciones del código.

Fuentes: bookmark Wire bookmark I2C Scanner