Está en la página 1de 11

""

Security Misconfiguration

Alumno: Sebastián Robles González


Docente: Cristian González
Asignatura: Ciberseguridad

1 / 11
""

Security Misconfiguration
Acrónimos y Abreviaturas
Introducción
Objetivo
Descripción Técnica
Caracterización
¿Qué aspectos de la seguridad están involucrados?
Disponibilidad
Confidencialidad
Integridad
¿A qué tipo de amenaza corresponde?
¿Cuál es el origen de la amenaza?
Ejemplos con código
Casos conocidos
Mecanismos de protección
Prevención
Detección
Corrección
Conclusiones
Referencias

Acrónimos y Abreviaturas
Code Injection: Es un tipo de ataque que permite al atacante inyectar código fuente en la aplicación
de forma que es interpretado y ejecutado
Fuerza bruta: Es un intento de averiguar una contraseña o un nombre de usuario, o de encontrar una
página web oculta o la clave utilizada para cifrar un mensaje, mediante un enfoque de prueba y error.
Forceful browsing: Es un ataque de fuerza bruta que busca enumerar archivos y ganar acceso a
recursos que la aplicación no referencia pero que están disponibles en el servidor
Malware: Es un término amplio que describe cualquier programa o código malicioso que es dañino
para los sistemas.
SQL Injection: Es un tipo de vulnerabilidad en la que un atacante usa un trozo de código SQL (lenguaje
de consulta estructurado) para manipular una base de datos y acceder a información potencialmente
valiosa.
Disponibilidad: La disponibilidad de un sistema es la capacidad de este para estar disponible para los
usuarios cuando estos lo necesiten.
Confidencialidad: La confidencialidad de un sistema es la capacidad de este para mantener la
privacidad de los datos que contiene.
Integridad: La integridad de un sistema es la capacidad de este para mantener la confidencialidad, la
disponibilidad y la autenticidad de los datos que contiene.
Exploit: Exploit es un término que se utiliza para referirse a un programa o código que explota una
vulnerabilidad de seguridad en un sistema informático.

2 / 11
""

Introducción
La configuración incorrecta de la seguridad ocurre cuando la configuración de seguridad no se define
adecuadamente en el proceso de configuración o no se mantiene e implementa con la configuración
predeterminada. Esto podría afectar cualquier capa de la pila de aplicaciones, la nube o la red. Las nubes mal
configuradas son una causa central de las filtraciones de datos, lo que les cuesta a las organizaciones millones
de dólares

Objetivo

El objetivo de este documento es describir las principales vulnerabilidades que puede provocar la
configuración incorrecta de la seguridad en un sistema informático y las medidas de seguridad que se pueden
implementar para evitarlas.

Descripción Técnica
Cuando cualquier parte de la aplicación (como los servicios de red, servidor web, base de datos, etc.) no es
configurada correctamente, un atacante puede realizar un exploit para acceder a los sistemas. Un ejemplo
común es mantener las credenciales por defecto para ingresar al sistema aún activas.
También cualquier cambio de configuración mal documentado o un problema técnico en cualquier
componente compromete la seguridad de la aplicación.

Sin un proceso de configuración de seguridad de aplicaciones y un proceso de revisión de seguridad de


aplicaciones, las aplicaciones pueden estar sujetos a malwares y ataques de fuerza bruta.

Caracterización
¿Qué aspectos de la seguridad están involucrados?

Una incorrecta configuración de la seguridad puede permitir que un atacante acceda a la aplicación, lo que
puede significar que este tenga acceso a datos confidenciales, tenga la capacidad de modificar datos o
incluso destruir la aplicación.

Existen varios tipos de configuraciones incorrectas de seguridad, pero las más comunes son:

1. Credenciales predeterminadas: Usar los valores por defecto que trae el proveedor es una mala
configuración común y que puede permitir a los atacantes obtener acceso no autorizado al sistema.
2. Política de contraseñas seguras no establecida: Si no se implementa una política de contraseñas
seguras, los atacantes pueden aplicar técnicas de fuerza bruta para adivinar las contraseñas hasta que
la autenticación sea exitosa.
3. Software desactualizado y falencias sin parchar: Si el software no se actualiza, los atacantes pueden
explotar las vulnerabilidades conocidas para acceder al sistema o también pueden utilizar code
injection para ingresar código malicioso en la aplicación.
4. Archivos y directorios sin protección: Dejar sin protección archivos y directorios puede permitir que los
atacantes realizar técnicas como forceful browsing para ganar acceso a archivos restringidos o a áreas
en el directorio del servidor.

3 / 11
""

5. Funciones sin usar instaladas o habilitadas: Mantener funciones sin usar instaladas o habilitadas puede
permitir que los atacantes realicen code injection para ingresar código malicioso en la aplicación.
6. Funciones de seguridad no mantenidas correctamente o no configuradas: No configurar o mantener
apropiadamente la seguridad hace que la aplicación sea vulnerable a ataques.
7. URLs sin publicar no están bloqueadas para recibir tráfico de usuarios ordinarios.
8. Malas prácticas de seguridad en el código: Por ejemplo, la falta de validación de entradas de usuario
puede resultar en ataques de code injection o SQL injection.

