Uma visão sobre pesquisa de segurança e hacking ético

Teste de software e hacking ético são a mesma coisa? O que exatamente é pesquisa de segurança e quem pode ajudar nos testes de software? O Avance Network Lab, explica.

O teste de software é uma parte importante da produção de software. Quer seja feito pelo desenvolvedor, uma equipe dedicada de testadores ou um exército de voluntários, o software bem testado ajuda a garantir que o usuário final não acabe enfrentando problemas potenciais causados ​​por mau funcionamento do software.

 

Existem também testadores externos que, sem estar formalmente inscritos como voluntários, também podem optar por ajudar nos testes do software. Eles podem querer melhorar um produto que eles próprios usam, ou apenas para se divertir, ou na esperança de uma recompensa. E depois há os pesquisadores de segurança e hackers éticos.

 

Hacking ético não é um trabalho obscuro

 

Hacker ético, também conhecido como teste de penetração, é testar um site ou serviço quanto a falhas de segurança, com o objetivo de melhorar a segurança desse site ou serviço. É o mesmo que um pesquisador de segurança pode realizar o teste de um produto de software distribuível, como um navegador.

 

O termo “hacker ético”, no entanto, se refere ao teste de sites e serviços e é uma subcategoria da pesquisa de segurança.

 

Os sites e serviços da Internet são feitos de softwares grandes e complexos. É comum haver pequenos erros neles. Um pequeno erro normalmente não é um problema - uma página da web pode mostrar uma mensagem de erro em vez do conteúdo correto - mas às vezes um erro dá a um hacker uma maneira de fazer o site ou produto revelar informações secretas, mostrar mensagens enganosas, dar acesso a contas , ou divulgar grandes quantidades de dados mantidos no site.

 

Os proprietários de sites tentam garantir que não incluam nenhum erro que possa ser abusado dessa forma, mas, ocasionalmente, um erro importante será esquecido. Um exemplo seria um formulário de login em um site que permite que você tente um número infinito de senhas para que você possa entrar em uma conta. Outro exemplo mais sério seria uma injeção de SQL ou comando que não limpa aspas em uma string de consulta e acabará tratando-a como parte de um comando SQL ou de um comando shell.

 

Aplicativos de software (aplicativos) também são frequentemente complexos e erros semelhantes podem acontecer. Um aplicativo pode travar ou partes do aplicativo podem apresentar um erro. Mas também pode ser possível fazer com que ele mostre informações de segurança incorretas ou não atualize um campo de segurança. Pode ser possível fazê-lo executar código executável controlado por um invasor ou divulgar dados privados.

 

Hacking ético está muito longe de hacking

 

O termo “hacker” originalmente significava alguém que poderia aplicar modificações avançadas à configuração do software de seu computador para mudar a maneira como ele funciona. No entanto, quando as pessoas dizem “hacker”, geralmente se referem a uma pessoa que descobriu uma maneira de contornar a segurança de um site ou serviço. Esse hacker então rouba os dados ou obtém acesso às contas, e talvez eles causem danos que custem à empresa grandes quantias de dinheiro para serem reparados. Eles podem usar ferramentas para este teste de penetração ou podem testá-lo manualmente.

 

No final, um hacker criminoso pode vender os dados roubados, ou detalhes do próprio problema de segurança, a organizações mal-intencionadas por grandes quantias de dinheiro. Ou podem usar as informações roubadas diretamente para extorsão, exigindo dinheiro das vítimas.

 

Um hacker ético - ou pesquisador de segurança - não roubará nenhum dado ou causará qualquer dano. Em vez disso, eles irão relatar esse problema ao proprietário do site ou ao fornecedor do produto, para que o proprietário possa corrigi-lo.

 

Muitos proprietários de sites contratam pessoas especificamente para realizar esse tipo de teste, a fim de melhorar a segurança do site. Alguns proprietários de sites convidam abertamente hackers éticos para testar seus sites em busca de problemas. Alguns proprietários não gostam que seus sites ou serviços sejam testados dessa forma e talvez sejam hostis a um pesquisador de segurança, embora o pesquisador de segurança esteja realmente tentando ajudar.

 

Um hacker ético ou pesquisador de segurança escolhe o caminho certo

 

Por que um hacker ético ou pesquisador de segurança escolhe uma estrada principal? Porque muitos proprietários de grandes sites ou serviços oferecem recompensas financeiras para pesquisadores que encontram problemas exploráveis ​​e os relatam com responsabilidade. Para um bom pesquisador de segurança, isso pode ser suficiente para ganhar a vida. Empresas menores que não podem pagar um grande orçamento podem oferecer outras recompensas, como mercadorias, ou a chance de ter o nome do pesquisador escrito em seu site na página de créditos do “hall da fama”.

 

