¿Qué es la codificación segura?
La codificación segura busca evitar defectos de codificación fácilmente prevenibles que crean riesgos de seguridad. La investigación sobre la vulnerabilidad del software muestra que una gran cantidad de exploits están enraizados en un pequeño grupo de errores de programación comunes. Los analistas publican información sobre estos errores para sensibilizar a los codificadores sobre el problema y alentarlos a usar una mejor seguridad en el diseño e implementación de software. Se han desarrollado protocolos específicos para algunos lenguajes de programación, como Java ™, para proporcionar orientación a los programadores y ayudarlos a evitar dificultades comunes.
En este proceso, los codificadores usan estándares y prácticas que eliminan los problemas de seguridad comunes. Pueden surgir problemas con el código por una variedad de razones, que incluyen un control deficiente de los permisos y protocolos de almacenamiento en búfer. Es posible que no se identifiquen durante el desarrollo o las pruebas, pero pueden hacerse evidentes después del lanzamiento. Los piratas informáticos que buscan exploits pueden dirigirse específicamente a puntos débiles comunes en el software y pueden encontrarlos probando los límites, lo que les permite desarrollar ataques dirigidos. La codificación segura puede eliminar estos exploits fáciles.
Los protocolos utilizados en la codificación segura crean un enfoque defensivo para el desarrollo de software. A medida que las personas implementan características para proporcionar funcionalidad y satisfacer las necesidades de los clientes, también cierran las lagunas que puedan surgir durante el proceso de diseño. La codificación segura puede ser un problema particular con el código diseñado para su uso en línea, donde los usuarios pueden tener configuraciones laxas en sus navegadores, suponiendo que el código que se origina en un sitio conocido es confiable. Si el código de un sitio es vulnerable a la piratería, podría ser secuestrado, plantando código malicioso en las computadoras y dispositivos móviles de los visitantes.
Los desarrolladores de software logran un equilibrio entre funcionalidad y seguridad. Algunas medidas de seguridad harían que los programas fueran extremadamente difíciles de usar y podrían plantear barreras para el uso completo. Sin embargo, permitir que las personas utilicen programas sin ningún tipo de seguridad podría exponerlos al peligro. También podría ser una amenaza para las redes informáticas en su conjunto; un usuario con una computadora infectada en una red universitaria, por ejemplo, puede causar problemas a muchos otros usuarios, incluidos los laboratorios sensibles que pueden estar conectados a la red para acceder.
Los programadores individuales pueden usar una variedad de tácticas en la codificación segura, además de los siguientes protocolos establecidos para lenguajes de programación específicos. Estos pueden incluir consistencia y claridad en la codificación para limitar la confusión y hacer posible que otros programadores trabajen en el mismo código. En los esfuerzos de colaboración, los intentos de desenredar otro código pueden crear problemas que presenten problemas de seguridad.