Please enable JavaScript.
Coggle requires JavaScript to display documents.
Principios de Codificación Segura, Santiago Roa Alvarado 8A DGS 22292010 -…
Principios de Codificación Segura
Que es?
Son las directrices esenciales que deben seguirse durante el desarrollo de software para garantizar la creación de aplicaciones resistentes a ataques y vulnerabilidades.
Codificación segura
Es el acto de escribir código para aplicaciones con el objetivo de protegerlas contra la explotación de vulnerabilidades conocidas y desconocidas.
Principios generales
Validación Rigurosa de Entradas.
Gestión Segura de la Memoria.
Autenticación y Autorización Robustas.
Manejo Seguro de Errores y Excepciones.
Buenas practicas
Principio de Menor Privilegio: Otorgar a los usuarios y procesos solo los permisos necesarios para realizar sus funciones.
Defensa en Profundidad: Implementar múltiples capas de seguridad para proteger la aplicación.
Cifrado de Datos Sensibles: Utilizar técnicas de cifrado fuertes para proteger datos confidenciales.
Seguridad en Toda la Cadena de Suministro de Software: Asegurar que todos los componentes y dependencias del software sean seguros y estén actualizados.
Estándares
OWASP (Open Web Application Security Project)
CERT
ISO/IEC 27034
Herramientas y recursos
Herramientas de Análisis Estático y Dinámico (SAST/DAST): Utilizar herramientas para identificar vulnerabilidades en el código.
Entornos de Desarrollo Integrado (IDEs) con Soporte de Seguridad: IDEs que ofrecen análisis de código en tiempo real para detectar problemas de seguridad.
Implementación segura
Para hacer este código seguro, debemos evitar que el usuario inyecte SQL malicioso. Esto se hace usando consultas parametrizadas o preparadas, donde los parámetros de la entrada del usuario se envían por separado y no se ejecutan como parte de la consulta SQL
Detalles
Consulta Parametrizada: Evita que la entrada del usuario se interprete como parte del código SQL, protegiendo así contra inyecciones SQL.
Validación de Entrada: Aunque no se muestra en este ejemplo básico, es una buena práctica validar y/o sanitizar las entradas del usuario para asegurarse de que cumplen con un formato esperado.
Separación entre Código y Datos: Las consultas parametrizadas mantienen una clara separación entre el código (consulta SQL) y los datos (entrada del usuario), lo cual es una práctica esencial en la codificación segura.
Validación Rigurosa de Entradas
Validación de Entradas: Es el proceso de verificar si una entrada cumple con un conjunto específico de criterios antes de utilizarla en el software.
Limpieza y Sanitización: Implica modificar o preparar la entrada para asegurar que esté libre de cualquier elemento que pueda causar un comportamiento no deseado o peligroso en la aplicación.
Principios
Validación del Lado del Servidor: Siempre validar las entradas en el lado delservidor, incluso si ya se ha realizado validación en el cliente.
Restricción de Tipo de Datos: Asegurar que la entrada sea del tipo de dato esperado (numérico, alfanumérico, texto, etc.).
Longitud y Rango: Comprobar la longitud de las entradas para asegurarse de que se encuentren dentro de los límites esperados.
Formato y Patrones: Utilizar expresiones regulares u otros métodos para verificar que la entrada cumpla con un formato específico (por ejemplo, direcciones de correo electrónico, números de teléfono, etc.).
Listas Blancas sobre Listas Negras: Preferir validar en función de lo que se permite (lista blanca), en lugar de lo que no se permite (lista negara).
Santiago Roa Alvarado 8A DGS 22292010