Autores:
(1) Amit Seal Ami, Departamento de Ciencias de la Computación, William & Mary Williamsburg, Virginia, EE. UU., y este autor contribuyeron igualmente a este artículo ([email protected]);
(2) Syed Yusuf Ahmed, Instituto de Tecnología de la Información, Universidad de Dhaka Dhaka, Bangladesh, y este autor contribuyeron igualmente a este artículo ([email protected]);
(3) Radowan Mahmud Redoy, Instituto de Tecnología de la Información, Universidad de Dhaka Dhaka, Bangladesh, y este autor contribuyeron igualmente a este artículo ([email protected]);
(4) Nathan Cooper, Departamento de Ciencias de la Computación, William & Mary Williamsburg, Virginia, EE. UU. ([email protected]);
(5) Kaushal Kafle, Departamento de Ciencias de la Computación, William & Mary Williamsburg, Virginia, EE. UU. ([email protected]);
(6) Kevin Moran, Departamento de Ciencias de la Computación, Universidad de Florida Central Orlando, Florida, EE. UU. ([email protected]);
(7) Denys Poshyvanyk, Departamento de Ciencias de la Computación, William & Mary Williamsburg, Virginia, EE. UU. ([email protected]);
(8) Adwait Nadkarni, Departamento de Ciencias de la Computación, William & Mary Williamsburg, Virginia, EE. UU. ([email protected]).
6 Trabajo futuro y conclusiones, agradecimientos y referencias
Si bien los ingenieros de software están adoptando con optimismo detectores de uso indebido de cripto-API (o criptodetectores) en sus ciclos de desarrollo de software, este impulso debe ir acompañado de una comprensión rigurosa de la eficacia de los criptodetectores para encontrar usos indebidos de criptoAPI en la práctica. Este documento de demostración presenta los detalles técnicos y los escenarios de uso de nuestra herramienta, concretamente el análisis de mutaciones para evaluar detectores de uso indebido de Crypto-API estático (MASC). Desarrollamos 12 operadores de mutación basados en el uso generalizables y tres alcances de mutación, a saber, alcance principal, alcance de similitud y alcance exhaustivo, que pueden usarse para crear instancias expresivas de variantes compilables de los casos de uso indebido de cripto-API. Utilizando MASC, evaluamos nueve criptodetectores importantes y descubrimos 19 fallas únicas e indocumentadas. Diseñamos MASC para que sea configurable y fácil de usar; un usuario puede configurar los parámetros para cambiar la naturaleza de las mutaciones generadas. Además, MASC viene con una interfaz de línea de comandos y una interfaz basada en web, lo que lo hace práctico para usuarios con diferentes niveles de experiencia.
Código: https://github.com/Secure-Platforms-Lab-WM/MASC
Los ingenieros de software han confiado en los criptodetectores durante décadas para garantizar el uso correcto de las API criptográficas en el software y los servicios que crean, desarrollan y mantienen [6]. Estos criptodetectores son omnipresentes en la ingeniería de software, ya que están integrados en IDE (por ejemplo, el complemento CogniCrypt para Eclipse IDE [8]), conjuntos de pruebas de organizaciones como Oracle Corporation [9, 17] y para integración continua/implementación continua (CI). /CD) tuberías [12, 18]. Además, los proveedores de alojamiento como GitHub están aprovisionando formalmente dichos criptodetectores, por ejemplo, GitHub Code Scan Initiative [10]. En otras palabras, la seguridad del software y los servicios depende cada vez más de los criptodetectores. Sin embargo, hemos confiado en puntos de referencia seleccionados manualmente para evaluar el rendimiento de los criptodetectores; se sabe que dichos puntos de referencia son incompletos, incorrectos y poco prácticos de mantener [16]. Por lo tanto, determinar la efectividad de los criptodetectores desde una perspectiva centrada en la seguridad requiere una técnica de evaluación confiable y en evolución que pueda escalar con el volumen y la diversidad de las cripto-API y los diferentes patrones de uso indebido.
Contextualizamos las técnicas de prueba de mutaciones para crear el análisis de mutaciones para evaluar el marco de los detectores de uso indebido de Crypto-API estático (MASC). En nuestra implementación prototipo original de MASC [3], aprovechó internamente 12 operadores de mutación basados en el uso y generalizables para crear instancias de mutaciones de casos de uso indebido de cripto-API para Java. Los operadores de mutación se diseñaron basándose en los principios de diseño de la Arquitectura criptográfica Java (JCA) [11] y un modelo de amenaza que constaba de usuarios con diferentes habilidades e intenciones (Sección 4.1). MASC inyecta estos casos de uso indebido mutados en aplicaciones basadas en Java o Android en tres alcances de mutación (sitios de inyección), a saber, Alcance de similitud (extendido de MDroid+ [13, 14]), Alcance exhaustivo (extendido de 𝜇SE [4, 5, 7]) y su alcance principal desarrollado de forma independiente, creando así aplicaciones mutadas que contienen un uso indebido de cripto-API. Demostramos la practicidad de la implementación del prototipo de MASC mediante la evaluación de nueve criptodetectores de la industria y el mundo académico, y descubrimos 19 fallas desconocidas y no documentadas previamente que comprometen la solidez dentro del alcance de los criptodetectores. Los detalles completos de la metodología de MASC, las consideraciones de diseño, la evaluación de criptodetectores que conducen a encontrar fallas novedosas, el impacto práctico de las fallas encontradas en aplicaciones de código abierto (por lo tanto, la aplicabilidad de los operadores de mutación) y la discusión de los hallazgos están disponibles en el artículo de investigación original [3].
En este artículo, presentamos una implementación madura del marco MASC con enfoque en la extensibilidad, facilidad de uso y mantenibilidad para las partes interesadas de los criptodetectores, como investigadores, desarrolladores y usuarios de seguridad. Para profundizar, debido a la arquitectura de complemento recientemente desarrollada, los usuarios de MASC ahora pueden crear sus propios operadores de mutación que se pueden conectar fácilmente a MASC, sin profundizar en la base de código existente (más de 11 líneas de código fuente). Además, mientras que la implementación del prototipo original de MASC implicaba una evaluación semiautomática de criptodetectores, automatizamos el flujo de trabajo de MASC aprovechando la salida de facto de los criptodetectores con formato SARIF [15]. Además, hemos creado una interfaz web de la implementación de MASC para que los usuarios reduzcan la barrera de entrada. Finalmente, reestructuramos y refactorizamos la base de código de código abierto de MASC para aumentar la capacidad de mantenimiento y extensibilidad de MASC, lo que facilitará las contribuciones y mejoras futuras tanto para los desarrolladores como para los entusiastas del código abierto de MASC. Con estas adiciones y mejoras, esperamos que la implementación actual de código abierto de MASC se utilice para encontrar fallas en los criptodetectores existentes y, por lo tanto, ayudar a mejorarlos.
Contribución : presentamos MASC, un marco fácil de usar que aprovecha técnicas de prueba de mutaciones para evaluar criptodetectores, con detalles de técnicas subyacentes, consideraciones de diseño y mejoras. Las nuevas características clave de MASC son las siguientes: Evaluación automatizada de criptodetectores: MASC se puede utilizar para evaluar criptodetectores en un flujo de trabajo automatizado de extremo a extremo dentro del alcance principal.
Evaluación personalizable de criptodetectores: un usuario puede personalizar la evaluación de criptodetectores especificando los operadores de mutación para crear instancias de uso indebido de cripto-API.
Arquitectura de complemento para operadores personalizados : MASC ayuda a los investigadores, desarrolladores y usuarios de seguridad a comenzar directamente a evaluar criptodetectores mediante la creación de sus propios operadores de mutación personalizados que se pueden conectar directamente al alcance principal, sin necesidad de que aprendan ni comprendan. sobre los detalles internos de MASC.
Interfaz fácil de usar para usuarios finales : además de mejorar la interfaz de línea de comandos de la implementación del prototipo original, creamos e presentamos una interfaz de código abierto basada en web para usuarios finales que se puede ejecutar localmente. El front-end contiene una interfaz adicional de juego, prueba y aprendizaje, MASC Lab, donde las partes interesadas pueden interactuar con los operadores de mutación y aprender sobre el uso indebido de la cripto-API mutante.
Disponibilidad de herramientas y datos: la implementación del prototipo del marco MASC, scripts y resultados de la evaluación de criptodetectores.
como se describe en el artículo original [3], están disponibles en MASC Artifact [1]. Además, la base de código de la implementación madura y mantenida activamente de MASC está disponible por separado con documentación y ejemplos extensos [2].
Este documento está disponible en arxiv bajo licencia CC BY-NC-SA 4.0 DEED.