Biblioteca Online : ¡La Suscripción ENI por 9,90 € el primer mes!, con el código PRIMER9. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí

Las vulnerabilidades del sistema

Aspectos generales

Los sistemas operativos son cada vez son más sofisticados y sencillos desde la perspectiva del usuario. Los mecanismos subyacentes, en ocasiones muy complicados, se ocultan para facilitar el acceso a la herramienta informática al mayor número de usuarios posible. Desafortunadamente, esta "simplificación" a menudo se logra en detrimento de la seguridad y el rendimiento.

Los diseñadores son conscientes de las cuestiones relacionadas con la seguridad y la protección de datos, por lo que llevan varios años intentando mejorar sus aplicaciones. Respecto a los usuarios, en general siguen siendo el eslabón más débil. Es sencillo encontrar usuarios mal formados o desinformados, poco acostumbrados a las restricciones derivadas de la seguridad, como la introducción y confirmación de contraseñas. Muchas veces prefieren desactivar las protecciones existentes o ignorar los mensajes de advertencia. Si se combinan estas carencias con el acceso permanente a Internet, una gran cantidad de máquinas de usuarios normales se transforma en máquinas zombis y se utiliza para llevar a cabo ataques cuya escala y encubrimiento son proporcionales a la cantidad de máquinas utilizadas.

Pero esto va más allá, en el simple montaje de un aparato electrónico los elementos de nuestra vida cotidiana como teléfonos móviles, neveras, televisores...

Las vulnerabilidades físicas

1. Introducción

Es habitual que segurizar el acceso al hardware informático no sea una prioridad para las empresas o administraciones. Para convencerse de ello, es suficiente con hacer la prueba y verificar con qué facilidad, con cualquier pretexto, una persona ajena a un departamento puede acceder muchas veces a los ordenadores u otros recursos informáticos de la plantilla.

En efecto, de la misma manera que en medianas o grandes empresas los servidores, rúters y otros equipos de hardware de administración informática están encerrados en una sala especializada, los ordenadores operativos o administrativos son relativamente accesibles.

Cuando pregunta al personal sobre el acceso a los equipos, por lo general ponen el problema en perspectiva y responden que no tienen, por ejemplo, acceso a información confidencial, que la empresa tiene esa manera de funcionar desde hace años y que nunca se han observado problemas al respecto. Algunas veces, incluso se evita la pregunta con el pretexto de que nunca se ha proporcionado información o incluso formación.

En las pequeñas empresas, los ordenadores suelen ser muy accesibles y es habitual que todo el mundo utilice la misma cuenta de usuario con una sola contraseña (si es que hay una).

Sin embargo, el acceso físico (incluso restringido) a un ordenador puede tener consecuencias desastrosas para una empresa.

2. Lockpicking

