2.6
Sumário
Retendo aquilo que foi discutido neste capítulo, vimos que o Wardriving é a atividade associada à prática de exploração de pontos de acesso. Para que esta possua melhores resultados necessitamos além de software e hardware especificos de executar uma pequena análise na zona (zonas habitacionais tendem a ter um maior número de pontos de acesso). Em termos de dispositivos que podem ser utilizados, o computador acaba por ser o mais comum. Contudo, existem também aparelhos de menor dimensão com um poder de processamento capaz de executar determinadas tarefas. Estes aparelhos conseguem inclusivé executar ataques a redes que não necessitem de um elevado poder de processamento.
Em termos de ataques dentro da rede, desde a análise de pacotes na rede que não estão destinados a nós até à impersonalização de forma a enganar outros hosts da rede, a variedade é imensa dependendo do propósito do ataque. Para executar estes ataques temos à nossa disposição vários
softwares desenvolvidos, permitindo inclusivé que mesmo sem grande conhecimento se possam
executar ataques.
Entrando numa vertente mais técnica analisámos o conteúdo das tramas que os pontos de acesso enviam para anunciar a sua presença no redor. No nosso caso aprofundámos mais as tramas
beacon pois são elas que nos incutem mais interesse por conterem os valores necessários para
o cliente se poder posteriormente ligar a ela através do envio de outras tramas (associação, pedido de conexão). Terminando o capítulo analisámos vários modelos desenvolvidos para tentar determinar com exatidão o modelo dos pontos de acesso, que é sempre uma mais valia tanto para quem ataca os sistemas, como também para quem os preserva e gere. Numa das abordagens vimos que utilizavam as diferenças de tempos entre a chegada do pacote e o valor que continham no timestamp. Por sua vez numa outra abordagem era utilizada uma enorme base de dados de informação que foi gerada de forma a encontrar um padrão que fosse possível associar ao ponto de acesso respetivo.
Capítulo 3
Design/Arquitetura
Neste capítulo vamos abordar a estrutura da framework desenvolvida ao longo do trabalho e explicar, em alguns casos, o motivo pelo qual optámos por escolher o tipo de organização apresentado. Vamos também discutir a forma como isso melhora o desenvolvimento futuro bem como a compreensão desta estrutura.
Como a framework se encontra dividida em módulos, como iremos apresentar na secção 3.1, vamos falar sobre como eles se relacionam entre si e qual o tipo de informação que é transmitida entre eles. Iremos apresentar os módulos do sistema e expicificar qual o seu papel e contribuição na framework.
Outro fator discutido neste capítulo será a forma como os dados irão estar organizados, e onde se encontrarão armazenados para um acesso posterior.
3.1
Módulos
A arquitetura da framework foi dividida em vários módulos de forma a tornar o código mais flexível e de melhor compreensão para desenvolvimento futuro. Desta forma, cada módulo envolve uma parte específica, ficando definidos quatro módulos importantes que serão descritos mais à frente (Módulo Sniffer 3.3, Módulo GPS 3.4, Módulo Base de Dados 3.5 e Módulo Vulnerabilidades 3.6).
Cada módulo está inserido numa pasta que o identifica mediante a categoria em que está inserido (ex: o módulo de gps está contido numa pasta GPS, o módulo Vulnerabilidades está inserido numa pasta Vulnerabilidades, juntamente com a restante parte respeitante às vulnerabilidades, e assim sucessivamente). A existência do módulo Main serve para tornar possível o arranque dos diversos módulos e a sua interação, uma vez que todos são chamados a partir deste e comunicam entre eles através do mesmo.
No caso das vulnerabilidades, estas serão implementadas e organizadas segundo categorias, de forma a serem facilmente expandidas para o script em causa, uma vez que depois serão
22 Capítulo 3. Design/Arquitetura
reconhecidas pelo módulo principal das vulnerabilidades (módulo vulnerabilidades 3.6). Na figura 3.1 podemos ver melhor como será a estrutura da framework.
Módulo Main M Módulo Sniffer M Módulo Vulnerabilidades M Sub-Módulos Vulnerabilidades M Módulo Base de Dados M Base de Dados Pontos de Acesso e Vulnerabilidades BD
Figura 3.1: Esquema da Arquitetura
3.2
Módulo Main
Este módulo interliga todos os outros de forma a poderem comunicar entre si. É também responsável por fazer o parsing dos comandos que iniciam o script através da linha de comandos, assim como detetar qual o nome a dar aos ficheiros gerados por ele e bases de dados criadas. A sua função passa também por informar que interfaces de rede se vai usar para o sniffing e para o teste de vulnerabilidades. Assim, teremos ainda de especificar qual a ronda que estaremos a fazer, de modo a saber quais os passos que o script necessita realizar nessa volta.
Um outro parâmetro necessário será o tipo de escuta das redes que pretendemos utilizar. Os tipos de escuta disponíveis serão discutidos mais a frente na secção 3.3 e 4.4. Após este parsing são iniciados os serviços necessários para correr o script, sendo os módulos iniciados por ordem. Entre estes, são trocadas várias informações que irão ser centralizadas inicialmente neste módulo e depois encaminhadas para o módulo das vulnerabilidades (ver secção 3.6).Estas informações estarão organizadas mediante uma estrutura de dados baseadas em <chave:valor>, respeitantes aos
3.3. Módulo Sniffer 23 atributos do ponto de acesso.
3.3
Módulo Sniffer
Este é o módulo responsável por capturar todas as redes WiFi que a placa de rede sem fios, instalada na máquina, consiga detetar.
Apesar de terem sido elaboradas três formas diferentes de implementação deste módulo, ficou apenas uma no projeto final totalmente funcional, algo que será descrito na secção 4.4. Isto deveu-se à melhoria da performance, isto é, à tentativa de capturar o máximo de redes possíveis num mesmo cenário, e a quantidade de informação que era possível obter a partir de cada uma delas. Obviamente, dependendo da placa de rede sem fios utilizada poderemos capturar mais ou menos redes (ver secção 2.1.1).
3.4
Módulo GPS
O módulo GPS é responsável pela captação dos dados provenientes do adaptador de Geographical
Position System (GPS) inserido no dispositivo. O objetivo deste módulo será permitir que a
localização do ponto de acesso seja guardada para referências futuras e também em casos onde pretendamos explorar vulnerabilidades onde necessitemos de uma maior dedicação de tempo. Irá utilizar-se um dispositivo GPS para poder fornecer os dados para o módulo que permita o envio dos dados pela porta série.