S2D2: Software Security Driven Development

S2D2: Software Security Driven Development
S2D2: Software Security Driven Development

El creixent nombre de dades allotjades en el món digital provoca la necessitat de disposar d'una metodologia per gestionar la seguretat que es pugui aplicar en els diferents projectes relacionats amb el desenvolupament de programari, on s'allotjarà o circularà un dels actius més importants: la informació.

El creixent nombre de dades allotjats en el món digital provoca la necessitat de disposar d'una metodologia per gestionar la seguretat que es pugui aplicar en els diferents projectes relacionats amb el desenvolupament de programari, on s'allotjarà o circularà un dels actius més importants: la informació.

Si bé en els últims anys s'han desenvolupat bones pràctiques per fases concretes de desenvolupament i certs llenguatges de programació, no existeix en l'actualitat cap metodologia que cobreixi completament la seguretat sobre totes les fases del desenvolupament d'aplicacions.

Un equip de inLab ha analitzat l'estat, i ha generat una metodologia per evitar l'aparició de vulnerabilitats durant el desenvolupament d'un producte i facilitar la seva posterior auditoria.

S'ha creat una eina per tal de facilitar l'aplicació de la metodologia creada als responsables de projecte. Igualment s'ha provat el procediment creat en diversos projectes realitzats pel nostre personal.

Ús de la metodologia

Per facilitar la gestió de la metodologia s'han creat tasques que permeten verificar si un control es compleix. Igualment els controls s'han agrupat segons la fase del desenvolupament en què s'han d'analitzar.

La metodologia parteix de l'estudi de les diferents propostes al respecte publicades fins al moment i ha estat complementada amb l'experiència d'experts en seguretat i en desenvolupament.

Les diferents fases en què s'estructura la metodologia parteixen del cicle de vida del desenvolupament segons ISACA, la podem fer servir per a totes les fases d'un projecte de desenvolupament de programari:

  • Anàlisi de requisits i viabilitat. En aquesta fase del projecte s'estableixen quins són els objectius del projecte i es forma l'equip de treball que el portarà a terme.
  • Infraestructura i comunicacions. Un cop realitzat l'anàlisi es posa en marxa el conjunt d'equips informàtics que s'utilitzaran durant el desenvolupament i posada en marxa del projecte. Això inclou l'equip que farà servir cada membre de l'equip durant el desenvolupament, els servidors i equips de xarxa que puguin ser necessaris per donar servei als membres de l'equip de treball i l'equipament en què s'executaran les versions en desenvolupament del projecte i les versions a ser utilitzades pel client.
  • Metodologies de desenvolupament. La metodologia de desenvolupament consisteix en la forma en què l'equip de treball s'organitzarà per repartir les diferents tasques i establir la prioritat amb què s'aniran completant d'acord a les necessitats del client.
  • Implementació. Durant la implementació es fa el treball necessari per complir els objectius del projecte, en el cas de projectes de programari acostuma a consistir en el desenvolupament d'una o més aplicacions.
  • Auditoria. Un cop desenvolupat el producte s'ha de comprovar que el treball realitzat compleix de manera efectiva amb tots els requisits de comportament i qualitat establerts.
  • Desplegament. En aquesta fase del projecte es posa a disposició del client el treball realitzat, en alguns casos pot significar fer lliurament del treball dut a terme, mentre que d'altres pot suposar desplegar el projecte en un servidor on el client es disposarà a utilitzar el projecte per les seves necessitats.
  • Monitorització. Aquesta fase del projecte consisteix a controlar que funciona tal com estava previst i detectar problemes que puguin sorgir degut tant a accions externes com a problemes del projecte que hagin passat desapercebuts fins al moment.
  • Manteniment. En aquesta fase del projecte es duen a terme petites modificacions que puguin ser necessàries degut a errors que s'hagin detectat com a canvis en les condicions en què el projecte ha de treballar. En el cas de ser necessari realitzar modificacions majors caldria iniciar un nou projecte amb l'objectiu de fer-les.

Dificultats trobades durant el desenvolupament la metodologia

La primera dificultat ha sigut crear controls de la metodologia, l'objectiu és protegir-se d'un atac, a partir dels controls oferts per metodologies l'objectiu és l'oposat (OSSTTMM o OWASP), és a dir, aconseguir vulnerar la seguretat d'un programari.

La segona dificultat va ser dur a terme la fusió dels controls i les seves tasques associades obtinguts de les diferents fonts d'informació. Això es deu al fet que no tota la nomenclatura utilitzada és la mateixa en les fonts consultades i obliga a anar amb compte a l'hora d'unir múltiples controls.

 

La tercera dificultat ha estat el volum de controls i tasques obtingut. Per tal de facilitar l'aplicació dels controls i la seva adaptació a diferents projectes ha estat necessari desenvolupar un programari específic. Aquest programari permet l'edició de la metodologia per a la seva posterior aplicació en un projecte.

El desenvolupament de l'eina S2D2 no ha estat exempt de dificultats en ser necessari crear una interfície d'usuari capaç d'adaptar-se a l'estructura canviant del model de dades. Això ha obligat a emprar capes d'abstracció, en forma d'interfície.

Futur de la metodologia

Tant la metodologia com l'eina seran implantades a l'àmbit de la Universitat Politècnica de Catalunya durant l'any 2015 per tal de minimitzar els riscos de les aplicacions desenvolupades en els propers anys en l'àmbit acadèmic.