Manual técnico de sistemas. Tema I: Secuencia de arranque del ordenador (boot)

Definiciones previas

Secuencia de Arranque

La secuencia de arranque es una sucesión de instrucciones que son ejecutadas tras el encendido del ordenador. En la jerga popular hispanoamericana, se suele hacer referencia a esta secuencia como al proceso de “booteo”.

 

BIOS / UEFI

El BIOS (o Servicio Básico de Entrada y Salida) es el programa que contiene la secuencia de arranque. Sirve no solo para gestionar el arranque del ordenador y del sistema operativo, sino además, para permitir manipular el Hardware.

La UEFI (Interfaz de Firmware Extensible), en cambio, es una alternativa posterior al BIOS, pero no necesariamente es un reemplazo. Se trata de una interfaz de acceso a un BIOS más actualizado. Debido a su arquitectura y funcionalidad, podría considerarse a la UEFI, un Sistema Operativo pequeño.

Este documento se centrará en el arranque del BIOS, dado que las funcionalidades de la UEFI, exceden los objetivos de arranque y manipulación de hardware que técnicamente son demandados por un ordenador.

Continue reading →

Anuncios

Recuperación de bases de datos tras caída irreparable del servicio de mysql-server – Caso de Estudio

Días atrás, me contacta un alumno con el siguiente problema:

El servidor de bases de datos de un cliente no puede reiniciarse, aparentemente, tras una caída de la corriente eléctrica

El error que el servicio de MySQL arrojaba al intentar volver a levantarlo era el siguiente:

Error 2002 (HY000): can't connect to local mysql server through socket '/var/run/mysqld/mysqld.sock'

Contexto: MySQL 5.5 sobre un Debian 7.11 de 64 bits

Continue reading →

Meltdown: fundamentos técnicos del ataque (resumen explicado)

Meltdown[1] (Lipp, Schwarz, et al.) y Spectre[2] (Kocher, Genkin, et al.) son dos tipos de ataques informáticos, dados a conocer el pasado 3 de enero de 2018, por dos grupos de investigadores[1][2].

En lo sucesivo, y a fin de lograr una mejor comprensión de este texto, es importante comprender que Meltdown y Spectre, no representan el nombre de dos vulnerabilidades, sino, de dos nuevos tipos de ataques informáticos, los cuáles, cada uno de ellos, explota vulnerabilidades no exactamente idénticas.

Meltdown: rompe el aislamiento de memoria entre los espacios del kernel y de usuario. No lo hace explotando una vulnerabilidad del Sistema Operativo (al contrario), sino, explotando información alojada en un canal lateral del propio procesador (se explica técnicamente más adelante, tanto la vulnerabilidad, como el ataque y la base de conocimientos previa).

Spectre: también utilizando canales laterales para acceder a la información, engaña a las aplicaciones para acceder a ubicaciones arbitrarias de la memoria que utilizan y así, hacerse de esa información.

Continue reading →

Seguridad en aplicaciones CGI sobre Apache

Sobre CGI

Las aplicaciones CGI (Common Gateway Interfaz – para referencias dirigirse a la RFC 3875) empleadas con mayor frecuencia hasta hace poco más de una década, han ido quedando en desuso y han sido reemplazadas por módulos externos que deben incorporarse al servidor HTTP de Apache.

CGI representa una forma sencilla para ejecutar programas bajo servidores HTTP con independencia de la plataforma (Robinson & Coard, 2004¹). Esto supone un mecanismo de ejecución directa del programa (código ejecutándose directamente sobre el sistema Operativo) que década y media atrás supuso serios riesgos de seguridad.


¿Por qué volver a CGI?

Los riesgos de seguridad hicieron que surgiesen alternativas a CGI y que esta interfaz dejase de estudiarse. No obstante, hoy día se ha avanzado en el refuerzo de las plataformas (tanto a nivel servidor HTTP de Apache como a nivel del propio kernel), lo que permite retomar los estudios sobre CGI y cuestiones relativas a la seguridad que pueden ser subsanadas como se demostrará más adelante.

Continue reading →

Bases matemáticas de la criptografía asimétrica (1)

Teoría de Números

La teoría de números es la rama de las matemáticas encargada del estudio de los números enteros y sus propiedades.

Se destaca como campo de estudio en esta rama, el de los números primos por su relevancia dentro de la Informática Teórica para el desarrollo y análisis de sistemas criptográficos asimétricos como, entre otros, el del algoritmo RSA.

En esta primera parte de la serie «Bases matemáticas de la criptografía asimétrica» se hace una introducción a los conceptos más elementales de la Teoría de Números y se comienza a profundizar en el estudio computacional de los números primos, mediante un breve repaso de las principales fórmulas y teoremas en este campo. Continue reading →