5 dicas para pentesters no iOS

5 dicas para pentesters no iOS

Confira algumas sugestões para pentesters na hora de procurar falhas de segurança cometidas por desenvolvedores de aplicativos iOS.

Confira algumas sugestões para pentesters na hora de procurar falhas de segurança cometidas por desenvolvedores de aplicativos iOS.

A medida em que nossos dispositivos móveis desempenham um papel cada vez mais imprescindível em nossas vidas, desenvolver aplicativos seguros se torna uma necessidade para proteger os usuários finais. Assim, o papel do pentester torna-se importante para identificar comportamentos indesejáveis, tais como permitir o vazamento de dados, causar falhas em outros aplicativos instalados no celular ou tablet, gerar despesas imprevistas ou gerar problemas em um serviço específico para quem usa o dispositivo.

Em publicações anteriores, compartilhamos algumas sugestões para o desenvolvimento seguro no iOS. São artigos interessantes e que podem te ajudar a encontrar alguns erros que os desenvolvedores costumam cometer ao criar aplicativos para iOS. Como complemento, confira neste post algumas dicas que podem ser usadas para guiar a sua análise.

#1 Coloque-se no lugar do programador

Na medida do possível, tente saber quem está por trás do desenvolvimento do código que você está auditando. Descubra qual é a linguagem em que eles geralmente trabalham na maior parte do tempo ou em que linguagem foram iniciados. A experiência do programador é geralmente transparente na arquitetura do código e, consequentemente, na natureza dos erros. Saber sobre isso pode te dar uma direção para a pesquisa.

Por exemplo, programadores com experiência em Java muitas vezes replicam padrões de design de forma incansável, abstraindo a funcionalidade repetidas vezes. Por outro lado, os desenvolvimentos de apps para dispositivos móveis feitos por programadores web depositam a maior funcionalidade possível em aplicativos web, apoiando-se no uso do WebKit. Ambos os tipos de desenvolvedores estarão acostumados a usar APIs de alto nível, mas são suscetíveis a erros na hora de manipular APIs de baixo nível.

#2 Obtenha o código fonte

Embora não represente a posição em que um cibercriminoso é geralmente encontrado, a obtenção do código-fonte pode ajudar na identificação do maior número de falhas no menor tempo possível. Os testes de penetração geralmente lidam com recursos limitados de tempo e dinheiro, por isso é conveniente tirar o máximo proveito deles. Seu objetivo não deve ser imitar um cenário real de ataque, mas encontrar a maior quantidade de vulnerabilidades para tornar o aplicativo final mais seguro.

O Objective-C serve para a engenharia reversa e é possível obter uma visão bastante transparente dos mecanismos internos do aplicativo, mesmo sem iniciar desde o código-fonte. Um cibercriminoso com tempo ilimitado pode obter uma visão aproximada – se não igual – do que você terá com o código. Economize tempo e dedique seu esforço para encontrar essas falhas de segurança.

#3 Tenha em conta os pontos fracos da linguagem

Embora o Objective-C e Cocoa evitem alguns erros comuns de segurança em C e C ++, o uso de API perigosos como strcpy e strcat, ou a má aplicação de mecanismos como categorias ou o method swizzling podem causar um comportamento inesperado que resulte em falhas graves de segurança. Portanto, certifique-se de pesquisar como essas técnicas afetam o aplicativo.

#4 Identifique a possível reutilização de código vulnerável

Muitos programadores desenvolveram o péssimo hábito de buscar fóruns on-line e copiar o código de programação sem realmente analisar o seu desempenho, especialmente quando se trata de funções auxiliares de baixo nível, conexões de rede ou criptografia. Outros incorporam bibliotecas e desenvolvimentos de terceiros no código de base sem verificar se apresentam falhas de segurança. Isso pode levar a encontrar o mesmo código vulnerável por meio de vários aplicativos.

#5 Conte com dois dispositivos para realizar os testes: um com jailbreak e outra de fábrica

Ter um dispositivo com o sistema operacional de fábrica te ajudará a avaliar como o aplicativo se comporta em um ambiente de usuário final real, com todos os mecanismos de segurança ativados e sem problemas para registrar notificações por push. Por outro lado, você pode usar o dispositivo com jailbreak para analisar mais detalhadamente o sistema de arquivos e o funcionamento do sistema operacional.

Esperamos que essas dicas possam te ajudar a encontrar novas perspectivas de análise para o aplicativo com o qual esteja trabalhando.

Discussão