Cadenas de caracteres que pueden ser peligrosas

Palabras

Una de las cosas en las que no solemos fijarnos son los datos que pueden recibir como entrada nuestros programas. En algunos casos esto puede suponer una molestia, y en otros un auténtico peligro. Para ayudarnos con ello podemos echar un vistazo a Big List of Naughty Strings que justanmente nos proporciona una lista de cadenas que pueden ser delicadas como datos de entrada:

The Big List of Naughty Strings is an evolving list of strings which have a high probability of causing issues when used as user-input data.

Se proporcionan como un fichero de texto, y también algunas implementaciones en diferentes lenguajes para facilitar la realización de pruebas automatizadas.

Lecciones aprendidas en la aplicación de un modelo de madurez en la seguridad de los programas

The pila seguridad Ya hemos hablado alguna vez de los modelos de madurez sobre seguridad y, en particular, del de la OWASP, el SAMM (Modelo de Seguridad en programas informáticos de la OWASP).

En OWASP SAMM v2: lessons learned after 9 years of assessment lo que dice el título, algunas de las lecciones aprendidas en este proceso.

Lo primero que se decía hace algunos años era que la solución de los problemas de seguridad vendría de las pruebas:

As you can see from the 2012’s results, the first answer of a Company to the software security issues is: testing, testing, testing!

Sin embargo, durante estos años se han dado cuenta de que las pruebas son una herramienta más, no la solución:

What we learned during these years is that testing is NOT the solution of Software Security. Testing is just a part of your Software Security journey.

Y, desde luego, mejorar todas las prácticas relacionadas con la seguridad para gestionar la seguridad del software de manera adecuada.

That’s why you need to improve all the security practices of the SAMM model in order to manage Software Security properly.

Sobre el funcionamiento del DNS

Árbol de blogalia De vez en cuando alguien publica un artículo donde resume en un texto de tamaño más o menos razonable algún tema concreto. En este caso How Does DNS Work? puede ayudar a gente que no conozca los fundamentos básicos del funcionamiento de internet, pero también a gente con conocimientos más avanzados pero que no se ha metido en estos temas.

El DNS son las siglas en inglés del Servicio de Nombres de Dominio, que permite llamar a los recursos con nombres en lugar de con los numeritos.

Para tener a mano.

Protegiendo la intimidad de los usuarios de Signal

Fwd: Libro. Intimidades En Expanding Signal GIF search nos cuentan como han implantado la búsqueda de GIFs animados para su herramienta de comunicación y lo hacen cuidado nuestra privacidad. Esencialmente, cuando se busca información en un proveedor (Giphy) en este caso, primero se habla de cómo se evita que Signal ‘vea’ el contenido que consultamos para obtener una imagen (gracias al protocolo TLS y a que no se colocan como intermediarios). A la vez, Signal aparece como solicitante para Giphy, así que el servicio no puede saber quién hizo la petición:

Since communication is done via TLS all the way to GIPHY, the Signal service never sees the plaintext contents of what is transmitted or received. Since the TCP connection is proxied through the Signal service, GIPHY doesn’t know who issued the request.

Sin embargo, querían ir un poco más allá, lanzando varias peticiones y francionando el contenido en paquetes para que sea más difícil de conocerlo.

Instead of making a normal request, it picks a block size (in this case 6 bytes), and issues sequential range requests for that amount. For the third and final request, there is only 1 byte remaining to be retrieved, but it instead makes an overlapping request for the final 6 bytes, and discards the first 5 bytes of the final request.

Intersante y curioso.

Ocupación de nombres en paquetes de Ruby

Libro. Por escribir sus nombres En Mining for malicious Ruby gems por completitud, puesto que ya hablamos de algo similar en Los nombres y la seguridad. El caso de Python y PyPI.

‘Typosquatting’ es un tipo de ataque basado en la similitud de nombres, esperando aprovecharse de los errores de los usuarios:

Typosquatting is particularly interesting. Using this type of attack, the threat actors intentionally name malicious packages to resemble the popular ones as closely as possible (e.g. rspec-mokcs instead of rspec-mocks), in hopes that an unsuspecting user will mistype the name and unintentionally install the malicious package instead.

Como decía, es un tipo de fallos que ya se habían encontrado en Python. Y también en Javascript (npm):

This idea has already proven its merit - we have successfully discovered malicious packages within PyPI, and NPM repositories, as reported in our previous blogs.

En este caso se ocupan de RubyGems y su repositorio.

RubyGems is a package manager for the Ruby programming language. According to their own site statistics, the repository contains around 158 thousand packages (called gems) with nearly 49 billion total downloads.

Usan una lista de gemas populares y luego observan lo que va sucendiendo:

In our PyPI and NPM analysis we focused on a large-scale repository analysis. With RubyGems, we employed a slightly different approach. We monitored our gem ingestion queue for typosquatted names, and sent those gems for processing to our Titanium Platform.

En este caso encuentran gemas maliciosas, y un par de usuarios ‘peligrosos’.

By looking at the RubyGems repository, we discovered that all those gems originated from two user accounts - “JimCarrey” and “PeterGibbons” - with a fairly high number of total downloads.

Muy interesante.