Los múltiples usos de SSH

El Pilar y valla de la CREA Mucho ha cambiado la cosa desde los tiempos en los que era habitual administrar una máquina (o conectarse a ella) utilizando el viejo telnet. Quién más quien menos utiliza su versión favorita de un cliente de ssh (en Windows he visto usar mucho putty). Pero con esta herramienta se pueden hacer algunas cosas más. De eso nos hablar SSH: More than secure shell que nos muestra algunas posibilidades como:

  • utilizar el acceso sin la contraseña del sitio remoto, basado en una clave local
  • ejecutar programas en el sistema remoto
  • copia ficheros
  • establecer una configuración para cada sistema remoto
  • configurar el servidor de ssh, el sshd
  • hacer una redirección de puertos en el sistema local
  • hacer una redirección de puertos en el sistema remoto
  • establecer un proxy para navegar con Firefox.
  • usar el sistema de ficheros remoto desde el sistema local.
  • usar ssh en Windows: putty
  • usar ssh en iOS: iSSH

Interesante.

El protocolo de la web: HTTP

Puente y cuerdas

Seguimos con recursos formativos/informativos. Hoy sobre el protocolo que subyace debajo de la publicación de las páginas web The HTTP crash course nobody asked for.

No es una lectura entretenida, pero seguro que sirve de recurso para tener a mano cuando nos preguntemos por algunos detalles de las herramientas que utilizamos en nuestro día a día.

Un fallo en SQLite relacionado con la representación de valores

Teatro

Cualquier observador atento (o cualquiera que se pase por aquí de vez en cuando) sabe que no hay programas seguros. No sólo eso, programas con una larga trayectoria y con una buena comunidad de usuarios detrás se encuentran con problemas (que suelen llevar tiempo allí) de vez en cuando.

Hoy traemos Stranger Strings: An exploitable flaw in SQLite que es un fallo en el API de la biblioteca SQLite. Tiene mucho interés porque este gestor de bases de datos está implantado en los sistemas más diversos que podamos imaginar. No sólo eso, también tiene un buen historial de seguridad.

SQLite is used in nearly everything, from naval warships to smartphones to other programming languages. The open-source database engine has a long history of being very secure…

El fallo tiene que ver con la longitud de una cadena de caracteres representada en 64 bits que se transformaba en un entero con signo de 32 bits cuando se pasaba como argumento en una función (dentro de un programa escrito en PHP).

The blog’s bug manifested when a 64-bit unsigned integer string length was implicitly converted into a 32-bit signed integer when passed as an argument to a function.

Explorando el problema los autores descubrieron que en una función que se utilizaba para proteger (escape) comillas (quote characters) en uno de los módulos podía haber problemas.

a function used for properly escaping quote characters in the PHP PDO SQLite module.

No vamos a entrar en ese nivel de detalle, pero esta es la línea en la que se pasa un entero largo sin signo (2*ZSTR_LEN(unquoted) + 3) a una función sqlite3_snprintf, que espera recibir un entero con signo:

 sqlite3_snprintf(2*ZSTR_LEN(unquoted) + 3, quoted, "'%q'", ZSTR_VAL(unquoted));

Sí que vale la pena destacar que SQLite tiene sus propias implementaciones de funciones alternativas a las peligrosas de la familia printf, que permiten sanear las cadenas que contienen instrucciones SQL.

Las personas interesadas deberían leerse la entrada completa (que está muy bien explicada y escrita) pero nos encontramos lo de siempre: la entrada/salida en C (SQLite está escrito en C) es delicada. Incluso cuando tratas de hacer las cosas bien, e incluso mejorarlas, puedes tener problemas.

Por si nos consuela, en las conclusiones nos dicen que las entradas necesarias para conseguir el ataque son muy grandes (y por eso los programas típicos de fuzzing no habrían detectado el problema).

For one, the inputs required to reach the bug condition are very large, which makes it difficult for traditional fuzzers to reach, and so techniques like static and manual analysis were required to find it.

Además, es un error que en el momento de escribirlo seguramente no se habría considerado como tal, porque entonces las arquitecturas eran primordialmente de 32 bits.

For another, it’s a bug that may not have seemed like an error at the time that it was written (dating back to 2000 in the SQLite source code) when systems were primarily 32-bit architectures

Finalmente, el ataque era más sencillo gracias a las representaciones divergentes (divergent representations) de la misma variable (algunas optimizaciones del compilador ocasionan que se puedan leer valores diferentes en función de si se ven de una forma o de otra).

its exploitation was made easier by the discovered “divergent representations” of the same source variable, which we explore further in a separate blog post.

Sobre esto han escrito otra entrada, que no he leído aún: Look out! Divergent representations are everywhere!.

Algunas tendencias sobre ciberseguridad en empresas

Castillo de Trasmoz

Se ha publicado Announcing the 2022 Accelerate State of DevOps Report: A deep dive into security.

En Data security trends: 7 statistics you need to know justamente lo que promete el título, 7 tendencias sobre ciberseguridad a las que deberíamos prestar atención.

  1. Los correos de Phishing están aumentando y también los empleados que pinchan en los enlaces.
  1. Phishing emails are on the rise, and so are the employees clicking the links
  1. Para evitarlo, las empresas están enviando todavía más pruebas de Phishing.
  1. To fight back, businesses are implementing more phishing tests
  1. El doble factor de autentificación está ampliamente extendido. Ahora que los malos están encontrando formas de saltarlo.
  1. Two-factor authentication is finally ubiquitous—just as attackers find new ways to defeat it
  1. Las empresas dan a sus empleados casi siempre más acceso a los datos de lo necesario.
  1. Businesses often give employees more access to data than necessary
  1. Las empresas nuevas son más vulnerables a los ataques.
  1. Newer companies are more vulnerable to attacks
  1. Los ataques de secuestro de datos se han duplicado, pero menos empresas están pagando el rescate.
  1. Ransomware attacks have doubled, but fewer companies are paying the ransom
  1. La mayoría de las empresas han aumentado el presupuesto de seguridad y los esfuerzos de concienciación.
  1. Most companies have increased security budgets and awareness training