paint-brush
MASC: uma ferramenta para avaliação baseada em mutação de detectores estáticos de uso indevido de criptografia APIpor@mutation
831 leituras
831 leituras

MASC: uma ferramenta para avaliação baseada em mutação de detectores estáticos de uso indevido de criptografia API

Muito longo; Para ler

MASC é uma ferramenta fácil de usar que utiliza testes de mutação para avaliar detectores de criptografia, descobrindo falhas não documentadas e melhorando a segurança do software por meio de uma estrutura automatizada, personalizável e extensível.
featured image - MASC: uma ferramenta para avaliação baseada em mutação de detectores estáticos de uso indevido de criptografia API
The Mutation Publication HackerNoon profile picture
0-item

Autores:

(1) Amit Seal Ami, Departamento de Ciência da Computação, William & Mary Williamsburg, Virgínia, EUA, e este autor contribuiu igualmente para este artigo ([email protected]);

(2) Syed Yusuf Ahmed, Instituto de Tecnologia da Informação, Universidade de Dhaka Dhaka, Bangladesh, e este autor contribuíram igualmente para este artigo ([email protected]);

(3) Radowan Mahmud Redoy, Instituto de Tecnologia da Informação, Universidade de Dhaka Dhaka, Bangladesh, e este autor contribuíram igualmente para este artigo ([email protected]);

(4) Nathan Cooper, Departamento de Ciência da Computação, William & Mary Williamsburg, Virgínia, EUA ([email protected]);

(5) Kaushal Kafle, Departamento de Ciência da Computação, William & Mary Williamsburg, Virgínia, EUA ([email protected]);

(6) Kevin Moran, Departamento de Ciência da Computação, University of Central Florida Orlando, Flórida, EUA ([email protected]);

(7) Denys Poshyvanyk, Departamento de Ciência da Computação, William & Mary Williamsburg, Virgínia, EUA ([email protected]);

(8) Adwait Nadkarni, Departamento de Ciência da Computação, William & Mary Williamsburg, Virgínia, EUA ([email protected]).

Tabela de links

Resumo e 1 Introdução

2 Visão geral do MASC

3 objetivos de design

4 Implementação do MASC

4.1 Operadores de Mutação

4.2 Escopos de Mutação

5 Usando MASC

6 Trabalhos Futuros e Conclusão, Agradecimentos e Referências

ABSTRATO

Embora os engenheiros de software estejam adotando com otimismo detectores de uso indevido de cripto-APIs (ou detectores de criptografia) em seus ciclos de desenvolvimento de software, esse impulso deve ser acompanhado por uma compreensão rigorosa da eficácia dos detectores de criptografia na detecção de usos indevidos de cripto-APIs na prática. Este artigo de demonstração apresenta os detalhes técnicos e cenários de uso de nossa ferramenta, nomeadamente Análise de Mutação para avaliação de detectores de uso indevido de Crypto-API estática (MASC). Desenvolvemos 12 operadores de mutação generalizáveis baseados no uso e três escopos de mutação, ou seja, Escopo Principal, Escopo de Similaridade e Escopo Exaustivo, que podem ser usados para instanciar expressivamente variantes compiláveis dos casos de uso indevido de criptografia-API. Usando o MASC, avaliamos nove principais detectores de criptografia e descobrimos 19 falhas únicas e não documentadas. Projetamos o MASC para ser configurável e fácil de usar; um usuário pode configurar os parâmetros para alterar a natureza das mutações geradas. Além disso, o MASC vem com interface de linha de comando e front-end baseado na Web, tornando-o prático para usuários de diferentes níveis de conhecimento.


Código: https://github.com/Secure-Platforms-Lab-WM/MASC

1. INTRODUÇÃO

Os engenheiros de software confiam em detectores de criptografia há décadas para garantir o uso correto de APIs criptográficas nos softwares e serviços que criam, desenvolvem e mantêm [6]. Esses criptodetectores são onipresentes na engenharia de software, pois são integrados em IDEs (por exemplo, plugin CogniCrypt para Eclipse IDE [8]), conjunto de testes de organizações como Oracle Corporation [9, 17] e para Integração Contínua/Implantação Contínua (CI /CD) pipelines [12, 18]. Além disso, provedores de hospedagem como o GitHub estão provisionando formalmente esses detectores de criptografia, por exemplo, GitHub Code Scan Initiative [10]. Em outras palavras, a segurança de software e serviços depende cada vez mais de detectores de criptografia. No entanto, temos contado com benchmarks selecionados manualmente para avaliar o desempenho de detectores de criptografia; tais benchmarks são conhecidos por serem incompletos, incorretos e impraticáveis de manter [16]. Portanto, determinar a eficácia dos criptodetectores a partir de uma perspectiva focada na segurança requer uma técnica de avaliação confiável e em evolução que possa ser dimensionada de acordo com o volume e a diversidade da cripto-API e os diferentes padrões de uso indevido.


