Descripción: Fue posible leer páginas web protegidas, utilizando combinaciones comunes de inicio de sesión y contraseña (Aquellas que los usuarios suelen utilizar por ser fáciles de recordar).
Nombres de usuario y contraseñas obvios:
admin/admin
user/password
nombredeusuario/123456
Secuencias de teclado:
qwerty
asdfghjkl
Fechas de nacimiento:
01011990
Palabras comunes en el diccionario:
password
casa
amor
Combinaciones simples de números:
123456
111111
1234567890
Factor de Riesgo: Alto
Valor CVSS Base: 7.5
Solución:
La mitigación de vulnerabilidades relacionadas con credenciales comunes a nivel de código implica una combinación de prácticas de desarrollo seguro y herramientas especializadas. A continuación, se detallan algunas de las técnicas más importantes.
Configurar las páginas web afectadas para utilizar una contraseña seguras y/o utilizar contraseñas
En la vulnerabilidad de credenciales comunes, los atacantes utilizan combinaciones de usuario y contraseña fácilmente adivinables para acceder a los activos afectados por lo que es una de las amenazas más comunes; por lo tanto se sugiere tener las siguientes políticas:
- Implementar políticas que obliguen a los usuarios a crear contraseñas que incluyan una combinación de mayúsculas, minúsculas, números y caracteres especiales (Contraseñas fuertes).
- Crea lista de contraseñas prohibidas que incluya las combinaciones más comunes y palabras de diccionario (Prohibir contraseñas comunes)
- Forzar cambios periódicos de contraseña, pero evite intervalos demasiado cortos que puedan frustrar a los usuarios y llevarlos a utilizar contraseñas débiles y fáciles de recordación.
- Implemente políticas de bloqueo de cuentas después de un número determinado de intentos de inicio de sesión fallidos.
- Con el fin de añadir una capa adicional de seguridad, se recomienda implementar un MFA, para requerir a los usuarios que proporcionen una segunda forma de verificación, como un código enviado a su teléfono móvil o un token de seguridad.
- Campaña de concientización a los usuarios sobre los riesgos de reutilizar contraseñas y promueve el uso de contraseñas únicas para cada cuenta.
- Implementar un mecanismo que bloquee las cuentas después de un número determinado de intentos de inicio de sesión fallidos.
Este es un ejemplo en PHP para utilizar la librería password_hash:
<?php
// Al almacenar la contraseña:
$password = password_hash("mypassword", PASSWORD_DEFAULT);
// Al verificar la contraseña:
if (password_verify($_POST['password'], $hashed_password)) {
// Contraseña correcta
} else {
// Contraseña incorrecta }
El hashing de contraseñas es una técnica para proteger la información de los usuarios. Al almacenar hashes en lugar de contraseñas en texto plano, se reduce significativamente el riesgo de que las contraseñas sean comprometidas en caso de una violación de seguridad.
El siguiente es un ejemplo de cómo activar la autenticación básica en la Consola Web de ActiveMQ; a partir de ActiveMQ Classic 5.4.0, la Consola Web viene preconfigurada con una configuración básica de autenticación de acceso. Está desactivada de forma predeterminada, por lo que es necesario activarla. Vaya a ${ACTIVEMQ_HOME}/conf/jetty.xml y busque la siguiente línea
<property name="authenticate" value="false" />
y cambiarlo a
<property name="authenticate" value="true" />
Posterior a este cambio el servidor web examinará el archivo ${ACTIVEMQ_HOME}/conf/jetty-realm.properties intentando hacer coincidir las credenciales proporcionadas con las que figuran en el archivo. De forma predeterminada, puede acceder a la consola web con credenciales de admin/admin. Eso se puede cambiar (y se pueden agregar más usuarios) en el archivo jetty-realm.properties; es posible agregar mas usuarios en el archivo jetty-realm.properties.
Para proteger el acceso a la consola web y otros recursos web del corredor, es posible que desee habilitar el conector SSL. Para hacer eso, vaya a ${ACTIVEMQ_HOME}/conf/jetty.xml y verifique tener el conector seguro habilitado. En las versiones 5.7 y posteriores, descomente una configuración predefinida. Verifique que la configuración de los conectores sea similar a esta:
<property name="connectors">
<list>
<bean id="Connector" class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<property name="port" value="8161" />
</bean>
<bean id="SecureConnector" class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
<property name="port" value="8162" />
<property name="keystore" value="file:${activemq.conf}/broker.ks" />
<property name="password" value="password" />
</bean>
</list>
</property>
En este ejemplo el conector estándar se deja habilitado, pero puede eliminarlo en su configuración si lo desea; tenga en cuenta que estos cambios afectarán a todo el servidor web, por lo que si utiliza la API REST o el servidor de archivos blob, asegúrese de proporcionar las credenciales adecuadas.
Referencias:
https://www.tenable.com/
https://activemq.apache.org/
