Voltar
Integrations
Tabela de conteúdo

Os aplicativos (Android ou não) são suscetíveis a vulnerabilidades de segurança. Portanto, é importante ficar por dentro das atualizações de segurança mais recentes e configurar aplicativos para elas. A abordagem usual para escanear aplicativos móveis e encontrar relatórios de segurança envolve uma série de etapas meticulosas, desde o desenvolvimento do aplicativo, a digitalização e a análise estática do código até a correção e a redigitalização.

Os métodos tradicionais de escanear aplicativos móveis e encontrar relatórios de segurança

O plug-in Jenkins da BeVigil simplifica essa tarefa identificando vulnerabilidades de segurança durante a própria fase de desenvolvimento do aplicativo. Ao utilizar esse plug-in, os desenvolvedores e as equipes de segurança podem facilmente detectar e resolver quaisquer problemas que surjam durante o desenvolvimento e agilizar o processo de remediação.

Quais erros são cometidos pelo desenvolvedor?

Um dos maiores erros cometidos por um desenvolvedor é que ele geralmente codifica as chaves, segredos e ativos da API no código-fonte enquanto envia o APK criado para a PlayStore. Conforme mostrado na imagem abaixo, o desenvolvedor codificou a chave e o segredo do Razorapay no aplicativo. Codificar essas chaves pode levar ao vazamento das PII do usuário.

Tipos de chaves/URLs vazados pelos desenvolvedores e seu impacto

Exposed Key/URL

Description

Developer Mistake

BeVigil Finding




Firebase Database

Developers use the firebase for storing some data but forget about the security concerns related to the database.

Not restricting permission of the database.

Almost 18K Firebase databases were readable and had over 10M downloads on the PlayStore, thus leaking a lot of PII.









Razorpay Keys 

Hardcoded Razorpay keys and secrets can compromise sensitive financial data, including payment card information and transaction details. The leaked keys can be used to authenticate requests to the Razorpay API and make unauthorized transactions, manipulate payment data, or even access other sensitive information stored on the payment gateway's systems.

Hardcoding Razorpay ID is okay but hardcoding secrets or keys in the source code with excessive permissions can lead to compromising details.

Almost 1.6M user data was compromised via hard-coded Razorpay keys.






AWS  Access Key & Secret

These are used to authenticate and authorize access to AWS resources, such as EC2 instances, S3 buckets, and other cloud services. If compromised, they can potentially provide an attacker with access to an organization's entire cloud infrastructure and the data stored within it.

Permissions of AWS access key and secret must be restricted.

Around 100GB of leaked data was obtained due to misconfigured AWS Access Key and Secret.







GitHub Personal Access Token (PAT)

A PAT is a string of characters that provides access to perform actions on behalf of a user's GitHub account, such as creating, deleting, or modifying repositories, accessing private repositories, or posting comments. It can be used to authenticate API requests and is generated by GitHub. Hardcoding PATs can lead to accessing GitHub private repositories.

GitHub tokens are not usually used in mobile apps for anything but often times developers hardcoded this by mistake.

Over 159 private repositories can be accessed from the compromised tokens discovered in BeVigil.





Twitter API Keys

These API keys if hardcoded can lead to the full takeover of a user’s Twitter account(s) and perform sensitive actions such as reading direct messages, retweeting, removing followers, following strangers, etc.

Hardcoding Twitter consumer key, consumer secret as well as the Twitter access token and secret, thus providing an opportunity for complete account takeover.

3,207 apps were found leaking valid Consumer Key and Consumer Secret. Around 230 apps (including some unicorns) were leaking all 4 authorization credentials.



Hubspot API Keys

These keys are generally not used in mobile apps but if compromised these keys can leak the users’ PII.

Hardcoding the API key which is generally not used by mobile app developers.

1.6M users’ data can be compromised with the help of just one API key.



Shopify API Keys

If compromised these API keys can lead to reading and writing customers' data as well as the order information.

Hardcoding the API key  with excessive permission.

21 apps were identified to have 22 hardcoded Shopify API keys/tokens. These apps put close to 4M users at risk.










MailChimp API Keys

