Está en la página 1de 23

Calidad y testing del software.

Aspectos esenciales para la


seguridad
ISO/IEC/IEEE 29119 Software Testing

Javier Tuya (giis.uniovi.es)


Grupo de Investigacion en Ingeniería del Software,
Universidad de Oviedo

AEN/CTN 71/SC7/GT26 – Ingeniería del Software y


Sistemas de Información – Pruebas del Software

Jornada de Ciberseguridad Corporativa, Gijón, 16 de Marzo de 2017


Agenda ¿QUÉ?

Requisitos de
Seguridad:
Common Criteria

Proceso de Testing:
ISO/IEC/IEEE 29119
“In Vitro” “In Vivo”

¿CÓMO?

AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 3


AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 4
Common Criteria
for Information Technology Security Evaluation
Parte 3
 Objetivo: Parte 2
Requisitos
Requisitos Parte 1
 Establecer nivel de confianza
Modelo Asegura-
 Compatibilidad entre Funcionales
miento
resultados de evaluaciones
independientes de seguridad
 Para:
 Consumidores: definir necesidades Evaluación
 Desarrolladores: identificar requisitos
y preparar/asistir evaluaciones
 Evaluadores: Establecer un juicio
sobre la conformidad
 CC Recognition Agreement
 17 Authorizing Members. ES: Centro Criptológico Nacional

AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 5


CC: Requisitos Funcionales
Family – Component –
Functional class Requirement
FAU: Security Audit FAU_GEN Security audit data
FCO: Communication generation
FCS: Cryptographic Support FAU_GEN.1 Audit data generation
FDP: User Data Protection 1.1. The TSF shall be able to
FIA: Identification and generate an audit record of the
Authentication following auditable events:
FMT: Security Management …
FPR: Privacy 1.2. …
FPT: Protection of the TSF FAU_GEN.2 User identity association
FRU: Resource Utilisation …
FTA: TOE Access FAU_SAA Security Audit Analysis
FTP: Trusted Path/Channels …

AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 6


CC: Requisitos de Aseguramiento
Assurance Level

EAL1: functionally tested


x Class – Family –
Component
Development …
EAL2: structurally tested
Guidance documents …
EAL3: metodically tested
Life-cycle support …
and checked
Security target evaluation …
EAL4: metodically designed,
Tests
tested and reviewed
ATE_COV: Coverage
EAL5: semiformally designed
1, 2, 3
and tested
ATE_DPT: Depth …
EAL6 semiformally verified
ATE_FUN: Functional tests …
design and tested
ATE_IND: Independent testing…
EAL7: formally verified
Vulnerability assessment …
design and tested

AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 7


CC: Componentes por Nivel de
Aseguramiento ATE_COV.1.1C The evidence of the
test coverage shall show the
Assur. Assur. Assur. Comp. by correspondence between the tests in
Class Family Eval. Assur. Lev. the test documentation and the TSFIs
1 2 3 4 5 6 7 in the functional specification

Tests ATE_COV 1 2 2 2 3 3
ATE_FUN.1.1C The test documentation
ATE_DPT 1 2 3 3 4 shall consist of test plans, expected
ATE_FUN 1 1 1 1 2 2 test results and actual test results.
ATE_FUN.1.2C The test plans shall
ATE_IND 1 2 2 2 2 2 3 identify the tests to be performed and
V. A. AVA_VAN 1 2 2 3 4 5 5 describe the scenarios…

ATE_IND.1.2E The evaluator ATE_IND.2.2E The evaluator


shall test a subset of the TSF shall execute a sample of tests
to confirm that the TSF in the test documentation to
operates as specified verify the developer test results
AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 8
Cómo realizar las pruebas
Seguridad Herramientas

Common
Criteria

Conocimientos
Habilidades
 CCEM define actividades y tareas
que realiza el evaluador
Proceso,  Pero no entra en detalle de cómo
Estándar, los desarrolladores realizan las
Método actividades de testing y obtienen
las evidencias requeridas

AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 9


Qué Estándares utilizar
 BS 7925-1, SW Testing: Part 1-Vocabulary
 BS 7925-2, SW Testing: Part 2-Software Comp.
Testing
 IEEE Std 829, Software Test Documentation
 IEEE Std 1008, Software Unit Testing
 Estándares generales: ISO/IEC 12207, 15289
 Estándares sectoriales

 Aspectos clave sin cubrir en los anteriores:


 Pruebas no unitarias (integración, sistema, aceptación)
 Modelo de procesos explíctio
 Aspectos organizativos y gestión del proyecto. Riesgos
 Visión más completa de técnicas de prueba
 Definiciones en conflicto, procesos y procedimientos
AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 10
ISO/IEC/IEEE 29119 Software
Testing
 Propósito: to unify and integrate the
ISO IEC UNE currently fragmented corpus of
(antes AENOR) normative literature regarding
testing that is currently offered by
JTC1 CTN71 three distinct standards-makers:
BSI, IEEE, and ISO/IEC JTC1/SC7.
The result of the project will be a
SC7 SC7 consistent, unified treatment
adopted by all three organizations”
WG26 GT26  GT26: Pruebas del Software
 http://in2test.lsi.uniovi.es/gt26/

AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 11


ISO/IEC/IEEE 29119 Software
Testing - Estructura
Parte 1 : 2013
BS 7925-1
Conceptos y Definiciones

Parte 4 : 2015 Parte 2 : 2013 Parte 3 : 2013


Técnicas de
Procesos Documentación
Prueba

BS 7925-2 IEEE 829

Parte 5 : 2016 33063 : 2015 20246 : 2017


IEEE 1028
Pruebas Revisión de
Dirigidas por Evaluación de Productos de
Palabras Clave Procesos Trabajo
Parte 1 – Conceptos y Definiciones
 Testing
 “Set of activities conducted to facilitate discovery
and/or evaluation of properties of one or more test
items”
 Static testing: without code being executed
 Dynamic testing: requires the execution of the test item
 Including: planning, preparation, execution, reporting, and
management activities
 Conceptos sobre pruebas de software:
 Pruebas basadas en riesgos. Estrategias de prueba
 Diferentes modelos de ciclo de vida
 Automatización de las pruebas. Métricas
 Roles y responsabilidades. Problemas en la gestión
 …
AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 13
Parte 2 - Modelo de Procesos
de pruebas
Procesos de prueba de la organización

Procesos de gestión de las pruebas


Control y
Planificación Finalización
seguimiento

Procesos de pruebas dinámicas


Diseño e Gestión del Reporte de
Ejecución
Implement. entorno incidencias

14
AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119
P2 Procesos de Gestión
Procesos de Pruebas de la Organización
Política Realimentación para la política
y estrategia de pruebas y estrategia de pruebas

Actualizaciones del Procesos de Gestión de pruebas


Plan
Informe de
Plan Resultados Finalización
Control y
Planificación Finalización
seguimiento

Plan, Directrices Plan, Informe del estado Plan, Directrices


de Control Informe de finalización, de Control Métricas
Métricas
Procesos de Pruebas
Procesos de Dinámicas
Gestión de Pruebas
Plan, Directrices Métricas
de Control

Procesos de Pruebas
Dinámicas
AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 15
P2 Aplicación recursiva
de procesos - Ejemplo
Gestión de las pruebas
de la organización Puede adquirir
Entidad propia
Política de pruebas
Estrategia de pruebas de la organización En el marco de un
Master Test Plan
Gestión de las pruebas
del proyecto
Plan de pruebas del proyecto (Master Test Plan)

Gestión de Gestión de Gestión de


pruebas pruebas pruebas ...
de integración y sistema de seguridad de aceptación
Plan de pruebas. Plan de pruebas Plan de pruebas
de int. y sistema de seguridad de aceptación

Pruebas Funcionales, Pruebas Pruebas ...


de Rendimiento… de seguridad de aceptación

AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 16


P2 Procesos de Gestión
Alcance
CC P1
Entender el Requisitos CC P2
Contexto (TP1) Seguiridad
Calendario del plan de pruebas
Organizar el Niveles de
Plan de Análisis de Aseguram.
Pruebas (TP2) Identificar y Riesgos
Analizar
Riesgos (TP3) Identificar las Enfoque de Mitigación

mitigaciones
de riesgos (TP4)
Diseñar la
Planificación Estrategia de
Pruebas (TP5)
Determinar
personal y
Registrar el calendario (TP6) Estrategia de Prueba

Plan de
Consenso del Pruebas (TP7)
Calendario y
plan de pruebas Perfil del Personal
Plan de
Pruebas (TP8)
Comunicar Borrador Plan
de Pruebas
Plan de
Pruebas (TP9) Aprobación Plan
de Pruebas

AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 17


P2 Procesos de Gestión
Seguimiento y Informe del estado de las pruebas

