¿Dónde guardas tus secretos?

Escondido El otro día hablábamos de fugas de información a través de los canales de comunicación de las empresas y cómo los ‘malos’ podían sacar partido de diversos automatismos en Interacciones inseguras entre sistemas de ayuda y otros. Hoy traemos otro How bad can it git? Characterizing secret leakage in public GitHub repositories relacionado con la difusión de secretos que no deberían estar en los sistemas de control de versiones.

Los desarrolladores no deberían incluir secretos en los sistemas de control de versiones, nada nuevo:

On the one hand you might say there’s no new news here. We know that developers shouldn’t commit secrets, and we know that secrets leaked to GitHub can be discovered and exploited very quickly.

Ofrecen expresiones regulares que podrían utilizarse como chequeo antes de enviar la información al sistema de control de versiones, que pueden encontrarse en el artículo, en How Bad Can It Git? Characterizing Secret Leakage in Public GitHub Repositories.

Hay una implementación previa, que incorpora el sistema en truffleHog y otro proyecto con ideas similares git-secrets.

Vale la pena leerlo todo, muy interesante.

¿Eres predecible?

Sorteo En How random can you be? una vez más un recordatorio sobre lo poco hábiles que somos generando aletaoriedad (y comprendiéndola, usándola, manejándola, …).

Hay un jueguecito que podemos probar donde el sistema trata de adivinar nuestro próximo movimiento y nos dice si va acertando o no.

También hay algo más de información sobre el tema en los enlaces. Interesante.

¿Llegó la hora de matar la web?

tela de araña Una provocadora entrada de Mike Hearn It’s time to kill the web donde se habla del mal estado (en este caso desde el punto de vista de la seguridad y el desarrollo) de la web. Concretamente, en este artículo se centra en los problema.

Por ejemplo, la guía de Google sobre errores frecuentes, que el autor califica de un conjunto de hechicería y folklore que es muy preocupante.

Reading this ridiculous pile of witchcraft and folklore always makes me laugh. It should be a joke, but it’s actually basic stuff that every web developer at Google is expected to know, just to put some data on the screen.

Luego, la dificultad para contratar personas que hagan este trabajo correctamente:

My experience has been that attempting to hire a web developer that has even heard of all these landmines always ends in failure, let alone hiring one who can reliably avoid them. Hence my conclusion: if you can’t hire web devs that understand how to write secure web apps then writing secure web apps is impossible.

Y así sigue, con unos cuantos problemas más.

No estoy seguro de que sus propuestas (que aún tengo pendientes de leer) vayan a traer la felicidad al mundo (por decirlo de alguna manera) pero creo que es una buena panorámica de las cosas que van mal y no debemos cerrar los ojos a esto. También creo que si esos mismos desarrolladores fueran contratados para desarrolar productos eficaces (dejando de lado efectos, y otras cuestiones visuales que no deberían ser tan importantes) igual nos iba un poco mejor. Pero igual estamos colocando los incentivos (como sociedad) en los lugares incorrectos. También tengo que reconocer que hace tiempo que navegar me parece aburrido y molesto y que trato de evitarlo manejando el contenido de formas alternativas, cuando es posible. Pero no creo que sea fácil prescindir de la web. Ni aconsejable.

Falsedades que los programadores pueden creer sobre la numeración telefónica

Teléfono antiguo Hay toda una saga de documentos titulados ‘falsedades que creen los programadores sobre …’ y sigue con fechas, nombres, y otros temas. Recientemente descubrí la exitencia del Falsehoods Programmers Believe About Phone Numbers.

Desde algunos sencillos como el de supone que un individuo siempre tiene un número telefónico (que puede ser falso o simplemente una cuestión de privacidad), pasando por suponer que si tenemos un número de teléfono simpre podremos hacerle una llamada, hasta suponer que los organismos competentes tienen perfectamente controlados y publicados cómo son sus números de teléfono y que lo que publican se corresponde con la realidad en un momento dado.

La seguridad y los gestores de contraseñas

Escondido Me gustó leer Password managers may leave your online crown jewels ‘exposed in RAM’ to malware – but hey, they’re still better than the alternative porque trata dos temas sobre los que pasamos de largo habitualmente: los usuarios no utlizan los gestores de contraseñas y, en general, no se preocupan demasiado de la calidad de sus claves; por otro lado, los desarrolladores no suelen prestar atención a los secretos almacenados en memoria. Esto es, cuando desciframos un dato con un programa ese dato reside en alguna parte (o algunas) de nuestro computador. Y lo de algunas tiene que ver con las cachés, mecanismos de paginación y otros artefactos que aparecen en nuestra vida diaria.

Sobre este segundo tema, dice:

The problem here is mainly secure memory management. To some degree, every one of the four password managers left passwords – either the master password or individual credentials – accessible in memory. This would potentially allow malware on a system, particular malware with admin rights, to obtain those passwords.

Y no se trata de una afirmación puramente teórica, sino que hicieron las pruebas:

“Each password manager also attempted to scrub secrets from memory. But residual buffers remained that contained secrets, most likely due to memory leaks, lost memory references, or complex GUI frameworks which do not expose internal memory management mechanisms to sanitize secrets.”

porque este trabajo proviene de una investigación sobre la seguridad de 1Password, KeePass, LastPass y Dashline, algunos de los gestores más conocidos. Se pueden ver más detalles en Password Managers: Under the Hood of Secrets Management.

De todas formas, y volviendo a los usuarios normales, ¿debemos dejar de usar los gestores porque tienen fallos? La respuesta es claramente negativa porque con esos problemas y con todo lo que podamos pensar, siguen siendo una manera más eficaz de resolver el problema para la mayoría de la gente:

The report doesn’t by any means suggest you should not be using a password manager. Even with the mild flaws ISE found, a password manager remains by far the best way to keep your login credentials secure, and experts routinely recommend them as a way to manage multiple unique and strong passphrases for your online accounts.

Por lo tanto, ya saben ustedes: si son desarrolladores, que los secretos descifrados estén el menor tiempo posible así y sólo en memoria. Si son usuarios, utilicen un gestor de contraseñas. Serán mejores y ustedes estarán más seguros.