Está en la página 1de 8

Ing. USBMed, Vol. 3, No.

1, Enero-Junio 2012

UNA REVISIN DE METODOLOGAS SEGURAS EN CADA FASE DEL CICLO


DE VIDA DEL DESARROLLO DE SOFTWARE
Csar Marulanda L. Julin Ceballos H.
Italtel S.P.A. Productora de Software S.A. PSL
Medelln, Colombia Medelln, Colombia
cesar.marulanda@italtel.com.co jceballos@psl.com.co

(Tipo de Artculo: Reflexin. Recibido el 03/11/2011. Aprobado el 11/01/2012)

RESUMEN
El desarrollo de software seguro es un asunto de alta importancia en las compaas, debido a que la mayora de ellas dependen
altamente de sus aplicaciones para su operacin normal. Es por esto que se hace necesario implementar efectivamente
metodologas de desarrollo seguro que sean aplicadas en cada fase del ciclo de vida: requisitos, diseo, desarrollo y pruebas. Es
importante tener presente la seguridad desde las etapas ms tempranas del proceso de desarrollo y no dejarla en un segundo
plano. Adems, se requiere investigar el estado del arte en desarrollo de aplicaciones seguras y as escoger metodologas de
acuerdo con las necesidades de cada aplicacin y los requisitos de los interesados en el producto final. El objetivo de este artculo
es recopilar una serie de metodologas y herramientas existentes que se puedan implementar, aadiendo seguridad en toda la
aplicacin y desarrollando no slo software de alta calidad sino tambin de alta seguridad.

Palabras clave
Ciclo de Vida de Desarrollo de Sistemas, Desarrollo Seguro, Pruebas Seguras, Arquitectura Segura.

A REVIEW OF SECURE METHODOLOGIES FOR ALL THE STAGES OF LIFE


CYCLE OF SOFTWARE DEVELOPMENT
ABSTRACT
Secure Software Development is a high importance matter in all companies, because most of them are highly-dependent on their
applications for normal operation, for this reason is necessary to effectively implement secure development methodologies to be
applied in every phase of Software Development Life Cycle; Requirements, Design, Development and Tests, because is important
to keep in mind that Security starting from the earlier stages in the development process, and do not put it away for late stages.
Thus is important to research the state of art in secure development for applications and choose methodologies in order to satisfy
the needs for the application and the requirements of final product stakeholders. The main goal of this article is to collect a set of
methodologies and tools, which can be implemented, adding security in the whole application, thus developing high quality and
high security software.

Keywords
Systems development life cycle, secure development, secure tests, secure architecture.

UNE REVISION DES METHODOLOGIES SRES POUR TOUS LES PHASES


DU CYCLE DE VIE DU DEVELOPPEMENT DES LOGICIELS
RSUM
Le dveloppement de logiciels scuriss est un sujet trs important pour les entreprises, cause de que la majorit dentre eux
dpendent fortement de leurs applications, pour avoir une opration normale. Cest pour cela que il est ncessaire
dimplmenter effectivement des mthodologies de dveloppement scuris qui soient appliqus pendant chaque phase du
cycle de vie du dveloppement logiciel ; requtes, conception, dveloppement et essais, puisque il est important de considrer
la scurit pendant toutes les tapes du processus de dveloppement, au lieu de lavoir en second plan. Par consquent, il est
important de faire des recherches sur ltat de lart au sujet de dveloppement dapplications scurises, et de choisir des
mthodologies, selon la ncessit de chaque application et les requtes actuelles des intresss par le produit final. Lobjectif
de cet article est de rassembler des mthodologies et outils existantes qui pourraient tre implments, en fournissant de
scurit supplmentaire sur tout lapplication, et en dveloppant non seulement de logiciel de haute qualit mais encore trs
sr.

Mots-cls
Cycle de vie de dveloppement de systmes, dveloppement scuris, essais scuriss, architecture scurise .

C. Marulanda L. & J. Ceballos H. Una revisin de metodologas seguras en cada fase del ciclo de vida del desarrollo de software.
Ing. USBMed, Vol. 3, No. 1, pp. 15-22. ISSN: 2027-5846. Enero-Junio, 2012. 15
Ing. USBMed, Vol. 3, No. 1, Enero-Junio 2012

1. INTRODUCCIN aplicaciones, llamada UMLsec [3], que es una


La seguridad de los sistemas es un tema que ha extensin de UML que permite aadir caractersticas
despertado amplio inters desde hace mucho tiempo, de seguridad a los diagramas del modelado; luego se
porque no slo es necesario tener aplicaciones de alta hace una comparacin de sta con otras metodologas
calidad sino tambin que tengan seguridad. Debido a de diseo propuestas, se describen los pros y contras
que actualmente la mayor parte de ataques estn encontrados con el objetivo ofrecer una mejor
enfocados a las aplicaciones y teniendo en cuenta que perspectiva de lo que se puede utilizar en esta fase.
la mayora de desarrolladores no tienen las habilidades En la etapa de desarrollo o codificacin, se analizan
y el conocimiento necesario para desarrollar cdigo las vulnerabilidades ms comunes al cdigo, como
seguro [2], es necesario que las empresas apliquen SQL Injection, Cross Site Scripting y otras de
metodologas y herramientas que permitan desarrollar aplicaciones Web y se muestra cmo mitigar el riesgo
aplicaciones seguras que cumplan con las exigencias de que sean explotadas [1]. Por ltimo, se aborda el
de seguridad en este tiempo. tema de las pruebas de seguridad [9], donde adems
de mencionar los diferentes tipos que existen, se
De acuerdo con Allen et al. [1], el Ciclo de Vida de abordan temas especficos como analizadores de
Desarrollo de Software CDVS se puede definir como chequeo de cdigo esttico, sniffers y analizadores de
un proceso iterativo en el cual se identifican cuatro mtricas, los cuales permiten medir la carga de los
etapas principales: Requisitos, Diseo, Desarrollo y componentes asociados al desarrollo y para establecer
Pruebas. Existen otros modelos, como CMMI [7], que posibles puntos de quiebre o cuellos de botella en las
permiten definir buenas prcticas para el desarrollo de aplicaciones.
software y plantean bsicamente que el CVDS se
considere como un micro proyecto, donde un cambio Este artculo est enfocado no slo a evaluar y mostrar
en alguna de las etapas se debe ver reflejado en todo estas metodologas y herramientas utilizadas
el proyecto, que se ir refinando cada vez hasta lograr actualmente en el desarrollo seguro, sino tambin en
el objetivo deseado. Pero el modelo CMMI tradicional hacer una propuesta formal de cmo implementarlas
no tiene a la seguridad implementada en sus en un caso prctico.
definiciones de procesos y buenas prcticas, por lo
que es necesario agregar esquemas de seguridad 2. JUSTIFICACIN
adicionales. Antes se pensaba slo en asegurar infraestructuras
utilizando sistemas de seguridad, con firewalls,
Lo primero que se debe hacer para comenzar a sistemas de deteccin de intrusos IDS o sistemas de
implementar seguridad en las aplicaciones es prevencin de intrusos IPS y herramientas para
identificar cules son los activos de informacin que se deteccin de virus, entre otras, pero se dejaba de lado
deben proteger, cmo protegerlos, cules son las a las aplicaciones. En los ltimos aos los ataques a
vulnerabilidades de los elementos que interactan con las aplicaciones se han incrementado constantemente.
la informacin y como mitigarlas, al punto de reducirlas Un estudio del SANS Institute, publicado en 2005 [2],
a un nivel de riesgo aceptable mediante un proceso revela que se estaban incrementando los ataques a las
iterativo que analice profundamente los riesgos aplicaciones de antivirus y de backup, porque son
durante todo el CVDS. Tambin es muy importante aplicaciones que no se actualizan regularmente y
identificar patrones de ataque en todas las fases y corren con altos privilegios dentro del sistema
almacenarlos en una base de conocimiento que operativo. Otro tipo de ataques en incremento se
permita prevenir futuros ataques en otras aplicaciones observa en las aplicaciones Excel y Word, en las que
[1]. se aprovechan ciertas vulnerabilidades y slo se
necesitaba enviar un e-mail con uno de estos archivos
La seguridad debe estar implcita desde la misma adjuntos y se poda infectar una mquina y obtener su
concepcin del software, porque es un error dejarla control.
para etapas posteriores del desarrollo. Se debe
comenzar de los requisitos, que no deben ser simples La Figura 1 muestra que a travs de los aos la
listas de chequeos de implementacin de controles, aparicin de vulnerabilidades en Word y Excel ha ido
como firewalls y antivirus, sino que deben ir ms incrementado notablemente, lo mismo pasa con
enfocados a la proteccin de los activos crticos [1]. muchas otras aplicaciones, debido a que
Para la aplicacin especfica que se est desarrollando progresivamente se desarrollan nuevas tcnicas de
se debe tener en cuenta la perspectiva del agresor. En ataque y se incrementan tanto los atacantes como las
este artculo, con el objetivo de lograr una buena vulnerabilidades en las aplicaciones. Actualmente y
aproximacin al desarrollo de requisitos seguros, se debido al creciente y extendido uso de Internet, las
describe la metodologa de mala definicin de casos aplicaciones Web se han convertido en los blancos
uso, que son el caso inverso a los buenos casos de muy perseguidos, porque siempre estn expuestas en
uso [1] y que definen lo que el sistema no puede la red. La mayor parte de estos ataques son de Cross
permitir. Tambin se mencionar el proceso SREP [5], Site Scripting y SQL Injection, como se observa en la
que provee un mtodo para elicitar, categorizar y Figura 2. Todas estas fallas en los programas se
priorizar requisitos de seguridad para aplicaciones y deben a errores de desarrollo, porque la mayora de
sistemas de informacin tecnolgica. En la etapa de desarrolladores no saben lo que es cdigo seguro,
diseo se describe una herramienta de modelado de porque nadie se los ha dicho y nadie se los ha exigido,