Trabalhar para colocar seu nome em um site pode ajudar alguns pesquisadores de segurança novatos a construir seu portfólio de trabalho e realmente ajuda quando eles estão tentando se inscrever para empregos de teste. É uma medalha de honra que pode ser carregada no futuro.

 

No entanto, isso é essencialmente trabalhar para exposição e você só deve fazê-lo se achar que não obter uma compensação financeira é certo para você. Isso pode ser o caso se você estiver fazendo isso como uma experiência de aprendizado, apenas se preocupando com o crédito ou se estiver realmente investindo na melhoria do serviço ou produto.

 

Ser um pesquisador de segurança não é o agrado de todos

 

A pesquisa de segurança atrai um certo tipo de pessoa que procura pequenos detalhes e pensa em como esses detalhes podem ser usados ​​de maneira incorreta, mas que não tem más intenções próprias. O tipo de pessoa que pode trabalhar com garantia de qualidade e teste de software.

 

Paciência é muito importante porque o trabalho pode ser repetitivo e as chances de encontrar um problema explorável podem ser baixas.

 

Várias horas ou dias de trabalho podem acabar sem revelar nada de importante ou apenas apresentar muita esperança. As recompensas às vezes são grandes, às vezes pequenas, então ajuda ser alguém que está feliz com as pequenas recompensas e tem a sensação de sucesso.

 

O mais importante é a capacidade de ver as maneiras de fazer mau uso de alguma coisa. Um recurso que deveria ser usado de uma certa maneira, mas se você usá-lo de uma maneira diferente, você pode fazer algo de ruim acontecer?

 

A capacidade de programação ajuda em algumas coisas, por exemplo, saber os tipos de erros que um programador pode cometer em linguagens específicas. Para sites, algumas linguagens de programação podem não oferecer uma maneira padrão de codificar caracteres não seguros em entidades HTML, portanto, pode ajudar a começar a procurar problemas de injeção de HTML com strings de consulta que podem permitir scripts entre sites. O PHP normalmente usa APIs padrão para acessar bancos de dados compatíveis com MySQL, que enviam cada consulta como uma única instrução, portanto, mesmo que o site não higienize as entradas SQL, pode não ser possível usar caracteres de divisão de comando para executar comandos adicionais.

 

Ser capaz de aprender os protocolos usados ​​por um serviço é uma grande vantagem. Talvez você já tenha ferramentas para testar a proteção contra martelamento de senha para um formulário de login HTML, mas o site também oferece acesso à conta POP e você pode estudar os documentos do protocolo POP3 e tentar programar sua própria ferramenta para martelar a senha de login POP3. O protocolo é público, é algo com que você pode aprender.

 

Em alguns casos, se você não tiver todas essas habilidades, pode procurar se pode trabalhar em equipe com pessoas que podem ajudar nas áreas em que você está carente. Pode ser importante ter várias pessoas com quem discutir ideias e pelo menos uma pessoa que possa lidar com as partes do processo que exigem paciência.

 

Comece a se tornar um pesquisador de segurança

 

Já existem muitos artigos por aí sobre os tipos de problemas comuns que podem ser encontrados em sites. Na verdade, existe um site muito popular administrado pelo projeto The Open Web Application Security Project ( OWASP) , que muitos hackers éticos usam como guia, compartilhando detalhes dos problemas que encontraram.

 

Ferramentas como Burp Suite e Metasploit são usadas para automatizar os testes. Eles precisarão de algum conhecimento e configuração primeiro, mas podem realizar muitos testes rapidamente sem precisar fazer tudo sozinhos. Depender inteiramente de tais ferramentas, entretanto, não o torna um bom pesquisador, pois as ferramentas têm seus limites e suas respostas precisam ser examinadas com cuidado.

 

Para aplicativos de software, é um pouco mais difícil, já que cada aplicativo é diferente, e o tipo de coisas que podem ser consideradas exploráveis ​​em um aplicativo podem ser consideradas irrelevantes em outro, dependendo de como foram projetados para funcionar. Para todos os tipos de software, existem ferramentas chamadas “fuzzers” que enviam entradas aleatórias de lixo, ou entradas quase válidas, mas ligeiramente erradas, para o aplicativo ou site, para ver se há mau funcionamento. Isso requer um pouco mais de conhecimento e, em geral, é algo que seria utilizado pelos desenvolvedores de aplicativos.

 

Melhorando sua pesquisa de segurança

 