No podemos hablar de acceso físico a un ordenador, sin hablar de lockpicking (https://www.lockpickingcenter.com/es/) o forzado de cerraduras en español.

Hay muchos sitios web que explican todas las técnicas que se pueden utilizar, así como las herramientas necesarias, que pueden ser hechas a mano o compradas en línea.

images/04ep01v3.png

3. Acceso físico directo al ordenador

Hay dos casos posibles durante un acceso físico a una máquina:

  • El ordenador está encendido.

  • El ordenador está apagado.

a. Acceso a un ordenador apagado con la BIOS protegida

En el pasado, algunas BIOS, como las BIOS Award anteriores a la versión 4.51, tenían contraseñas universales que permitían el acceso directo a la BIOS y además las listas que contenían dichas contraseñas estaban disponibles en Internet.

Otros fabricantes como Toshiba permitían el acceso a la BIOS sin ninguna verificación...

Las contraseñas

1. Introducción

En la actualidad, las contraseñas son la forma más común de controlar el acceso a recursos restringidos. Se han utilizado durante siglos, especialmente en el campo militar. Además, intervienen a muchos niveles: cuando se enciende el ordenador, al acceder al correo electrónico, etc.

En informática, una contraseña es una secuencia de caracteres, no necesariamente compuesta únicamente por números y letras, con o sin significado.

2. Complejidad

La calidad de una contraseña se define por su complejidad para que se pueda adivinar o encontrar, y por su longitud. Se debe entender que una contraseña no es garantía de protección absoluta. Solo permite ralentizar a un atacante, con mayor o menor eficacia. De hecho, probar todas las combinaciones posibles le permitirá acceder al sistema protegido.

Por ejemplo, consideremos un caso real: la pérdida del código de un candado de bicicleta, compuesto por tres cilindros numerados del 0 al 9. Por lo tanto, cada cilindro tiene 10 valores. Los tres cilindros permiten establecer 10*10*10 combinaciones posibilidades, es decir, 1000 valores diferentes. Los intentos sucesivos de estas 1000 combinaciones se pueden realizar en un tiempo razonable, por lo que se puede desbloquear la cerradura sin conocer el código.

En informática sucede lo mismo, pero...

Cifrado y encriptado

1. Introducción

Hay muchos sitios que explican los conceptos básicos de la criptografía, como:

https://ssd.eff.org/es/module/conceptos-claves-en-cifrado

La criptografía le permite:

  • transformar un mensaje para que no se pueda utilizar por un tercero en caso de interceptación; 

  • garantizar la confidencialidad;

  • garantizar la integridad de un mensaje;

  • autenticar al remitente o al destinatario;

  • proporcionar un mecanismo de no repudio;

  • proporcionar un mecanismo anti-reproducción.

Se dice que un cifrado es "seguro" si:

  • el coste necesario para descifrarlo es superior al beneficio que proporciona;

  • el tiempo requerido para el descifrado excede la duración de la relevancia de la información clave.

El algoritmo de cifrado también es conocido y público. El escrutinio público garantiza su fiabilidad, por lo que crear su propio algoritmo es una mala práctica (security by offuscation). 

2. El cifrado simétrico

Es un cifrado rápido generalmente utilizado para grandes volúmenes de datos.

El cifrado simétrico es reversible: los datos cifrados se pueden descifrar. Como se utiliza la misma clave para cifrar y descifrar los datos, se debe garantizar la seguridad de la clave simétrica, tanto durante su almacenamiento como durante el intercambio con los socios.

AES (Advanced Encryption Standard) y Camelia, son los dos algoritmos recomendados por ENISA (European Network and Information Security Agency).

Los algoritmos DES, Blowfish, Kasumi y 3DES se consideran obsoletos y solo se deben usar para la compatibilidad con versiones anteriores.

3. El cifrado asimétrico

Este es un cifrado más lento que normalmente se usa para pequeñas cantidades de datos como claves simétricas y firmas. Los datos cifrados con una clave pública solo se pueden descifrar con la clave privada correspondiente y viceversa. Las claves están relacionadas matemáticamente, pero una clave privada no se puede derivar de una clave pública.

El algoritmo RSA es un cifrado de clave pública que se basa en el hecho...

Los procesos

Un proceso es una tarea que se ejecuta en un procesador. Cada proceso se identifica por su PID (Process ID), un número entero único. El Administrador de tareas permite ver el estado de los diferentes procesos que se ejecutan en la máquina y actuar sobre ellos. Tradicionalmente, en Windows, se accede ejecutando [Ctrl][Alt][Supr]. En macOS, debe pasar por el Monitor de actividad o, como en cualquier sistema Unix, usamos el comando ps.

images/C9-Figure_21.png

Los procesos en Windows

Durante su ejecución, un proceso se ejecuta con los permisos del usuario actual, pero el proceso puede elevar sus privilegios para realizar una tarea administrativa, o reducir sus privilegios para mantener solo los que necesita. Esta última operación es común para los procesos demonio de Unix. De hecho, deben comenzar como root para leer su configuración, con el fin de asignar los recursos necesarios. Pero, por ejemplo, para un demonio de red actuar como root sería peligroso innecesariamente, por lo que el proceso reduce sus privilegios. En caso de que el servicio se comprometa, el atacante solo tendrá privilegios muy limitados, lo que reduce el impacto en el sistema.

El Administrador de tareas permite comprobar la cantidad de memoria y el porcentaje de uso del procesador por cada proceso. Esto permite identificar al responsable en caso de comportamientos sospechosos de la máquina, como rendimiento reducido anormal.

El proceso culpable...

El arranque

El arranque es una fase crítica. El sistema operativo es vulnerable al establecer la seguridad. De hecho, no hay garantía de que sus archivos no hayan sido alterados o no se haya ejecutado un programa malicioso antes de recibir el control.

1. El abuso de los modos de arranque degradados

Un sistema operativo debe poder arrancar para poder repararse, lo que plantea algunos problemas de seguridad. Por ejemplo, en GNU/Linux, a través del gestor de arranque, es posible pasar un programa alternativo a init para que se encargue de inicializar el sistema. Pero si se usa un shell, se tiene acceso directo en modo administrador.

Por lo tanto, el reto consiste en asegurar el cargador de arranque (bootloader), colocando una contraseña en ese punto.

En macOS X, es posible iniciar en modo de usuario único, que luego inicia un shell de administrador directamente, manteniendo presionadas las teclas [Manzana] + S durante el inicio. Para protegerse, debe activar la protección con contraseña del firmware de Mac con la herramienta dedicada en el DVD de instalación de macOS.

2. Los ataques de preboot

Los sistemas operativos más nuevos aprovechan cada vez más la firma de archivos para evitar cargar programas que hayan sido manipulados por terceros. El ataque de preboot consiste en cargar un programa antes que cualquier otro del sistema operativo. De esta manera, independientemente de la seguridad añadida...

Windows

1. Gestión de los usuarios

Un usuario es la representación virtual de una persona física, registrada en el ordenador, a la que se le asocian datos como su nombre y apellidos, dirección y contraseña. Para interactuar con el sistema, un usuario físico se autentica con su usuario virtual: es necesario indicar su usuario y contraseña antes de poder hacer nada. Seguidamente, las acciones se realizan bajo esta identidad y están limitadas por los permisos que se le asignan.

Existen usuarios especiales en los sistemas, no relacionados con una persona física. Se trata de usuarios virtuales que permiten enmarcar el funcionamiento de los programas, para limitar sus privilegios, por seguridad: por ejemplo, no autorizar el acceso a una línea de comandos, a la red, a interactuar con la GUI, etc.

Windows administra a sus usuarios en un archivo SAM (Security Account Manager). Tradicionalmente, los usuarios se administran de manera gráfica en la consola de administración del sistema, a la que se accede mediante el comando compmgmt.msc.

images/C9-Figure_08.png

Los usuarios en Windows

También es posible administrar usuarios en la línea de comandos, usando comandos, scripts VBS o VBA y mediante PowerShell.

  • Creación del usuario:

net user Laurent 
  • Agregar el usuario "Laurent" al grupo "marketing" sin eliminarlo del grupo original:

net localgroup marketing Laurent /add 
  • Eliminar el usuario "Laurent", así como los archivos contenidos en su directorio personal:

net user Laurent /delete 

Consulte la documentación de Windows para obtener más información.

2. Gestión de grupos

Un grupo es una entidad que agrupa a los usuarios, a los que se les pueden asignar permisos. En lugar de asignar permisos usuario por usuario, los permisos se otorgan a un grupo y los usuarios correspondientes se asignan a ese grupo.

La asignación de permisos usuario por usuario es engorrosa y propensa a errores. De hecho, no se debe olvidar el caso de eliminación del acceso a los usuarios ya que, de lo contrario, se comprometería la seguridad. Los grupos previenen tales errores.

Los grupos se gestionan de la misma forma que los usuarios, a través de la consola de gestión o la línea de comandos.

3. Asignación de permisos

Un permiso es una autorización asignada a un usuario o grupo sobre un recurso (archivo, directorio...

Linux

1. Gestión de usuarios

Los usuarios se guardan en el archivo /etc/passwd y su contraseña en el archivo /etc/shadow. Históricamente, solo el archivo passwd contenía contraseñas. Pero al ser un archivo de texto plano, cualquiera podía leer los hashes y, por lo tanto, descifrar las contraseñas era simple. Por eso se ha creado el archivo shadow, que es una copia de passwd, incluidas las contraseñas.

Solo root tiene derechos de modificación y lectura en este archivo. Además, es la única cuenta que puede actuar sobre el resto de cuentas del sistema.

images/05ept14.png

Los usuarios en Linux

Estos archivos se pueden editar directamente con un editor de texto. Sin embargo, hay herramientas que simplifican la tarea.

  • Adición del usuario "Laurent" al grupo "desarrollo":

adduser Laurent desarrollo 
  • Adición del usuario "Laurent" al grupo "marketing" sin sacarlo del grupo original ("desarrollo"): 

usermod -aG marketing fulanito 
  • Eliminación del usuario "Laurent", así como de los archivos contenidos en su directorio personal:

userdel -r Laurent 

Para la sintaxis, se recomienda dirigirse al manual de las herramientas: man useradd, man usermod y man userdel desde un terminal.

2. Gestión de grupos

Los grupos se administran en el archivo de texto /etc/group y también hay disponibles herramientas de administración:

  • groupadd: añadir un grupo.

  • groupmod: modificar un grupo.

  • groupdel: eliminar un grupo.

  • gpasswd: gestionar usuarios de un grupo.

3. Asignación de permisos

En GNU/Linux, todo es un archivo. Un dispositivo y una carpeta se gestionan como tales. Un archivo tiene un propietario y un grupo al que pertenece. El propietario se asigna usando el comando chown (change owner) y el grupo de pertenencia con chgrp (change group).

  • Para cambiar el propietario:

chown pierre archivo.txt 
  • Para cambiar el grupo:

chgrp desarrolladores archivo.txt 

Para hacer las dos al mismo tiempo:

chown pierre:desarrolladores archivo.txt 

A continuación, los otros permisos se configuran con el comando chmod. Debemos definir los permisos de tres entidades: el propietario u, el grupo g y el resto o. "El resto" se corresponde con cualquier usuario que no sea propietario ni miembro del grupo. Cada entidad puede tener permisos de lectura, escritura w y ejecución/navegación x. Un derecho se suma...

macOS X

1. Gestión de usuarios

Vaya al menú Apple - System preferences, y después a User & Groups. Puede ser necesario desbloquear el panel haciendo clic en el candado situado en la parte inferior izquierda y luego indicando una contraseña de administrador.

Agregar y eliminar un grupo o una cuenta de usuario se realiza respectivamente con los botones + y -. En el caso de una adición, es suficiente con seleccionar en la lista desplegable New, el tipo de cuenta: grupo, administrador o usuario simple. Observe que aquí es posible activar el cifrado del directorio personal, que permite evitar la lectura de sus archivos desde otra cuenta de usuario u otro sistema operativo.

images/05ept21.png

Los usuarios en OS X

Por supuesto, puede realizar todas estas tareas desde la línea de comandos con la herramienta de administración de directorio DSL.

Como root:

Creación de una nueva entrada para el usuario "laurent" en /Users:

dscl . create /Users/laurent 

Definición del entorno de usuario:

dscl . create /Users/laurent UserShell /bin/bash 

Creación e inicialización del nombre completo del usuario:

dscl . create /Users/laurent RealName "Laurent" 

Creación e inicialización del identificador único del usuario:

dscl . create /Users/laurent UniqueID 505 

Creación e inicialización del grupo principal del usuario:

dscl . create /Users/laurent PrimaryGroupID 1000 

Creación...

Explotación de las vulnerabilidades de los sistemas operativos

Hay muchas herramientas disponibles para probar y explotar vulnerabilidades en diferentes sistemas operativos y plataformas. Entre los más conocidos se encuentra el framework Metasploit (MSF).

Para utilizar una herramienta como MSF, debe comprender los siguientes conceptos:

  • Vulnerabilidad: es un fallo en el código informático resultante de un error de diseño o implementación que debilita el sistema. Cuando se descubren, se identifican, se clasifican según su gravedad y se publican como CVE (Common Vulnerabilities and Exposures). El siguiente enlace le permite ver las últimas vulnerabilidades relacionadas con Windows 10: https://www.cvedetails.com/vulnerability-list/vendor_id-26/product_id-32238/Microsoft-Windows-10.html

  • Exploit: es un programa diseñado para explotar una vulnerabilidad.

  • Payload: es un programa que permite interactuar con el sistema objetivo para controlarlo o desestabilizarlo. Meterpreter es uno de los más populares, ya que permite, entre otras cosas, crear, modificar, eliminar y descargar archivos desde o hacia la máquina de destino. Le permite capturar pulsaciones de teclas, congelar el fondo de pantalla y eliminar o crear procesos.

  • Post: es un complemento utilizado después de la explotación para recuperar las pruebas o cambiar a otras máquinas en la red (pivoting).

Metasploit ya está instalado en Kali, pero a continuación se muestra cómo se instala Metasploit en Debian:

# cd /opt  
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/ 
master/config/templates/metasploit- 
framework-wrappers/msfupdate.erb > msfinstall && \ 
 chmod 755 msfinstall && \ 
 ./msfinstall 
# msfupdate 

MSF utiliza una base de datos para almacenar los resultados del reconocimiento. Por lo tanto, hay que inicializarlo:

#service postgresql start 
#msfdb init 
msfdb init 
[+] Starting database 
[+] Creating database user 'msf' 
Indicar la contraseña para el nuevo rol: 
Indicarla de nuevo: 
[+] Creating databases 'msf' 
[+] Creating databases 'msf_test' 
[+] Creating configuration file '/usr/share/metasploit-framework/ 
config/database.yml' 
[+] Creating initial database schema 

Hay disponibles otras opciones:...

Big Data y confidencialidad

El 27 de septiembre de 2015, Terry Myerson, vicepresidente de Microsoft, publicó un mensaje oficial (https://blogs.windows.com/windowsexperience/2015/09/28/privacy-and-windows-10/#OM92l9t2lHLbGrKe.97) sobre los datos recopilados y la privacidad de Windows 10:

"Les aseguro que ninguna otra empresa está más comprometida, es más transparente y está más en contacto con los clientes en este tema tan importante…

Desde el principio, diseñamos Windows 10 con dos principios sencillos de privacidad en mente:

  • Windows 10 recopila información para que el producto funcione mejor para usted.

  • Usted controla la capacidad de determinar la información recopilada.

Con Windows 10, la información que recopilamos se cifra durante el envío a nuestros servidores y luego se almacena en instalaciones seguras".

Pero ¿qué sucede en la realidad?

Hemos hecho nuestro propio experimento. Dos máquinas virtuales idénticas se sometieron a la misma instalación de Windows 10. En la primera no se realizó ninguna modificación, mientras que la segunda se modificó para reducir el intercambio de información.

No se realizó ninguna instalación de software de terceros y nadie inició sesión en las estaciones de trabajo, excepto para instalar Windows 10.

Se realizó una captura de tráfico...

Conclusión

Podría ser peligroso dejar libre acceso a su ordenador. Todo es posible cuando se permite el acceso a la máquina, desde robar contraseñas hasta inyectar malware. Hay muchas otras prácticas para recuperar datos de una máquina físicamente accesible, pero este capítulo ofrece una descripción general de los métodos más comunes.

Lo importante es ser consciente de este problema y respetar las siguientes reglas de sentido común:

  • Restringir al máximo el acceso físico a nuestra máquina.

  • Proteger la BIOS de nuestra máquina y poner una contraseña en el boot.

  • Tener una contraseña que cumpla las normas de complejidad (caracteres alfanuméricos + especiales).

  • Prohibir el boot en cualquier cosa que no sea el disco duro.

  • Cerrar la sesión de nuestro ordenador en caso de ausencia breve o detenerlo durante periodos prolongados.

  • Asegurar la actualización de sistemas, antivirus y otro antispyware.

  • Evitar cualquier mecanismo automático de montaje de dispositivos.

  • Activar principalmente el acceso físico indispensable para trabajar.

  • Utilizar un sistema de encriptación de datos confidenciales.

  • Virtualizar.

  • Separar los privilegios.

  • Elegir contraseñas de manera inteligente.

  • Priorizar la autenticación multifactor.

  • Actualizar sistemas.

  • Informar y formar a los usuarios.

Respetar estas normas dificultará el acceso...