16
Ing. USBMed, Vol. 3, No. 1, Enero-Junio 2012

no conocen los ataques al cdigo ni las herramientas Conformidad. Actividades planeadas, sistemticas y
que explotan esas vulnerabilidades y, simplemente, al multidisciplinarias que aseguren que los
no saber cmo se puede explotar el cdigo, no saben componentes y productos de software estn
cmo escribir de forma segura [2]. conforme a los requisitos, procedimientos y
estndares aplicables para su uso especfico.

Algunas propiedades fundamentales que son vistas


tanto como atributos de seguridad, como propiedades
del software son:

Confidencialidad. Debe asegurar que cualquiera de


sus caractersticas incluyendo sus relaciones con
ambiente de ejecucin y usuarios, sus activos y/o
contenidos no sean accesibles para no autorizados.

Integridad. El software y sus activos deben ser


resistentes a subversin. Subversin es llevar a cabo
Fig. 1: Incremento de vulnerabilidad en Excel y Word [2] modificaciones no autorizadas al cdigo fuente,
activos, configuracin o comportamientos, o
cualquier modificacin por entidades no autorizadas.
Tales modificaciones incluyen sobre-escritura,
corrupcin, sabotaje, destruccin, adicin de lgica
no planeada inclusin maliciosa o el borrado. La
integridad se debe preservar tanto en el desarrollo
como durante su ejecucin.

Disponibilidad. El software debe ser funcional y


Fig. 2: Vulnerabilidades expuestas en los sitios Web [2] accesible por usuarios autorizados cada vez que sea
necesario. Al mismo tiempo, esta funcionalidad y
De acuerdo con este panorama, se hace necesario estos privilegios deben ser inaccesibles por usuarios
crear metodologas, estndares y procesos y no autorizados.
desarrollar herramientas que sean reconocidas y
aceptadas de forma general para el desarrollo de Dos propiedades adicionales, comnmente asociadas
aplicaciones seguras, que permitan no slo formar a con usuarios humanos, se requieren en entidades de
los desarrolladores en tcnicas y procesos, sino que software que actan como usuarios, por ejemplo,
adems permita evaluar y mantener seguro al cdigo agentes proxy y servicios Web.
en el tiempo, con el objetivo de brindarles a los clientes
no slo software de alta calidad, sino tambin de alta Responsabilidad. Todas las acciones relevantes de
seguridad. seguridad del software o de los usuarios se deben
almacenar y rastrear, con atribucin de
3. AMENAZAS A LAS APLICACIONES SEGURAS responsabilidad. Este rastreo debe ser posible en
Es necesario definir inicialmente las condiciones que ambos casos, es decir, mientras y despus de que la
debe cumplir un sistema seguro [1]: accin registrada ocurra. Segn la poltica de
seguridad para el sistema se debera indicar cules
Que sea poco vulnerable y libre de defectos tanto acciones se consideran como seguridad relevante, lo
como sea posible. que podra hacer parte de los requisitos de auditora.
Que limite el resultado de los daos causados por
cualquier ataque, asegurando que los efectos no se No repudio. Esta propiedad le permite al software y
propaguen y que puedan ser recuperados tan rpido a los usuarios refutar o denegar responsabilidades
como sea posible. de acciones que ha ejecutado. Esto asegura que la
Que contine operando correctamente en la responsabilidad no puede ser derribada o evadida.
presencia de la mayora de ataques.
Otras propiedades influyentes en el software seguro
El software que ha sido desarrollado con seguridad son la exactitud, la capacidad de pronstico, la
generalmente refleja las siguientes propiedades a fiabilidad y la proteccin, las cuales estn tambin
travs de su desarrollo: influenciadas por el tamao, la complejidad y la
trazabilidad del software.
Ejecucin Predecible. La certeza de que cuando se
ejecute funcione como se haba previsto. Reducir o Anlisis de riesgos. Debido a las constantes
eliminar la posibilidad de que entradas maliciosas amenazas, toda organizacin es vulnerable a riesgos
alteren la ejecucin o las salidas. debido a la existencia de vulnerabilidades. De
acuerdo con la Figura 3, para determinar el riesgo se
Fiabilidad. La meta es que no haya vulnerabilidades puede evaluar la probabilidad asociada con los
que se puedan explotar. agentes de amenaza, el vector de ataque, las

17
Ing. USBMed, Vol. 3, No. 1, Enero-Junio 2012

debilidades de seguridad, los controles de seguridad, 2. Suposiciones incorrectas del ingeniero, incluyendo
los impactos tcnicos y el impacto al negocio cuando las relacionadas con la capacidad, las salidas, el
se materialice la amenaza [11]. comportamiento de los estados del ambiente de
ejecucin del software o con entradas esperadas de
entidades externas.
3. Implementacin defectuosa en el diseo o en los
requisitos de interfaces del software con otras
entidades externas o en ambiente de ejecucin de
los componentes del software.
4. Interaccin no planeada entre componentes de
software, incluyendo los de otros proveedores [1].
Fig. 3: Rutas atreves de las aplicaciones [11]
Teniendo esto definido, se puede proceder a
El OWASP The Open Web Application Security categorizar o priorizar los riesgos, con el objetivo de
Project [10], publica anualmente el top 10 de los definir cules son los ms pernicioso y, de esa forma,
riesgos ms serios que se presentan en las lograr una categorizacin que permita definir el orden
organizaciones, el cual se puede observar en la Tabla I en que se deben atender y para identificar dnde
para 2010. Cada organizacin realiza su anlisis de invertir mayor esfuerzo o dinero para mitigar el riesgo
riesgos mediante una evaluacin de stos para asociado.
detectar su severidad.
4. METODOLOGAS INVESTIGADAS
TABLA I
OWASP Top 10 2010 [10] 4.1 Funcionamiento con carga compartida [2]
Top Riesgo Con el objetivo de definir estndares de desarrollo de
A1 Injection cdigo seguro varias compaas de todo el mundo,
A2 Cross-Site Scripting (XSS)
como Siemens en Alemania, Tata en India, Nomura
A3 Broken Authentication and Session Management
Research en Japn, CIBC en Londres y las
A4 Insecure Direct Object References
americanas Kaiser Permanente, Boeing, Cisco,
A5 Cross-Site Request Forgery (CSRF)
A6
Symantec, Intel y American Express, se unieron a esta
Security Misconfiguration
A7 Insecure Cryptographic Storage
iniciativa. El proyecto pretende no slo mejorar los
A8
procesos en cada una de las empresas sino el
Failure to Restrict URL Access
desarrollo de software en s. Todas tienen como patrn
A9 Insufficient Transport Layer Protection
A10 Unvalidated Redirects and Forwards
comn que sus desarrollos dependen de la calidad del
software, lo que permitir adems que los clientes
Antes de comenzar a desarrollar cdigo seguro, lo reciban productos seguros, ya sean desarrollados por
primero que se debe hacer es un anlisis de riesgos. terceros o propios. A este grupo de empresas se
Primero se identifican cules son los activos crticos de unieron tambin desarrolladores de otras
la organizacin que estn involucrados en el proceso organizaciones y universidades, como Amazon,
de desarrollo o que de alguna forma van a estar Secure Compass, Universidad Carnegie Mellon y el
expuestos en la aplicacin y luego se identifican cules equipo OWASP, para dar lugar al Concilio de
son las posibles amenazas que pueden explotar las Programacin segura que, desde el 2007, se rene
vulnerabilidades de estos activos. En la seguridad de para definir estndares y documentos que indiquen las
la informacin la amenaza, la fuente del peligro, a habilidades necesarias para escribir cdigo seguro.
menudo es una persona intentando hacer dao con
uno o varios agentes maliciosos [1]. Debido a la necesidad de evaluar el cdigo y tambin
impulsados por buscar la certificacin de los
El software est sujeto a 2 categoras generales de desarrolladores, SANS lanz el Software Security
amenazas: Institute SSI, que est enfocado en proveer
informacin, entrenamiento y una librera de
Amenazas durante el desarrollo. Un ingeniero de investigaciones e iniciativas para ayudarles a
software puede sabotear el programa en cualquier desarrolladores, arquitectos y administradores a
punto de su desarrollo. proteger sus aplicaciones, incluyendo las Web.
Adicionalmente, el SSI lanz GSSP Secure Software
Amenazas durante la operacin. Un agresor intenta Programmer que certifica a los usuarios que
sabotear el sistema. cumplen con todos los requisitos y habilidades
requeridas para realizar codificacin segura y cuenta
El software en la red est comprometido por el con una evaluacin online para medir sus
aprovechamiento de sus debilidades, las cuales se capacidades.
derivan de las siguientes fuentes:
4.2 Security Requirements Engineering Process [5]
1. Complejidad o cambios incluidos en el modelo de El SREP es un mtodo basado en activos y orientado
procesamiento a riesgos, que permite el establecimiento de requisitos
de seguridad durante el desarrollo de las aplicaciones.

18
Ing. USBMed, Vol. 3, No. 1, Enero-Junio 2012

