2

Técnicas de Desarrollo Seguro

Cuando se desarrolla una aplicación, además de que esta cumpla los requisitos esperados sobre ella, también tiene que ser segura. A continuación, mencionare diez técnicas que se deben realizar siempre que se desarrolle una aplicación.

  • Validar entrada: se tienen que validar los datos que va a aceptar nuestro programa y filtrarlos de las fuentes que no sean fiables. Una validación en la entrada de los datos puede eliminar muchísimos problemas que tenga nuestro programa, evitando así que una vulnerabilidad se explotada por este mecanismo.

  • Prestar atención a las advertencias que muestra el compilador: siempre que se pueda, la compilación de código debe realizarse con el nivel superior de aletas de compilación.

  • Crear una arquitectura y diseño para las políticas de seguridad: implementar un diseño para que cumpla unas medidas de seguridad. Por ejemplo, su un sistema requiere ciertos privilegios en algún momento, se considera dividir el sistema en subsistemas distintos intercomunicados, cada uno de ellos con u cierto nivel de privilegios.

  • Sencillez: realizar un diseño simple y tan pequeño como sea posible. Un diseño complejo aumenta la probabilidad de que se produzca errores en la ejecución. Además, el esfuerzo para lograr un nivel adecuado de fiabilidad se incrementa dramáticamente cuando los mecanismos de seguridad se hacen complejos.

  • Por defecto denegar: de forma predeterminada, se deniega el acceso bajo algunas condiciones.

  • Respetar el principio de mínimo privilegio: cada proceso debe ejecutarse con el conjunto mínimo de privilegios necesarios para completar su trabajo. Cualquier elevación de permisos se debe realizar en el menor tiempo posible. Esto reduce las posibilidades de ejecutar código arbitrario.

  • Sanear los datos enviados a otros sistemas: se deben sanear los datos enviado a subsistemas complejos como pueden ser los interpretes de comandos, base de datos relacionales. Los atacantes pueden ser capaces de invocar una funcionalidad en estos componentes mediante el uso de SQL, comandos y otros ataques de inyección.

  • Mejorar la profundidad de la defensa: se debe gestionar la seguridad por medio de capas de defensa. Así si una capa de defensa ha sido comprometida, otra capa de defensa puede evitar que se produzca un fallo de seguridad, evitando así que produzca una vulnerabilidad.

  • Utilización de técnicas que garanticen la calidad: la utilización de las técnicas que garanticen la calidad puede identificar y eliminar vulnerabilidades. Pruebas de penetración, para auditar el código fuente, pueden ser incorporadas como una parte eficiente para garantizar la calidad de un programa.

  • Adoptar un estándar de codificación segura: desarrollar y aplicar una forma de codificación segura para el desarrollo del lenguaje.

app-img.png
Escribe tu comentario
+ 2