{"id":1748,"date":"2015-03-06T10:24:42","date_gmt":"2015-03-06T08:24:42","guid":{"rendered":"https:\/\/inlab.fib.upc.edu\/?p=1748"},"modified":"2015-03-06T10:24:42","modified_gmt":"2015-03-06T08:24:42","slug":"s2d2-software-security-driven-development","status":"publish","type":"post","link":"https:\/\/inlab.fib.upc.edu\/es\/uncategorized-ca\/s2d2-software-security-driven-development","title":{"rendered":"S2D2: Software Security Driven Development"},"content":{"rendered":"<p>El creciente n&uacute;mero de datos alojados &nbsp;en el mundo digital provoca la necesidad de disponer de una metodolog&iacute;a para gestionar la seguridad que se pueda aplicar en los diferentes proyectos relacionados con el desarrollo de software, donde a la postre se alojar&aacute; o por donde circular&aacute; uno de los activos m&aacute;s importantes: l<strong>a informaci&oacute;n<\/strong>.<\/p>\n<p><!--more--><\/p>\n<p>El creciente n&uacute;mero de datos alojados &nbsp;en el mundo digital provoca la necesidad de disponer de una metodolog&iacute;a para gestionar la seguridad que se pueda aplicar en los diferentes proyectos relacionados con el desarrollo de software, donde a la postre se alojar&aacute; o por donde circular&aacute; uno de los activos m&aacute;s importantes: l<strong>a informaci&oacute;n<\/strong>.<\/p>\n<p>Si bien en los &uacute;ltimos a&ntilde;os se han desarrollado &nbsp;buenas pr&aacute;cticas para fases concretas de desarrollo &nbsp;y ciertos lenguajes de programaci&oacute;n, <strong>no existe en la actualidad ninguna metodolog&iacute;a que cubra por completo la seguridad sobre todas las fases del desarrollo de aplicaciones<\/strong>.<\/p>\n<p><strong>Un equipo de inLab<\/strong> ha analizado el estado del arte a este respecto y ha <strong>generado una metodolog&iacute;a&nbsp;para evitar la aparici&oacute;n de vulnerabilidades durante el desarrollo de un producto y facilitar su posterior auditor&iacute;a<\/strong>.<\/p>\n<p>Se ha creado&nbsp;una herramienta con el fin de facilitar la aplicaci&oacute;n de la metodolog&iacute;a creada a los responsables de proyecto. Igualmente se ha &nbsp;probado el &nbsp;procedimiento creado en varios proyectos realizados por nuestro personal.<\/p>\n<p>&nbsp;<\/p>\n<h2>Uso de la metodolog&iacute;a<\/h2>\n<p>Para facilitar la gesti&oacute;n de la metodolog&iacute;a se han creado tareas que permiten verificar si un control se cumple. Igualmente los controles se han agrupado seg&uacute;n la fase del desarrollo en que se deben analizar.<\/p>\n<p>La metodolog&iacute;a parte del &nbsp;estudio de las diferentes propuestas al respecto publicadas hasta el momento y ha sido complementada con la experiencia de expertos en seguridad y en desarrollo.<\/p>\n<p class=\"rtecenter\">&nbsp;<\/p>\n<p class=\"rtecenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\" size-full wp-image-1742\" alt=\"\" height=\"212\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/03\/s2d21.jpg\" width=\"540\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/03\/s2d21.jpg 707w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/03\/s2d21-300x118.jpg 300w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/03\/s2d21-370x145.jpg 370w\" sizes=\"(max-width: 540px) 100vw, 540px\" \/><\/p>\n<p>Las diferentes fases en que se estructura la metodolog&iacute;a &nbsp;parten del ciclo de vida del desarrollo seg&uacute;n ISACA, la podemos usar para todas las fases en las que se dicide un proyecto de desarrollo de software:<\/p>\n<ul>\n<li><strong>An&aacute;lisis de requisitos y viabilidad<\/strong>. En esta fase del proyecto se establecen cuales son los objetivos del proyecto y se forma el equipo de trabajo que lo llevar&aacute; a cabo.<\/li>\n<li><strong>Infraestructura y comunicaciones<\/strong>. Una vez realizado el an&aacute;lisis se pone en marcha el conjunto de equipos inform&aacute;ticos que se utilizar&aacute;n durante el desarrollo y puesta en marcha del proyecto. Esto incluye el equipo que utilizar&aacute; cada miembro del equipo durante el desarrollo, los servidores y equipos de red que puedan ser necesarios para dar servicio a los miembros del equipo de trabajo y el equipamiento en que se ejecutar&aacute;n las versiones en desarrollo del proyecto y las versiones a ser utilizadas por el cliente.<\/li>\n<li><strong>Metodolog&iacute;as de desarrollo<\/strong>. La metodolog&iacute;a de desarrollo consiste en la forma en que el equipo de trabajo se organizar&aacute; para repartir las diferentes tareas y establecer la prioridad con la que se ir&aacute;n completando de acuerdo a las necesidades del cliente.<\/li>\n<li><strong>Implementaci&oacute;n<\/strong>. Durante la implementaci&oacute;n &nbsp;se lleva a cabo el trabajo necesario para cumplir los objetivos del proyecto, en el caso de proyectos de software suele consistir en el desarrollo de una o m&aacute;s aplicaciones.<\/li>\n<li><strong>Auditoria<\/strong>. Una vez desarrollado el producto &nbsp;se debe comprobar &nbsp;que el trabajo realizado cumple de manera efectiva con todos los requisitos de comportamiento y calidad establecidos.<\/li>\n<li><strong>Despliegue<\/strong>. En esta fase del proyecto se pone a disposici&oacute;n del cliente el trabajo realizado, en algunos casos puede significar hacer entrega del trabajo llevado a cabo, mientras que en otros puede suponer desplegar el proyecto en un servidor donde el cliente se dispondr&aacute; a utilizar el proyecto para sus necesidades.<\/li>\n<li><strong>Monitorizaci&oacute;n<\/strong>. Esta fase del proyecto consiste en controlar que &nbsp;funciona tal y como estaba previsto y detectar problemas que puedan surgir debido tanto a acciones externas como a problemas del proyecto que hayan pasado inadvertidos hasta el momento.<\/li>\n<li><strong>Mantenimiento<\/strong>. En esta fase del proyecto se llevan a cabo peque&ntilde;as modificaciones que puedan ser necesarias debido a fallos que se hayan detectado como a cambios en las condiciones en que el proyecto debe trabajar. En el caso de ser necesario realizar modificaciones de mayor envergadura ser&iacute;a necesario iniciar un nuevo proyecto con el objetivo de llevarlas a cabo.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>Dificultades encontradas a la hora de desarrollar la metodolog&iacute;a<\/h2>\n<p><span style=\"line-height: 1.6em;\">La primera dificultad&nbsp;<\/span><strong style=\"line-height: 1.6em;\">&nbsp;ha sido crear controles de la metodolog&iacute;a<\/strong><span style=\"line-height: 1.6em;\">, cuyo objetivo es protegerse de un ataque, a partir de los controles ofrecidos por metodolog&iacute;as cuyo objetivo es el opuesto (OSSTTMM o OWASP), es decir, lograr vulnerar la seguridad de un software.<\/span><\/p>\n<p>La <strong>segunda dificultad fue llevar a cabo la fusi&oacute;n de los controles y sus tareas asociadas<\/strong> obtenidos de las diferentes fuentes de informaci&oacute;n. Esto se debe a que no toda la nomenclatura utilizada es la misma en las fuentes consultadas y obliga a tener cuidado a la hora de unir m&uacute;ltiples controles.<\/p>\n<p class=\"rtecenter\">&nbsp;<\/p>\n<p class=\"rtecenter\"><img decoding=\"async\" class=\" size-full wp-image-1745\" alt=\"\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/03\/s2d2_2.jpg\" style=\"width: 365px; height: 600px;\" width=\"365\" height=\"600\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/03\/s2d2_2.jpg 365w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2015\/03\/s2d2_2-183x300.jpg 183w\" sizes=\"(max-width: 365px) 100vw, 365px\" \/><\/p>\n<p>La<strong> tercera dificultad ha sido el volumen de controles y tareas obtenido<\/strong>. Con el fin de facilitar la aplicaci&oacute;n de los controles y su adaptaci&oacute;n a diferentes proyectos ha sido necesario desarrollar un software espec&iacute;fico. Este software permite la edici&oacute;n de la metodolog&iacute;a para su posterior aplicaci&oacute;n en un proyecto.<\/p>\n<p>El desarrollo de la herramienta S2D2 no ha estado exento de dificultades al ser necesario crear una interfaz de usuario capaz de adaptarse a la estructura cambiante del modelo de datos. Esto ha obligado a emplear capas de abstracci&oacute;n, en forma de Interface en Java, que en caso de no existir una interfaz gr&aacute;fica habr&iacute;an sido innecesarias.<\/p>\n<p>&nbsp;<\/p>\n<h2>Futuro de la metodolog&iacute;a<\/h2>\n<p>Tanto la metodolog&iacute;a como la herramienta ser&aacute;n implantadas en el &aacute;mbito de la Universitat Polit&egrave;cnica de Catalunya durante el a&ntilde;o 2015 con el fin de minimizar los riesgos de las aplicaciones desarrolladas en los pr&oacute;ximos a&ntilde;os en el &aacute;mbito acad&eacute;mico.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El creciente n&uacute;mero de datos alojados &nbsp;en el mundo digital provoca la necesidad de disponer de una metodolog&iacute;a para gestionar la seguridad que se pueda aplicar en los diferentes proyectos relacionados con el desarrollo de software, donde a la postre se alojar&aacute; o por donde circular&aacute; uno de los activos m&aacute;s importantes: la informaci&oacute;n.<\/p>\n","protected":false},"author":594,"featured_media":1739,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"experteses":[21],"class_list":["post-1748","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized-ca","experteses-ciberseguridad-es"],"acf":[],"_links":{"self":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/1748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/users\/594"}],"replies":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/comments?post=1748"}],"version-history":[{"count":0,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/1748\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media\/1739"}],"wp:attachment":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media?parent=1748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/categories?post=1748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/tags?post=1748"},{"taxonomy":"experteses","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/experteses?post=1748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}