Olá pessoal.
Hoje, em vez de falar sobre hackear e invadir sistemas como costumamos fazer, vamos
falar sobre segurança e, especificamente, como proteger sites da web, aplicativos da web, aplicativos móveis e assim por
diante.
Obviamente, hacks e violações têm um enorme impacto negativo nas empresas, desde a perda da confiança do
cliente até perdas financeiras.
Dados do usuário vazados, questões legais e a lista continua.
Agora, se você fizer uma pesquisa rápida no Google sobre como proteger seu site ou aplicativo,
vai obter muito lixo.
Na verdade, fiquei tão desapontado com os artigos clickbait que não explicaram ou forneceram qualquer informação
útil.
A maioria deles sugeriu que você use backups, suas senhas fortes e certifique-se de usar HTTPS.
Mas os backups não protegem o seu site, eles simplesmente ajudam na recuperação.
Além disso, o uso de ETPs criptografa a comunicação, mas não protege realmente o site.
A única dica útil era usar senhas fortes.
Mas a maioria dos hackers não vai sentar e tentar adivinhar a senha como você vê nos filmes de Hollywood.
Eles vão contar com vulnerabilidades e fraquezas dentro de seu aplicativo e irão explorá-los para
obter acesso a ele, independentemente da senha que você usar.
Mesmo se você tiver uma senha muito, muito complexa, mesmo se estiver usando HTTPS e mesmo se tiver backups,
muito disso é irrelevante.
Além disso, realmente não importa onde você hospeda o aplicativo, se você usa um A. C. ou qualquer outro provedor
de nuvem, e não importa como você está implantando este aplicativo.
Se você estiver usando o Kubernetes ou se estiver usando o Docker, isso realmente não importa.
Na verdade, é muito, muito simples.
Se você tiver um aplicativo da Web vulnerável, os hackers usarão essas vulnerabilidades ou fraquezas para
obter acesso a esse aplicativo.
De qualquer maneira, chega de conversa fiada.
Vamos falar sobre como realmente proteger sites e aplicativos.
Em primeiro lugar, antes de começarmos a falar sobre isso, é muito importante entender
que é impossível atingir 100% de segurança.
Tudo o que estamos tentando fazer é melhorar a segurança de nossos aplicativos e garantir que eles sejam o
mais seguros possível.
Com isso dito, as quatro abordagens a seguir irão ajudá-lo a melhorar a segurança de seus aplicativos, independentemente de
que tipo de aplicativo eles são e independentemente de onde estão instalados.
Como eu disse, não importa se você os instala na Amazon ou em qualquer outro lugar em um WIC ou qualquer
outra coisa, e não importa como você está implantando se estiver usando Docker e assim por diante.
Portanto, a primeira coisa que você deve fazer é certificar-se de que está escrevendo um código seguro dessa maneira.
Seu aplicativo foi desenvolvido desde o início para ser seguro e não apresentar quaisquer bugs ou vulnerabilidades que
possam ser explorados por hackers para obter acesso.
Agora, isso seria ótimo se você pudesse fazer isso, mas o problema é que é mais fácil falar do
que fazer porque os desenvolvedores precisam ser educados e ensinados os métodos que os hackers usam para explorar sistemas e obter
acesso.
E mesmo se você fizer isso, muitas vezes os desenvolvedores contam com bibliotecas de terceiros e todo o aplicativo pode
ser escrito por outra pessoa.
Portanto, você simplesmente não pode escrever código seguro porque não é realmente o escritor ou o
desenvolvedor deste aplicativo.
O que me leva ao segundo ponto.
Revisão do código.
Isso é realmente muito bom, mesmo se você mesmo escreveu o aplicativo, e mesmo se você se certificou de
escrever um código seguro, é realmente uma boa ideia fazer com que esse código seja revisado por outros desenvolvedores ou
outra equipe.
Apenas no caso de os desenvolvedores terem escrito o aplicativo perder algo ou deixar algo passar despercebido, ele
será detectado no estágio de revisão.
Além disso, se você estiver usando o código escrito por outros desenvolvedores ou bibliotecas de terceiros, então, novamente, uma revisão do
código irá resolver o problema porque você pode revisar e tudo mais.
E, novamente, isso é muito, muito bom porque você está revisando cada linha
e se certificando de que nada está vulnerável ou permitirá que hackers explorem seu aplicativo e obtenham acesso.
A principal desvantagem aqui é que, se você tiver uma grande base de código, isso pode consumir muito
tempo e também pode ser muito caro.
A terceira abordagem, que é muito essencial, na minha opinião, é fazer um pen test.
Em um pen test.
Basicamente, você contrata uma equipe de hackers éticos para tentar hackear seu aplicativo.
Esses hackers éticos abordarão seu aplicativo da mesma forma que os hackers Black Hat o fazem.
Eles vão tentar reunir o máximo de informações possível e descobrir todas as fraquezas e vulnerabilidades e
ver se podem explorá-las para obter acesso.
No final, quando eles terminarem, eles vão lhe dar um relatório detalhado de tudo o que encontraram
para que você possa passá-lo para seus desenvolvedores e corrigir quaisquer vulnerabilidades que eles descobrirem.
A principal vantagem desse método é que você pode testar superfícies de ataque que não podem ser testadas com
outros métodos, como seus servidores que estão executando seu aplicativo da web e o elo mais fraco, que são
os funcionários.
Portanto, esses hackers, os hackers éticos, podem até usar a engenharia social e encadea-la com outros ataques mais
simples ou vulnerabilidades mais simples que podem encontrar em seu sistema para ver se podem usá-los para
obter acesso.
A desvantagem aqui é que pode ser um pouco caro e não é compatível com o futuro.
O que quero dizer é que se você testar seu aplicativo hoje por hackers éticos realmente bons
e, em seguida, corrigir todas as vulnerabilidades que encontrarem, isso significa apenas que seu aplicativo da web está seguro
hoje.
Isso não garante que permanecerá seguro no próximo mês ou no próximo ano, porque cada mudança que
você fizer, cada recurso que você empurrar ou até mesmo cada bug de exibição que você conserte pode
introduzir outros bugs ou falhas de segurança que podem ser usados para hackear seu aplicativo.
Não apenas isso, mas novamente se você estiver atualizando software ou plug-ins de terceiros novamente, tudo isso
pode apresentar vulnerabilidades, e um teste não será capaz de detectar isso porque você só está fazendo o
Panthers hoje, e essas mudanças futuras são não vai ser testado.
A quarta abordagem, que pode realmente resolver esse problema, é ter um programa de recompensa de bug.
Um programa de recompensa por bug é basicamente um convite a todos os hackers éticos ao redor do mundo para
testar seu aplicativo e enviar suas descobertas.
E você pagaria apenas por bugs ou relatórios válidos.
A principal vantagem está aqui, como você provavelmente já deve ter adivinhado, é que você
está testando seu aplicativo por um grande número de hackers, portanto, as chances de eles encontrarem vulnerabilidades são maiores.
E é, na verdade, à prova de futuro, porque enquanto você tiver a lista de recompensas de bugs ao vivo, esses
hackers sempre continuarão a testar seu aplicativo e você os motivará com recompensas.
Isso pode ser qualquer coisa, desde uma camiseta até prêmios monetários.
Para ter certeza de que eles realmente continuarão testando seu aplicativo.
Portanto, mesmo que você esteja promovendo novas mudanças, novos recursos ou atualizações, isso realmente não
importa porque os hackers continuarão testando seu aplicativo na esperança de encontrar bugs e obter recompensas por suas descobertas.
É por isso que grandes empresas como o Facebook e o Google usam esses programas de recompensa por bugs, embora
sigam todas as outras abordagens.
Como eu disse, eles ainda usam isso para garantir que seus sistemas estejam sempre o mais seguros
e livres de bugs possível.
As desvantagens aqui são, em primeiro lugar, que é difícil garantir que todas as superfícies de ataque sejam cobertas.
E, em segundo lugar, muitas empresas não têm o alcance que o Google e o Facebook têm, então não podem
realmente anunciar suas recompensas por insetos tão bem quanto as grandes empresas.
Eles não conseguem fazer com que muitos hackers éticos testem seu site.
É um desafio para eles criar esses programas de recompensa por bugs e validar os relatórios enviados.
Mas isso é resolvido pelas plataformas bug bounty que temos hoje em dia, como bug bounty, dotcom
e outras plataformas.
A Bug Bounty é, na verdade, uma empresa irmã dessa segurança.
Minha opinião pode ser um pouco tendenciosa, mas tenho quase certeza de que nossos preços são os mais competitivos
e oferecemos o mesmo serviço.
De qualquer forma, estou incluído em tudo lá.
Você tem a escolha.
Você pode verificar o que quiser e sinto muito se realmente te confundi com a abordagem de queda.
É que acabei de mencionar, mas na minha opinião, idealmente, você gostaria de seguir todas essas quatro
abordagens, se puder.
Isso pode ser muito caro.
É por isso que muitas empresas não fazem isso.
E eles se comprometeriam e só iriam com três e quatro.
Então, eles farão apenas um teste de patch e terão um programa de recompensa de bug.
E então outras empresas às vezes se comprometem ainda mais.
E escolha um dos dois, faça um programa de recompensa por bug ou um teste de caneta.
Na minha opinião, um pen test não é um substituto para um programa de recompensa por bug e vice-versa.
Eu recomendaria que você fizesse os dois porque, como eu disse, cada um deles tem suas
vantagens e desvantagens.
Mas se você realmente não pode fazer os dois, pelo menos faça um deles como o mínimo.
Como proprietário de um site ou um proprietário de aplicativo, você é responsável pelos dados do usuário que os usuários confiam
em você e, portanto, você precisa fazer pelo menos o mínimo para tentar garantir que seus
dados sejam tratados com segurança e protegidos.