De los tipos de configuraciones incorrectas más comunes podemos ver que afectan a la integridad,
disponibilidad y confidencialidad de la aplicación, es decir a los tres aspectos de la seguridad.

Disponibilidad

La disponibilidad de un sistema es la capacidad de este para estar disponible para los usuarios cuando estos
lo necesiten. Una configuración incorrecta de la seguridad puede provocar que la aplicación no esté
disponible para los usuarios, por ejemplo, si se deja sin protección archivos y directorios, los atacantes pueden
realizar forceful browsing para acceder a archivos restringidos o a áreas en el directorio del servidor.

Confidencialidad

La confidencialidad de un sistema es la capacidad de este para mantener la confidencialidad de los datos que
contiene. Una configuración incorrecta de la seguridad puede provocar que los datos de la aplicación sean
accesibles para los atacantes, por ejemplo, si se usan credenciales predeterminadas, los atacantes pueden
obtener acceso no autorizado al sistema y la confidenciabilidad de la información se ve afectada.

Integridad

La integridad de un sistema es la capacidad de este para mantener la confidencialidad, la disponibilidad y la


autenticidad de los datos que contiene. Una configuración incorrecta de la seguridad puede permitir que un
atacante acceda a la aplicación, lo que puede significar que este tenga acceso a datos confidenciales, tenga la
capacidad de modificar datos o incluso destruir la aplicación.

En resumen, una configuración incorrecta de la seguridad puede provocar que la aplicación no esté
disponible para los usuarios, que los datos de la aplicación sean accesibles para los atacantes o que los
atacantes puedan acceder a la aplicación y modificar datos o incluso destruir la aplicación.

Aspectos de la seguridad involucrados:

Disponibilidad
Confidenciabilidad
Integridad

4 / 11
""

¿A qué tipo de amenaza corresponde?

Corresponde a una amenaza de aplicación con un nivel de acceso de explotación de alto. Esto significa que
los atacantes a menudo intentarán explotar defectos sin parchear o acceder a cuentas predeterminadas
(como mencionamos en la sección anterior), páginas no utilizadas, archivos y directorios sin protección, etc.
con el fin de obtener acceso o conocimiento no autorizado al sistema.

¿Cuál es el origen de la amenaza?

El origen de esta vulnerabilidad es el personal que desarrolla la aplicación, ya que es el que configura la
aplicación y no realiza un proceso de configuración de seguridad de aplicaciones y un proceso de revisión de
seguridad de aplicaciones.

Tales errores de configuración frecuentemente dan a los atacantes acceso no autorizado a algunos datos o
funciones del sistema. Ocasionalmente, estos defectos resultan en un completo compromiso del sistema. El
impacto de negocio depende de las necesidades de protección de la aplicación y los datos.

Ejemplos con código

Escenario 1:
Para la asignatura Taller de Redes se pide instalar servicios web a un VPS. Toda la instalación y configuración
de estos servicios está disponible en internet mediante tutoriales. Dichos tutoriales nos muestran el paso a
paso de la instalación y configuración de los servicios y en estos utilizan credenciales específicas. Un error que
cometieron varios estudiantes fue configurar sus servicios con las mismas credenciales que se muestran en los
tutoriales, lo que permitió a los atacantes obtener acceso no autorizado a los servicios y muchas veces
tuvieron que reiniciar el VPS para solucionar el problema.

Ejemplo básico de crear un usuario para la base de datos de PowerDNS en Linux

mysql -u root -p

Crean la base de datos para el servicio

CREATE DATABASE powerdns;

Otorgan los privilegios al usuario, sin modificar las credenciales

GRANT ALL ON powerdns.* TO 'powerdns_user'@'localhost' IDENTIFIED BY


'powerdns_user_password';

Referencia ejemplo

5 / 11
""

Escenario 2:
Aplicaciones hechas en Python, scripts que aceptan entradas por usuarios y que evaluan el input pueden ser
usadas para code injection. Por ejemplo, consideremos un script simple de una calculadora que recibe la
entrada del usuario y evalua el input.

compute = input("Enter an expression: ")


if not compute:
print("No input")
else:
print(eval(compute))

Una expresión regular como 5*6 retorna un resultado esperado, 30. Supongamos que el proceso objetivo
tiene privilegios de acceso, en entradas maliciosas como _import__os__os.system('rm -rf /') en el input, el
script ejecuta el comando rm -rf /, lo que puede provocar la destrucción del sistema, ya que todos los
directorios en la carpeta del script son eliminados.

Casos conocidos

Mirai (未来) botnet:


Mirai era una botnet a gran escala que infectaba dispositivos de red como cámaras de circuito cerrado de
televisión, dispositivos de DVD y enrutadores domésticos. La botnet aprovechó una mala configuración en
estos dispositivos: el uso de contraseñas predeterminadas inseguras. La red de bots se utilizó para llevar a
cabo ataques DDoS de una magnitud sin precedentes, que derribaron sitios web como Twitter, Reddit y
Netflix.

6 / 11
""

Amazon S3:
Muchas organizaciones experimentaron filtraciones de datos como resultado de cubos de almacenamiento
inseguros en el popular servicio de almacenamiento S3 de Amazon. Por ejemplo, El comando de seguridad e
inteligencia de EE.UU almacenó en S3 sin darse cuenta archivos de bases de datos confidenciales, algunos de
ellos marcados como ultrasecretos, sin la autenticación adecuada.

7 / 11
""

Mecanismos de protección

En esta sección se describen los mecanismos de protección que se pueden implementar para evitar que los
atacantes obtengan acceso no autorizado a los sistemas debido a errores de configuración.

En la siguiente tabla se resumen los mecanismos de protección que se pueden implementar para evitar que
los atacantes obtengan acceso no autorizado a los sistemas debido a errores de configuración.

Prevención Detección Recuperación

Actualizaciones Monitoreo Correción automática

Política de contraseñas Análisis de logs Soporte

Monitoreo de tráfico de la red,


Política de privilegios Restauración de copias de seguridad
firewall

Capacitación del
personal

Respaldos de seguridad

A continuación se describen los mecanismos de protección en detalle:

Prevención

Mecanismos que se pueden implementar para evitar que los atacantes obtengan acceso no autorizado a los
sistemas debido a errores de configuración.

Actualizaciones: Los sistemas operativos y las aplicaciones deben mantenerse actualizados con las últimas
versiones de seguridad. Los parches de seguridad se publican regularmente para corregir errores de
configuración que pueden ser explotados por los atacantes.

Política de contraseñas: Las contraseñas deben cumplir con ciertos requisitos de complejidad, como la
longitud mínima, el uso de caracteres especiales, etc. Las contraseñas deben ser cambiadas periódicamente.

Política de privilegios: Los usuarios deben tener los privilegios mínimos necesarios para realizar su trabajo.
Los privilegios deben ser revocados cuando ya no sean necesarios.

Capacitación: Los empleados deben recibir capacitación sobre las mejores prácticas de seguridad y los
riesgos de seguridad asociados con la configuración de los sistemas.

Respaldos: Los datos deben respaldarse regularmente para evitar la pérdida de datos en caso de que se
produzca un ataque, un error humano o un fallo del sistema. Principalmente realizar respaldos antes de
realizar cambios en el sistema.

Detección

Mecanismos que se pueden implementar para detectar errores de configuración que pueden ser explotados
por los atacantes.

8 / 11
""

Monitoreo: Los sistemas deben monitorearse continuamente para detectar cambios en la configuración que
puedan ser explotados por los atacantes.

Análisis de logs: Los logs de los sistemas deben analizarse periódicamente para detectar errores de
configuración que puedan ser explotados por los atacantes.

Corrección

Mecanismos que se pueden implementar para corregir errores de configuración que pueden ser explotados
por los atacantes.

Corrección automática: Los sistemas deben tener la capacidad de corregir errores de configuración que
puedan ser explotados por los atacantes.

Soporte: Los empleados deben tener acceso a un soporte técnico para que puedan reportar errores de
configuración que puedan ser explotados por los atacantes.

Restauración de copias de seguridad: Los sistemas deben tener la capacidad de restaurar copias de
seguridad para corregir errores de configuración que puedan ser explotados por los atacantes.

9 / 11
""

Conclusiones
Mantener un personal bien capacitado y con conocimientos de seguridad es fundamental para evitar errores
de configuración que puedan ser explotados por los atacantes. Los empleados deben recibir capacitación
sobre las mejores prácticas de seguridad y los riesgos de seguridad asociados con la configuración de los
sistemas.

Los sistemas operativos y las aplicaciones deben mantenerse actualizados con las últimas versiones de
seguridad. Los parches de seguridad se publican regularmente para corregir errores de configuración que
pueden ser explotados por los atacantes.

Las contraseñas deben cumplir con ciertos requisitos de complejidad, como la longitud mínima, el uso de
caracteres especiales, etc. Las contraseñas deben ser cambiadas periódicamente.

Los usuarios deben tener los privilegios mínimos necesarios para realizar su trabajo. Los privilegios deben ser
revocados cuando ya no sean necesarios.

Los sistemas deben monitorearse continuamente para detectar cambios en la configuración que puedan ser
explotados por los atacantes.

Los logs de los sistemas deben analizarse periódicamente para detectar errores de configuración que puedan
ser explotados por los atacantes.

Todas estas medidas deben ser adoptadas por las organizaciones ya que la configuración incorrecta de la
seguridad resulta en un gran número de vulnerabilidades que los atacantes pueden explotar, lo que puede
resultar catastrófico ya que se pueden destruir sistemas enteros.

Finalmente, se puede concluir que los errores de configuración de seguridad son una de las principales causas
de ataques exitosos.

10 / 11
""

Referencias
OWASP Top 10 2021. (2021). Retrieved 10 10, 2021, from https://owasp.org/Top10/

Security Misconfiguration. (2021). Retrieved 10 10, 2021, from https://owasp.org/Top10/A05_2021-


Security_Misconfiguration/

11 / 11

También podría gustarte