Kali Linux Tools Interface

Lucas Fraga
24 min readMar 15, 2019

--

Kali Linux Interface Tools — Uma interface gráfica open source para as ferramentas do Kali Linux.

Este artigo tem como objetivo ilustrar a documentação do projeto Kali Linux Tools Interface na unidade curricular Projeto de Análise e Desenvolvimento no Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas da Faculdade Senac Porto Alegre.

Apresentação Geral do Projeto

Na era da tecnologia e informação, os dados são os bens mais valiosos e por esse motivo pessoas e empresas tem se tornado cada vez mais alvos de ataques cibernéticos. Segundo informações do laboratório especializado em cibersegurança da PSafe, o número de ataques cibernéticos praticamente dobrou no Brasil em 2018 e o número elevado de crimes digitais reforça cada vez mais a demanda por profissionais da área de segurança da informação.

Muitos desses profissionais contam com uma série de ferramentas digitais para auxiliar em suas atividades. Mas preparar um ambiente, instalar essas ferramentas, configurar cada uma delas e mantê-las atualizadas leva muito tempo. E é por isso que a comunidade Linux tem contribuído com distribuições destinadas a esses usuários.

Distribuições Linux que se destacam na área de segurança da informação.

• Caine

Área de trabalho da distribuição Caine.

Caine é uma distribuição baseada em Ubuntu que possui um grande número de ferramentas forense e aplicações de análise de rede. O nome da distribuição significa “Computer Aided Investigation Environment” e seu maior público são profissionais da área Forense Computacional.

• Fedora Security Lab

Área de trabalho da distribuição Fedora Security Lab.

A distribuição Fedora Security Lab fornece um ambiente seguro de teste para trabalhar com auditoria de segurança, segurança forense, regate de sistema e ensino de metodologias de testes de segurança em universidades e outras organizações.

Esta distribuição é mantida pela comunidade de testadores de segurança e desenvolvedores. Ele vem com o rápido e limpo Xfce Desktop Environment e um menu customizado que fornece todos os instrumentos necessários para seguir o caminho de teste apropriado para testes de segurança ou para recuperar um sistema quebrado.

• BlackArch Linux

Área de trabalho da distribuição BlackArch Linux.

BlackArch Linux é uma distribuição de teste de penetração baseada em Arch Linux para testadores de penetração e pesquisadores de segurança. O repositório contém 2154 ferramentas. É possível instalar ferramentas individualmente ou em grupos. O BlackArch Linux também é compatível com as instalações existentes do Arch.

• BackBox Linux

Área de trabalho da distribuição BackBox Linux.

BackBox Linux é uma distribuição GNU/Linux derivada do Ubuntu, voltada para executar testes de penetração e de vulnerabilidade, o sistema dispõe de várias ferramentas para análise de sistemas e de redes.

O projeto foi originalmente desenvolvido na Itália em 2010, contudo em poucos meses tornou-se uma comunidade global. Atualmente, o projeto está sendo realizado com o apoio da comunidade internacional de software livre.

• Parrot Security OS

Área de trabalho da distribuição Parrot Security OS.

Desenvolvido pela equipe da Frozenbox, a distribuição Parrot Security OS é uma mistura de Frozenbox OS e Kali Linux.

A distribuição utiliza dos repositórios do Kali para atualizar suas ferramentas, mas tem seu próprio repositório dedicado para armazenar os pacotes personalizados.

Comparado com outras distribuições, seu maior diferencial é a leva que o sistema oferece.

Kali Linux

Área de trabalho da distribuição Kali Linux.

Kali Linux é uma distribuição GNU/Linux derivada do Debian mantida pela Offensive Security e considerada a sucessora do Back Track. Com mais de 600 ferramentas pré-instaladas, a distribuição permite realizar Pentest, SQL Inject, Brute Force, Exploits, Sniffers, Scanner, Cracking, invasão de redes sem fio, softwares e banco de dados apenas com suas ferramentas nativas.

Além disso, a empresa Offensive Security oferece diversos cursos, treinamentos e certificações na área de segurança da informação. A distribuição possui uma documentação bastante rica e uma comunidade ativa. Por esses motivos, a distribuição é a mais famosa entre os usuários.

Independente da distribuição que o usuário escolha, a grande maioria das ferramentas presentes só podem ser utilizadas no Terminal, onde uma sequência de parâmetros deve ser informada para realizar uma tarefa específica.

Sendo assim, não basta para os profissionais da área de segurança da informação se manterem atualizados sobre as novas tecnologias, vulnerabilidades e técnicas para combate-las. É necessária uma curva de aprendizagem sobre o uso e aplicação das ferramentas que existem e das novas que surgirem.

