You are on page 1of 12

¿Qué hay respecto a atender a la Seguridad durante el desarrollo

de sistemas de información?

Castellaro Marta, Romaniz Susana, Ramos Juan Carlos


Universidad Tecnológica Nacional, Facultad Regional Santa Fe

Abstract. las organizaciones que proyectan la


“Esta comunicación presenta una reseña del trabajo incorporación de Tecnologías de la
realizado por un grupo de docentes investigadores
de la Facultad respecto al Software Seguro. En
Información (TI) o desarrollan e
distintos proyectos de investigación se fue implementan Sistemas de Información (SI).
abordando el tema en forma evolutiva, partiendo de Pero la modalidad generalmente empleada
la consigna de analizar la Seguridad como atributo en las organizaciones para el tratamiento de
organizacional transversal en los proyectos de la Seguridad en proyectos de TI y SI aborda
Sistemas y Tecnologías de Información. Se analizó
la taxonomía propia, y la adaptación de los
la problemática de este atributo de forma
procesos de ciclo de vida de desarrollo, mejorados fragmentada, estableciendo compartimentos
para la seguridad. Se indagaron metodologías y estancos, en distintas áreas y en diferentes
herramientas para abordar la problemática de la momentos durante la implementación e
seguridad, especialmente en las etapas tempranas integración de proyectos; y en muchos
del ciclo de desarrollo. También se trabajó sobre
Patrones de Seguridad, elaborando una propuesta
casos a posteriori de su implementación [1].
para ampliar su accesibilidad a los desarrolladores. La falta de una visión integral y transversal
Hoy se propone un trabajo enfocado en los Patrones genera situaciones que implican mayores
de Ataque”. costos (muchos de ellos innecesarios),
mayor trabajo, re-trabajo, rechazos de los
Palabras Clave
Software seguro, Seguridad, Patrones, Ciclo de Vida
participantes y, en muchos casos, hasta se
incorporan nuevas vulnerabilidades.
Conceptos de Software Seguro En necesario plantear los objetivos de
La seguridad siempre fue concebida como seguridad en el contexto de una estrategia
una propiedad deseable del software y forma de la seguridad, directamente ligados a los
parte del conjunto de atributos a considerar objetivos de la organización y alineados a
para determinar la calidad del mismo. El casos de negocio, se los considere desde el
aumento de los ataques a aplicaciones inicio de los proyectos de SI, y que además
vulnerables condujo al reconocimiento evolucionen de manera lo más efectiva y
gradual por parte de la comunidad de eficientemente posible acompañando las
especialistas, empresas e industria del transformaciones de la organización que los
software que las protecciones a nivel de anida. En los últimos años la situación ha
infraestructura (hoy de uso común para evolucionado, y la seguridad del software
proteger sistemas accesibles por Internet) no ya se considera como una característica que
son suficientes para garantizar un se la puede demostrar de manera
comportamiento seguro de las mismas. En la consistente [2] [3].
actualidad, se reconoce que las protecciones Antes de determinar las características de
y mitigaciones de seguridad de las un software para hacer de éste un software
aplicaciones se deben especificar a nivel del seguro, se deben establecer cuáles son los
software y su arquitectura, e implementar problemas de seguridad (criticidad del
tanto durante su proceso de desarrollo, y su dominio de aplicación del software,
despliegue y operación. vulnerabilidades derivadas de tecnologías
La seguridad se presenta cada vez más utilizadas, exploits identificados) que se
como un factor crítico a ser considerado por deberán traducir en requerimientos para ser
atendidos durante su proceso de desarrollo.
Es necesario definir los atributos mediante relevantes relacionadas con la seguridad del
los cuales se puedan describir estas software que actúa como usuario se deben
características. Los Atributos de Seguridad registrar y rastrear con atribución de
del Software comprenden: responsabilidad; el rastreo debe ser posible
1. un conjunto de atributos fundamentales tanto durante como a posteriori de la
cuya presencia (o ausencia) son el terreno ocurrencia de las acciones registradas.
firme que hacen seguro al software (o no), No repudiación. La habilidad de prevenir
2. un conjunto de atributos conducentes que el software que actúa como usuario
que no hacen seguro al software en forma desmienta o niegue la responsabilidad
directa, pero que permiten caracterizar relativa a acciones que han sido ejecutadas;
cuán seguro es éste. garantiza que no se puede subvertir o eludir
el atributo ‘responsabilización’.
Centrando el análisis en los atributos En la Figura 1 se representan estos
fundamentales, se considera que los efectos atributos:
de vulnerar la seguridad del software se
to
pueden describir en términos de los efectos ien
amado
Co
nfo
r t r mi
sobre estos atributos fundamentales, los o r
mp p e da
Co Es Integridad d
cuales se enumeran a continuación [4]:
Confidencialidad. El software debe

lidad

Disp
asegurar que cualquiera de sus

encia

o
nibilid
características (incluidas sus relaciones con

fid
Seg Amb
SOFTWARE

ad
Con
su ambiente de ejecución y sus usuarios),
urida ienta

Predceución
cible
los activos que administra, y/o su contenido
d an les

No ión
se encuentran, enmascarados u ocultos a las ac

Eje
te R

