Descripción :
El software no realiza comprobaciones de control de acceso de una manera coherente a través de todos los posibles caminos de ejecución.
Cuando el control de acceso no se aplican constantemente, los usuarios pueden acceder a los datos o realizar acciones que no se deben llevar a cabo.
Problemas: fugas de información, negación de servicio y ejecución de código arbitrario.
Consecuencias:
Disponibilidad
Confidencialidad
Integridad
Si permitimos el acceso a usuarios no autorizados, da lugar a un atacante para acceder a los recursos sensibles, modificar o eliminar los mismos, es decir, realizar acciones no autorizadas.
Riesgo de Explotar (aprovechar)- Alto
EJEMPLO: Registra usuarios nuevos en una base de datos.
<% server.createObject("ADODB.Connection") con.open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & server.MapPath("bd.mdb")
set rs = server.CreateObject("ADODB.Recordset") if request.form("txtnombre") = "" then response.write("
else sql = "Select * From Tabla1 Where (Nombre like'" & request.form("txtnombre") & "')" rs.open sql,con,1,2
if rs.eof and rs.bof then response.write("
else if request.form("txtpass") = "" then response.write("
else rs.close sql = "Select * From Tabla1 Where (Password like'" & request.form("txtpass") & "')" rs.open sql,con,1,2 if rs.eof and rs.bof then response.write("
else response.write("
EJEMPLO 2: Crear un archivo de contraseñas
htpasswd -c /usr/local/apache/passwd/passwords rbowen
htpasswd le pedirá la contraseña, y luego se la volverá a pedir para confirmarla:
# htpasswd -c /usr/local/apache/passwd/passwords rbowenNew password: mypasswordRe-type new password: mypasswordAdding password for user rbowen
Configuramos el servidor para que solicite una contraseña y decirle al servidor a qué usuarios se les permite el acceso.
Editamos el archivo httpd.conf o usando un archivo .htaccess.
Para proteger el directorio: /usr/local/apache/htdocs/secret
/usr/local/apache/htdocs/secret/.htaccess
httpd.conf dentro de una sección
AuthType BasicAuthName "Restricted Files"AuthUserFile /usr/local/apache/passwd/passwordsRequire user rbowen
RECOMENDACIONES
Dividir la responsabilidad en áreas administrativas.
Reducir la superficie de ataque con funciones de mapeo de datos y funcionalidad.
Utilizar el control de acceso basado en (RBAC) para hacer cumplir las funciones en las fronteras
Para aplicaciones web, el mecanismo de control de acceso se aplica en cada página. Restringiendo el acceso a solicitudes y sesiones.
Utilizar herramientas y técnicas que requieran un análisis manual. Estas pueden ser más eficaces que técnicas automatizadas.
Utilizar el control de acceso a las capacidades del sistema operativo y del medio ambiente.
Definir listas de control de acceso.
CWE-327 Uso de un algoritmo criptográfico
Descripción
Es un riesgo no usar un algoritmo criptográfico, esto puede dar lugar a la revelación de información sensible.
El uso de un algoritmo no estándar es peligroso, porque un atacante puede ser capaz de romper el algoritmo.
Hay técnicas conocidas para romper el algoritmo.
Consecuencias
Confidencialidad
Integridad
Rendición de cuentas Responsabilidad para el contenido de los mensajes en criptografía puede ser objeto de un ataque.
Riesgo de Explotar - Medio a Alto
Ejemplo
Estándar para el cifrado de datos (DES). El algoritmo DES es sustituido por AES (Advanced Encryption Standard) .
DES:
Usa criptografía simétrica
Red de Feistel
Se basa el procesamiento de información en algoritmos matemáticos
Basa su seguridad ocultando la técnica
AES:
Usa criptografía simétrica
Red de sustitución-permutación
Rápido en software como en hardware
Fácil de implementar, y requiere poca memoria
Permite un mayor rango de tamaño de bloques y longitud de la clave
Ejemplo C / C + + :
EVP_des_ecb();
Ejemplo Java:
Cipher des=Cipher.getInstance("DES...");
des.initEncrypt(key2);
Ejemplos
Configuración por defecto del producto utiliza MD5 en lugar de los algoritmos más fuertes. Esto da lugar a la falsificación de certificados. (CVE-2005-2946 )
Productos que sólo utilizan "XOR" para ofuscar los datos sensibles. (CVE-2007-4150 )
Productos que utilizan hash para la autenticación, esto permite a un atacante obtener privilegios. (CVE-2007-6013 )
RECOMENDACIONES
No desarrollar su propio algoritmo criptográfico. Es probable estar expuestos a los ataques de quienes comprenden los algoritmos criptógrafos.
Técnicas de ingeniería inversa . El algoritmo puede verse comprometido, si los atacantes averiguan cómo funciona, entonces es especialmente débil.
El código fuente debe estar disponible para el análisis (con todos los mecanismos de cifrado).
Revisar periódicamente que no se esté utilizando la criptografía obsoleta.
Administrar y proteger cuidadosamente las claves criptográficas. Si las teclas se pueden adivinar, la criptografía es irrelevante.
Utilizar herramientas y técnicas que requieran un análisis manual.
No hay comentarios:
Publicar un comentario