Trazendo um interface web para ser utilizada em qualquer dispositivo através de um browser, o projeto open source Kali Linux Tools Interface busca facilitar o uso de ferramentas utilizadas na área da segurança da informação. Por se tratar da distribuição mais popular e por possuir um pacote de ferramentas que está sempre em constante atualização, foi utilizado como referência as ferramentas do Kali Linux.

Definição do Problema

O Kali Linux dispõe de uma robusta quantidade de softwares pré-instalados. Seu repositório está em constante atualização e por esse motivo é reutilizado em outras distribuições voltadas para segurança. Por isso, é muito comum encontrar as mesmas ferramentas, nas mesmas condições de uso, em distribuições diferentes.

Para o usuário, às vezes, descobrir a ferramenta certa para um necessidade específica pode exigir que seja realizada uma pesquisa ou consulta a documentação do sistema. Além disso, para total conhecimento do sistema, é necessária uma curva de aprendizagem extensa e dedicatória, não apenas sobre o funcionamento, mas também sobre o manuseio de cada ferramenta que o mesmo possui.

Por esse motivo, muitos usuários acabam recorrendo a cursos online para conseguirem dominar ferramentas específicas. E mesmo assim, a documentação torna-se quase obrigatória para o uso de várias ferramentas devida as inúmeras sintaxes únicas que cada uma possui.

Visão geral dos problemas identificados

Pensando nessa situação, o projeto Kali Linux Tools Interface busca facilitar o uso dessas ferramentas, trazendo uma interface gráfica web responsiva e open source.

Apesar do projeto possuir “Kali Linux” no nome, isso não torna obrigatório o usuário possuir o Kali Linux. O projeto é uma interface gráfica para as ferramentas, e não para o sistema operacional. O Kali Linux foi escolhido pois ele possui o pacote de ferramentas mais rico e atualizado em comparação com outras distribuições, além de uma grande popularidade e comunidade ativa. Por tanto, se o usuário possuir alguma outra distribuição baseada no Debian e as ferramentas estiverem instaladas, é possível utilizar o Kali Linux Tools Interface sem dificuldades.

Outra vantagem do projeto é o suporte a várias plataformas. No caso dos smartphones, não será mais necessário possuir um aparelho Nexus com acesso root para instalar o NetHunter e utilizar ferramentas do Kali Linux. As ferramentas do Kali Linux poderão ser utilizadas em qualquer plataforma que possua um browser, tornando possível até mesmo realizar auditorias com apenas o smartphone.

No futuro, o projeto terá seu nome alterado para que os usuários não confundam o nome “Kali Linux” com a necessidade de possuir essa distribuição. A alteração será realizada assim que for implementada funcionalidades especificas no projeto e o projeto atingir um número significativo de usuários, já que o nome “Kali Linux” serviu para atrair a atenção de alguns usuários no GitHub. Está sendo cogitado o nome “Security Interface Tools” como um novo nome para o projeto.

Projetos Correlatos

Após pesquisas a procura de softwares similares ao projeto, foram encontrados alguns que facilitam o uso de ferramentas específicas através de uma interface gráfica, porém, nenhum dos softwares encontrados possuem o mesmo funcionamento e objetivo do projeto Kali Linux Tools Interface.

NMapGUI

Screenshot do NMapGUI em funcionamento

NMapGUI é uma interface gráfica de usuário desenvolvida em Java que permite facilitar o uso do software de análise e coleta de informações NMAP.

A ferramenta torna-se bastante interessante quanto a geração de relatórios, porém ela não facilita de fato o uso do NMAP, visto que é necessário inserir sintaxes manualmente como no Terminal. A ferramenta também possui um menu para consultar comandos do NMAP.

SQLMAP Web GUI

Screenshot do SQLMAP Web GUI em funcionamento

SQLMAP Web GUI é uma interface desenvolvida com PHP para trabalhar com o SQLMAP JSON API. De forma geral, o SQLMAP Web GUI disponibiliza formulários para o usuário preencher e, a partir dos dados inseridos, retorna o resultado da varredura para o usuário utilizando a API da ferramenta SQLMAP.

Com interface pouco atrativa, o SQLMAP Web GUI consegue cumprir a promessa de facilitar o uso da ferramenta.

Objetivos

Neste projeto, os objetivos estão subdivididos em objetivo geral e objetivos específicos, conforme segue abaixo.

Objetivo geral

O objetivo geral deste MVP é desenvolver uma aplicação web que proporcione o uso das ferramentas do Kali Linux através de uma interface responsiva. Essa aplicação deve, consequentemente, otimizar o tempo, facilitar o uso e aprendizagem das ferramentas do Kali Linux e aumentar a praticidade.

Objetivos específicos

Os objetivos específicos deste MVP são:

a) Comunicação SSH: estabelecer uma conexão segura entre o cliente com o server. Após estabelecida essa conexão, o cliente passará os comandos para o server e o server retornará a saída.

b) Interface para ferramentas: desenvolver uma página padrão para as ferramentas onde serão listadas as opções para o usuário selecionar e executar o comando especificado em poucos cliques. Essas opções serão cadastradas em um banco de dados, que será consultado e retornará todas as opções possíveis para o usuário.

c) Listagem de ferramentas: desenvolver uma página que facilite a busca e o acesso a ferramenta desejada. O maior desafio aqui é conseguir tornar a navegação fácil e o acesso rápido em meio a tantas ferramentas disponíveis.

d) Referência de sintaxes: alguns usuários certamente irão se questionar que sintaxe cada opção corresponde e o que ela faz. Para isso, foi criado uma lista para apresentar a referência de sintaxe de cada opção disponível.

e) Login de usuário: a autenticação de usuários é realizada com o estabelecimento da conexão SSH. Dessa forma, o acesso em cada host só será possível se houver usuários cadastrados dentro do sistema operacional com permissão para conexões remotas. Além de descartar a necessidade de ter usuários cadastrados dentro da base de dados do projeto, isso também torna a aplicação mais segura contra ataques de força bruta.

f) Dicas de tratamento para vulnerabilidades encontradas: para que os usuários não precisem recorrer a pesquisas sobre como as ferramentas funcionam e como se proteger das vulnerabilidades que elas encontrarem, será adicionado dicas para tratar as vulnerabilidades conforme o funcionamento de cada ferramenta. O objeto é fazer da aplicação mais que uma interface para usar ferramentas e torná-la uma nova maneira de realizar auditorias de segurança.

g) Relatórios: a realização de auditorias possui um processo de documentação onde é elaborado um relatório sobre os dados coletados. Algumas ferramentas permitem gerar relatórios nativamente, porém muitas ferramentas não entregam essa funcionalidade. Visando esse cenário, foi adicionada a opção de salvar os dados coletados para auxiliar o usuário na elaboração de relatórios.

Stack Tecnológico

Para a execução deste projeto foram utilizadas ferramentas gratuitas onde o stack tecnológico projetado foi:

Visão geral do Stack Tecnológico #01
  • PHP 7.0: é uma linguagem de script open source de uso geral, muito utilizada, e especialmente adequada para o desenvolvimento web. Pelo fato do projeto tratar-se de uma aplicação open source, a popularidade e a grande comunidade do PHP tornou-o a linguagem mais adequada para facilitar a popularização e contribuição ao projeto.
  • PHP Secure Communications Library: biblioteca open source com licença MIT. Essa biblioteca permite que protocolos de segurança sejam utilizados com o PHP. Entre os protocolos encontram-se o SSH-1, SSH-2 e o SFTP. O protocolo SSH será utilizado para estabelecer uma conexão segura com o host através do servidor web e executar comandos.
  • Bootstrap 4: é um framework web com código-fonte aberto para desenvolvimento de componentes de interface e front-end para sites e aplicações web usando HTML, CSS e JavaScript. O Bootstrap 4 foi escolhido com o propósito de apresentar um interface responsiva para a aplicação, tornando-a acessível para diversos dispositivos. Além disso, o projeto utiliza o template de código aberto Argon Dashboard, que foi desenvolvido em Bootstrap 4.
  • jQuery: é uma biblioteca de funções JavaScript que interage com o HTML, desenvolvida para simplificar os scripts interpretados no navegador do cliente. Utilizado para apresentar efeitos que possam tornar a experiência do usuário mais satisfatória.
  • MySQL: é o banco de dados de código aberto mais conhecido no mundo. Com comprovado desempenho, confiabilidade e facilidade de uso, o MySQL tornou-se a principal opção de banco de dados para aplicativos baseados na Web. Devida essa popularidade, foi o banco de dados escolhido para ser utilizado no projeto.
Visão geral do Stack Tecnológico #02
  • Medium: Plataforma de publicação online que possui uma coleção híbrida de publicações amadoras, profissionais, blogs e editores. É regularmente considerada como uma apresentadora de blogs. Foi utilizada para a documentação do projeto.
  • Trello: Plataforma de gerenciamento de projeto que pode ser ajustada de acordo com as necessidades do usuário. Utilizada como ferramenta de gestão das tarefas do projeto.
  • GitHub: é um sistema de gerenciamento de projetos e versões de códigos assim como uma plataforma de rede social criado para desenvolvedores. O uso do GitHub não só facilita o recebimento de feedback dos usuários que utilizarem o Kali Linux Tools Interface, como também ajuda na divulgação do mesmo.