-R
ep iliz
ud ab
entidades no autorizadas.
iesg

iac s
on
ió n sp
Re
os

Integridad. El software y los activos que


administra son resistentes y flexibles a la
Fiabilidad
subversión, la que se logra mediante
modificaciones no autorizadas (del código, Figura 1. Propiedades fundamentales y conducentes
los activos administrados, la configuración en un software seguro.
o el comportamiento del software) por parte
de entidades autorizadas, o cualquier La seguridad a lo largo de todo el ciclo de
modificación provocada por entidades no vida
autorizadas; se debe preservar tanto durante A pesar de las medidas de seguridad
el desarrollo del software como durante su perimetral adoptadas las aplicaciones
ejecución. siguen siendo muy vulnerables. Existen ya
Disponibilidad. El software debe estar buenos argumentos para dar por agotada
operativo y accesible a sus usuarios esta visión de la seguridad. Por una parte,
autorizados (humanos o procesos) siempre plantear el aislamiento para protegerse va
que se lo necesite; simultáneamente, su en sentido opuesto con los modelos de
funcionalidad y sus privilegios deben ser negocio de las empresas, que cada vez más
inaccesibles a usuarios no autorizados tienden a la comunicación y colaboración
(humanos y procesos) en todo momento. con clientes y otros actores del negocio. Por
Para las entidades que actúan como otra parte, el objetivo de un posible atacante
usuarios, se requieren dos atributos puede ser vulnerar la red, el host, o la
adicionales, generalmente asociados con los aplicación, lo que exige para la prevención
usuarios finales, que se indican a de estas amenazas un conjunto de defensas
continuación. montadas en profundidad. No es que se
Responsabilización. (en idioma inglés, deban descartar las medidas de seguridad
accountability). Todas las acciones perimetral, sino que se las debe considerar
sólo como una de las capas de un sistema importancia que se los pueda evitar y/o
de seguridad. detectar durante dicho proceso.
El desarrollo de un software que pretenda
Existen diferentes definiciones acerca del considerar mejoras respecto a la seguridad
software seguro establecidas por expertos y implica ciertas prácticas y pruebas a
organizaciones reconocidas, pero todas realizar, y la adopción de enfoques y
ellas presentan un criterio común: “La principios acordes en las distintas etapas del
seguridad se presenta en todo el ciclo de ciclo. Esto además exige un abordaje
vida del software. Un software seguro se integrado, a lo largo de todas las etapas del
diseña, implementa, configura y opera de ciclo de vida.
manera que cumpla con las propiedades
esenciales, es decir, se espera que continúe Resulta necesario analizar los modelos y
operando en presencia de ataques, aísle o métodos del ciclo de vida del desarrollo de
limite los daños y se recupere lo antes software. Desarrollar software desde su
posible”. inicio con la atención puesta en la
El software que ha sido desarrollado Seguridad es mucho más efectivo, en
considerando a la Seguridad generalmente órdenes de magnitud, que tratar de
presenta las siguientes propiedades a lo demostrar que el software es seguro,
largo de su ciclo de vida: mediante pruebas y validación. Un proceso
Ejecución predecible: existe la confianza de ciclo de vida de desarrollo mejorado
justificada respecto a que, cuando se para la seguridad -SDLC- (al menos en
ejecuta, funciona de la manera esperada; algún grado) garantiza el cumplimiento de
está significativamente reducida o los requerimientos del software mediante el
eliminada la habilidad de inputs maliciosos agregado de prácticas con las que se
destinados a alterar la ejecución o de verifica su adecuación durante todas las
resultados producidos de forma que son fases del ciclo de vida del software. La idea
favorables para el atacante. que sustenta estas metodologías establece
Fiabilidad: se minimiza en el mayor grado que se apliquen las mejores prácticas de
posible el número de vulnerabilidades seguridad del software a un conjunto de
explotables de manera intencional; la meta artefactos de software creados durante su
es ninguna vulnerabilidad explotable. proceso de desarrollo. Se propone, en la
Conformidad: actividades planificadas, mayoría de los casos, que resulte un
sistemáticas y multidisciplinarias que proceso neutral y, en consecuencia, se
aseguran que los componentes, productos y pueda utilizar con una amplia variedad de
sistemas de software conforman los modelos de procesos de desarrollo.
requerimientos y los estándares aplicables, Los controles de seguridad en el ciclo de
y los procedimientos para los usos vida del software no se deberán limitar a las
especificados. fases de requerimientos, diseño,
codificación y testeo. Resulta importante
Las vulnerabilidades inherentes al software continuar realizando revisiones de código,
(debido a errores o fallas en su diseño pruebas de seguridad, controles de
arquitectónico, en el código o en los configuración, y aseguramiento de la
algoritmos que implementan) no se pueden calidad durante el despliegue y la
resolver completamente con medidas de operación, para garantizar que las
seguridad externas. Dicho en otras palabras, actualizaciones y los parches no agregan
una parte importante de los problemas de vulnerabilidad de seguridad o lógica
seguridad de los sistemas de información maliciosa al software en producción.
tiene su origen en defectos del software que A lo largo de los últimos años, se han
éstos ejecutan, que se introducen durante su realizado diferentes esfuerzos para definir
proceso de desarrollo; de allí, la el modelo de proceso de desarrollo de
software más efectivo. En algunos casos, un conjunto común de artefactos indicados
introduciendo modificaciones en las para la ejecución de muchas de las
actividades tradicionales, mientras que actividades propuestas, que se presentan en
otros insertando nuevas actividades, con el la Figura 2.
objetivo de reducir el número de
vulnerabilidades en el software y en los ser- Modelos y Herramientas
vicios que se apoyan en él. En la actualidad, Actualmente, se dispone de modelos y
ya existen metodologías que están siendo herramientas que dan soporte al abordaje de
empleadas con distintos grados de éxito en la problemática de la seguridad del software
proyectos de desarrollo de productos o durante el Ciclo de Vida de Desarrollo.
pilotos; ejemplos de éstas son: En función del alcance definido para el
Microsoft Trustworthy Computing SDL. trabajo, se centró la investigación en las
Orientado a reducir las vulnerabilidades etapas tempranas del proceso de desarrollo
relacionadas a seguridad en el diseño, de software: Requerimientos, y Análisis y
codificación y documentación, detectar y Diseño [8].
eliminar vulnerabilidades tan pronto como
sea posible; y reducir la severidad del El Modelado de Amenazas (Threat
impacto de cualquier defecto residual [5]. Modeling - TM) se presenta como una
Comprehensive, Lightweight Application herramienta para evaluar los riesgos
Security Process (CLASP). Diseñado para inherentes a una aplicación durante su
insertar metodologías de seguridad en cada desarrollo, principalmente en la etapa de
fase del ciclo de vida. Es un conjunto de diseño. Constituye un framework específico
actividades enfocadas en seguridad que para el proceso de análisis de riesgo
pueden ser integradas en cualquier proceso estructurado, que permite identificar las
de desarrollo de software [6]. amenazas de una aplicación y cuantificar
Siete ‘touchpoints’ para Seguridad de los riesgos a los que la misma estará
Software. Un conjunto de mejores prácticas expuesta. Es una metodología integrante del
a ser aplicadas en varios artefactos del Trustworthy Computing Security
desarrollo de software [7]. Development Life Cycle de Microsoft,
Estas metodologías se pueden comparar implementada desde hace más de una década
adoptando un conjunto de fases comunes a [7]. Se trata de un esquema estructurado y
la mayoría de los SDLC [1]. De ello surge repetible, para analizar riesgos y amenazas