Bsicamente lo que define este mtodo es la cumplir, de acuerdo con las amenazas encontradas en
implementacin de Common Criteria durante todas las el nivel necesario para la aplicacin, tambin se
fases del desarrollo de software CC es un estndar definen las pruebas de seguridad que se aplicarn a
internacional ISO/IEC 15408 para seguridad cada requisito o conjunto de requisitos; (7) categorizar
informtica, cuyo objetivo es definir requisitos seguros y priorizar los requisitos, porque una vez identificados
que les permitan a los desarrolladores especificar se deben ordenar por importancia de acuerdo al
atributos de seguridad y evaluar que dichos productos impacto que tengan en el cumplimiento de los
si cumplan con su cometido. En este proceso objetivos; (8) inspeccin de requisitos, para garantizar
tambin se apunta a integracin con el Systems la calidad y la consistencia de los hallados deben ser
Security Engineering Capability Maturity Model validados por el equipo de trabajo, para que se
(ISO/IEC 21827), que define un conjunto de acepten y refinen de acuerdo con las observaciones
caractersticas esenciales para el xito de los procesos encontradas y (9) mejora el repositorio, aqu se deben
de ingeniera de seguridad de una organizacin. En recopilar todos los documentos, diagramas y modelos
contraste con su derivado, el CMM, SSE-CMM que se hayan encontrado durante el ciclo de desarrollo
establece una plataforma para mejorar y medir el y deben quedar consignados en el SRR.
desempeo de una aplicacin, en cuanto a principios
de ingeniera de seguridad, en vez de centrarse en las 4.3 SQUARE [4]
22 Process Areas. El modelo SQUARE Security Quality Requirements
Engineering propone varios pasos para construir
Esta metodologa trata cada fase del CVDS como a un modelos de seguridad desde las etapas tempranas del
mini proceso o iteracin, dentro de las cuales se ciclo de vida del software. En el proceso del modelo se
aplican las actividades SREP que permiten identificar y hace un anlisis enfocado a la seguridad, los patrones
mantener actualizados los requisitos de seguridad de de ataque, las amenazas y las vulnerabilidades y se
la fase, permitiendo mitigar efectivamente los riesgos desarrollan malos casos de uso/abuso. Los pasos son:
asociados a cada una. El proceso se detalla en la
Figura 4. 1. Acuerdo en las definiciones. Se debe generar un
acuerdo con el cliente en cuanto a las definiciones
de seguridad, como en el control de acceso, la lista
de control de acceso, el antivirus, entre otras.
2. Identificar metas de seguridad. Que se trazan con
base en las propiedades de seguridad definidas en
el documento.
3. Desarrollar artefactos. Diagramas de arquitectura,
casos de mal uso, casos de uso de seguridad,
identificar activos y servicios esenciales, rboles de
ataques, patrones de ataque, requisitos de
seguridad, mecanismos de seguridad.
4. Evaluacin de los riesgos. Se analizan las
Fig. 4: El proceso SREP [5]
amenazas y vulnerabilidades y se definen
estrategias de mitigacin.
Las nueve actividades definidas para cada iteracin
5. Elicitacin de los requisitos.
son las siguientes: (1) acuerdo en las definiciones,
6. Clasificar los requisitos. De acuerdo con el nivel o
donde se verifica que todos los participantes del
las metas de seguridad.
software aprueben y estn de acuerdo en la definicin
7. Priorizar los requisitos. (1) Esenciales, si el
de un conjunto de requisitos de seguridad que se
producto no puede ser aceptado si l, (2)
adapte a las polticas de la compaa; (2) identificacin
condicionales, si requerimiento incrementa la
de activos crticos o vulnerables, que consiste en
seguridad, pero el producto se acepta sin l y (3)
realizar una lista detallada de los activos de
opcionales, si es de baja prioridad frente a los
informacin ms importantes para la organizacin, con
esenciales y condicionales.
base en el Security Resources Repository, que debe
8. Revisin por pares.
ser obtenido previamente; (3) identificar los objetivos y
dependencias de seguridad, donde se debe tener en 4.4 CoSMo [6]
cuenta las polticas de seguridad y los aspectos Debido a la necesidad de integrar aspectos de
legales para definir correctamente hacia qu se apunta seguridad en el proceso de modelado de software, el
para definir el nivel necesario de seguridad requerido; modelado conceptual debe abarcar los requisitos y los
(4) identificar amenazas y desarrollar artefactos, aqu mecanismos de seguridad de alto nivel. Los autores
es necesario identificar todas las amenazas que trabajan en el desarrollo de un mtodo de
puedan afectar cada uno de los activos para modelamiento conceptual de seguridad al que
desarrollar artefactos; (5) evaluacin del riesgo, en denominan CoSMo Conceptual Security Modeling.
esta etapa se seleccionan los riesgos a tratar y cules Antes de tener la visin de que los mecanismos de
a mitigar o transferir, teniendo presente los objetivos seguridad pueden hacer cumplir los requisitos, se
definidos y los activos crticos de la aplicacin; (6) elaboran cuestiones fundamentales de polticas de
elicitar los requisitos de seguridad, donde se seguridad; las cuales consisten de un conjunto de
documentan los requisitos de seguridad que se deben

