Esa es una pregunta bastante simple con una respuesta simple y no falsa. La seguridad encaja en todo el ciclo de vida del desarrollo.
Desde el principio, debe diseñar un sistema teniendo en cuenta la seguridad. Su diseño debe incluir algún tipo de diagrama de flujo de datos, y debe evaluar qué activos está tratando de proteger, dónde esos activos cruzan los límites de confianza, cuáles son las amenazas en esos límites y qué puede hacer para mitigar la amenaza. Busque en el modelado de amenazas para obtener más información aquí.
En el momento del desarrollo, debe establecer las mejores prácticas para su dominio. Si está desarrollando código C y C ++, la mayoría de los compiladores tendrán opciones para verificar si hay desbordamientos de búfer, llamadas de tiempo de ejecución inseguras, uso después de liberar y otros errores de codificación comúnmente explotados. Si está desarrollando una interfaz de base de datos, querrá adoptar prácticas que eviten los ataques de inyección SQL. Otros dominios tienen sus propias clases de vulnerabilidades; deberás averiguar qué amenazas viven en tu espacio.
- ¿Por qué hay tantos desarrolladores de software de la India?
- ¿Puede escuchar audiolibros mientras programa?
- Cómo calcular salarios y precios al iniciar una empresa de desarrollo de software
- ¿Prefieres hacer una programación competitiva (o) trabajar en tus propios proyectos (o) tomar algunos buenos cursos en Coursera para mejorar tus habilidades de codificación? ¿Por qué?
- ¿Qué ciudad o estado es el mejor para conseguir un trabajo como desarrollador de software en Canadá? ¿Cuál será el paquete promedio para una persona con 6 años de experiencia?
Sus pruebas deben incluir casos que ejerciten todas las formas de entradas no válidas. Fuzzing es una técnica que los atacantes usan para encontrar vulnerabilidades. Investigue las herramientas de prueba de fuzz para su dominio; tus enemigos seguramente lo han hecho.
Y, por supuesto, después de la implementación, debe tener un plan de respuesta cuando surgen problemas de seguridad.
La seguridad es un tema bastante complejo y requiere mucho cuidado y atención durante todo el proceso de desarrollo. Los ejemplos que doy arriba no son ni siquiera completos. Si esto es algo que planea tomarse en serio en su producto (lo que debería hacer), recibir unos días o semanas de consulta de un experto en seguridad sería un dinero bien gastado.