Descrição da Solução

Para executar o projeto, foi planejado desenvolver uma interface gráfica para web. Dessa forma, torna-se possível utilizar a ferramenta em qualquer dispositivo através de um browser. O projeto está sendo desenvolvido no idioma inglês para uma inclusão global de usuários, visando a internacionalização do projeto.

Abaixo, é ilustrada uma visão geral das funcionalidades projetadas para o sistema:

Visão geral da solução

Para começar, o Kali Linux Tools Interface deve estar hospedado em um servidor e o mesmo deve possuir as ferramentas que serão utilizadas instaladas. Por esse motivo, é recomendado o uso do próprio Kali Linux. Mas caso o usuário deseje usar outra distribuição baseada no Debian, também é possível.

A seguir apresenta-se a ilustração do funcionamento básico da aplicação:

Inicialmente, o usuário precisar possuir um usuário criado com permissão para estabelecer conexões SSH e o serviço SSH rodando. Para logar no sistema, o usuário deve informar o host de destino (IP ou hostname), o nome do usuário e a senha, como ilustrado abaixo.

Ao clicar em “Connect”, será realizada uma tentativa de estabelecer uma conexão SSH. Se a conexão for estabelecida com sucesso, o usuário é redirecionado para a dashboard da aplicação. Do contrário, o usuário deve informar os dados novamente para realizar uma nova tentativa de acesso.

Visão geral da Dashboard

Na dashboard, o usuário poderá começar a navegar entre as opções do sistema. Foi adicionado um atalho para acessar a lista de ferramentas e os relatórios nessa página para tornar a navegação mais rápida em dispositivos móveis.

Visão geral da tela de seleção de ferramentas

Em “Tools Listing”, o usuário terá uma tela onde poderá escolher qual ferramenta deseja utilizar. Neste exemplo escolhemos a ferramenta theHarvester.

Após selecionada, o usuário será apresentado a tela com opções referente a ferramenta escolhida. Em About pode-se obter uma breve descrição sobre a ferramenta, como ilustrado abaixo:

O botão superior Commands apresenta para o usuário uma lista de comandos possíveis de se utilizar na ferramenta seguido da sua sintaxe. Essa opção foi adicionada para que os usuários saibam a que sintaxe cada opção refere-se.

Clicando em Options será expandida as opções para a ferramenta escolhida. Dentro das limitações da ferramenta, é possível combinar algumas opções. Para isso é necessária uma certa familiaridade com a ferramenta. Combinações que gerem inconsistências na execução podem gerar erros da ferramenta.

Para iniciar a execução da ferramenta, é necessário indicar o alvo em Enter the target’s address. Nessa barra, ainda é possível adicionar sintaxes que não estão disponíveis entre as opções como, por exemplo, scripts da NSE na ferramenta Nmap. Como selecionamos a ferramenta Karma, para o exemplo a seguir, indicaremos o Data source como google, limitamos a pesquisa em 50 resultados em Limit the number of results to work with, selecionamos a opção Verify host name and search for virtual hosts e indicamos gmail.com como nosso alvo.

Quando executado, o card de opções é ocultada novamente e um novo card é exibido. Nesse card, chamado de Terminal, é onde teremos o retorno da nossa busca com o Nmap.

Após a execução ser concluída, teremos o resultado exibido dentro do card Terminal. Quanto maior a quantidade de alvos e/ou maior a complexidade do script, mais demorada será a execução. Por esse motivo, às vezes, o PHP pode atingir o seu tempo máximo para execução e o usuário pode não ter sucesso no escaneamento. Dessa forma, é necessário ser configurado o limite de tempo do PHP nos arquivos de configuração do servidor web. Porém, caso não seja possível, uma outra alternativa é utilizar o a página Terminal.

Ainda temos, nessa mesma tela, duas funcionalidades: How to fix this? e Save to reports.

How to fix this? é uma funcionalidade que visa ajudar os usuários a combater vulnerabilidades encontradas explicando como a ferramenta selecionada funciona e o que é preciso fazer para se proteger. Para utiliza-la, basta clicar no botão e um novo card será aberto com as informações.

Antes de clicar em Save to reports, é necessário informar um nome para identificar esse relatório. Para esse exemplo, foi utilizado o nome “Gmail - Pesquisa de e-mails”. Para deixarmos o relatório mais limpo para leitura, limpamos as primeiras linhas da pesquisa e deixamos apenas os resultados encontrados na varredura.

Após informar um nome e clicar em salvar, as informações sobre a consulta realizada (nome informado, data e hora, ferramenta utilizada, comando utilizado, saída de dados e como combater vulnerabilidade) estarão disponíveis para consulta na página Reports.

