Então, você quer se tornar um analista no campo da segurança de rede ...

A tradução do artigo foi preparada especialmente para os alunos do Pentest. Prática de teste de penetração .




Você está interessado em desenvolver métodos de hackers e deseja compartilhar suas descobertas com a comunidade de segurança da informação? Neste artigo, darei algumas recomendações para aqueles que desejam se tornar um analista no campo da segurança na Web, além de falar sobre as oportunidades e armadilhas que ele mesmo conheceu no caminho.

Quem é um analista de segurança de rede?


Os analistas de segurança de rede são pessoas que vão além do uso de técnicas conhecidas de hackers, como SQLi e XSS, e encontram novas ameaças aos sites. Essas podem ser soluções inovadoras que complicam os métodos existentes, como a abordagem para explorar vulnerabilidades locais + cegas do XXE ou novas classes de ameaças como o Web Cache Deception (envenenamento do cache de aplicativos da Web).

É muito difícil proteger sites de métodos desconhecidos de ataque; portanto, eles podem ser usados ​​frequentemente para operar um grande número de outros sites seguros. Isso significa que publicar suas descobertas nessa área pode ajudar os sites a eliminar vulnerabilidades, aumentando assim o nível geral de segurança de todo o ecossistema.

Quebrando a vida


A maior parte da pesquisa envolve o uso de métodos existentes, que avançaram um pouco, portanto, para começar, seria bom se familiarizar com a situação atual. A maneira mais rápida de fazer isso é encontrar um emprego em que você utilizará as técnicas de hackers a maior parte do tempo. Muitas pessoas boas já deram conselhos sobre como entrar no setor de segurança da informação, então aqui vou ser breve.

Eu recomendo uma abordagem orientada para a prática, começando em nossa Network Security Academy , passando para tarefas mais abertas, como no hackxor.net , para avançar primeiro através de tarefas simples, com uma pequena recompensa pelos esforços do HackerOne e BugCrowd e, finalmente, Alterne para programas de vulnerabilidade genérica bem pagos e generosos e comprovados. Depois de encontrar e analisar várias vulnerabilidades, tornar-se um consultor de segurança da informação e realizar hackers em novos sites e aplicativos da Web todos os dias deve ser fácil.

Existem muitos recursos online gratuitos que irão atendê-lo bem ao longo do caminho, incluindo nossa metodologia Burp , o HackerOne Hacker 101 e o guia de testes da OWASP . Para livros, eu recomendaria a leitura do Handbook Hacker's WebApp e The Tangled Web . A Network Security Academy acima deve ser usada interativamente como um substituto do Manual do Hacker da WebApp, mas levará algum tempo para abordar todos os tópicos necessários; portanto, por enquanto, eu recomendaria o uso das duas fontes.

Indo além dos métodos conhecidos


Assim que você começar a trabalhar e se envolver em hackers durante todo o seu dia de trabalho, entenderá o nível de carga de trabalho. Depois de algum tempo, sua experiência será extensa e novos conhecimentos serão difíceis. Nesta fase, o passo mais importante é não se permitir descansar nos louros e continuar aprendendo e praticando. Só assim você se tornará um verdadeiro especialista.

A busca pelo conhecimento esquecido


Todo mundo entende que você precisa acompanhar os novos desenvolvimentos e monitorar especialistas do setor , agregadores de notícias e participar de conferências de segurança. No entanto, seguir exclusivamente novos desenvolvimentos significa não perceber o precioso conhecimento e pesquisa que foram feitos há muito tempo e esquecidos.

Toda vez que você encontrar um bom artigo de blog, não economize a tempo - leia o arquivo inteiro. Informações inestimáveis ​​e esquecidas são frequentemente escondidas lá. Por exemplo, veja este artigo do RSnake sobre a re-ligação do DNS, escrito em 2009. A religação do DNS ignora os controles de acesso baseados em IP / firewall em sites, e a única maneira eficaz de evitá-lo é colocar na lista branca seu aplicativo no cabeçalho HTTP do Host. As pessoas decidiram rapidamente que os navegadores poderiam lidar com isso e, nove anos depois, com uma nova série de explorações, ficou claro que essa vulnerabilidade era reutilizada.

A navegação nos arquivos também ajudará você a não reinventar a roda que outra pessoa já inventou, por exemplo, como foi o caso da reinvenção de ataques CSS dez anos depois. No entanto, alguns estudos são realmente difíceis de encontrar, portanto a duplicação acidental é inevitável. Uma vez publiquei um estudo e descobri que o kuza55 já estava fazendo a mesma coisa há cinco anos. Portanto, faça todo o possível para evitar a duplicação da pesquisa, mas se isso acontecer, não entre em pânico, isso acontece com todos.

