© 2006 IBM Corporation
Seguridad en el
Contexto de la Calidad
del Software
Mario Céspedes S. IBM Software CTP [email protected]Las demandas para Calidad hoy
Entregar más calidad y alto desempeño en menos tiempo
Disminuir los costos: El QA no puede “vivir en paz” con la velocidad actual del cambio de software. El testing manual no logra escalar. No existe gran experiencia en el testing de desempeño y la resolución de “cuellos de botella” siguen siendo complejos.
Proteger la “IMAGEN” de la organización: Una solución
integrada que considere desde el testing funcional hasta el testing de seguridad para escenarios de negocio “end-to-end”.
Buscar ciclos de prueba más cortos: La imperiosa necesidad de automatizar.
Administrar los Activos para Optimo Reuso
Asset Artifact Artifact Artifact Asset Artifact Artifact Artifact Asset Artifact Artifact Artifact Asset Artifact Artifact ArtifactPor qué gestionar los activos
– Aumentar la calidad de la reutilización de los activos de bien probado
–
Aumentar
el ROI de los Activos
–
Menor costo por reuso
–
Menor riesgo por el reuso de activos
probados
Qué hay que hacer
• Cadenas de responsabilidad to empower people
• Politicas que permitan guiar la
organización para alcanzar sus metas
• Mecanismos Control que garanticen el cumplimiento
• Comunicación para mantener informado a todas las partes necesarias
La Realidad: La Mayoría de los Atacantes están Enfocándose en
las Aplicaciones Web
De Todos los Ataques sobre la seguridad de la Información son Dirigidos a la Capa Web
75%
75%
De todas las Aplicaciones Web son Vulnerables
2/3
2/3
Causa Principal:
Los Desarrolladores no están Entrenados para
Desarrollar o Probar Código Seguro
Las practicas de código seguro no son parte central en los objetivos de desarrollo
En general, a los desarrolladores les falta conocimiento y les faltan herramientas para probar durante el desarrollo
La seguridad de redes no hace nada una vez que
la organización habilita una aplicación web
Los Firewalls e IPS's(no IBM) no bloquean ataques a las aplicaciones (Los Puertos 80 y 443 están abiertos)
Los escáneres de red no encuentran vulnerabilidades en las aplicaciones.
Escanea Aplicaciones Web Analiza
(Identifica Problemas)
Automatiza las Pruebas de Seguridad de
Aplicaciones Web
Reporta (detallado y útil)
Automatización de las Pruebas de Seguridad
IBM Rational AppScan
Nuestra visión de Calidad…
Build DevelopersSDLC
Developers DevelopersCoding QA Security Production
Pruebas de Carga y Estress
Son aquellas pruebas que permite someter una aplicación mediante la emulación del comportamiento de usuarios reales la generación de carga con el fin de encontrar los cuellos de botella del sistema
Rational
Performance
Tester
System Under Test
Performance
Identificación de problemas de rendimiento durante
la Ejecución de la prueba
Las pruebas de performance encuentran los cuellos de botella
Página de informe de rendimiento muestra el tiempo medio de respuesta por página. Barra mas alta = Problema de rendimiento
Desempeño & Estádisticas de recursos
Los datos del monitoreo de los recursos se pueden mostrar en un mismo gráfico como datos
de tiempo de respuesta en una sola vista facilitando la correlación de los recursos y respuesta
Como damos soporte a la norma ISO 27002
Rational Asset Manager
7.1.1 Asset Inventory
7.1.2 Ownership of assets 7.1.3 Aceptable use of assets
Rational Appscan
10.4.1 Control Against malicious code 10.4.2 Control Against mobile code 12.2.1 Input data Validation
12.2.2 Control Internal Procesing 12.2.4 Output data validation
12.4.3 Access Control to program source code
Rational Software Analyzer
© 2006 IBM Corporation
Calidad en los Test
Aceptación de
Sistemas
La automatización de pruebas tiene su propios desafíos
Cómo implementar de manera efectiva la automatización de pruebas y reducir al mínimo gastosCostos: Obtener valor rapidamente y reducir los costos de mantención de largo plazo
Complejidad: Asegurar que todo el software en la
organización se prueba de manera efectiva, independiente de la plataforma, o del ambiente.
Respuesta: Activar el equipo de pruebas para crear y ejecutar pruebas de manera eficiente y maximizar la capacidad de
Mejorar el valor en la calidad de sus sistemas
En consecuencia: ¿En qué buscamos
ayudarles?
Disminuir los riesgos y los costos
– La colaboración es una herramienta que permite disminuir el retrabajo, costos de defectos, y fomentar un mejor
aprovechamiento de los recursos
Reducir el tiempo de entrega (“time to market”)
– Las automatizaciones “inteligentes” permiten reducir el error humano y mejorar la calidad operacional
Brindar visibilidad para tomar decisiones
– Contar con métricas en tiempo real permite brindar la información necesaria respecto a la calidad “concreta” de los sistemas.
Solución IBM Rational para Calidad
Storage Collaboration
Search & Query Discovery
Administration: Users, projects, process
Presentation:
Mashups
Best Practice Processes
Manage Test Lab Create
Plan TestsBuild ExecuteTests ResultsReport
IBM Collaborative Application Lifecycle Management
Test Management
Rational Quality Manager Quality Dashboard
Requirements
Management Defect
Management
Open Lifecycle Service Integrations Functional
Testing Performance Web Service Code
Quality Security and Compliance Open Platform Test Data Quality Java System z, i SAP .NET
El factor de Administración y Automatización
No mal interpretar el complemento entre
la administración y la automatización.
Reutilización de activos de QA
considerando diversas tecnologías
– Java, .NET, System z, System I, C++, Visual Basic 5-6, ADA, …
– Web Services, BPEL, MQ, Sockets, HTTP
– Oracle E-Business Applications
– SAP
– Siebel
– Citrix
Automatizaciones externas
– Open-Source: JUnit, JMeter, etc..
– Adaptadores con código abierto
Productividad de equipo en “zero-day”
Potenciar la automatización del testing mediante la suite IBM Rational sin
necesidad de conocimiento programático:
– Rational Functional Tester
– Rational Performance Tester
– Rational Services Tester
– Rational AppScan
– Rational Software Analyzer
Análisis de SLA (requerimientos no
funcionales) para testing de desempeño
Foco en el testing incremental desde la definición hasta la formación de prototipos
“Hacking-on-the-box”: La capacidad de
probar la seguridad de un sistema de forma automática
Procesos robustos soportan el
Desarrollo de software de un negocio Exitoso
Lograr los objetivos optimizando el como trabajan las
personas Incrementar el control y eficiencia por la integración de flujos y su automatización Colaboración Mejora continua midiendo el progreso en tiempo real Reportes Automatizar
Mejoras de un 25%-43% de productividad por colaboración (en días) Mejoras de un 37%-65% de costos por automatización (en semanas)Mejoras de 50%-70% por visibilidad (en pocos meses)
Mejoras de un 25%-43% de productividad por colaboración (en días)Mejoras de un 37%-65% de costos por automatización (en semanas)