Clicando em + Show details, será aberta uma página apresentando todos os dados referente ao relatório selecionado.

O Terminal encontra-se na opção abaixo de Dashboard, na barra fixa a esquerda. Basta ter o Shell In A Box instalado e o usuário poderá executar comandos em tempo real direto pela aplicação. A inserção do Terminal no projeto foi planejada para suprir necessidades específicas do usuário que podem vir a surgir com o uso como, por exemplo, descobrir se um host está ativo através do comando ping, ou mesmo utilizar alguma ferramenta que ainda não tenha sido inserida na aplicação.

Arquitetura

A figura abaixo ilustra a visão geral da arquitetura do sistema:

Overview da arquitetura do projeto

As requisições do usuário são feitas através do browser para o servidor web. Em seguida, a aplicação ira consultar os parâmetros da requisição do usuário no banco de dados, estruturar a linha de comando e só então a conexão SSH será estabelecida com o host que tiver as ferramentas do Kali Linux instaladas. Essa conexão SSH só será encerrada quando o servidor web tiver o retorno dos dados do comando executado. Após receber a resposta, o servidor web envia para o browser a saída de dados.

Para facilitar a leitura deste projeto, os artefatos produzidos foram separados e disponibilizados no repositório do GitHub. Segue abaixo a lista:

  • MVP Canvas
  • Sprint Backlog
  • Mapa Mental
  • Representação da Arquitetura
  • Personas

Link para acessar os artefatos no GitHub:

Validação

A seguir, apresenta-se o processo de validação utilizado para avaliar o projeto, como também a estratégia adotada para validação, resultados obtidos e análise dos dados extraídos.

Estratégia

Desde o inicio do projeto foi projetado que a validação só seria possível através do feedback dos usuários. Por tanto, foi realizada uma pesquisa sobre as ferramentas mais utilizadas para definir quais as ferramentas seriam inseridas na aplicação primeiro, um formulário do Google Forms para coleta do feedback dos usuários, as Issues do GitHub para reportagem de bugs e/ou solicitação de novas funcionalidades e uma entrevista realizada presencialmente com alguns usuários que testaram a ferramenta.

Pesquisa sobre as ferramentas mais utilizadas

Nas fases iniciais do projeto, foi realizada uma breve pesquisa em grupos no Facebook (eSecurity, Técnicas de Invasão, Hacker Security, Ethical Hacker) e fóruns (Blackhat Brasil) sobre quais as ferramentas de segurança da informação são mais utilizadas pelos usuários.

A postagem enviada foi a mesma para todos os grupos e fóruns:

“Boa tarde, galera.
Estou realizando meu TCC em Análise e Desenvolvimento de Sistemas e preciso da ajuda de vocês.

Por favor, comentem quais as ferramentas que vocês mais utilizam do sistema Kali Linux (apenas o nome já basta). E se utilizam alguma que não esteja incluso no sistema, comente qual e o porquê.

Obrigado a todos que puderem colaborar.”

A pesquisa foi respondida por 13 usuários e teve o seguinte resultado:

Estatísticas da pesquisa realizada no período de Março até Maio.

14,3% dos usuários que responderam a pesquisa, comentaram que também utilizam softwares próprios pois algumas ferramentas não atendem necessidades específicas. Essa informação foi representada como “Outros” no gráfico acima.

A partir desses dados coletados, seria decidido quais seriam as primeiras ferramentas que iriam ser inseridas no projeto. Porém, devido ao contato inesperado com um possível usuário para o projeto, as ferramentas escolhidas sofreram alterações para fidelização desse usuário. O usuário passou a utilizar a ferramenta, já que ela atendia as necessidades dele.

Pesquisa de satisfação utilizando o Google Forms

Visão geral sobre a ideia de validação por formulário.

Um breve questionário foi elaborado utilizando o Google Forms para coletar o feedback dos usuários. Devida a internacionalização do projeto, o formulário foi elaborado no idioma inglês. Para ser preenchido, basta o usuário acessar o link do formulário (presente no README do GitHub e também na dashboard da aplicação) e responder as três perguntas, sendo uma delas opcional.

1. You are a…

a) Information Security Student

b) Instructor/Professor of Information Security

c) Information Security Professional

d) Other

2. On a scale of 0 to 10, how satisfied are you with the tool?

3. If you have any suggestions or any requests, feel free to comment. We want to hear you :)

Pesquisas com formulários muito extensos tendem a ser ignorados pelos usuários. Por esse motivo, foi elaborado um formulário rápido, com poucos campos a ser preenchidos.

Esse formulário tem como objetivo recolher o feedback dos usuários, avaliar a satisfação com a ferramenta e descobrir qual o público que está utilizando a ferramenta (estudantes, professores/instrutores, profissionais da área de segurança cibernética, ou outros).