Mailchimp is a popular email marketing and automation platform that allows businesses and individuals to create, send, and manage email campaigns to their subscribers. An exposed Mailchimp API key can be used to access the Mailchimp account and send unauthorized emails, steal contact lists, view campaign analytics, etc. The compromised account can also be used to create and launch phishing campaigns, distribute malware, or commit fraud.

Hardcoding the API key  which can be generally sent from the backend.

Out of the total 319 identified API keys, 90 API keys (i.e. 28%) were found to be valid. 12 keys were found to allow read-email access.








SendGrid API Keys

SendGrid is a communication platform intended for transactional and marketing emails. Exposed SendGrid API keys allow attackers to send unauthorized emails from the affected account. They can also gain access to sensitive information such as email addresses, subject lines, and message contents.

Hardcoding the API key  with excessive permission.

Out of 319 identified API keys, 128 keys were found to be valid. 121 keys allowed actors to send emails, 65 keys allowed actors to delete API keys, and 42 keys allowed actors to modify 2FA.







Mailgun API Keys

Mailgun provides email API services enabling brands to send, validate, and receive emails through their domain at scale. If exposed, these keys can be used to send unauthorized emails from the affected account, gain access to sensitive information, and monitor/analyze email traffic, which could reveal business-critical information.

Hardcoding the API key  with excessive permission.

35% of the analyzed apps allowed anyone to send and read emails.

Como o plugin Jenkins da BeVigil ajuda?

Imagem mostrando como o plug-in BeVigil pode ajudar a encontrar problemas de segurança em aplicativos móveis

Vamos entender o que é Jenkins. O Jenkins é um servidor de automação de código aberto amplamente usado para integração contínua e entrega contínua (CI/CD) de projetos de software. O Jenkins fornece muitos plug-ins para ampliar sua funcionalidade e oferece suporte a vários tipos de tarefas de construção, implantação e teste.

O Jenkins funciona acionando compilações e testes automatizados sempre que alterações são feitas no repositório de código-fonte. Ele se integra a sistemas de controle de versão, como Git, SVN e Mercurial, e pode ser configurado para executar testes automatizados, análise de código e empacotamento do aplicativo.

O Jenkins é uma poderosa ferramenta de automação que ajuda as equipes de software a melhorar seus processos de desenvolvimento de software automatizando tarefas repetitivas e permitindo ciclos de feedback mais rápidos. Sua popularidade se deve à sua flexibilidade, escalabilidade e facilidade de uso, o que o torna a escolha preferida de muitas equipes de desenvolvimento em todo o mundo.

Funcionamento do plugin Jenkins da BeVigil

Plugin BeVigil Jenkins ajudará os desenvolvedores de aplicativos a corrigir problemas no momento do desenvolvimento. Assim que um desenvolvedor enviar um código, ele receberá um relatório de segurança detalhado do plug-in BeVigil Jenkins para arquivos APK ou IPA. Esse relatório incluiria informações como:

  • O que é o problema?
  • O que é o impacto?
  • Quais são os etapas de remediação?
  • Qual problema de arquivo foi encontrado?
  • Qual foi o correspondência exata no código-fonte o que fez com que nosso scanner o detectasse como uma ameaça?
Captura de tela do relatório de segurança gerado pelo plugin Jenkins da BeVigil

Como um desenvolvedor pode usar o plug-in BeVigil?

Para que um desenvolvedor utilize o plugin Jenkins (oferecido pela BeVigil), ele deve ter o seguinte instalado em seu sistema:

  • Java
  • Ferramentas do SDK do Android
  • Jenkins

Etapas para instalar o plug-in

O plugin Jenkins do BeVigil pode ser instalado em qualquer sistema seguindo a série de etapas abaixo:

  1. Abra o Jenkins e clique em Gerenciar Jenkins.
  1. Agora, selecione Gerenciar plug-ins.

  1. Navegue até o Plugins disponíveis guia e pesquise o Plugin “BeVigil VI”. Clique na caixa de seleção ao lado do plugin e, em seguida, clique em “Instalar sem reiniciar” para instalar o plugin.

  1. A instalação do plugin foi bem-sucedida, conforme visto na Progresso do download aba.