O tipo mais simples de teste geralmente pode ser feito com ferramentas automáticas, portanto, grandes quantidades de conhecimento não são necessárias. No entanto, se você quiser se tornar realmente bom nisso, existem muitas universidades ao redor do mundo que oferecem cursos específicos para hacking ético e muitas para pesquisa de segurança em geral. Uma tarefa comum nas férias de verão é ver em quantos corredores da fama de sites você consegue colocar seu nome.

 

Em geral, não é realmente possível usar livros para obter informações atualizadas relacionadas a explorações em potencial. A tecnologia avança muito rápido e os livros ficam desatualizados antes mesmo de serem publicados. Frequentemente, os cursos online podem ajudar a mantê-lo atualizado, mas este é um campo onde a pesquisa constante é melhor.

 

O que fazer e o que não fazer para pesquisadores de segurança

 

Nem todos os problemas de segurança são “críticos”. Eles são definitivamente mais importantes do que os bugs regulares, mas a maioria tem impactos mínimos. Ser capaz de aplicar a folha de estilo errada a um site definitivamente não é tão importante quanto comprometer todos os dados no servidor.

 

Evite suposições: não presuma que, porque uma ferramenta diz que encontrou algo, ela deve ser explorável. As ferramentas geralmente avisam sobre possíveis problemas que só podem ser explorados em circunstâncias muito específicas, e o site ou aplicativo pode não atender a esses requisitos; por exemplo, um site pode não ter proteção contra clickjacking, mas isso não é perigoso, a menos que haja algo prejudicial que possa ser feito com um clique.

 

Investigue: os problemas potenciais podem precisar de muita investigação primeiro - quanto mais trabalho você fizer, mais o proprietário do site vai querer recompensá-lo. Se for relatado sem teste se realmente pode ser explorado, isso desperdiça muito tempo tanto para o pesquisador de segurança quanto para o proprietário do site, que precisa explicar ao pesquisador que sua suposição está errada. Se você relatar coisas repetidamente muito cedo, sem verificar se elas realmente funcionam como um exploit, o proprietário do site pode simplesmente ficar chateado com você e parar de ouvir seus relatórios. Ou eles podem optar por não recompensá-lo quando você encontrar um problema real porque você desperdiçou muito do seu tempo.

 

Mesmo que algo esteja listado como um problema de segurança no The Open Web Application Security Project (OWASP), isso não significa que seja um problema de segurança no site atual. O site OWASP menciona muitas coisas que são totalmente irrelevantes na maioria das circunstâncias. Por exemplo, há páginas que informam que revelar o fabricante ou o número da versão de um servidor é perigoso porque permite que um invasor saiba quais problemas procurar. Este não é o caso. Um ataque real usa todas as explorações possíveis sem verificar a marca ou o número da versão. Se funcionar, funciona; do contrário, o invasor passa para a próxima exploração em potencial. Ocultar informações de fabricante ou versão do servidor apenas torna a vida do pesquisador de segurança e só dá uma falsa impressão de segurança, conhecida como segurança por obscuridade.

 

Nem todos os problemas são problemas: quando o proprietário de um site ou fornecedor de produto aceita que algo é um problema, não presuma que sempre será um problema. Muitos proprietários e fornecedores de sites assumem que é melhor ser cauteloso. Mas alguns irão realmente investigar o impacto real e podem dizer a você corretamente que o que você encontrou na verdade não é um problema. O proprietário dos sites ou produtos anteriores pode ter feito a avaliação errada. A discussão pode fazer com que o proprietário ou fornecedor do site pare de ouvir seus relatórios.

 

Relatar em particular: relatar coisas em particular para o proprietário do site ou fornecedor do produto e dar-lhes um tempo razoável para corrigir os problemas. Se você tornar os detalhes públicos, estará colocando o site ou produto e seus usuários em risco e não merece a recompensa. Se você compartilhar com outros pesquisadores antes que o problema seja corrigido, então os outros pesquisadores podem revelar detalhes e você colocará o site e seus usuários em risco. Normalmente, os problemas não podem ser corrigidos em um dia, fim de semana ou férias. Às vezes, pode demorar um ou dois meses para atualizar todo o software. Continue se comunicando e seja flexível. É assim que você ganha suas recompensas.

 

Verifique como comunicar relatórios: Antes de relatar o problema, verifique como o proprietário do site ou fornecedor do produto deseja receber relatórios. As empresas de tecnologia costumam ter sistemas de relatórios de bugs dedicados, onde os relatórios podem ser feitos de forma confidencial. Alguns usam um endereço de e-mail de segurança. Alguns podem ter apenas endereços de e-mail de contato genéricos. Nunca, sob nenhuma circunstância, relate problemas em sites públicos como Twitter, Facebook, Reddit ou fóruns. Se essa for a única maneira de entrar em contato com uma empresa, envie uma mensagem, informando que você tem um problema de segurança para relatar a ela, e pergunte como entrar em contato em particular.

 