Para acessar o formulário, clique aqui.

Solicitação de funcionalidades e identificação de bugs

Visão geral sobre a ideia de validação pelas issues do GitHub.

Ainda com o objetivo de coletar o feedback dos usuários, está sendo utilizada a sessão Issues no repositório do projeto para coletar novas solicitações de funcionalidades e identificação de bugs.

Para acessar as Issues do repositório, clique aqui.

Entrevista

Tendo em vista que a aplicação tinha objetivos como facilitar o uso e aprendizagem de ferramentas de segurança, otimizar tempo e aumentar a praticidade, foi realizada uma breve entrevista com alguns testadores utilizando alguns atributos referentes à qualidade de uso conforme a ISO/IEC 25000 para validação.

As perguntas levantadas nas entrevistas englobam questões como perfil do entrevistado, funcionalidades, eficácia, eficiência e usabilidade da aplicação.

As questões levantadas nas entrevistas foram respondidas utilizando um formulário criado no Google Forms para que, com base nas respostas dos entrevistados, fosse possível gerar gráficos com as informações coletadas.

Para acessar o formulário, clique aqui.

Consolidação dos Dados Coletados

Para ajudar na divulgação do projeto, foram adicionados vários Topics no repositório do projeto para que o GitHub possa, através do seu algoritmo, recomendar o repositório para usuários interessados.

Através da aba Insights do GitHub, na opção Traffic, foi percebido que o repositório do GitHub foi acessado por 16 usuários, porém apenas 3 tiveram interesse e clonaram o repositório. Sendo assim, este é o número de usuário que testaram a ferramenta até o momento.

Gráficos gerados pelo Traffic do repositório no GitHub.

Desses 3 usuários que clonaram o repositório, 2 marcaram a opção Star. Baseado nos dados de perfil desses usuários, ambos são de outro país, o que comprova a relevância da decisão de levar a internacionalização do projeto desde o inicio.

Usuários que marcaram Star no repositório.

Porém, apenas um usuário respondeu o formulário de feedback do Google Forms.

Dados obtidos na coleta de feedbacks do Google Forms.

Issues do GitHub

As Issues não tiveram nenhuma interação por parte dos usuários. Mas para exemplificar o seu uso, foi aberta um issue referente ao erro retornado quando o servidor web atinge o tempo limite de execução e não consegue concluir a varredura. Em caso de algum usuário encontrar essa dificuldade no uso do sistema, a informação esta disponível para consulta diretamente no repositório do projeto.

Exemplo de Issue no repositório do projeto do GitHub.

Dados coletados nas entrevistas

As entrevistas feitas com cinco testadores foram realizadas presencialmente. Cada testador utilizou um pouco da ferramenta em uma máquina já configurada e, após isso, foi preenchido um formulário do Google Forms.

Segue abaixo os dados coletados dos entrevistados:

Dados coletados nas entrevistas #01
Dados coletados nas entrevistas #02

Como pode ser visto acima, as entrevistas foram realizadas com profissionais/estudantes da área de desenvolvimento e infraestrutura com diferentes níveis de conhecimento na área de segurança.

Dados coletados nas entrevistas #03

Foi questionado se os testados já conheciam o Kali Linux e se eles utilizam ou já utilizaram alguma ferramenta de segurança. Essa parte da entrevista teve como objetivo descobrir se os testadores possuíam familiaridade com a distribuição Kali e se já sabiam utilizar ferramentas de segurança. Com isso, foram coletados os dados referentes ao perfil do usuário.

Dados coletados nas entrevistas #04

Consequentemente, o usuário que não possuía conhecimento sobre ferramentas de segurança teve dificuldades em utilizar a aplicação e, por tanto, não soube opinar se a aplicação realmente facilitava o uso das ferramentas.

Dados coletados nas entrevistas #05

Muitos usuários comentaram ter tido o acesso as ferramentas com muito mais facilidade do que no próprio Kali Linux. Isto, combinado com a facilidade de uso, aumentou a praticidade no uso de ferramentas de segurança para a maior parte dos testadores.

O testador que não possuía conhecimento sobre as ferramentas de segurança questionou se a praticidade realmente havia aumentado, visto que alguns usuários já tenham se acostumado a utilizar o Terminal e que uma GUI poderia mais atrapalhar do que facilitar. Essa questão havia sendo levantada desde o inicio do projeto e, com os dados coletados até agora, acredita-se que a aplicação realmente aumentou a praticidade, baseado na opinião 80% dos entrevistados.

Dados coletados nas entrevistas #06

Essa parte da entrevista teve como objetivo descobrir quais os pontos que os testadores mais gostaram e menos gostaram, o que mais atraiu e menos atraiu a atenção deles dentro da aplicação, os pontos fortes e fracos.