Colete raridades


Para conectar tópicos e identificar oportunidades que outras pessoas perdem, é muito importante coletar informações de várias fontes. Para iniciantes, não se limite a ler o conteúdo de segurança da informação; Você encontrará rapidamente a documentação que o guiará pela exploração. Novamente, a próxima dica pode ser bastante óbvia, mas antes de navegar no Google ou tentar formular uma pergunta no Twitter / Reddit / StackOverflow, não deixe de perguntar aos seus colegas. Muitas vezes acontece que o conhecimento necessário está em algum lugar próximo, mas algumas pessoas simplesmente não o compartilham publicamente.

Além disso, tente manter a diversidade em sua experiência.

A realização de testes de penetração de caixa preta para consultas de segurança da informação deve fornecer uma ampla gama de aplicativos da Web externos e internos que você talvez nunca encontre no programa de recompensas de bugs. No entanto, o limite de tempo impedirá que você mergulhe no nível de entendimento do aplicativo que chega em meses de recompensas por bugs para um propósito. Embora este seja um processo lento e limitado, uma revisão do código-fonte da caixa branca pode oferecer uma perspectiva alternativa de ataque que um pentester da caixa preta não teria pensado. Para se desenvolver como analista, você precisa combinar os três métodos de trabalho. Recursos adicionais, como jogos CTF e aplicativos da Web para gravação, também expandirão sua perspectiva.

Não há idéias muito estúpidas


Uma das piores armadilhas em que você pode cair é largar uma ótima idéia, supondo que ela definitivamente não funcione, e não experimentá-la porque "alguém teria percebido isso" ou "é estúpido demais para trabalhar ". Eu já havia sofrido muito antes, a tal ponto que uma parte do estudo apareceu dois anos depois do que deveria. Não faz diferença se isso ignora a autenticação, redigitando a mesma senha ou invadindo a página de administração do Google a partir do seu telefone, em vez de um laptop, porque a próxima exploração significativa pode vir de uma ideia realmente estúpida.

Desista do conforto


Se alguma tecnologia é considerada complexa, inconveniente ou perigosa - esse é claramente um tópico que precisa ser investigado. Depois de repetidas experiências de verdadeiras descobertas depois de abordar tópicos que estão muito além da minha zona de conforto, decidi que o caminho mais rápido para novas descobertas é procurar ativamente por tópicos que me deixem desconfortável. Provavelmente, outros hackers evitam esses tópicos, dando a eles um sério potencial de pesquisa. Para mim, esta é a única explicação plausível para o fato de eu ter conseguido pegar o equipamento, documentado pela primeira vez em 2005 e apresentado novamente no DEF CON em 2016, e usá-lo para ganhar US $ 70 mil em recompensas por insetos em 2019.

Repita, reinvente, compartilhe
Repetir


A maneira mais fácil de começar o trabalho é encontrar a pesquisa em perspectiva de outra pessoa, criar algo em sua base, misturar alguns métodos e tentar aplicar sua nova abordagem em campo e ver se algo interessante acontece.

Por exemplo, este artigo sobre a configuração incorreta do CORS apontou um comportamento interessante e afirmou que esse comportamento é extremamente comum, mas o autor parou por aí e não estudou o efeito em sites individuais.

Peguei o conceito proposto como base e apliquei-o em sites de recompensas de bugs, nos quais eu poderia experimentar legalmente e tentar evitar todas as formas possíveis de protegê-los. Ao longo do caminho, aprimorei algo usando as conhecidas técnicas de exploração de redirecionamento aberto, finalmente descobri a origem do "null" lendo a documentação do CORS e explorei as possibilidades de envenenamento por cache.

Não havia nada nesse processo que exigisse intuição incrível ou conhecimento técnico excepcional, no entanto, o resultado final foi facilmente obtido - a operação de configurações incorretas do CORS para bitcoins e recompensas .

Inventar


Repetir o trabalho de outras pessoas é legal, mas a pesquisa mais interessante vem do nada, seja reescrevendo o caminho relativo ou envenenando o cache de aplicativos da Web . Acredito que tais descobertas são causadas por experiências pessoais que se somam a pistas. Eu os chamo de “experiências principais” ou “migalhas de pão”, porque às vezes são misteriosas e podem levar muitos para levar você a uma descoberta útil.