19
Ing. USBMed, Vol. 3, No. 1, Enero-Junio 2012

leyes, normas y prcticas que regulan cmo una El estereotipo Critical se usa para marcar datos que
organizacin gestiona, protege y distribuye informacin necesitan ser protegidos a toda costa; esta proteccin
sensible. Cada requisito de seguridad lo puede est apoyada por los estereotipos data security y no-
ejecutar uno o ms mecanismos de seguridad, down flow. El primero establece bsicamente que toda
resultando en una matriz de requisitos y mecanismos. la informacin establecida como secrecy debe
Ambos se definen genricamente porque se usan para permanecer igual ante cualquier amenaza.
modelar la seguridad en el nivel conceptual. En primer
lugar, los autores de CoSMo tratan de mostrar cmo La metodologa UMLSec pretende reutilizar los
integrar las consideraciones de seguridad en el marco diseos ya existentes, aplicando patrones para formar
de modelado de procesos conceptuales. Despus, nuevos a partir de una transformacin al existente, tal
enumeran de forma sistemtica los requisitos de como se observa en las Figuras 6 y 7.
seguridad frecuentes e indican claramente cules son
los mecanismos para hacerlos cumplir.

En general, un requisito de seguridad exigido no es


parte del diagrama de casos de uso, sino de la
descripcin del caso de uso. En CoSMo, es posible
modelar este requisito en el nivel conceptual, incluso Fig. 6: Canal de Comunicacin Internet [3]
en un diagrama de casos de uso.

4.5 UMLSec [3]


Es una metodologa de desarrollo basada en UML
para especificar requisitos de seguridad relacionados
con integridad y confidencialidad. Mediante
mecanismos ligeros de extensin de UML es posible
expresar los estereotipos, las etiquetas, las Fig. 7: Canal de Comunicacin Encriptado [3]
restricciones y el comportamiento de un subsistema en
presencia de un ataque. El modelo define un conjunto En la Figura 6 se muestra un diagrama de
de operaciones que puede efectuar un atacante a un componentes UML que no cumple con el estereotipo
estereotipo y trata de modelar la actuacin del de secrecy para el subsistema, porque permite la
subsistema en su presencia. Esta metodologa define lectura del atacante por defecto en el canal de Internet;
varios estereotipos que identifican requisitos de mientras que en la Figura 7 se utiliza un patrn de
seguridad, como secrecy, en el que los subsistemas canal seguro para encriptar la comunicacin entre
deben cumplir con que ningn atacante pueda ver su ambos componentes para cumplir con el estereotipo
contenido mientras este est en ejecucin y secure secrecy.
link, con el que se asegura el cumplimiento de los
requisitos de seguridad en la comunicacin a nivel 4.6 Casos de Mal Uso
fsico; lo que pretende evaluar es que un atacante en Es el caso inverso de un caso de uso UML y es lo que
una dependencia de un subsistema estereotipada, el sistema no debera permitir. As como en un caso de
como secrecy, que tenga dos nodos n, m que se uso se define la secuencia de acciones que le dan un
comunican a travs de un enlace l nunca pueda leer el valor agregado al usuario, en uno de mal uso se define
contenido del subsistema. la secuencia de acciones que se traducen en prdida
para la organizacin o los usuarios interesados. Un
mal actor es lo contrario a un actor. Es un usuario que
no se quiere que el sistema soporte y que podra ser
un agresor. En la Figura 8 se ilustra un mal uso como
un caso de uso invertido.

Fig. 5: Amenazas que pueden ser explotadas por un


atacante dependiendo del canal [3]

La Figura 5 presenta varios escenarios con un


atacante por defecto representado por uno externo con
capacidad modesta. Se puede observar cules pueden
ser las amenazas que puede explotar dependiendo del
enlace de comunicacin. Secure Dependency trata de
asegurar que las dependencias call y send entre dos
componentes cumplan con la integridad y
confidencialidad, adems, que los mensajes ofrecidos
por un componente C sean seguros si y slo si
tambin son seguros en otro componente D.
Fig. 8. Caso de uso invertido [8]

20
Ing. USBMed, Vol. 3, No. 1, Enero-Junio 2012

5. COMPARACIN DE METODOLOGAS Y Para llevar a cabo estas pautas, generalmente se


