19 abril 2021 19:28

Caja gris

¿Qué es una caja gris?

El recuadro gris se refiere a las pruebas de software en las que existe un conocimiento limitado de su funcionamiento interno. La prueba de caja gris es una técnica de piratería ética en la que el pirata informático tiene que utilizar información limitada para identificar las fortalezas y debilidades de la red de seguridad de un objetivo.

Conclusiones clave

  • La prueba de caja gris es una técnica para descubrir errores de software o encontrar exploits, donde se conoce de antemano algún conocimiento limitado sobre el software subyacente.
  • Esta forma de «piratería ética» permite a los desarrolladores de software crear correcciones y parches para evitar que atacantes malintencionados utilicen estas vulnerabilidades.
  • Las pruebas de caja gris son esencialmente una combinación de metodologías de caja blanca (conocimiento completo) y caja negra (sin conocimiento).

Entendiendo las cajas grises

Gray box es el híbrido de las pruebas de caja blanca, donde el probador examina la lógica interna y la estructura del código del software, y las pruebas de caja negra, donde el probador no sabe nada sobre el código del software. Para comprender las pruebas de caja gris, primero debemos comprender las pruebas de caja negra y las pruebas de caja blanca.

Prueba de caja negra y caja blanca

Las pruebas de caja negra no miran más que las entradas del usuario y qué salida produce el software dadas esas entradas. Las pruebas de caja negra no requieren ningún conocimiento del lenguaje de programación u otros detalles técnicos. Es un tipo de prueba de alto nivel que se utiliza en pruebas de sistemas y pruebas de aceptación. Los ingenieros de software requieren un documento de especificación de requisitos de software (SRS) para realizar las pruebas de caja negra. Esta prueba toma una perspectiva del usuario final donde el probador de caja negra no sabe cómo se generan las salidas a partir de las entradas.

Las pruebas de caja blanca requieren un conocimiento profundo de las técnicas y plataformas utilizadas para construir software, incluido el lenguaje de programación relevante. Es un tipo de prueba de bajo nivel que se utiliza en pruebas unitarias y pruebas de indicación. Los ingenieros de software deben comprender el lenguaje de programación utilizado para crear la aplicación para poder comprender su código fuente. Los propósitos principales de las pruebas de caja blanca son fortalecer la seguridad, examinar cómo fluyen las entradas y salidas a través de la aplicación y mejorar el diseño y la usabilidad. Cuando un probador de caja blanca no obtiene el resultado esperado de una entrada determinada, el resultado se considera un error que debe corregirse.

Cómo funcionan las pruebas de caja gris

Las pruebas de caja gris incluyen componentes importantes de las pruebas de caja blanca y negra para obtener un resultado mejor que el que cualquiera podría obtener por sí solo. Tanto los usuarios finales como los desarrolladores realizan pruebas de caja gris con un conocimiento limitado (parcial) del código fuente de una aplicación. Las pruebas de caja gris pueden ser manuales o automatizadas. Es más completo y requiere más tiempo que las pruebas de caja negra, pero no es tan completo ni requiere tanto tiempo como las pruebas de caja blanca. Los probadores de caja gris requieren documentos de diseño detallados.

Las pruebas de caja gris implican la identificación de entradas, salidas, rutas principales y subfunciones. Luego pasa a desarrollar entradas y salidas para subfunciones, ejecutar casos de prueba para subfunciones y verificar esos resultados.

Ejemplo de caja gris

Un probador de caja gris puede verificar y corregir los enlaces en un sitio web. Si un vínculo no funciona, el evaluador cambia el código HTML para intentar que funcione, luego vuelve a verificar la interfaz de usuario para ver si el vínculo funciona. Un probador de caja gris también puede probar una calculadora en línea. El probador definiría las entradas (fórmulas matemáticas como 1 + 1, 2 * 2, 5-4 y 15/3) y luego verificaría que la calculadora proporcione las salidas correctas dadas esas entradas. El probador de caja gris tiene acceso al código HTML de la calculadora y puede cambiarlo si se identifica algún error.

La prueba de caja gris analiza tanto la interfaz de usuario de la aplicación, o la capa de presentación, como su funcionamiento interno o código. Se utiliza principalmente en pruebas de integración y pruebas de penetración, pero no es adecuado para pruebas de algoritmos. Las pruebas de caja gris se utilizan generalmente para probar la interfaz de usuario, la seguridad o la funcionalidad en línea de una aplicación a través de técnicas como pruebas de matriz, pruebas de regresión, pruebas de matriz ortogonal y pruebas de patrones. Los probadores de caja gris tienen más probabilidades de identificar problemas específicos del contexto.

«Gris» se refiere a la capacidad parcial del probador para ver el funcionamiento interno de la aplicación. «Blanco» se refiere a la capacidad de ver a través de la interfaz del software su funcionamiento interno, y «negro» se refiere a la incapacidad de ver el funcionamiento interno del software. La prueba de caja gris a veces se llama prueba translúcida, mientras que la prueba de caja blanca a veces se llama prueba clara y la prueba de caja negra también puede llamarse prueba opaca.