El análisis automatizado de código de programación en proyectos SOA

13 Mar 2007 en Software

Las herramientas de análisis automatizado de código pueden representar un excelente camino para el fortalecimiento de la seguridad y estabilidad en organizaciones donde se piensa en implementar arquitecturas con orientación a servicios (SOA, por Service Oriented Architectures).
En esa clase de arquitectura se reutilizan librerías de código en forma intensiva. Jack Danahy, Chief Technology Officer (CTO) de Ounce Labs, nos dice que las herramientas de revisión automatizada de código entienden la forma en que el código habrá de interactuar con las aplicaciones en las que participa. “Es muy importante saber si existen agujeros en el código cuando se tienen que conectar servicios a una red. De esa manera se puede ver qué clases de inputos o requerimientos pueden afectar a un programa determinado,” comenta Danahy.
Muchos de los proyectos que involucran la creación y utilización de arquitecturas SOA requieren de la intervención de proveedores externos o outsourcing. Las herramientas de análisis automatizado de código pueden ser usadas como benchmark en los contratos con terceras partes. “Siempre que se compra una pieza de código o se interactúa con aplicaciones realizadas en modo de outsourcing, parte del contrato debería tratar acerca del nivel de seguridad que se considera razonable para el código que se ha desarrollado,” nos dice Brian Chess, científico en jefe y co-fundador de Fortify Sofware. “Con herramientas automatizadas, se le puede brindar al proveedor una línea guía en términos de los requerimientos de seguridad y el medio concreto para comprobación del cumplimiento de esos requerimientos,” agrega.
En todo entorno, pero en especial en uno SOA, es importante que el testeo de aplicaciones continúe luego de que las mismas hayan sido implantadas y estén en producción. Algunas prácticas recomiendan que cada vez que el código es elevado a un servidor, se realice un test de toda la aplicación. Los cambios en alguna porción de código pueden originar problemas y también es importante realimentar la información a los desarrolladores para que éstos actualicen sus propias librerías de código.
Por último, cabe decir que siempre se requerirá de cierta intervención manual. Estas herramientas tienen algunos problemas con lenguajes no compilados como PERL, JavaScript y HTML. Pueden estar funcionando bien en el back-end, por ejemplo, y tener algún detalle en HTML. Las aplicaciones escritas en varios lenguajes representan una situación mixta donde la intervención de la observación humana es fundamental.