Você sabe quais são os principais métodos para captura e interceptação de tráfego de dados de rede?
São diversas maneiras possíveis, pelos mais variados dispositivos. Você pode usar desde a mais simples, usando um servidor Proxy, até uma interface de rede virtual (RVI), caso queira uma análise mais detalhada do tráfego de uma aplicação que utilize outras portas de comunicação, que não somente requisições WEB.
Aprenda, passo a passo, como realizar essa atividade com seu iPhone, usando diferentes abordagens.
Utilizando um servidor Proxy – BURP
Quando mencionamos a utilização de um servidor proxy, estamos basicamente nos referindo a interceptar e analisar solicitações relacionadas ao protocolo HTTP (Hypertext Transfer Protocol), seja esse com a camada de segurança TLS (Transport Layer Security) ou não.
Algumas das aplicações que temos em nossos smartphones ainda
utilizam somente o protocolo HTTP, o que significa dizer que os dados trafegam
na forma de texto plano, ou seja, sem qualquer criptografia, fazendo com que
informações sensíveis fiquem totalmente expostas a qualquer atacante que adotar
técnicas man in the middle.
Para configuração de nosso proxy o primeiro passo é abrirmos
o BURP, por padrão a interface que ele escutará será o próprio equipamento, ou
seja, o endereço IP 127.0.0.1 e porta 8080 conforme podemos verificar na imagem
abaixo:

No BURP toda captura está por padrão relacionada a máquina local, porém para executarmos nossa estratégia de interceptação dos dados que chegarão ao nosso servidor por meio do iPhone precisaremos adicionar o IP interno da máquina local no campo de Specific address.

Vejam que neste caso adotamos o IP 192.168.1.102 com a porta 8081.
Uma vez o BURP configurado, vamos ao iPhone:

Vejam que o endereço IP associado ao iPhone não tem relação alguma com o servidor proxy, porém é óbvio que terão que estar na mesma rede para que o tráfego possa ser capturado.

Assim que finalizamos a configuração do iPhone para utilizar
o BURP como o nosso servidor proxy já podemos ver alguns pacotes, isso ocorre,
pois diversas aplicações ficam rodando em background, normalmente atualizações,
updates de e-mails, entre outros.
Abaixo temos um exemplo de pacote interceptado com o método
POST em conexão com o office365 para atualização de e-mail, reparem que o
DeviceType já é identificado como sendo um iPhone.

Para demonstração foi utilizado um aplicativo real da área da saúde. Por questões éticas, obviamente, mantive os dados ocultados.
Podemos analisar que, quando abrimos o aplicativo em nosso
smartphone, já são executadas requisições API ao servidor para troca de
informações e com isto já visualizamos os pacotes conforme imagem abaixo:

Apesar de ser uma aplicação de necessidade de alto nível de
sigilo de informações, os dados são trafegados em texto plano, ou seja, sem
nenhuma criptografia envolvida.
Conforme podemos verificar na imagem abaixo não estamos
ainda falando de credenciais de acesso, mas de todo modo são dados sensíveis,
como por exemplo o número de beneficiário e telefone.

Infelizmente, nessa aplicação, não só os dados sensíveis anteriormente destacados são trafegados em texto plano, mas também as credenciais de acesso (usuário e senha) como podemos ver na imagem abaixo:

Isso significa que se tivéssemos alguém conectado na mesma rede, por exemplo uma rede wifi de aeroporto, cafeteria etc., e estivesse rodando um analisador de tráfego onde abríssemos esse aplicativo, teríamos nossos dados vazados de usuário e senha (Ataque Man in the middle).

Assista
agora ao webinar “Cyber Security e TI: estratégias e tendências”, com Andrea
Thomé, Líder Brasil da WONCY e Viviane Martins, Security Services
Associate Project Managaer na IBM.
Utilizando uma interface de rede virtual (RVI) – Wireshark
Se o seu objetivo for uma análise mais detalhada do tráfego de uma aplicação que utilize outras portas de comunicação, que não somente requisições WEB, podemos diversificar a estratégia e utilizar uma interface de rede virtual (RVI).
Essa outra abordagem analisa todo o tráfego de rede que
ocorre entre o iPhone e os servidores das aplicações, agora não mais focado
somente em aplicações e requisições WEB (HTTP), mas sim em diferentes
protocolos.
Para implementarmos, iniciamos com a conexão do nosso iPhone
via USB ao computador que rodará o Wireshark para a coleta dos dados, na
sequência realizaremos a criação da RVI (Remote Virtual Interface) onde
necessitaremos passar como parâmetro o UUID (Universal Unique Identifiers) do iPhone.
Pelo próprio “Finder” é possível descobrir o UUID do
aparelho, basta clicar no nome do dispositivo conectado e surgirá a informação
conforme imagem abaixo:

Tendo o UUID do aparelho e com ele conectado, é necessário ativar a interface virtual (RVI), através do seguinte comando:

Após recebermos a mensagem de SUCCEEDED, estamos prontos com a interface ativada e então poderemos seguir para a abertura do analisador de tráfego de rede Wireshark e selecionar a interface rvi0.

Neste exemplo, e até para fins de comparação com o modelo anterior, adotamos o mesmo aplicativo da área da saúde e aplicamos um filtro básico (ip.src == 192.168.1.23) para facilitar a visualização de somente o IP de origem (iPhone).
É possível visualizarmos protocolos de diferentes camadas do
modelo OSI, neste exemplo, temos protocolos da camada de transporte (TCP) e da
camada de aplicação (HTTP) como pode ser visto na imagem abaixo:

Analisando somente os pacotes HTTP, é possível examinar as mesmas informações que visualizamos anteriormente no BURP.
Portanto, se abrirmos o conteúdo de nosso pacote selecionado,
teremos também todas as informações de credenciais anteriormente demonstradas,
conforme imagem abaixo:

Conclusão
Existem diferentes abordagens em relação a captura de tráfego de dados via iPhone. Na primeira parte demonstramos a técnica com a adoção de um servidor Proxy (BURP) onde foi possível analisar os pacotes relacionados a requisições WEB, esta técnica é de mais fácil implementação, porém muitas vezes limitada.
Já na segunda parte demonstramos uma análise de maior
amplitude onde foi possível verificar que protocolos de diferentes camadas
também podem ser analisados, portanto, a depender do objetivo almejado e/ou da
forma de comunicação da aplicação, este pode ser mais adequado.
Vale lembrar que ambas as técnicas são complementares,
portanto, dependendo do seu objetivo final de análise da aplicação, ambas podem
ser combinadas.
O caminho das pedras está dado, agora é contigo em seguir
para a análise aprofundada de suas aplicações.
Stay Safe
Você gostaria de se tornar um especialista altamente
qualificado na área de Cyber Security? Então confira nossos cursos de
pós-graduação e aprenda na prática com aulas hands-on: