Aprender programación en 2014

Seguridad y cultura En Teaching Code in 2014 algo que ya llevamos tiempo diciendo: se sigue enseñando a programar (no a nivel básico, sino incluso después) sin tener en cuenta la seguridad.

Los consejos que da tienen que ver con:

  • No hay excusa para utilizar ejemplos inseguros
  • La seguridad debería estar integrada, no añadida
  • Usando Node.js también hay que tener en cuenta la seguridad
  • Hay que cambiar la forma de enfrentarse a este problema

En definitiva, hay que enseñar buenas prácticas, incluir ejemplos no sólo correctos desde el punto de vista de la funcionalidad sino también pensando en la seguridad.

Consejos sobre claves

Barrera Aunque de vez en cuando se anuncia la sustitución de las contraseñas con diversas tecnologías, lo cierto es que parece que vamos a convivir con ellas durante una buena temporada. En Passwords: Real-world issues, tips and alternatives se entrevista a Per Thorsheim y hablan sobre el tema. Se habla de las contraseñas, algunas alternativas, mejorar la facilidad de uso. Thorsheim es el organizador de la PasswordsCon, un encuentro centrado en estas cuestiones.

Da la casualidad de que tengo por una de las pestañas de mi navegador el resumen sobre gestores de contraseñas que hacían recientemente en Lifehacker Faceoff: The Best Password Managers, Compared. Hace un poco más leíamos Top password managers compared.

También podíamos leer el otro día un texto generalista y orientado a audiencias más amplias, con consejos que incluso algunos que deberían saber mejor estas cosas olvidan a veces Web Security for the Tech-Impaired: Passwords that Pass the Test:

  • Utilizar claves diferentes para sitios diferentes
  • Tu clave no debería tener menos de 12 caracteres
  • Utilizar una mezcla de minúsculas, mayúsculas, números y caracteres especiales
  • No utilizar secuencias predecibles a la hora de organizar estas mezclas.

Ya hemos hablado más veces de contraseñas por aquí, por ejemplo en Algunos enlaces interesantes sobre claves y allí había más enlaces.

Seguridad e Internet de las cosas

Cosas conectadas En 6 Tips for Developing Secure IoT Apps un nuevo recordatorio: los aparatos conectados a la red programables son peligrosos, sobre todo si no se tiene en cuenta que la conectividad cambia el contexto y aparecen nuevos riesgos.

Los consejos: contratar desarrolladores con conocimientos adecuados, utilizar plataformas probadas, comprobar las actualizaciones del firmware de los dispositivos, asegurarse de que los datos están seguros frente a ataques físicos y utilizar componentes de hardware seguros.

Se hace referencia a un estudio de HP: [PDF] Internet of Things Research Study y seleccionamos algunos comentarios.

Hay muchos dispositivos que fallan:

It found that every one of 10 popular Internet-connected security systems – which include video cameras and motion detectors – had significant security vulnerabilities which would allow hackers to access the devices and control them remotely.

Sobre esto, suelo emplear una referencia relativa a dispositivos WiFi y Bluetooth, [PDF] CODENOMICON WHITE PAPER. Wireless Security: Past , Present and Future para hacer notar que los fallos de seguridad no sólo aparecen en los programas, sino también en dispositivos. La cantidad de evidencias y casos sigue aumentando.

Las vulnerabilidades y los fallos no son nuevos:

They are well understood, and most of the specific vulnerabilities could probably be easily avoided by following best practices and recommendations for secure coding. The problem, according to Miessler, is that many IoT developers simply don’t follow them.

Las aplicaciones inseguras vienen de los propios fabricantes:

It’s noticeable that many of the insecure IoT applications (such as some of those in HP’s study) come from IoT hardware device vendors who offer software to work with their products.

Ya hemos hablado en el pasado de seguridad y aparatos ‘domésticos’. La internet de las cosas es un nuevo episodio:

Seguridad ‘hogareña’ Coches e informática Y unas cuantas más, por ejemplo relacionadas con coches, hogar . Hace nada volvíamos a hablar de coches en: Desbordamientos de memoria y Toyota y en Coches y ataques

También recientemente conocíamos la noticia de cómo hacía falta actualizar un montón de coches BMW actualiza el software de más de 2 millones de automóviles por una vulnerabilidad o el también reciente de las ‘televisiones espía’: It’s not just smart TVs. Your home is full of gadgets that spy on you: How internet giants are collecting your personal data through their high-tech devices y alguno más que van ocurriendo cada día.

Heartbleed, código y memoria

Rojo Uno de los sucesos más llamativos de seguridad del año pasado fue Heartbleed un fallo en la implementación de OpenSSL que permitiría a un atacante obtener información en conexiones cifradas (desde claves a contenidos).

Aunque en Answering the Critical Question: Can You Get Private SSL Keys Using Heartbleed? tratan de resolver esta pregunta y el mensaje es tranquilizador, lo más interesante es el análisis del código responsable del problema, los detalles de la pila y ese tipo de análisis más técnicos que nos gusta referenciar por aquí.

Mitos sobre /dev/urandom y más sobre aleatoriedad y su medida

Dados No se si el año pasado fue el de la aleatoriedad, o que por casualidad yo encontré más lectura sobre el tema. O, a lo mejor, simplemente estaba prestando más atención.

En Myths about /dev/urandom una buena lectura sobre el tema, donde se habla de /dev/urandom, sus parecidos y diferencias con /dev/random y, al final, algunas discusiones sobre “aletaoriedad verdadera”.

I don’t want to dive into that issue too deep, because it quickly gets philosophical. Discussions have been known to unravel fast, because everyone can wax about their favorite model of randomness, without paying attention to anyone else. Or even making himself understood.

Lectura recomendable.

Podemos recomendar también la lectura de How do you know if an RNG is working? donde se aborda justamente ese tema: mucho se habla de números aleatorios y generadores. Pero cuando se piensa en la calidad de lo que se obtiene se dice que hay que medirla y poco más. Aquí da ideas, algún recordatorio interesante y, en definitiva, nos recuerda que el diablo está en (todos) los detalles.

Más sobre aleatoriedad y generadores