Avalie as formas de relatar: os relatórios quase nunca precisam de um vídeo de “prova de conceito”. Por exemplo, com o cross-site scripting, um simples link para o URL com a string de consulta correta é suficiente. Os vídeos são mais bem usados ​​em casos complexos em que as solicitações de rede precisam ser monitoradas ou as interações entre contas diferentes precisam ser vistas. Para a maioria dos problemas, escrever em texto simples é mais fácil, mesmo se você não puder escrever no mesmo idioma do proprietário ou fornecedor do site. O proprietário ou fornecedor do site pode usar uma ferramenta de tradução online, se necessário. Se você decidir usar um vídeo, concentre-se nos detalhes do problema em si, não em digitar seu nome ou equipe ou pedir recompensas. Tente não perder tempo com o vídeo, mantenha-o curto e simples. E certifique-se de nunca colocar seus vídeos em um site público.

 

Evite o dia-zero: se o proprietário de um site ou fornecedor de produto se recusa a ouvir ou espera muitos meses para corrigir problemas simples, e você sabe que o problema pode ser explorado e é muito importante, às vezes ajuda divulgar alguns detalhes mínimos publicamente, para persuadir o proprietário do site a corrigi-lo. Mas isso deve ser feito apenas como último recurso, não como primeiro recurso. Se você divulgar isso publicamente muito cedo, colocará todos os usuários do site em risco e se tornará tão perigoso quanto um hacker criminoso. Infelizmente, experiências ruins com uma empresa podem fazer com que alguns pesquisadores tratem todas as empresas como se fossem ruins, e esses pesquisadores então insistem em divulgar todos os problemas que encontram em outro lugar mais cedo, conhecido como Zero-Daying. Isso é perigoso para todos os envolvidos e não merece ser recompensado. Trate cada empresa como se fosse responder bem e dê-lhes a chance de responder.

 

Desenvolva credibilidade: não exija dinheiro antes de revelar informações. Isso não é hacking ético, é extorsão. Isso o torna um hacker criminoso, não um herói. Não peça recompensas financeiras no primeiro e-mail, isso pode fazer você parecer um hacker criminoso. As empresas que oferecem recompensas geralmente terão isso escrito em suas políticas de segurança em algum lugar - se você estiver interessado apenas no dinheiro, verifique antes de testar o site. Permita que uma empresa verifique se seu relatório é válido e, em seguida, veja o que eles oferecem a você. Se o seu trabalho for bom, eles oferecerão uma recompensa se tiverem um programa de recompensas. Você não precisa perguntar.

 

Procure permissão: se você for realizar um teste que possa parecer um verdadeiro ataque de força bruta ou negação de serviço, peça permissão primeiro. Caso contrário, você simplesmente parecerá um invasor real e provavelmente será tratado como tal. Os proprietários do site podem já ter um software projetado para detectar essas coisas e pode proibi-lo de testar novamente.

 

Opte por uma pesquisa honesta: se um site estiver usando software de outra empresa, como software de blog, software de servidor ou software de fórum - e esse software tiver um problema de segurança conhecido que foi corrigido recentemente, você não precisa dizer aos proprietários do site a menos que o tenham deixado por muito tempo. Eles normalmente irão atualizá-lo dentro de algumas semanas ou meses, quando fizerem a próxima atualização de software. Relatá-lo a eles na esperança de obter uma recompensa não é uma pesquisa realmente honesta. O pesquisador que merece a recompensa é aquele que encontrou a questão original. Se você quiser ganhar a recompensa, procure novos problemas no software de terceiros e informe ao fornecedor desse software, ou procure problemas no próprio software do site.

 

Verifique as leis locais: Em alguns sistemas jurídicos, o hackeamento ético e o hackeamento criminoso não se distinguem um do outro. Você pode precisar obter permissão do proprietário do site ou do fornecedor do produto antes do teste.

 

 

O Avance Network é uma comunidade fácil de usar que fornece segurança de primeira e não requer muito conhecimento técnico. Com uma conta, você pode proteger sua comunicação e seus dispositivos. O Avance Network não mantém registros de seus dados; portanto, você pode ter certeza de que tudo o que sai do seu dispositivo chega ao outro lado sem inspeção.


Strong

5178 Blog mga post

Mga komento