Por exemplo, em 2011, tentei quebrar a proteção CSRF usada pelo addons.mozilla.org . Eu contornei a verificação de token, mas eles também verificaram se o host no cabeçalho do Referer corresponde ao site atual. Pedi sla.ckers fórum sla.ckers , e 'barbarianbob' disse que o Django determina o host do site atual observando o valor do campo Host nos cabeçalhos HTTP e pode ser substituído pelo cabeçalho X-Forwarded-Host. Essa ideia poderia ser combinada com a vulnerabilidade de introduzir cabeçalhos no Flash para contornar a verificação do CSRF, mas o mais importante foi a primeira trilha de navegação. Foi ela quem liderou a ideia de que os aplicativos podiam confiar no cabeçalho do host para determinar sua localização atual.
Algum tempo depois, observei o código-fonte da função de redefinição de senha do Piwik e encontrei uma linha parecida com esta:

$passwordResetLink = getCurrentUrlWithoutQueryString() + $secretToken

Sim, pensei. O Piwik usa PHP, o que é muito divertido de lidar com o caminho, para que eu possa solicitar uma redefinição de senha em piwik.com/reset.php/foo;http : //evil.com, como resultado, recebo um email com dois links e o token secreto é enviado no evil.com . Essa ideia funcionou, me trouxe benefícios e lançou as bases para as pesquisas subseqüentes.

A terceira e última migalha foi como Piwik tentou corrigir essa vulnerabilidade. Eles substituíram getCurrentUrlWithoutQueryString() por getCurrentUrlWithoutFileName() . Isso significava que eu não podia mais usar meu método para explorar. Devido ao fato de eu já estar familiarizado com o Django, decidi me aprofundar no código e descobrir como o Piwik determinava qual é o nome do host atual. Eu descobri que, como o Django, eles usavam o cabeçalho do host, o que significava que eu poderia gerar facilmente emails enviados para redefinir a senha. Como se viu, esse truque funcionou no addons.mozilla.org e Gallery, e Symfony, e Drupal, e em vários outros sites. Como resultado, isso levou à prática de ataques com a substituição do cabeçalho HTTP Host .

Descrevendo a aparência de descobertas tão detalhadas, espero poder dissipar o mistério em torno do processo de pesquisa e mostrá-lo ao contrário de uma idéia espontânea do nada. Desse ponto de vista, parece que a principal habilidade (além do conhecimento e da experiência existentes) é reconhecer essas migalhas de pão e seguir o caminho que elas indicam. Não consigo formular como fazê-lo de maneira acessível, mas sei como considerar as coisas que fazem você dizer "não faz sentido" repetidamente.

Compartilhar


É importante compartilhar sua pesquisa com a comunidade. Isso ajudará a aumentar seu portfólio e talvez incentive seu empregador a oferecer mais tempo de trabalho para a pesquisa. Além disso, isso ajudará você a evitar desperdiçar tempo e estimular novas pesquisas. Criticar o seu trabalho e comentá-lo pode ajudá-lo a ver o que não havia notado antes. Também não há nada mais útil do que ver como outro analista desenvolve suas técnicas com base nas suas.

Por favor, não pense que a tecnologia ou uma idéia não devem ser compartilhadas apenas porque não são inovadoras. Dois logotipos e uma apresentação - publique tudo o que você tem (idealmente, em um blog, e não em qualquer plataforma fechada mal indexada como o Twitter).

Quando você compartilha sua pesquisa, é sempre útil mostrar um exemplo de aplicação de seu método a um aplicativo da Web real. Sem isso, as pessoas terão inevitavelmente dificuldade em entendê-lo e poderão duvidar de seu valor prático.

Por fim, as apresentações são ótimas para atingir um público mais amplo, mas não se enquadre em um círculo vicioso ou desperdice seu tempo repetindo infinitamente as apresentações anteriores.

Conclusão


Eu mesmo ainda tenho muito a aprender sobre segurança de rede, portanto, voltaria a esse tópico alguns anos depois com uma nova aparência e novas idéias. Além disso, sei que outros analistas podem ter pontos de vista diferentes e estou ansioso por idéias que eles possam compartilhar.

Resumo das minhas dicas para se tornar um analista de segurança de rede:

  • Procure conhecimento esquecido e leia registros de arquivo;
  • Obtenha informações de tantas fontes diferentes quanto possível;
  • Vá fundo em tópicos complexos e "assustadores";
  • Repita, invente, compartilhe;
  • Não há idéias muito estúpidas.

Portanto, se você deseja começar, posso aconselhá-lo em nossa seleção anual das dez melhores técnicas de hackers na web . Além disso, criei uma lista de vários blogs que me inspiraram por muitos anos. Boa sorte com sua pesquisa e divirta-se!

Source: https://habr.com/ru/post/pt467923/


All Articles