Contextualizamos técnicas de teste de mutação para criar a Análise de Mutação para avaliar a estrutura de detectores de uso indevido de criptografia estática (MASC). Em nossa implementação de protótipo original do MASC [3], ele aproveitou internamente 12 operadores de mutação generalizáveis e baseados no uso para instanciar mutações de casos de uso indevido de criptografia de API para Java. Os operadores de mutação foram projetados com base nos princípios de design da Java Cryptographic Architecture (JCA) [11] e em um modelo de ameaça que consistia em usuários de diversas habilidades e intenções (Seção 4.1). O MASC injeta esses casos de uso indevido mutado em aplicativos baseados em Java ou Android em três escopos de mutação (locais de injeção), ou seja, escopo de similaridade (estendido de MDroid + [13, 14]), escopo exaustivo (estendido de 𝜇SE [4, 5, 7]) , e seu escopo principal desenvolvido de forma independente, criando assim aplicativos mutantes que contêm uso indevido de API de criptografia. Demonstramos a praticidade da implementação do protótipo do MASC avaliando nove criptodetectores da indústria e da academia, e descobrimos 19 falhas anteriormente não documentadas e desconhecidas que comprometem a solidez dentro do escopo dos criptodetectores. Os detalhes completos da metodologia do MASC, considerações de design, avaliação de criptodetectores que levam à descoberta de novas falhas, impacto prático das falhas encontradas em aplicações de código aberto (portanto, a aplicabilidade dos operadores de mutação) e discussão das descobertas estão disponíveis no artigo de pesquisa original [3].


Neste artigo, apresentamos uma implementação madura da estrutura MASC com foco na extensibilidade, facilidade de uso e facilidade de manutenção para as partes interessadas dos detectores de criptografia, como pesquisadores de segurança, desenvolvedores e usuários. Para elaborar, por causa da arquitetura de plug-in recentemente desenvolvida, os usuários do MASC agora podem criar seus próprios operadores de mutação que podem ser facilmente conectados ao MASC, sem se aprofundar na base de código existente (mais de 11𝐾 linhas de código-fonte). Além disso, embora a implementação do protótipo original do MASC envolvesse avaliação semiautomática de criptodetectores, automatizamos o fluxo de trabalho do MASC aproveitando a saída formatada de fato SARIF [15] dos criptodetectores. Além disso, criamos um front-end baseado na web de implementação do MASC para os usuários reduzirem a barreira de entrada. Por fim, reestruturamos e refatoramos a base de código de código aberto do MASC para aumentar a capacidade de manutenção e extensibilidade do MASC, o que facilitará futuras contribuições e melhorias para desenvolvedores e entusiastas de código aberto do MASC. Com essas adições e melhorias, esperamos que a implementação atual e de código aberto do MASC seja usada para encontrar falhas e, assim, ajudar a melhorar os detectores de criptografia existentes.


Contribuição : Apresentamos o MASC, uma estrutura amigável que aproveita técnicas de teste de mutação para avaliar detectores de criptografia, com detalhes de técnicas subjacentes, considerações de design e melhorias. Os novos e principais recursos do MASC são os seguintes: Avaliação automatizada de criptodetectores: O MASC pode ser usado para avaliar criptodetectores em um fluxo de trabalho automatizado de ponta a ponta dentro do Escopo Principal.


Avaliação personalizável de detectores de criptografia: um usuário pode personalizar a avaliação de detectores de criptografia especificando os operadores de mutação para criar instâncias de uso indevido de API de criptografia.


Arquitetura de plug-in para operadores personalizados : o MASC ajuda pesquisadores de segurança, desenvolvedores e usuários a avaliarem detectores de criptografia criando seus próprios operadores de mutação personalizados que podem ser conectados diretamente ao escopo principal, sem exigir que eles aprendam e entendam sobre os detalhes internos do MASC.


Front-end amigável para usuários finais : além de aprimorar a interface de linha de comando da implementação do protótipo original, criamos e introduzimos um front-end de código aberto baseado na Web para usuários finais que pode ser executado localmente. O front-end contém uma interface adicional de teste-aprender, MASC Lab, onde as partes interessadas podem interagir com operadores de mutação e aprender sobre o uso indevido de API de criptografia mutante.


Disponibilidade de ferramentas e dados: A implementação do protótipo da estrutura MASC, scripts e resultados da avaliação de criptodetectores,


Figura 1: Uma visão geral conceitual da estrutura MASC.


Listagem 1: Exemplo de instâncias de uso indevido de API de criptografia criadas pelo MASC


conforme descrito no artigo original [3], estão disponíveis no MASC Artifact [1]. Além disso, a base de código da implementação madura e ativamente mantida do MASC está disponível separadamente com extensa documentação e exemplos [2].


Este artigo está disponível no arxiv sob licença CC BY-NC-SA 4.0 DEED.