HERRAMIENTAS utilizan ciertas herramientas automticas que permiten
Las metodologas expuestas tienen un patrn comn y evaluar posibles riesgos o vulnerabilidades de
es que todas son formales, pero todas presenta la seguridad y que no se ven a simple vista o no son
misma falencia: ninguna provee una herramienta identificadas por una persona, tal vez por posibles
automtica de verificacin interna; esto amerita la sesgos mentales o por desconocimiento de temas de
bsqueda de una metodologa que lo resuelva. seguridad de la informacin, por el Copy/Paste, o en
algunos casos por los mapas o estructuras mentales
Estas metodologas aseguran al software en todas las que les impide realizar las cosas forma diferente o
etapas del CVSD, pero en hacen mayor nfasis en buscar nuevas formas de actualizarse. Adems,
alguna de esas etapas. Por ejemplo, SREP se enfoca permiten identificar la causa raz del problema de
en los requisitos mientras que UMLSec lo hace en la manera temprana. Algunas de las herramientas para
etapa de diseo y desarrollo. Esto hace difcil anlisis de cdigo esttico se observan en la Figura 8.
seleccionar una sola metodologa y sera mucho mejor
y ms completo seleccionar lo mejor de algunas de
ellas para aplicarlo y cubrir la mayor parte de las
brechas que cada una deja. Se recomienda SREP
para la fase de requisitos, porque contiene un conjunto
de buenas prcticas y permite hacer un anlisis de
riesgos profundo en cada una de las fases del CVDS.
Por otro lado, se basa en estndares internacionales, a
diferencia de propuestas como SQUARE. Adems,
muchos de los artefactos generados en SREP se
pueden basar en casos de Mal Uso apoyados en UML.
En el diseo y codificacin sera bueno utilizar
UMLsec, porque UML es un lenguaje bien definido,
ampliamente aceptado y aplicado en la mayora de
productos software, por lo que sera muy til y fcil de
implementar en cualquier aplicacin; adems,
permitira reutilizar gran parte de la documentacin
Fig. 8: Herramientas de anlisis de cdigo esttico [12]
existente en las aplicaciones actuales. Esta
metodologa tiene en cuenta la perspectiva del Como se observa en esta Figura, muchas
atacante, lo que permite tener un mejor control en el herramientas son OpenSource, por lo que no incluyen
diseo de las vulnerabilidades de la aplicacin. costos adicionales a los proyectos, algo que preocupa
mucho a las empresas que an no implementan
Para la etapa de desarrollo y pruebas no se puede procedimientos de seguridad y que se excusan en este
definir una metodologa estricta, debido a que estas tipo de prejuicios para no llevar a cabo la
etapas dependen ms de las habilidades y implementacin de estas medidas preventivas.
competencias del equipo de desarrollo y de los
probadores; por esto es posible afirmar que en estas Estar herramientas se utilizan en diferentes
etapas existen muchas pautas que en la mayora de plataformas y tipos de aplicaciones. Muchas analizan
los casos estn apoyadas en diferentes herramientas libreras inseguras, tanto propias como externas
automticas que favorecen la seguridad de las incluyendo libreras de servidores de aplicaciones y
aplicaciones. A continuacin se presenta una lista de frameworks en los que fue desarrollado el aplicativo,
pautas que pueden ser tiles para prevenir algunas de o patrones de duplicidad de cdigo copy/paste
las vulnerabilidades ms comunes. que se pueden convertir en cdigo inseguro replegado
por toda la aplicacin, o validando patrones de rutinas
En el desarrollo. inseguras en las llamadas, las entradas y los flujos de
Herramientas de chequeo esttico de cdigo. datos; otras, por el contrario, verifican que se cumpla
Herramientas de ofuscamiento de cdigo. un estndar de codificacin que evite la inyeccin de
Estndares de codificacin para cdigo seguro. vulnerabilidades por cuenta de errores humanos, como
Validacin de entradas/salidas de datos. errores de sintaxis, mal uso de punteros, variables no
Correcto manejo de excepciones. inicializadas, procedimientos, variables y funciones no
Trazabilidad en todo el flujo de la aplicacin a utilizadas, presentacin de salida de datos al usuario
travs de logs. con informacin sensible de base de datos, o la
Auditoria de clases o tablas sensibles para evitar el aplicacin y el manejo correcto de excepciones para
no repudio. evitar ataques de denegacin de servicios o de
overflow , entre otros.
En Pruebas
Pruebas de penetracin. Adems de las herramientas de anlisis de cdigo
Pruebas de carga. esttico existe otro tipo de herramientas que permiten
Monitoreo de la ejecucin de la aplicacin. ofuscar el cdigo; esto consiste en hacer ilegible el
cdigo fuente sin afectar la funcionalidad del mismo,

21
Ing. USBMed, Vol. 3, No. 1, Enero-Junio 2012

