Introducción a las Evaluaciones de Seguridad con Kali Linux

  • Posted on: 15 September 2020
  • By: ReYDeS

Kali Linux tiene muchas características específicas, razón por la cual se sugiere tener un sólido conocimiento sobre aquello lo cual hace a Kali Linux especial, y como permite realizar una serie de tareas complejas. Antes de utilizar Kali Linux se necesitan también comprender algunos conceptos relacionados con las evaluaciones de seguridad. A continuación se presentan algunos conceptos con los cuales iniciar, como también algunas referencias para utilizar Kali Linux en una evaluación de seguridad. Se debe iniciar explorando el significado de “seguridad” cuando se trata de sistemas de información. Cuando se intenta asegurar un sistema de información se enfoca en tres atributos principales del sistema:

Confidencialidad: ¿Pueden actores quienes no deberían tener acceso hacia el sistema o información, acceder al sistema o información?

Integridad: ¿Pueden los datos o el sistema ser modificados en alguna manera no prevista?

Disponibilidad: ¿Los datos o el sistema puede ser accedido cuando y como debería?

Juntos estos conceptos constituyen la triada CIA (Confidencialidad, Integridad y Disponibilidad), además en una gran parte son los elementos principales en los cuales enfocarse al asegurar un sistema como parte de un despliegue estándar, mantenimiento o evaluación.

Es también importante anotar en algunos casos, se puede estar mas preocupado con un aspecto de la triada CIA comparado a otros. Por ejemplo, si se tiene un diario de trabajo el cual contiene los pensamientos más secretos, la confidencialidad del diario puede ser de lejos más importante comparado con la integridad y disponibilidad. En otras palabras, se podría no estar preocupado sobre si alguien puede escribir en el diario (opuesto a su lectura), o si el diario es siempre accedible. De otro lado, si se asegura un sistema el cual registre prescripciones médicas, la integridad de los datos sería lo más crítica. Mientras es importante prevenir otras persona lean los medicamentos utilizados por alguien, es importante se pueda acceder a esta lista de medicamentos. Si alguien es capaz de cambiar los contenidos del sistema (altera la integridad), esto podría conducir a una amenaza contra la vida.

Cuando se está asegurando un sistema y se descubre un problema, se deberá considerar cuales de estos tres conceptos, o en cual combinación de estos se encuentra el problema. Esto ayuda a comprender el problema de una manera más completa, además permite categorizar los problemas para responder en consecuencia. Es posible identificar vulnerabilidades los cuales impactan en uno o varios elementos de la triada CIA. Se utiliza a continuación una aplicación con una vulnerabilidad de inyección SQL como un ejemplo:

Confidencialidad: Una vulnerabilidad de inyección SQL permite al atacante extraer contenidos completos de una aplicación web, permitiendo tener acceso completo para leer todos los datos, pero sin la capacidad de cambiar la información o deshabilitar el acceso hacia la base de datos.

Integridad: Una vulnerabilidad de inyección permite al atacante cambiar la información existente en la base de datos. El atacante no puede leer datos o prevenir otros accedan hacia la base de datos.

Disponibilidad: Una vulnerabilidad de inyección SQL inicia una consulta de larga duración, consumiendo una gran cantidad de recursos en el servidor. Esta consulta cuando es iniciada múltiples veces, conduce hacia una situación de negación de servicio (DoS). El atacante no tiene la capacidad de acceder o cambiar los datos, pero puede prevenir usuarios legítimos accedan a la aplicación web.

Múltiples: Una vulnerabilidad de inyección SQL conduce hacia un acceso shell completamente interactivo en el sistema operativo ejecutando la aplicación web. Con este acceso el atacante puede romper la confidencialidad del sistema accediendo a los datos como le plazca, comprometer la integridad del sistema alterando datos, o si lo requiere destruir la aplicación web, conduciendo hacia un compromiso de la disponibilidad del sistema.

Los conceptos detrás de la triada CIA no son demasiado complicados, y de manera realista son elementos con los cuales se está trabajando con intuición, incluso si no se los reconoce. Sin embargo es importante interactuar conscientemente con el concepto pues ayuda a reconocer donde dirigir los esfuerzos. Este fundamento conceptual ayudará a identificar los componentes críticos de los sistemas, además de la cantidad de esfuerzo y recursos a invertir en la corrección de identificar problemas.

Otro concepto el cual se debe abordar es el riesgo, y como se compone de amenazas y vulnerabilidades. Estos conceptos no son muy complejos pero es fácil equivocarse. Lo mejor es pensar en el riesgo como aquello lo cual se está intentando prevenir ocurra, la amenaza como quien lo haría, y la vulnerabilidad como aquello lo cual permite hacerlo. Los controles pueden ser implementados para abarcar las amenazas o vulnerabilidades con la meta de mitigar el riesgo.

Por ejemplo cuando se visitan algunas partes del mundo, se tiene un riesgo substancial de contraer malaria. Esto porque la amenaza de los mosquitos es muy alto en algunas áreas, y es altamente probable no sea inmune a la malaria. Afortunadamente se puede controlar la vulnerabilidad con medicamentos, e intentar controlar la amenaza con el uso de repelentes de insectos y mosquiteros. Con controles establecidos abordando tanto la amenaza como la vulnerabilidad, puede ayudar a garantizar el riesgo no se actualice.

Fuentes:

https://en.wikipedia.org/wiki/Information_security
https://kali.training/downloads/Kali-Linux-Revealed-1st-edition.pdf

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor en Hacking Ético, Forense Digital & GNU/Linux
Correo Electrónico: ReYDeS@gmail.com
Twitter: @Alonso_ReYDeS
LinkedIn: pe.linkedin.com/in/alonsocaballeroquezada
Facebook: https://www.facebook.com/alonsoreydes
Youtube: http://www.youtube.com/c/AlonsoCaballero
Resumen de mi CV: http://www.reydes.com/d/?q=node/1