Por mais importante que seja, a segurança cibernética ainda está limitada pelo orçamento.
Felizmente, existem algumas ferramentas gratuitas fantásticas que você pode adicionar ao seu arsenal de segurança cibernética para ajudá-lo a proteger sua rede.
Gratuito e de código aberto
Software grátis? Parece ótimo, mas você pode confiar nisso?
Se for de código aberto, sim, você pode. Código aberto é uma forma de desenvolver software que proporciona transparência aos usuários finais. Eles podem obter o código-fonte que compõe o aplicativo e revisá-lo. Eles podem verificar por si mesmos se não está fazendo nada sinistro ou sorrateiro com seus dados.
Além de revisar o código-fonte, os usuários podem modificá-lo – se forem programadores – para corrigir bugs ou adicionar novos recursos. As alterações são submetidas aos mantenedores do produto. Se os mantenedores gostarem das mudanças, eles encontrarão seu caminho para o produto.
Isso beneficia tanto os usuários do aplicativo de código aberto – conhecido como comunidade – quanto os desenvolvedores dos produtos. Quanto mais olhos revisarem o código, melhor.
Como Linus Torvalds, principal mantenedor do kernel Linux, disse a famosa frase: “…com atenção suficiente, todos os bugs são superficiais”.
Embora o código aberto não seja infalível
Isso não significa que o software de código aberto não possa ter bugs. Todos os grandes projetos de software conterão bugs. Mas o que isso significa é que quando os bugs são descobertos, eles são caracterizados e resolvidos rapidamente, e as correções logo estarão disponíveis como patches.
Se precisar das correções imediatamente porque elas são essenciais para você, você pode baixar o código-fonte assim que as correções de bugs forem adicionadas. Você pode então compilar o código e construir uma versão para si mesmo com a correção, para que não precise esperar o lançamento oficial.
Todos os aplicativos que veremos neste artigo são de código aberto. Alguns deles são os padrões de facto em seus campos. Isto é uma prova da dedicação das comunidades, mantenedores e líderes de projeto por trás dessas aplicações. Existem muitas outras ferramentas de código aberto que você pode usar para melhorar sua postura de segurança cibernética e auxiliar no gerenciamento e fortalecimento de sua rede.
Esses são apenas os cinco aos quais me encontro recorrendo continuamente.
Nmap: ferramenta de mapeamento de rede
Saber o que está conectado à sua rede é um requisito fundamental para planejar seu cronograma de aplicação de patches e atualizações, saber o que você precisa proteger e saber quais dispositivos podem estar colocando você em risco.
O mapeador de rede nmap é uma poderosa ferramenta de digitalização e relatórios. Ele detecta quais dispositivos estão conectados à sua rede e, em seguida, verifica esses dispositivos em busca de informações como tipo e versão do sistema operacional, portas abertas, endereço IP e muito mais. Ele também detectará e reportará dispositivos conectados via Wi-Fi.
É um aplicativo multiplataforma com versões disponíveis para computadores Linux, Windows e Mac. Instalar é fácil. Este one-liner irá instalá-lo no Ubuntu:
Depois de instalá-lo, use o -h
(ajuda) opção de linha de comando para ver o resumo da ajuda ou usar man nmap
para ler a página do manual. As opções que estamos usando neste exemplo são:
- -T4: Verificação completa (agressiva)
- -A: Para detecção de sistema operacional e versão, verificação de script e informações de traceroute
- -v: Saída detalhada
Como o nmap gera muita saída, você achará conveniente redirecionar a saída para um arquivo que poderá revisar quando a varredura for concluída.
Este comando diz ao nmap para verificar uma rede inteira. Ele está usando a notação de roteamento entre domínios sem classe (CIDR). O “/24” representa a máscara de sub-rede. Indica quantos bits contíguos iniciais estão definidos como um na máscara de sub-rede. O valor 24 significa 3 conjuntos de 8 bits. 8 bits todos definidos como 1 representam 255 em binário, então esta máscara de sub-rede é 255.255.255.0.
Você pode revisar os resultados da verificação usando o less
comando:
Percorra os resultados da verificação observando os detalhes que foram descobertos para cada dispositivo. Aqui está o que o nmap tem a dizer sobre o dispositivo com endereço IP 192.168.1.15. Quatro portas abertas foram detectadas.
Se a finalidade da porta puder ser determinada, você será informado para que ela está sendo usada. Se o nmap não tiver certeza, ele sugere um possível uso para a porta. Qualquer coisa inexplicável ou suspeita exigirá uma investigação mais profunda.
Você pode considerar usar a varredura -T5 (mais completa) diretamente nesse único endereço IP. Quanto mais minuciosas forem as verificações, mais demoradas elas serão. A documentação do nmap chama -T5 de modo insano, então espere uma longa espera.
Wireshark: captura e análise de pacotes
A ferramenta nmap informa rapidamente o que está conectado à sua rede e fornece o máximo de informações possível sobre cada dispositivo. Mas para ver qual tráfego de rede está se movendo em sua rede e entre seus dispositivos, você precisa de uma ferramenta de captura e análise de pacotes, comumente conhecida como sniffer de pacotes. Wireshark faz exatamente isso.
Wireshark é multiplataforma e está disponível para computadores Windows, Linux e Mac. Para instalar o Wireshark no Ubuntu, use este comando:
Você será perguntado se deseja ativar a captura de pacotes para usuários normais e não root. Se você configurá-lo para precisar ser root para executar o Wireshark, você estará executando a base de código do Wireshark com privilégios elevados. Se você optar por permitir que usuários não-root possam usar o Wireshark, eles poderão capturar algum tráfego de rede que você preferiria que fosse privado. Eu geralmente o instalo para que você precise ser root para capturar o tráfego de rede.
Ao ver a tela a seguir, pressione “Tab” para destacar o “botão” e pressione a barra de espaço. Selecione a opção desejada.
Quando a instalação for concluída, você pode iniciar o Wireshark com este comando:
As interfaces de rede disponíveis nas quais você pode capturar o tráfego estão listadas. Clique duas vezes em uma interface para iniciar a captura de pacotes.
O Wireshark começará a capturar o tráfego de rede na interface de rede selecionada. A exibição muda para mostrar três painéis. O tráfego é mostrado no painel superior.
Para ver os detalhes de um pacote, destaque-o no painel superior. Informações de baixo nível sobre o pacote são exibidas nos painéis intermediário e inferior. O painel do meio tem uma visualização em árvore recolhível de valores legíveis por humanos. O painel inferior mostra os dados brutos do pacote em hexadecimal e ASCII.
Isso parece limitado na captura de tela, mas quando estendido por um monitor inteiro, é uma visualização intuitiva e rica em informações.
Grande parte do poder do Wireshark reside na sua funcionalidade de filtragem. Você pode criar filtros para limitar o que é capturado e filtrar o que é exibido. Geralmente é melhor capturar tudo – sem filtro – e filtrar as informações exibidas durante a fase de análise. Se você filtrar durante a fase de captura, poderá filtrar inadvertidamente um pacote ou uma sequência de pacotes que realmente deveriam ter sido capturados.
Aqui estão alguns exemplos de filtros.
Para selecionar pacotes com 192.168.1.15 como endereço de origem ou destino:
Para selecionar pacotes com 192.168.1.15 como endereço IP de origem:
Para selecionar pacotes com 192.168.1.15 como endereço IP de destino.
Para selecionar os pacotes em uma conversa entre dois endereços IP:
Para exibir todos os pacotes HTTP e DNS:
Para selecionar pacotes TCP com 4000 como porta de origem ou de destino:
Para exibir todas as solicitações HTTP GET:
Para encontrar todos os pacotes TCP contendo a palavra Techopédia:
Osquery: Descubra o estado dos computadores e servidores
O osquery O aplicativo permite que você faça perguntas sobre o estado de seus computadores e servidores usando instruções SQL simples. Ele está disponível para computadores Windows, Linux e Mac.
Para instalá-lo no Ubuntu, navegue até o página de download do osquery e baixe o arquivo do pacote “.deb”. Mude para o diretório do arquivo baixado e instale o osquery com estes comandos. Substitua o nome do arquivo baixado pelo usado no exemplo.
Inicie o osquery no modo interativo com este comando (observe o “i” no final de osqueryi.)
O shell interativo do osquery é aberto. Você digita comandos SQL no prompt “osquery” e os termina com ponto e vírgula (;
) e pressione “Enter” para executá-los.
Os comandos que você deseja enviar para o shell, como “quit”, são precedidos por um ponto “.” e são chamados de comandos de ponto. Portanto, o comando para sair do shell é “.quit” seguido de “Enter”. Apenas lembre-se de que os comandos SQL exigem seu ponto e vírgula final usual, os comandos de ponto não.
Para ver a lista de tabelas, use o comando .tables, e para ver os campos de uma tabela, use o comando .schema.
Agora que você conhece os nomes dos campos da tabela, podemos criar uma instrução SQL e executá-la:
Como exemplo de consulta relacionada à segurança, a tabela suid_bin contém detalhes dos aplicativos que possuem um ou ambos os bits SUID e GUID definidos. Isso permite que usuários normais executem aplicativos com privilégios elevados.
Os agentes de ameaças às vezes exploram isso e usam-no para aumentar os privilégios do malware e ocultar backdoors. Manter os binários habilitados para SUID e GUID sob observação é uma boa prática.
Nikto: Verificador de vulnerabilidade de sites
Não esqueçamos dos sites e portais corporativos. Nikto irá examiná-los em busca de muitos tipos de vulnerabilidade. Os autores dizem que irá:
- Verifique se há 6.700 arquivos ou programas potencialmente perigosos.
- Verifique se há versões desatualizadas de mais de 1250 servidores.
- Verifique se há problemas específicos de versão em mais de 270 servidores.
Instalar o Nikto é fácil. No Ubuntu, use este comando:
Executaremos o nikto em um site de teste que foi projetado com vulnerabilidades integradas para que você possa praticar a verificação. Observe que uma varredura nikto pode demorar um pouco – 40 minutos ou mais não é incomum – é um processo muito completo.
Dizemos ao nikto qual servidor web verificar usando o -h
opção (host). Também usaremos o -o
(saída) opção para especificar um nome de arquivo para nosso relatório. Nikto descobrirá a partir da extensão do nome do arquivo em que formato queremos que o relatório seja criado. Os formatos reconhecidos são CSV, HTML, TXT e XML.
Embora tenhamos solicitado a criação de um relatório, ainda recebemos a saída enviada para a janela do terminal à medida que a verificação avança. Isso verifica se o processo está em andamento e não está completamente paralisado.
Quando a verificação for concluída, navegue até o local onde o relatório foi salvo e clique duas vezes no arquivo “report.html”. O relatório será aberto no seu navegador.
Kali Linux: tudo, incluindo a pia da cozinha
Se você quiser apostar tudo em ferramentas para testar sua segurança, dê KaliLinux um giro. É uma distribuição Linux projetada desde o início para testes de penetração. Ele contém inúmeras ferramentas que permitem testar suas defesas exatamente da mesma maneira que os agentes da ameaça fazem.
Infelizmente, essas ferramentas podem ser usadas para o bem e para o mal, por isso também são as favoritas dos bandidos. Ainda assim, esse é mais um motivo para você mesmo se familiarizar com eles – ou com alguém de nossa organização – para que possa identificar vulnerabilidades em sua rede e site e conectá-las.
A maneira mais fácil de usar o Kali Linux é baixar um ISO e instalá-lo como uma máquina virtual em um hipervisor como o VirtualBox.
Wireshark, Nikto e nmap são pré-carregados junto com quase todas as outras ferramentas de reconhecimento, ataque e exploração que você possa imaginar. Todo o trabalho de identificar quais ferramentas coletar e adicionar ao seu arsenal e, em seguida, localizá-las e instalá-las é feito para você.
Algumas ferramentas e estruturas notáveis incluídas no Kali Linux são:
- A estrutura Metasploit: um conjunto de ferramentas para identificar e explorar vulnerabilidades. Com base em um banco de dados de mais de 140.000 vulnerabilidades comuns e mais de 3.000 explorações (CVEs). Esta é uma oferta gratuita e de código aberto de Rápido7que também conta com ofertas comerciais com suporte profissional.
- Suíte Burp: uma ferramenta de teste de penetração projetada para aplicativos baseados na Web e problemas gerais de segurança de sites. Esta também é a versão de código aberto de um produto comercial.
- O kit de ferramentas de engenharia social: um conjunto de ferramentas que permite realizar ataques de engenharia social, como ataques de phishing e spear-phishing. Isso é fornecido para realizar testes de suscetibilidade contra sua própria equipe, mas você pode ver a faca de dois gumes desse software ser tão fácil de adquirir.
Kali é uma distribuição baseada em Debian. Por padrão, ele usa o XFCE ambiente de área de trabalho. Mesmo em uma máquina virtual, você deve considerá-la responsiva, rápida e bem projetada.
O menu principal do sistema fornece as principais categorias de software e ferramentas nas quais você pode se aprofundar.
Kali é uma distribuição baseada em Debian. Por padrão, ele usa o ambiente de desktop XFCE. Mesmo em uma máquina virtual, você deve considerá-la responsiva, rápida e bem projetada.