evitando de esta forma que se tenga acceso indebido Por otro lado, tambin se recomiendan los modelos
al cdigo fuente o que puedan entenderlo o incluso iterativos, debido a que permiten refinar y sostener las
hasta copiarlo. Algunas de esas herramientas son: metodologas en el tiempo, ya que no basta slo con
Proguard [13], un ofuscador de cdigo Java, Jabson implementar una buena metodologa sino tambin que
[14], ofuscador de cdigo Javascript y Skater.NET [15], debe ser mejorada y refinada continuamente; porque
ofuscador de cdigo .NET en cada iteracin se pueden encontrar nuevas
falencias o aspectos a mejorar que enriquecen el
Como se mencion antes, estas herramientas se producto final.
utilizan en la etapa de desarrollo y su gran ventaja,
adems de identificar vulnerabilidades en una etapa El uso de herramientas automticas para anlisis de
muy temprana del CVDS, es que son baratas y no vulnerabilidades en etapas de desarrollo y de pruebas
requieren que la aplicacin este desplegada o es muy recomendado, siempre y cuando se
instalada. Aunque su mayor desventaja puede ser la monitoreen y refinen continuamente los resultados por
deteccin de falsos positivos dentro del cdigo, debido uno o varios integrantes del equipo de trabajo.
a se basan en patrones de reglas pre-establecidas
para que los analizadores semnticos las puedan 7. REFERENCIAS
reconocer. Esto hace que su margen de error en
deteccin de vulnerabilidades se incremente [1] J. H. Allen et al. Software Security Engineering: A
directamente de forma proporcional al nmero de guide for Project Managers. Addison-Wesley. 2008.
lneas de cdigo de la aplicacin, por lo que es [2] M. Brown & A. Paller. Secure software development:
Why the development world awoke to the challenge.
necesario que los resultados se evalen, analicen y Information Security Technical Report, Vol. 13, No. 1,
refinen continuamente por el equipo de desarrollo, con pp. 40-43, 2008.
el objetivo de evitar inconvenientes innecesarios. [3] J. Jrjens. Foundations for Designing Secure
Architectures. Electronic Notes in Theoretical
En la etapa de pruebas existen varias herramientas Computer Science, Vol.142, pp. 31-46, 2006.
que son de gran utilidad para lograr buenos resultados [4] N. R. Mead & T. Stehney. Security Quality
en pruebas de penetracin, de carga y de monitoreo Requirements Engineering (SQUARE) Methodology.
del trfico y el flujo de informacin de la aplicacin. ACM SIGSOFT Software Engineering Notes, Vol. 30,
Entre estas se encuentran: No. 4, pp. 1-7, 2005.
[5] D. Mellado D.; E. Fernandez-Medina & M. Piattini. A
common criteria based security requirements
Webgoat. Una gua que sugiere los pasos para las engineering process for the development of secure
pruebas de vulnerabilidad. information systems. Computer Standards &
Webscarab. Con la que se prueban diferentes tipos Interfaces, Vol. 29, No. 2, pp. 244-253, 2007.
de ataque como inyeccin, hijacking, cookies [6] R. Villaroel; E. Fernandez-Medina & M. Piattini. Secure
tampering, man in the middle, fuzzing. information systems development: A survey and
Wireshark. Un sniffer que permite revisar el flujo de comparison. Computers & Security Vol. 24, No. 4, pp.
paquetes en la red con el fin de identificar 308-321, 2005.
contraseas o sentencias SQL que viajen sin cifrar. [7] CMMI Product Team. CMMI for Development.
Version 1.22. CMU/SEI-2006-TR-008. Carnegie
jMeter [9]. Permite similar concurrencia de usuarios y Mellon, 2006.
de esta forma similar ataques de DoS; soporta el uso [8] W. Brooks & M. Warren. A Methodology of Health
de cookies. Information Security Evaluation. In J. Westbrook et al
(Eds.), HIC 2006 and HINZ 2006: Proceedings.
6. CONCLUSIONES Brunswick East, Vic.: Health Informatics Society of
El diseo de aplicaciones seguras se ha convertido en Australia, pp. 464-470, 2006.
un tema de alta prioridad. Debido al auge que la [9] D. Nevedrov. Using JMeter to Performance Test Web
seguridad de la informacin ha tenido en los ltimos Services, 2006. Online [Oct. 2011].
aos y a la dependencia que las empresas tienen de [10] Fundacin OWASP. https://www.owasp.org.
[11] Fundacin OWASP. https://www.owasp.org/index.php/
sus aplicaciones, se hace necesario garantizar su Top_10_2010-Main. [Oct. 2011].
correcto funcionamiento mediante proteccin a los [12] OWASP Spain Charter Meeting III. Herramientas para
ataques internos y externos. anlisis esttico de seguridad: estado del arte. Online
[Oct. 2011].
El anlisis de riesgos se convierte en un factor comn [13] J. Sanz A. Ofuscadores de Cdigo Java. Slo
en cualquier metodologa de desarrollo seguro, porque Programadores, No. 83, pp. 6-11, 2001.
es imperativo conocer cules son los activos crticos [14] JavaScript Obfuscation Fascination. www.jason.com.
de la organizacin y cules son las amenazas [Oct. 2011].
asociadas con ellos. Es recomendable, para cualquier [15] Rustemsof. http://www.rustemsoft.com/obfuscator_net
.asp. [Oct. 2011].
aplicacin, utilizar metodologas basadas en UML
porque son aceptadas de forma general y no requieren
mayor esfuerzo en entrenamiento del equipo de
desarrollo para su implementacin.

22

También podría gustarte