Editando el archivo fstab para agregar fichero swap en Linux

Agregar fichero swap (de intercambio) en Linux Ubuntu Server

La partición swap funciona para aumentar la RAM de una computadora. Bueno, no la aumenta pero hace que el sistema operativo pueda alojar algunos datos en el disco duro.

Eso sí, agregar una swap de 10 terabytes no ayudaría a tener la computadora más rápida; de hecho el swap es únicamente una ayuda, no es RAM real. Todo esto es porque, aunque sí se puede crear una partición de intercambio de cualquier tamaño, la lectura del disco duro es más lenta que la lectura de la RAM.

Pero bueno, no vamos a meternos en explicaciones técnicas; puedes leer más en la Wikipedia. El tutorial de hoy indica cómo agregar un archivo que funcionará como memoria de intercambio o swap, en una computadora con Linux Ubuntu Server.

La versión de Ubuntu es la 18.10 pero seguramente funciona en otras versiones; ya sea anteriores o superiores (suponiendo que lees esto después de abril del 2019).

Nota: no vamos a agregar una partición swap, sino un archivo swap. Ambos funcionan igual, y tienen ventajas y desventajas. Por cierto, esto del archivo swap es por si no pudiste hacer la partición y tienes que agregar el archivo encima; de ahí se recomienda siempre crear una partición en lugar de un archivo.

(más…)

Desbordamiento de búfer en C

Hoy veremos lo que es un desbordamiento de búfer en C y cómo puede (en su forma más simple) hacer que un usuario aproveche esa vulnerabilidad para explotar nuestro programa.

Nota: esto es diferente a cuando se desborda una variable.

Lo que es un desbordamiento de búfer

Según la Wikipedia:

En seguridad informática y programación, un desbordamiento de búfer (del inglés buffer overflow o buffer overrun) es un error de software que se produce cuando un programa no controla adecuadamente la cantidad de datos que se copian sobre un área de memoria reservada a tal efecto (buffer): Si dicha cantidad es superior a la capacidad preasignada, los bytes sobrantes se almacenan en zonas de memoria adyacentes, sobrescribiendo su contenido original, que probablemente pertenecían a datos o código almacenados en memoria. Esto constituye un fallo de programación.

En otras palabras le da al usuario de nuestro programa la forma de sobrescribir una variable a su antojo; bueno, no siempre y no tan fácil, pero alguien con tiempo puede encontrarlas y explotarlas.

Esto es peligroso en programas que se van para producción, por ejemplo un sistema de la apertura de una puerta o cosas de esas que tienen que ver con la seguridad.

(más…)