Control
Reporte Control [Pruebas Incompletas]
Progreso (TMC4)
Plan
Preparación Métricas Monitorización Control
(TMC1) (TMC2) Progreso (TMC3) [Pruebas
Completas]
Directrices
Métricas de Control

Procesos
de Pruebas …Procesos de Pruebas…
<<Instanciado>>
Dinámicas
<<Instanciado>>

Procesos de
Gestión de Pruebas
AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 18
P2 Procesos de Gestión
Archivar
Activos
(TC1)
Limpiar Entorno disponible
Entorno
(TC2)
Lecciones Lecciones Aprendidas
Aprendidas
(TC3)
Finalización Informar Informe Finalización
Finalización
(TC4)

AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 19


P2 Procesos de Pruebas
Dinámicas
Procesos de Gestión de pruebas

Plan de Pruebas Métricas Directrices de Control

Procesos de Pruebas Dinámicas


Especificación Resultados [Sin
Diseño e de pruebas de pruebas incidencias]
implementación Ejecución de pruebas
de pruebas [Incidencia
detectada
Requisitos O Repetir Informe
del prueba] de
entorno de incidencia
pruebas
Preparación y Informe de
mantenimiento incidencias
del entorno de pruebas Informe de entorno en pruebas
de pruebas
disponible

AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 20


P2 Procesos de Pruebas
Dinámicas
Identificar juegos de Juegos de características
características (TD1)
Diseño e Implementación
CC P2
Derivar condiciones Condiciones de prueba (test conditions) ATE_COV
de prueba (TD2) ATE_DPT
Situaciones que deben cubrir las
Derivar elementos de pruebas (test coverage ítems)
cobertura de prueba (TD3) CC P2
ATE_FUN
CC P1 ATE_IND
Derivar casos Casos de prueba
Requisitos
de prueba (TD4)
Seguridad

Ensamblar conjuntos Conjuntos de pruebas


de pruebas (TD5) Procedimientos y
Base de pruebas scripts de
(Test basis) Derivar procedimientos prueba
de prueba (TD6)

AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 21


Parte 3 – Documentación
 Define plantillas que pueden ser utilizadas para generar
documentación (information items) producto de los
procesos de la parte 2
 Diferentes formas: registro electrónico, dividido, combinado
 Conformidad adaptada: según procesos de P2 o según
necesidades de proyecto/organización.
 Ejemplos (Anexos C a S). Versiones diferentes para
proyectos ágiles y tradicionales, p.e.
 Políticas y estrategias de la organización
 Plan de pruebas e informes de estado
 Especificaciones de pruebas, entorno y datos …
 Mapeo a otros estándares (Anexo T):
 IEEE 829:2008, BS 7925-2 1998
 ISO/IEC 15289, ISO/IEC 25051:2006
AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 22
Parte 4 –Técnicas para el diseño
de las pruebas
 Conformidad
 Total: Subconjunto elegido de técnicas
 Adaptada: Subconjunto de requisitos. Nuevas Técnicas
 Técnicas para el diseño de las pruebas
 Basadas en las especificaciones
 Basadas en la estructura
 Basada en la experiencia
 Medidas de cobertura
 Anexos
 Anexo A. Características de calidad
 Anexo B, C y D. Guías y ejemplos de aplicación de las
diferentes técnicas de diseño
 Anexo E. Efectividad en el cálculo de la cobertura
AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 23
Resumen/Conclusión
 Common Criteria:
 Establecer un nivel de confianza en un producto
 Requisitos de seguridad y diferentes niveles de aseguramiento
 Directrices para definir qué evaluar en relación a la seguridad
 ISO/IEC/IEEE 29119 Software Testing
 Directrices para la realización de las pruebas cubriendo todos los
aspectos del ciclo de vida (definiciones, procesos, técnicas)
 Soluciona dispersión y huecos no cubiertos por estándares anteriores
 Adoptado por los comités de normalización nacionales: IEEE y BSI
 Actualmente representado por 26 naciones, revisado por profesionales
de las pruebas de software en todo el mundo
 Paso adelante hacia la profesionalización de esta industria.
 Más información y contacto:
 Grupo de trabajo GT26 (http://in2test.lsi.uniovi.es/gt26/)
 Coordinador GT: Javier Tuya (http://giis.uniov.es/)

AEN/CTN 71/SC7/GT26 - UNE Pruebas software - Seguridad - ISO/IEC/IEEE 29119 24