Es habitual que los clientes de software reciban parches con actualizaciones con parches para subsanar algún bug de los programas que ya tiene instalados en su ordenador.
INFORMARSE:
Una buena forma de evitar fallos...
Nota:
es estudiar y comprender los errores que otros hayan cometido a la hora de desarrollar el software.
Internet es...
Nota:
el hogar de una gran variedad de foros públicos donde se debaten con frecuencia problemas de vulnarabilidad de software.
Leer libros ...
Nota:
y artículos sobre prácticas de codificación segura
Explorar ...
Nota:
el software de código abierto, hay cantidad de ejemplos de cómo llevar a cabo deiversasaciones
PRECAUCIÓN EN EL MANEJO DE DATOS
Nota:
La mayoría de programas acptan datos que pueden ser adquiridos desde múltiples fuentes de entrada, se debe verificar cada pieza¡
Limpiar datos
Nota:
Es el proceso de examen de los datos de entrada. Por ejemplo alteración de del juego de carácteres, uso de caracteres no permitidos, desbordamiento de bufer de datos.
Realizar la comprobación de límites
Nota:
Hemos de verificar que los datos que le estamos pasando no desbordan el bufer. Revisar indices de arrays y garantizar que estos están dentro de sus límites.
Revisar ficheros de configuración
Nota:
Necesario revisar los datos como, si se tratase de una entrada de datos por teclado, ya que pueden ser manipulados por un atacante.
Comprobar los parámetros de la línea de comandos.
No fiarse de las URLs web.
Nota:
El usuario puede alterar directamente la URL dentro de su navegador.
Comprobar cookies web
Nota:
Los valores pueden ser modificados por el usuario final y no se debe confiar en ellas
Comprender las referencias de nombre del fichero
Especial atención al almacenamiento de información
Nota:
Es vital importancia proteger la información considerada confidencial.
Reutilización de código bueno siempre que sea posible
Insistir en la revisión de los procesos
Realzar un revisión por partes
Nota:
Recomendable el desarrollo de un lista de cosas que buscar, ha de ser revisada y mantenida.
Realizar una validación y verificación independiente
Nota:
Revisar el código fuente (en proyectos más formales) línea por línea, para garantizar que se ajusta al diseño.
Identificar y utilizar las herramientas de seguridad disponibles
Utilizar listas de control de seguridad
Nota:
Estas listas pueden ser muy útiles para asegurar de que han cubierto todas las fases durante la ejecución
Este sistema de aplicación requiere de un contraseña
Todos los inicios de sesión de usuario son únicos
Esta aplicación utiliza el sistema de control de acceso a datos basado en roles
Las contraseñas no se transmiten a través de la red e texto plano
Cifrado para proteger los datos
Sé amable con los mantenedores
Utilizar normas
Retirar código obsoleto
Análizar todos los cambios de código
Las cosas que NO se deben hacer a la hora de programar
Escribir código que útiliza nombres de fichero relativos
Referirse dos veces en el mismo programa a un fichero por su nombre
Invocar programas no confiables dentro de los programas
Asumir que los no son maliciosos
Dar por sentado el exito
Invocar un shell o una linea de comandos
Autenticarse en criterios que no sean de confianza
Utilizar áreas de almacenamiento con permisos de escritura
Guardar datos confidenciales en una base de datos sin protección ni contraseña
Hacer eco en las contraseñas o mostrarlas en la pantalla del usuario
Emitir contraseñas vía e-mail
Distribuir mediante programación información confidencial a traves de correo electrónico
Guardar contraseñas sin cifrar
Transmitir entre los sistemas sin encriptar
Tomar decisiones de acceso basadas en variebles de entorno o parámetros de línea de comandos
Evitar en la medida de lo posible, confiar en software o los servicios de terceros para operaciones críticas