De forma geral, a interface foi bastante elogiada, tanto a parte de navegação quanto a de uso das ferramentas. Alguns usuários não gostaram da aplicação estar em inglês e, logo, sugeriram uma versão em português.

Dados coletados nas entrevistas #07

Com relação aos questionamentos realizados sobre o grau de satisfação das funcionalidades, no geral, os entrevistados ficaram muito satisfeitos com a maioria das funcionalidades. A parte de referência de sintaxes teve pouco interesse por alguns testadores. Estes comentaram que não é algo que agregou muito na aplicação. Relatórios foram bastante criticados, de forma geral, por não ser possível gerar um relatório completo de auditoria apenas pela aplicação. Quanto a funcionalidade dicas para combate de vulnerabilidades, alguns testadores comentaram que o fato da aplicação ser inglês tornou essa funcionalidade menos satisfatória do que ela realmente é.

Dados coletados nas entrevistas #08

Foi disponibilizado, no final, uma parte que os entrevistados pudessem deixar sugestões de melhorias para a aplicação. Porém, como pode ser percebido, muitos acabaram dando essas sugestões enquanto questionados sobre os pontos fortes e fracos da aplicação.

A maior parte dos usuários sugeriu a adição de novas ferramentas.

Conclusões

O projeto Kali Linux Tools Interface surgiu a partir das dificuldades encontradas em utilizar ferramentas de segurança. Para que fosse possível utilizar várias ferramentas de segurança no projeto, foi escolhida a distribuição Kali Linux devida a sua popularidade e robusto pacote de ferramentas.

Inicialmente, havia sido projeto uma interface gráfica para facilitar o uso dessas ferramentas. Porém, devido o entusiasmo com o projeto, diversas mudanças ocorreram. Novas funcionalidades foram sendo adicionadas, adaptações foram sendo feitas para atender os feedbacks recebidos, tudo com intuito de entregar uma experiência que supera-se as expectativas dos usuários.

Através dos feedbacks recebidos, perceber-se que o projeto conseguiu seguir de acordo com o seu objetivo principal e que suas perspectivas futuras só agrarão mais para que o projeto torna-se algo além de uma interface gráfica para operar ferramentas.

Limitações do Projeto e Perspectivas Futuras

• Pequenos detalhes

Algumas funcionalidades foram retirados desse MVP devido o tempo para realizar a sua entrega. Estes “pequenos detalhes” estão sendo planejados para as próximas Sprints do projeto. São elas:

  • Campo para permitir varreduras utilizando uma lista de alvos em um arquivo de texto;
  • Backend da páginação em Reports;
  • Verificar se a ferramenta esta instalada no host;
  • Realizar instalação de ferramentas no host diretamente pela aplicação;
  • Barra de pesquisa de ferramentas (pesquisa dinâmica);

• Mudança Tecnológica

A limitação referente ao tempo de execução do PHP será corrigida futuramente mudando a tecnologia utilizada estabelecer conexões SSH e executar comandos (Python e Shell Script estão sendo cogitado). O objetivo dessa mudança é tornar desnecessário que o usuário faça alterações nos arquivos de configuração do servidor web para usufruir do potencial máximo da ferramenta.

Além disso, com a mudança da tecnologia, também é objetivado conseguir apresentar os dados na tela dinamicamente para o usuário. Por exemplo:

“Usuário executou um comando no Nmap para detectar o IP dos hosts que estão conectados na rede.”

Hoje, é necessário que a linha de comando seja executada e aguardar até que a busca seja concluída para apresentar os dados. Com a mudança de tecnologia, será apresentado os dados para o usuário em tempo real. Por tanto, se um host for detectado durante a busca, será apresentado esse dado e a busca continuará sendo realizada.

Espera-se também que a mudança tecnológica consiga trazer melhorias na performance e uma nova forma de apresentar os dados para o usuário, com gráficos e informações mais limpas, tornando a leitura e interpretação mais clara, em vez de apenas imprimir a saída de dados das ferramentas. Com isso, também será possível traduzir o sistema para outros idiomas. Se o projeto tivesse iniciado com uma interface gráfica em português, a saída de dados em inglês do Terminal tornaria necessário os usuários possuírem conhecimento dos dois idiomas.

A mudança tecnológica visa corrigir as limitações presentes no projeto e alcançar novos objetivos como:

  • Facilitar a leitura e interpretação de dados para o usuário;
  • Tornar relatórios mais fáceis para leitura;
  • Melhorar performance.

• Aplicativos para Mobile e Desktop