Configurando variáveis de ambiente para Jenkins

  1. Para definir variáveis de ambiente para o Jenkins, abra o painel do Jenkins e navegue até Gerenciar Jenkins -> Configurar o sistema. Encontre a seção Configurações globais e marque a Variáveis de ambiente caixa de seleção para habilitá-la.
  1. Depois que o JDK for instalado, precisamos definir variáveis de ambiente para JAVA_HOME no Jenkins, que seriam o caminho do JDK.
  2. Depois que as ferramentas do SDK do Android estiverem instaladas, precisamos definir a variável de ambiente ANDROID_HOME apontando para a localização do SDK do Android.
  3. Depois de colocar os dois valores, os usuários precisam clicar no Botão Salvar para aplicar as alterações.

Definir as configurações do pipeline

  1. Acesse o painel do Jenkins e clique no novo item, selecione o projeto freestyle, adicione o nome do item e clique em OK para configurar o projeto.
  1. Depois que a configuração do projeto estiver concluída, vá para o gerenciamento de código-fonte, selecione GIT, adicione a URL do repositório e selecione a ramificação que você deseja que o Jenkins execute.
  1. Selecione Adicionar às etapas de construção e selecione Invoque o Gradle Script. Selecione o Use o Gradle Wrapper, verifique o Tornar o gradlew executável caixa de seleção e adicione a localização do invólucro. Agora adicione Debug montado na caixa de tarefas a serem invocadas. Quando você executa a tarefa assembleDebug, o Gradle compila o código-fonte do seu aplicativo, processa recursos e gera um APK.
  1. Clique no botão construir e selecione Escaneie seu aplicativo com BeVigil CI opção. Agora, adicione os seguintes detalhes no formulário:
  • CHAVE DE API: Sua chave de API BeVigil
  • Tipo de aplicativo: Selecione Android/iOS
  • Caminho do aplicativo: Esse é o caminho para seu aplicativo criado em relação à raiz do seu espaço de trabalho Jenkins. Esse caminho seria gerado usando o comando de tarefa assembleDebug.
  • Nome do pacote: Insira o nome do pacote para seu aplicativo
  • Tempo limite de digitalização: Esse é o tempo (em minutos) após o qual a verificação atingirá o tempo limite no plug-in.
  • Limite de severidade: Isso faz com que a BeVigil defina um limite para as vulnerabilidades:
  • Baixo: o relatório de segurança incluirá vulnerabilidades baixas, médias e altas
  • Médio: o relatório de segurança incluirá vulnerabilidades médias e altas
  • Alto: o relatório de segurança incluirá apenas vulnerabilidades altas
  1. Depois que tudo estiver pronto, clique no Salvar botão.
  1. Precisamos clicar em Construa agora para construir o projeto.

  1. Agora você pode acessar a saída do console para ver o relatório de segurança do aplicativo, caso tenha ocorrido uma compilação bem-sucedida.
  2. O relatório pode ser baixado para ver os problemas de segurança presentes no aplicativo móvel e resolvê-los de forma proativa.

O que vem a seguir?

Na próxima fase, os desenvolvedores poderão adicionar mais uma etapa às etapas de criação, ou seja, se no momento da compilação forem encontrados alguns problemas de alta segurança no aplicativo móvel, a compilação falhará nesse estágio. Ele não pode ir para a próxima etapa do pipeline. A imagem abaixo mostra o funcionamento do pipeline de CI/CD em um ciclo de vida de desenvolvimento de software.

Alterações de configuração podem ser feitas nas etapas de construção, na terceira etapa do pipeline, o que garantirá que, se surgirem problemas de alta segurança no estágio de construção, ele não prossiga para os estágios posteriores. Nosso plano é incorporar o plug-in BeVigil em várias ferramentas de CI, como Travis, Circle CI, Bamboo, GitLab CI/CD, Azure Pipelines e CodeShip. Se você estiver utilizando uma ferramenta de CI diferente para testar as compilações de seu aplicativo além do Jenkins, clique aqui vincular para fazer sua seleção.

Demonstração em vídeo da configuração do plugin

Atribuições

Arshit Jain
Collecting data for world's first security search engine bevigil.com | Web Scraping | Data Mining |
Hansika Saxena
Product Manager at CloudSEK with a background in cyber threat intelligence and a focus on user experience. She bridges research with product design to shape solutions that are intuitive and impactful.

Blogs relacionados