Análisis y pruebas de seguridad

Descripción general

Las pruebas de seguridad del código de Oracle incluyen actividades operativas y no operativas para la verificación de la calidad y las características del producto. Aunque a menudo estos tipos de pruebas se dirigen a características de productos superpuestas, tienen objetivos independientes y las llevan a cabo diferentes equipos. Las pruebas de seguridad operativas y no operativas se complementan entre sí para garantizar que se atienden todos los aspectos de la seguridad de los productos Oracle.

Pruebas de seguridad operativas

Habitualmente, las pruebas de seguridad operativas las llevan a cabos equipos de control de calidad de productos establecidos, dentro del ciclo de comprobación de los productos ordinario. Durante estas comprobaciones, los ingenieros de control de calidad verifican la conformidad de las características de seguridad implementadas con los acuerdos previos establecidos en las especificaciones operativas del proceso de revisiones de listas de comprobación y arquitectura.

Análisis y pruebas de garantía de seguridad

Los análisis y comprobaciones de garantía de seguridad verifican las características de seguridad de los productos Oracle respecto a diversos tipos de ataques. Para comprobar los productos Oracle se aplican dos categorías generales de pruebas: análisis dinámicos y estáticos, que se describen de forma detallada en los apartados siguientes. Estas pruebas se integran de formas diferentes en el ciclo de desarrollo de productos y su objetivo es localizar diferentes categorías de problemas; en consecuencia, los equipos de productos Oracle las utilizan de forma combinada.

Análisis estáticos

Los análisis estáticos de seguridad del código fuente son la primera línea de defensa que se aplica en el ciclo de desarrollo de productos. Oracle utiliza un analizador de código estático de Fortify Software, una empresa de HP, y diversas herramientas de desarrollo interno para detectar problemas durante la fase de escritura del código. Los productos, desarrollados con las plataformas (J2EE, .NET) y los lenguajes de programación más modernos (como C/C++, Java o C#), se escanean en busca de problemas de seguridad en potencia. Este tipo de comprobaciones es muy eficaz para identificar desbordamientos de búfer y fugas de memoria en código C/C++, problemas de gestión de recursos en J2EE y .NET, localizar gestiones incorrectas de credenciales, diversas inserciones, configuraciones incorrectas del sistema, etc. Una de las desventajas de este tipo de análisis es un elevado número de informes con falsos positivos. Es decir, pocos de los elementos incluidos en los informes constituyen problemas reales. Habitualmente, en el análisis de estos informes de exploración participan ingenieros sénior de los equipos de productos familiarizados con el código de producto, capaces de diferenciar los falsos positivos de los problemas reales y reducir el número de falsos positivos.

Análisis dinámicos

La actividad de análisis dinámicos siempre se lleva a cabo en las últimas fases del desarrollo del producto: como mínimo, el producto o componente se debe poder ejecutar. Aunque esta actividad puede cambiar según la organización de Oracle implicada, lo habitual es que la lleve a cabo un equipo de control de calidad de seguridad (o un grupo similar dedicado) y que pueda estar a disposición de varios equipos de productos. El análisis dinámico se dirige a API e interfaces de productos visibles de forma externa, y frecuentemente utiliza herramientas especializadas para las comprobaciones. Para las comprobaciones que se realizan en Oracle se utilizan herramientas manuales y automáticas. Las herramientas automáticas emplean una técnica de pruebas de exploración de vulnerabilidades mediante datos aleatorios para comprobar protocolos e interfaces de producto accesibles a través de la red. En las herramientas manuales, los cambios se deben realizar a mano, pero ofrecen una precisión y una exactitud mucho mayores.