Page 24

Boletín de observación tecnológica en Defensa 49

en profundidad Fig. 3. Gravedad de las vulnerabilidades OSVDB en 10 años. (Fuente: Referencia 3). nes públicas o privadas dispongan de software fiable y resistente a los ata-ques, es decir de confianza, con un mínimo número de vulnerabilidades explotables. Concepto de seguridad del software Como respuesta a la problemática expuesta anteriormente surge el con-cepto de Seguridad del Software, que en el documento de referencia 4 de SAFECode se define como: «La con-fianza de que el software, hardware y servicios estén libres de vulnerabilida-des intencionadas o no intencionadas y que, por lo tanto, funcionen confor-me a lo especificado y deseado». El Departamento de Defensa de los Estados Unidos (DoD) 7 lo define como «El nivel de confianza de que el software funciona según lo previsto y está libre de vulnerabilidades, ya sea intencionada o no, diseñada o inser-tada en el marco del software». En definitiva, sobre la base de las definiciones anteriores y los antece-dentes señalados, se puede definir la seguridad del software como: El con-junto de principios de diseño y bue-nas prácticas a implantar en el SDLC (System Design Life Cycle), para de-tectar, prevenir y corregir los defectos de seguridad en el desarrollo y adqui-sición de aplicaciones, de forma que se obtenga software de confianza y robusto frente ataques maliciosos, que realice solo las funciones para las que fue diseñado, que esté libre de vulnerabilidades, ya sean intencional-mente diseñadas o accidentalmente insertadas durante su ciclo de vida y se asegure su integridad, disponibili-dad y confidencialidad. Hasta principios de la década anterior, la mayoría de las aplicaciones se desa-rrollaban sin tener en cuenta requisitos y pruebas de seguridad específicos. Los desarrolladores de software no eran conscientes de las vulnerabilida-des que se pueden crear al programar y descuidaban los aspectos de segu-ridad, dando prioridad al cumplimiento de las especificaciones funcionales, sin tener en cuenta casos en los que el software fuera maliciosamente ata-cado. Este proceso de desarrollo de software ofrece, aparte de los errores no intencionados producidos al codi-ficar anteriormente referidos, oportuni-dades de insertar código malicioso en el software en origen. Como se ha comentado anteriormen-te las tecnologías de seguridad en la red pueden ayudar a aliviar los ata-ques, pero no resuelven el problema de la seguridad real, ya que una vez que el ciberatacante consigue vencer esas defensas, por ingeniería social por ejemplo, y comprometer una má-quina del interior, a través de la misma podrá atacar a otras de la misma red («pivoting») empezando por las más vulnerables. Éste es el caso de las Amenazas Avanzadas Persistentes (APT) uno de los ciberataques más peligrosos y dañinos hoy en día. Se hace necesario, por tanto, disponer de software seguro que funcione en un entorno agresivo y malicioso. Un aspecto importante de la segu-ridad del software es la confianza y garantía de funcionamiento conforme a su especificación y diseño y que es lo suficientemente robusto para repeler las amenazas que puedan comprometer su funcionamiento es-perado en su entorno de operación. Para conseguir lo anterior y minimizar al máximo los ataques en la capa de aplicación y, por tanto, el número de vulnerabilidades explotables, es ne-cesario incluir la seguridad desde el inicio del ciclo de vida de desarrollo del software (SDLC). En este sentido es importante el aprovechamiento de las buenas prácticas de ingeniería de software ya existentes. El desarrollo de software seguro y confiable requiere la adopción de un proceso sistemático o disciplina que aborde la seguridad en cada una de las fases de su ciclo de vida e inte-gre actividades de seguridad como el seguimiento de unos principios de diseño seguro (mínimo privile-gio, etc.) y la inclusión de una serie de buenas prácticas de seguridad (especificación requisitos seguridad, casos de abuso, análisis de riesgo, análisis de código, pruebas de pe-netración dinámicas, etc.). A este nuevo ciclo de vida con prácticas de seguridad incluidas se le denominará Secure - Software Development Life Cycle (S-SDLC). Un beneficio importante que se ob-tendría de incluir un proceso sistemá-tico que aborde la seguridad desde las etapas tempranas del SDLC, sería 24 Boletín de Observación Tecnológica en Defensa n.º 49. Primer trimestre 2016


Boletín de observación tecnológica en Defensa 49
To see the actual publication please follow the link above