Figura 2. La seguridad a lo largo del Ciclo de Vida


en el software, que ha ido evolucionando a de base, para crear un ‘perfil de seguridad’
lo largo del tiempo, y su implementación se (vulnerabilidades conocidas).
puede adaptar a diferentes proyectos u 3) Determinar las amenazas sobre cada
organizaciones, y la pueden utilizar equipos componente (las propias y las derivadas de
de desarrollo que no cuenten con expertos su interacción con otros componentes).
en seguridad. 4) Asignar un valor a cada amenaza
TM aporta elementos al diseño que definen (calcular el riesgo asociado a cada amenaza,
rasgos claves del futuro sistema: controles mediante alguna técnica elegida para tal
de acceso, mecanismos de autenticación, fin).
tolerancia y recuperación de fallas, por 5) Decidir cómo responder a las amenazas
mencionar sólo algunos artefactos y (eliminar la funcionalidad, no hacer nada y
atributos. No es una metodología fija o aceptar el riesgo, mitigarla mediante alguna
estática sino que la puede abordar desde contramedida, transferir el riesgo a una
diferentes enfoques: tercera parte).
- “centrado en el activo’ (implica algún 6) Identificar las técnicas y tecnologías
nivel de evaluación de riesgo, aproximación necesarias para mitigar los riesgos
o clasificación), identificados (restricciones arquitectónicas,
- ‘centrado en el atacante’ (implica la técnicas criptográficas, mecanismos de
clasificación de riesgo o intenta estimar autenticación, algoritmos seguros, etc., que
recursos, capacidades o motivaciones, y permitan solucionar los problemas
conlleva determinar escenarios de planteados).
amenazas),
- ‘centrado en el software’ (análisis de Para la etapa 3, se puede emplear el
software, redes o sistemas de las Método STRIDE (Spoofing, Tampering,
organizaciones y conlleva el modelado de Repudiation, Information disclosure,
protocolos y de amenazas de red). Denial of service, Elevation of privilege).
El enfoque elegido dependerá de los Este método se aplica por cada elemento de
objetivos establecidos para el proyecto y del la aplicación identificado en la etapa 2,
tipo de software que se desee obtener; si se analizando a cuáles de las categorías de
está modelando un software de misión- amenazas mencionadas es sensible cada
crítica, el cuidado estará puesto en la componente clave.
protección de los activos a los que accede; Las amenazas son el objetivo que persigue
en este caso, se dará preponderancia a un el atacante; considerando este enfoque, se
enfoque centrado en activos. En otro tipo de puede emplear el Método Análisis de
proyectos (por ejemplo, software de base) Árboles de Amenazas, que permite
no se sabrá qué activos manipulará el analizar en forma descendente y partiendo
software, y el acento estará en lograr una de una amenaza que el atacante puede
arquitectura y código seguros (por ejemplo concretar, las distintas alternativas que
bibliotecas del sistema operativo) dando puede adoptar dicha amenaza para alcanzar
preponderancia a un enfoque centrado en el ese objetivo; de esta manera, resulta posible
software. identificar los puntos que se deben asegurar
para mitigar la amenaza.
El proceso de Modelado de Amenazas Para la etapa 4, se puede utilizar el Método
comprende seis etapas [9]: DREAD (Damage, Reproducibility,
1) Conformar un grupo de análisis de Exploitability, Affected, Discoverability).
riesgos (encargado de llevar adelante el
modelado). El estudio de la metodología llevó a
2) Descomponer el software e identificar investigar qué herramientas se encontraban
componentes clave (incluyendo en este disponibles para gestionar la aplicación del
análisis las redes subyacentes y el software modelo. Se encontraron dos aplicaciones
provistas por Microsoft, que fueron mitigaciones adecuadas para una amenaza,
concebidas para cubrir necesidades de basándose en su propio conocimiento, por
diferentes equipos de desarrollo de la propia lo que es indispensable la presencia de
compañía, pero que a la fecha en que se expertos en seguridad.
llevó a cabo la investigación, estaban En [8] se presentan los resultados de aplicar
disponibles para descarga en forma gratuita: TAM a un Caso de Estudio: un sistema de
- SDL Threat Modeling Tool (SDL) [10], catálogos por Internet, que pretende tener
utilizada en el desarrollo de productos como los elementos básicos de este tipo de
Windows Vista o SQL Server, que se portales Web. En la Figura 3 se muestra la
clasifican como software de base. captura que presenta la vista de árbol de los
- Threat Analysis and Modeling Tool elementos del modelo que describen la
(TAM) [11], orientada al desarrollo de aplicación y que son requeridos para el
aplicaciones de negocio, en las cuales están análisis de las amenazas.
claramente definidos los objetivos de
negocio, el patrón de despliegue, los datos y Un posterior refinamiento de los casos de
los controles de acceso. uso concluye la visión arquitectónica
necesaria para definir el contexto de la
En la Tabla 1 se presenta una comparación aplicación. La herramienta genera
de las características de las dos automáticamente las amenazas a partir de
herramientas. Del análisis, queda en claro las llamadas o interacciones definidas en
que no hay una sola forma correcta de cada caso de uso. Por ejemplo, para el CU
llevar adelante un modelado de amenazas “Autenticación del Usuario” de la Figura 3,
sino que se pueden adoptar distintos a partir de la interacción entre un usuario
enfoques válidos según las necesidades del anónimo que envía sus credenciales al
equipo de trabajo y las características del Servidor Web, se generará una amenaza
producto a desarrollar. que luego se deberá analizar.
En cuanto al equipo de análisis, TAM tool La herramienta provee vistas de los campos
proporciona un repositorio de ataques y de información relativos al análisis de la
contramedidas; esto facilita el proceso de amenaza, algunos de los cuales están
asociar cada amenaza con un conjunto de destinados para las siguientes etapas del
estas últimas. Por su parte, con SDL tool es proceso de desarrollo del software.
el analista quien tiene que determinar las

Aplicación SDL Threat Modeling Tool Threat Analysis and Modeling Tool
Enfoque Centrado en software Centrado en activos
Características de Aplicaciones con objetivos de negocios
Aplicaciones para las que el patrón final
las aplicaciones a definidos, patrones de despliegue, y datos
de despliegue no es conocido
desarrollar bien conocidos
Determinar el riesgo asociado a la
Garantizar la seguridad del código
Objetivos aplicación, y las medidas necesarias para
subyacente del software
gestionar el riesgo
Técnicas para
Diagramas de casos de uso y secuencia,
definir la Diagramas de Flujo de Datos
descripción de componentes y roles
arquitectura
Presencia de
Puede modelarse sin la presencia de
Analistas expertos Muy necesaria
expertos
en seguridad
Identificación de Basado en atributos de los componentes,
STRIDE
amenazas roles y datos

Tabla 1. Comparativo SDL - TAM


solución a un problema que emerge en un
contexto específico, la cual debe estar
probada y ser repetible. En otras palabras,
cada patrón describe un problema que surge
frecuentemente en un cierto entorno, y
presenta una solución general a ese
problema, la cual puede utilizarse todas las
veces que sea necesario, adaptando la
solución para cada caso en particular.
La multiplicidad de fuentes desde donde se
encuentran disponibles los diferentes
grupos de patrones de seguridad definidos
en la actualidad, hace que su
descubrimiento demande un nivel de
esfuerzo que, normalmente, desalienta el
uso sistemático por parte de los potenciales
destinatarios.
A partir de la identificación de este
problema, se decidió trabajar en la
definición y desarrollo de un catálogo
centralizado, bajo la premisa que éste
constituye una herramienta que actúa como
Figura 3. Vista de caso implementado en TAM punto de partida para la búsqueda e
identificación de una o más soluciones a un
Patrones de Seguridad problema de seguridad que se pretende
En la última etapa del trabajo realizado por resolver, expresadas mediante patrones de
el equipo de investigadores, ganó seguridad. De esta manera se busca
importancia una línea de investigación establecer un puente entre la inteligencia
orientada al uso de Patrones de Seguridad. desarrollada por expertos en seguridad y las
En la Ingeniería de Software generalmente necesidades de conocimiento de los equipos
se está familiarizado con el concepto de de desarrollo de software.
patrones relacionados a la arquitectura de Para ello se definió, como principal
los sistemas o soluciones para su diseño de requerimiento, que la información ofrecida
los mismos. No obstante, el concepto de por el catálogo resulte apropiada para
patrón es más general, y se pueden “encontrar” el patrón de seguridad. Esta
encontrar diferentes tipos, como por información se extrae o infiere de la
ejemplo patrones de procesos, patrones de descripción del propio patrón, e incluye
diseño, patrones de codificación, y patrones extensiones que faciliten la categorización
de seguridad. En los últimos años, del patrón conforme criterios establecidos.
diferentes autores han desarrollado patrones En el actual diseño del catálogo se han
de seguridad para las actividades más adoptados dos criterios:
importantes de cualquier ciclo de vida de • el o los atributos de seguridad
desarrollo de software: requerimientos, impactados por el problema descripto,
análisis, diseño, codificación, y • la fase del proceso de desarrollo de
distribución; quienes, además han software a la que aplica el patrón.
establecido clasificaciones y han generado De esta manera, se espera que el catálogo
repositorios para los patrones de seguridad ofrezca información acerca del patrón de
conocidos [12]. seguridad que ayude a capturar de manera
En una primera aproximación al concepto inmediata sus aspectos esenciales.
de patrón, se lo puede definir como una Entonces, el problema a resolver es definir
una forma de estructurar e indexar un • Problem (presente en un 84% de las
catálogo de patrones de seguridad, de publicaciones), en muchos casos incluye
manera de poder encontrar con cierta descripciones abstractas o excesivamente
facilidad un patrón que proponga una simplificadas del problema.
solución a una situación de seguridad • Related Patterns y Consequences
identificada, y de allí ir a la referencia (presentes en un 75% de las
original completa de la descripción del publicaciones), requieren de un buen
patrón de seguridad. Como atributos conocimiento tanto de otros patrones de
comunes de los patrones de seguridad que seguridad como del posible impacto en
nos permitan encontrar sus referencias, se el campo de la seguridad para que se
definió el conjunto indicado en la Tabla 2. puedan utilizar como elementos de
Nombre El nombre de la definición original del
distinción.
patrón de seguridad. • Context (presente en un 49% de las
Objetivo Problema que resuelve el patrón de publicaciones), incluye generalmente
seguridad. Es una respuesta a un
problema de seguridad presente.
una descripción muy breve, lo que hace
Clasificación En base a la fase del proceso de difícil extraer el conocimiento suficiente
desarrollo de software en la que o incluso una idea acerca de lo que es el
normalmente se aplica el patrón:
requerimientos, análisis, diseño, patrón de seguridad.
codificación, pruebas, implementación • Known Use (presente en un 46% de las
Aspecto de Confidencialidad, integridad, publicaciones), describe en qué casos de
seguridad disponibilidad, responsabilización, no-
afectado repudio la vida real se puede utilizar el patrón y
Palabras claves Sirven como una referencia orienta respecto su dominio de
complementaria al patrón. aplicación.
Referencia Enlaces hacia los documentos y/o
bibliográfica páginas web donde se encuentra la Un ejemplo de aplicación del proceso
descripción detallada del patrón.
Tabla 2. Atributos para la descripción de patrones de
propuesto se presenta aplicándolo al patrón
seguridad. Authenticated Session [15]. Dicho proceso
de extracción consiste en la lectura y
Salvo el atributo ‘Nombre’, para los análisis de la descripción del patrón de
restantes atributos es necesario hacer un seguridad a cargo de un experto de
análisis de la descripción del patrón de seguridad, y en la obtención de los datos
seguridad en su fuente original, extraer los indicados en la Tabla 3, los cuales resultan
conceptos asociados a los atributos elegidos, de las siguientes referencias (estas últimas
y efectuar la catalogación del patrón.
Con respecto a este proceso de extracción Nombre Authenticated Session
de conceptos durante la revisión de los Objetivo Permitir el acceso a múltiples páginas con
acceso restringido, sin tener que re-
patrones, se encontró una guía en [14]; en autenticarse cada vez.
este trabajo se resumen los resultados Mantener información de autenticación en
la negación de un sistema
acerca de la calidad de la información
Clasificación Diseño
incluida en los aspectos con que se Aspecto de Integridad. Responsabilización
describen los patrones, así como la seguridad
frecuencia de uso de dichos aspectos afectado
Authentication. Single Sign-On
utilizados a lo largo de 67 publicaciones de Palabras claves

patrones de seguridad. Al respecto, se Referencia • Security Patterns Repository v1.0.pdf


bibliográfica • Cunningham, C. “Session Management
pueden destacar las consideraciones and Authentication with PHPLIB”.
siguientes como guía para el proceso de http://www.phpbuilder.com/
columns/chad19990414.php3,(Rev.
extracción: Mayo 2013).
• Solution (presente en un 87% de las • Kärkkäinen,S. “Session Management”.
Unix Web Application Architectures.
publicaciones), se utiliza para describir http://webapparch.sourceforge.net/#23,
cuáles aspectos de seguridad atiende el October 2000. (Rev. Mayo 2013)

patrón y cómo se lo podría implementar; Tabla 3. Datos para la catalogación del patrón de
seguridad Authenticated Session.
dependerán del formato particular adoptado idea, que, si efectivamente funciona, se
por los autores para la descripción del puede luego extender a herramientas de uso
patrón de seguridad y de la calidad de la masivo, como por ejemplo una aplicación
información asociada): web con características ‘wiki’.
• Objetivo: se infiere de la sección Abstract JabRef es un software de gestión de
de la descripción. referencias bibliográficas configurable.
• Clasificación: el experto de seguridad que Utiliza como formato nativo BibTex (un
realiza la lectura y análisis del patrón formato de archivo basado en texto e
infiere que el mismo aplica a la Fase de independiente del estilo) para definir listas
Diseño, en el aspecto de ‘autenticación de de elementos bibliográficos, artículos, tesis,
usuarios’. etc. El formato determinado por BibText
• Aspecto de seguridad afectado: en el permite dividir cada tipo de entrada (Entry
párrafo final de la sección Problem de la Types: Artículo, Tesis, Manual, etc.) en una
descripción hace referencia a que “es fácil serie de parámetros regulares a todas ellas
cometer errores cuando se aplican (Fields: como nombre, autor, publicación)
mecanismos de sesiones a situaciones de forma que a la hora de su escritura o
donde responsabilización, integridad, y lectura podamos centrarnos en aquellos que
privacidad son críticas.”; en conozcamos y al mismo tiempo dar una
consecuencia, el patrón procura resolver organización básica a los elementos
estas falencias. mínimos y opcionales de toda entrada.
• Palabras claves: se infieren de las Para la generación del catálogo propuesto
secciones Name y As-Know-As (a.k.a). se aprovechó esta facilidad para el registro
• Referencia bibliográfica: a partir de las de referencias en este gestor; además, la
referencias incluidas en la sección existencia de los atributos distinguibles y
References, se seleccionan aquellas específicos en cada patrón permitió generar
fuentes cuya disponibilidad al momento un entry type especial (del tipo Patrón de
de la catalogación se puede verificar. Seguridad) con sus respectivos campos e
Para concretar esta propuesta, analizamos información general y/o opcional.
herramientas alternativas de uso extendido
que nos permitieran su implementación. La Figura 4 se presenta una pantalla de la
Decidimos construir un prototipo utilizando interface de JabRef, donde:
una herramienta para gestión de referencias • Grupos (Groups) (Sección 1). Se
bibliográficas: ‘JabRef’[16]. Ésta es una crearon grupos que corresponden a las
alternativa de muy bajo costo para probar la fases del desarrollo de software en la

1 2

3 4
Figura 4. Interface del catálogo en JabRef.
Seleccionando un grupo, en la Sección 2 requerimientos de seguridad se han
(Entry) aparecerán los patrones que definido adecuadamente, desarrollado los
correspondan a esa clasificación. controles de satisfacción de la seguridad, y
• Principal (Entry) (Sección 2). Las satisfecho los requerimientos de seguridad.
entradas cargadas en la base se presentan En del año 2009 se publicó el modelo de
como una tabla con los campos como madurez “Building Security In Maturity
columnas, las que pueden utilizarse para Model (BSIMM) diseñado para ayudar a
seleccionar un criterio de orden al entender y planificar una iniciativa de
presionar la columna deseada. Se pueden seguridad de software. Se trata de un
ver todas las referencias bibliográficas o modelo creado por un proceso de
a archivos relacionados haciendo click entendimiento y análisis de datos de un
derecho en la fila deseada de la columna conjunto de iniciativas de seguridad de
“File” (segunda columna), plegándose software destacadas: CLASP de OWASP,
una lista de valores. Si selecciona uno de Microsoft SDL, o Touchpoints de Cigital),.
estos, se dirigirá a la referencia Durante dicho proceso se relevaron y
solicitada, sea este un documento analizaron datos de estas experiencias,
disponible localmente o internet. habiéndose identificado que, si bien las
• Búsqueda (Search) (Sección 3). Permite metodologías particulares aplicadas se
buscar de acuerdo a un atributo y filtros diferencian, existen muchos puntos en
dentro de todo el catálogo. Luego de común en estas iniciativas. Estos puntos
una búsqueda, y ya mostrando la se son capturados y descritos en BSIMM.
lección de patrones que contienen la
frase o palabra buscada, al hacer doble BSIMM no es una guía completa de “cómo
click sobre estos y navegando por las manejar” la seguridad de software, sino
diferentes pestañas, las palabras una colección de buenas prácticas y
buscadas aparecerán resaltadas en azul. actividades que están en uso actualmente.
• Vista Preliminar (Sección 4). Se El modelo se apoya en el Software Security
modificó la versión original para que Framework, que proporciona un andamio
muestre por defecto la información del conceptual para BSIMM. Correctamente
patrón seleccionado en formato PDF, usado, BSIMM puede le ayuda a una
que es una representación más amigable organización a compararse en lo que
del contenido del patrón. Presionando el concierne a iniciativas mundiales de
botón derecho de mouse se puede seguridad de software, y definir los pasos
imprimir la vista preliminar. que puede tomar para lograr un abordaje
En esta figura se muestra la manera como más eficaz en pos de la producción de
se visualiza la información catalogada software seguro.
relativa al patrón Authenticated Session Dicho framework reconoce Doce Prácticas
[15], donde se observan los atributos organizadas en Cuatro Dominios:
propuestos para categorizar un patrón de Gobernanza: Aquellas prácticas que
seguridad. ayudan a organizar, manejar y medir una
iniciativa de seguridad de software. El
Modelo de Madurez en la Seguridad desarrollo de personal es también una
Cabe destacar el desarrollo de abordajes de práctica de central.
Aseguramiento de la Calidad (QA), para Inteligencia: Las prácticas que recolectan
las prácticas de desarrollo de sistemas y de el conocimiento corporativo usado en
software seguro. Se deben respetar las realizar actividades de seguridad de
pautas del QA en las principales software a lo largo de toda la organización.
actividades relacionadas con la Seguridad Las colecciones incluyen tanto la guía
durante el ciclo de vida de desarrollo a los proactiva de seguridad como el modelado
fines de proveer las garantías de que los de amenaza de la organización.
Puntos de contacto con el SSDL: Prácticas investigadores han llevado a cabo pruebas
asociadas con el análisis y el pilotos para evaluar la madurez de la
aseguramiento de artefactos de desarrollo seguridad en el proceso de desarrollo de
de software particulares y procesos. software en organizaciones públicas y
Despliegue: Prácticas que hacen a lo que privadas localizadas en la zona de la
realizan las organizaciones con la ciudad de Santa Fe. En esta primera
configuración y mantenimiento del experiencia, se hizo uso de la metodología
software, y otras cuestiones del ambiente BSIMM adaptada al ámbito local.
que tienen el impacto directo sobre la
seguridad de software. Conclusión
El modelo de madurez identifica para cada La seguridad en los sistemas de
Práctica, Tres Niveles de madurez, los que información es una preocupación constante
proporcionan una progresión natural a lo en todas las organizaciones que basan sus
largo de las actividades asociadas con cada estrategias de negocio en el uso de los
práctica. No obstante, no resulta necesario mismos, y sigue siendo un problema
realizar todas las actividades para un nivel latente en todas ellas. Los diferentes
dado antes de avanzar con las actividades avances en el tratamiento de soluciones al
en un nivel superior dentro de la misma problema de la seguridad en el software
práctica. procuran proveer de soluciones a un tema
De esta manera, mediante la identificación complejo. Como se pudo observar a lo
de los Objetivos y las Actividades largo de los diferentes proyectos de
correspondientes a cada Práctica que se investigación llevados adelante, son
aplique, y garantizando un balance múltiples los aspectos que se deben
apropiado con respecto a los dominios, es considerar desde la concepción de un
posible crear un plan estratégico para cada producto de software, hasta su puesta en
iniciativa de software seguro en particular. marcha y uso cotidiano. Asimismo, se
identificó que existen diferentes aspectos
Acciones relacionadas que se deben considerar para atacar este
Además de las actividades directamente problema y, también, distintas soluciones a
vinculadas con la ejecución de diferentes los mismos [18].
proyectos de investigación, cabe destacar En la última etapa, se focalizó el interés en
otras acciones derivadas de los avances los patrones de seguridad, y cómo estos
logrados en el dominio del software seguro. pueden ser utilizados como un instrumento
En el año 2012, se codirigió una tesis de para compartir conocimiento de expertos en
Maestría (Conti J., “Estudio e seguridad [19]. Atendiendo a este último
implementación de una biblioteca que aspecto, se ha trabajado en el desarrollo de
permita detectar vulnerabilidades en un prototipo que facilite su descubrimiento
aplicaciones web escritas en Python y acceso por parte de la comunidad, de
mediante el análisis de manchas”)[17]. En manera que puedan ser aprovechados en el
dicha tesis, se elaboró una técnica trabajo cotidiano. Uno de los próximos
destinada a evitar ataques por inyección de objetivos a encarar es evolucionar dicho
código malicioso en aplicaciones Web, que prototipo hacia una solución más completa
se puede integrar a frameworks de como soporte a los Patrones de Seguridad’.
codificación segura. De esta manera, Con tal propósito, se elaboró un proyecto
resultó posible abordar aspectos de investigación para desarrollar en los
relacionados a la etapa de Codificación, próximos dos años, en el cual además, se
con algunos aportes para esta fase del propone articular el uso de los patrones de
SDLC. seguridad con los Patrones de Ataque, otro
Por otra parte, durante el año 2013, instrumento que permite capturar y
integrantes del equipo de docentes modelar los problemas de seguridad a los
que se ven expuestos los sistemas en Modelado_de_Amenazas_en_el_diseño_de_sistem
general, y el software en particular. as.pdf
[9] Milano P., “Seguridad en el ciclo de vida del
Además, se elaboró otro proyecto de desarrollo de Software”, Seminario de Seguridad en
investigación para desarrollar en el mismo el Desarrollo de Software, CYBSEC Security
período, cuyo objetivo es ampliar y Systems, Argentina, 27 de agosto de 2008.
actualizar la base de conocimiento acerca [10] “The Microsoft SDL Threat Modeling Tool”,
de los modelos de madurez y marcos de Microsoft,http://www.microsoft.com/security/sdl/g
etstarted/threatmodeling.aspx, accedido junio de
referencia para la producción de software 2010.
seguro existentes y herramientas que los [11] ACE (Assessment, Consulting & Engineering)
soportan, así como evaluar su adecuación Team,“Threat Analysis and Modeling v3.0”,
al contexto nacional. De esta manera, se Microsoft,http://code.msdn.microsoft.com/tam/Rele
espera realizar nuevos aportes en el campo ase/ProjectReleases.aspx?ReleaseId=4180,
accedido junio de 2010.
del desarrollo de software seguro, en este [12] Ramos J., Romaniz S., Castellaro M..
caso orientados a facilitarle a las empresas “Patrones de seguridad aplicados a la función
que desarrollan software tanto para autorización”. Anales del XVIII Congreso
comercializar como para uso interno Argentino de Ciencias de la Computación CACIC
introducir mejoras en la calidad respecto 2012- Workshop de seguridad informática (WSI),
organizado por Red de Universidades con Carreras
de la seguridad en sus productos. en Informática (RedUNCI) -
http://sedici.unlp.edu.ar/handle/10915/23841. 2012.
Referencias ISBN 978-987-1648-34-4.Bahía Blanca. Argentina.
[1] Romaniz S., Castellaro M., Ramos J. “La [13] Fortify Software. [http://www.fortify.com/]
Seguridad como aspecto organizacional y [14] Cigital. [http://www.cigital.com/]
transversal en Proyectos de Sistemas de [15] Darrell M. Kienzle et al. "Security Patterns
Información”. 38 JAIIO - Workshop Seguridad Repository Version 1.0”. Disponible en
Informática. Mar del Plata, Argentina. 2009. http://www.scrypt.net/~celer/securitypatterns/reposi
[2] Romaniz S., Castellaro M., Ramos J., Feck C., tory.pdf
Gaspoz I., “Aplicar el Modelo de Amenazas para [16] http://jabref.sourceforge.net/
incluir la Seguridad en el Modelado de Sistemas”. [17] Conti J., Russo A.; “ A Taint Mode for Python
V Congreso Iberoamericano de Seguridad via a Library”; OWASP Europe AppSec Research
Informática-CIBSI 2009, Montevideo, Uruguay. 16 2010; Estocolmo Suecia;
a 18 de noviembre de 2009. Trabajos Completos- http://www.owasp.org/index.php?title=OWASP_A
ISBN: 978-9974-0-0593-8, Pag 118. ppSec_Research_2010_-
[3] Goertzel K., Winograd T., McKinley H., Oh L., _Stockholm,_Sweden&setlang=es#A_Taint_Mode
Colon M., McGibbon T., Fedchak E., Vienneau R. _for_Python_via_a_Library
“Software Security Assurance -State-of-the-Art [18] Castellaro M.; Pessolani P.; Ramos J.;
Report (SOAR)”, Information Assurance Romaniz S. “Hacia la Ingeniería de Software
Technology Analysis Center (IATAC). 2007. Seguro”. XV Congreso Argentino de Ciencias de la
[4] Avizienis, A et al.: “Basic and Concepts and Computación – CACIC, Jujuy, Argentina . 2009.
Taxonomy of Dependable and Secure Computing”. Trabajos Completos- ISBN: 978-897-24068-4-1 .
IEEE Transactions on Dependable and Secure Volumen WIS, pág 1257
Computing. Vol.1 No.1. (2004). [19] Ramos J.; Romaniz S.; Castellaro M.;
[5] Lipner S., Howard M. “El ciclo de vida de “Patrones de Seguridad aplicados a un Sistema de
desarrollo de seguridad de Trustworthy Compu- Toma de decisión”. Proceeding del Simposio del
ting”. Unidad tecnológica y empresarial de IIITEC Simposio Internacional de Innovación y
seguridad-Microsoft Corporation, 2004 Annual Tecnología ISIT2011-ISBN: 978-612-45917-1-6,
Computer Security Applications Conference, Pág. 43-48. Perú. 2011.
copatrocinada por IEEE. USA. 2004.
[6] CLASP. www.securesoftware.com/CLASP Datos de Contacto
[7] McGraw, G. Software Security: Building Marta Castellaro. Universidad Tecnológica
Security In. Addison-Wesley. 2006. Nacional - Facultad Regional Santa Fe. Lavaise
[8] Feck C. “Modelado de Amenazas, una 610 (S3004EWB) Santa Fe. Argentina.
herramienta para el tratamiento de la seguridad en mcastell@frsf.utn.edu.ar.
el diseño de sistemas”. 4º Congreso Nacional de
Estudiantes de Ingeniería en Sistemas de
Información (CNEISI 2010). Santa Fe.
http://www.frsf.utn.edu.ar/cneisi2010/archivos/22-