Além disso, esta sendo planejada a criação de um aplicativo mobile para as plataformas Android e iOS utilizando o framework Ionic (tecnologia sujeita a alterações). O objetivo é de disponibilizar uma forma mais fácil e rápida para acessar a aplicação em dispositivos portáteis. Também esta sendo cogitada uma versão desktop, utilizando o framework Electron.

• Hospedagem e contribuição da comunidade

Pensando em aproximar mais a comunidade ao projeto, e permitir que a mesma contribua para o crescimento do sistema, também está sendo planejada a hospedagem do sistema e a inserção de uma área onde os usuários poderão não apenas enviar feedbacks sobre a aplicação, mas também contribuir para o crescimento da base de dados, cadastrando sintaxes das ferramentas de cibersegurança, sugestões para o combate de vulnerabilidades encontradas nas varreduras e novas ferramentas.

O objetivo é tornar a base de dados maior rapidamente, centralizar informações sobre combate de vulnerabilidades e tornar a aplicação em um ambiente de cibersegurança em nuvem que todos profissionais de T.I. possam recorrer sem precisar possuir uma máquina com ambiente configurado.

Além disso, o cadastro de ferramentas visa divulgar novos programas/scripts criados pela comunidade. Dessa forma, mais ferramentas, além das presentes no Kali Linux, poderão ser utilizadas. Com isso, o nome da aplicação será alterado para ilustrar melhor a nova fase do projeto.

Devido as despesas que a hospedagem pode trazer, o uso em nuvem da plataforma e os aplicativos para Android e iOS provavelmente serão recursos pagos. O usuário ainda poderá baixar a ferramenta em sua própria máquina e, se quiser, configurar seu roteador para realizar o acesso remoto e utilizar o sistema remotamente. Para esses usuários, esta sendo uma planejada uma versão FREE do aplicativo com anúncios.

• Outros idiomas

Muito requisitada pelos testadores durante as entrevistas realizadas, uma versão em português para a aplicação esta sendo planejada. Caso a aplicação consiga atingir um bom número de contribuidores para o projeto, está cogitado uma área apenas para contribuições de traduções. Dessa forma, será possível disponibilizar o sistema não apenas em Português, mas em qualquer idioma que a comunidade deseje.

• Um novo projeto para um público mais leigo

E, para finalizar, está sendo cogitada uma versão para “leigos”. Essa versão teria como objetivo selecionar ferramentas específicas para realizar escaneamentos a partir das opções selecionadas pelo usuário e ajudar aqueles que não possuem muito conhecimento na área de segurança a se proteger de possíveis ataques.

A ideia é que o usuário tenha uma tela onde possa selecionar que tipo de escaneamento deseja realizar (se deseja escanear o dispositivo, ou rede, em busca de possíveis ameaças a roubo de dados, ou escanear um arquivo ou link em busca de vírus, etc) e, a partir disso, executar ferramentas pré-selecionadas do sistema para executar a varredura. Finalizada a varredura, seria exibido medidas para o usuário se proteger das ameaças encontradas.

Referências Bibliográficas

DNFNDR Lab. Relatório da Segurança Digital no Brasil. 2018. Disponível em: https://www.psafe.com/dfndr-lab/wp-content/uploads/2018/08/dfndr-lab-Relat%C3%B3rio-da-Seguran%C3%A7a-Digital-no-Brasil-2%C2%BA-trimestre-de-2018.pdf

JOSÉ, Higor. Introdução a Segurança da Informação. Ebah. Disponível em: https://www.ebah.com.br/content/ABAAAgSeMAG/introducao-a-seguranca-informacao

MUNIZ, Joseph; LAKHAMI, Aamir. Web Penetration Testing with Kali Linux. Packt Publishing, 2013.

CHANDEL, Raj; Configure Sqlmap for WEB-GUI in Kali Linux. Hacking Articles, 2019. Disponível em: https://www.hackingarticles.in/configure-sqlmap-for-web-gui-in-kali-linux/

FRAGA, Bruno; VANGLLER, Thompson. Técnicas de Invasão. 2013. Disponível em: https://tecnicasdeinvasao.com/livro-tdi

Offensive Security. Kali Linux. Disponível em: https://www.kali.org/

DELFINO, Pedro. Melhores Sistemas Operacionais para Hacking Ético e Teste de Vulnerabilidade. 2017. Disponível em: https://e-tinet.com/linux/sistemas-operacionais-para-hacking-etico/

GitHub. PHP Secure Communications Library. Disponível em: https://github.com/phpseclib/phpseclib

Oracle. Mysql: O Banco de Dados de Código Aberto mais Conhecido do Mundo. Disponível em: https://www.oracle.com/br/mysql/

--

--

Lucas Fraga

Teacher, Developer, Computer Technician, Enthusiast on A.I, Gaming and Cybersecurity.