As melhores práticas para segurança de aplicativos da Web para SMBs 2022
Publicados: 2022-04-23Quando se trata de segurança de pilha corporativa, os aplicativos de software são o elo mais fraco. Em The State of Application Security, 2020 , a Forrester diz que a maioria dos ataques externos ocorre explorando uma vulnerabilidade de software (42%) ou por meio de um aplicativo da web (35%).
Os desenvolvedores estão sob pressão para liberar recursos o mais rápido possível à medida que os aplicativos se tornam mais complexos e os prazos de desenvolvimento diminuem. Para obter uma funcionalidade de aplicativo diferenciada e atraente, os desenvolvedores dependem cada vez mais de bibliotecas de terceiros.
Essa mudança para componentes de código aberto torna as práticas de segurança mais complexas para as empresas. Novas estruturas, como contêineres e APIs, complicam ainda mais a segurança do aplicativo.
Com os desenvolvedores sendo pressionados a lançar novos recursos constantemente, as organizações enfrentam um risco muito real de a segurança não acompanhar o ritmo. A segurança pode ser alcançada incorporando as melhores práticas de segurança de aplicativos no ciclo de vida de desenvolvimento de software e implementando-as.
Índice
Por que o teste de segurança na Web é importante?
Testar aplicativos da Web e suas configurações para vulnerabilidades de segurança é o objetivo do teste de segurança da Web. Os ataques à camada de aplicativo (ou seja, direcionados a aplicativos baseados em HTTP) são os principais alvos.
É comum enviar diferentes tipos de entrada para um aplicativo da Web para provocar erros e fazer com que ele se comporte de forma inesperada. Nesses chamados “testes negativos”, o sistema é inspecionado quanto a comportamentos não pretendidos.
Também é importante observar que o teste de segurança da Web não é simplesmente testar os recursos de segurança implementados no aplicativo (por exemplo, autenticação e autorização).
Também é necessário testar se outros recursos (por exemplo, lógica de negócios e validação de entrada e saída) são implementados de forma segura. O acesso seguro às funções do aplicativo da Web é o objetivo.
Como os testes de segurança de aplicativos reduzem o risco da sua organização?
Maioria dos ataques a aplicativos da Web
- A técnica de injeção SQL
- Script entre sites (XSS)
- Execução de comandos remotamente
- Travessia do caminho
Resultados do Ataque
- Conteúdo restrito
- Contas que foram comprometidas
- Instalação de software malicioso
- Receita perdida
- Os clientes perdem a confiança
- Danos à reputação
- Assim como muito mais
O ambiente da Web de hoje é propenso a uma ampla gama de problemas. Além de saber como um aplicativo pode ser explorado, conhecer os possíveis resultados do ataque ajudará sua empresa a abordar preventivamente as vulnerabilidades e testá-las com precisão.
Os controles de mitigação podem ser aplicados durante os estágios iniciais do SDLC após identificar a causa raiz das vulnerabilidades. Além disso, um teste de segurança de aplicativos da Web pode aproveitar o conhecimento de como esses ataques funcionam para atingir pontos de interesse conhecidos.
Para gerenciar o risco de sua empresa, você deve entender o impacto de um ataque, pois ele pode ser usado para medir a gravidade total da vulnerabilidade.
Como resultado de um teste de segurança, determinar a gravidade dos problemas detectados pode ajudá-lo a priorizar os esforços de correção com eficiência e eficácia. Minimize o risco de sua empresa começando com questões de gravidade crítica e passando para questões de menor impacto.
Uma avaliação de impacto potencial de cada aplicativo na biblioteca de aplicativos de sua empresa antes de identificar um problema pode ajudar a priorizar os testes de segurança de aplicativos.
Quando o teste de segurança da Web tem uma lista estabelecida de aplicativos de alto perfil, podemos agendar o teste para atingir primeiro os aplicativos críticos de sua empresa, para que o risco contra seus negócios possa ser reduzido.
Quais recursos devem ser revisados durante um teste de segurança de aplicativos da Web?
Vários recursos devem ser examinados durante o teste de segurança de aplicativos da Web, mas a lista não é exaustiva. Sua organização pode estar exposta a sérios riscos por uma implementação inadequada de cada um.
As 10 principais práticas recomendadas para segurança de aplicativos da Web
A seguir estão as dez principais práticas recomendadas de segurança de aplicativos que sua organização já deve implementar.
#1 Acompanhe seus ativos
Se você não sabe o que tem, não pode protegê-lo.
Para quais funções ou aplicativos você usa servidores específicos? Em quais aplicativos da Web você usa componentes de código aberto?
Você acha que não é importante rastrear seus ativos? É muito importante lembrar qual software está sendo executado em cada aplicativo – basta perguntar à Equifax, que foi multada em US$ 700 milhões por não proteger os dados de mais de 145 milhões de clientes.
Um dos portais de clientes da agência de classificação de crédito foi comprometido depois que um componente de código aberto, o Apache Struts, não foi corrigido. A empresa diz que não estava ciente de que o portal do cliente usava o componente de código aberto vulnerável.
Quanto mais cedo você começar a rastrear seus ativos, menos dores de cabeça e desastres você terá mais tarde. À medida que as organizações escalam seu desenvolvimento, esse processo pode parecer uma tarefa de Sísifo.

Você também deve classificar seus ativos, observando aqueles que são críticos para as funções do seu negócio e aqueles que são de menor importância. Em seguida, você pode avaliar as ameaças e corrigi-las posteriormente.
#2 Realize uma avaliação de ameaças
Se você fizer uma lista do que precisa proteger, poderá identificar as ameaças que enfrenta e como elas podem ser mitigadas.
Como os hackers poderiam invadir seu aplicativo? Quais medidas de segurança existentes você tem em vigor? Quais ferramentas adicionais são necessárias?
Você deve responder a essas e outras perguntas como parte de sua avaliação de ameaças.
No entanto, você também deve ser realista sobre o nível de segurança que pode desfrutar. Não importa o quão seguro você torne seu sistema, você ainda pode invadi-lo. Além disso, você precisa ser honesto sobre as medidas que sua equipe pode manter ao longo do tempo.
Você pode correr o risco de ter seus padrões e práticas de segurança ignorados por forçar demais. Leve a segurança a sério e não se apresse.
Use a seguinte fórmula para avaliar seu risco:
Risco = Probabilidade de Ataque x Impacto de Ataque.
O risco também pode ser pensado como a probabilidade de algo acontecer versus a gravidade das consequências.
Mesmo que fosse catastrófico se uma baleia caísse do céu e o esmagasse, é improvável que isso aconteça.
Uma picada de mosquito em uma caminhada, por outro lado, é bastante provável, mas provavelmente não causará danos significativos além de alguns inchaços com coceira.
#3 Fique por dentro de seus patches
Instalando os patches mais recentes em seus sistemas operacionais? Você está usando software de terceiros? As chances são de que você está ficando para trás, o que significa que você está exposto.
Uma das etapas mais importantes que você deve tomar para garantir a segurança do seu software é atualizar o software, seja de um fornecedor comercial ou de uma comunidade de código aberto.
Quando uma vulnerabilidade é descoberta e relatada de forma responsável aos proprietários do produto ou projeto, ela é publicada em sites de consultoria de segurança e bancos de dados, como o Banco de Dados de Vulnerabilidades WhiteSource.
Se possível, uma correção deve ser criada e lançada antes da publicação, oferecendo aos usuários a oportunidade de proteger seu software.
Se, no entanto, você não aplicar um patch quando um estiver disponível, você não se beneficiará da segurança aprimorada.
Se você está preocupado que a atualização para a versão mais recente possa prejudicar seu produto, as ferramentas automatizadas podem ajudar muito. Em qualquer dia da semana, você deve priorizar a atualização e a aplicação de patches como parte das práticas recomendadas de segurança de aplicativos.
#4 Gerencie seus contêineres
Nos últimos anos, os contêineres cresceram em popularidade à medida que mais organizações adotam a tecnologia devido à sua flexibilidade, o que simplifica o processo de desenvolvimento, teste e implantação de componentes em vários ambientes ao longo do ciclo de vida de desenvolvimento de software (SDLC).
É geralmente aceito que os contêineres oferecem vantagens de segurança que lhes conferem uma vantagem. Além disso, devido ao seu ambiente de SO independente, eles são segmentados por design, reduzindo assim o nível de risco.
No entanto, os contêineres continuam vulneráveis a explorações, como um ataque de fuga, no qual o isolamento foi quebrado. Os contêineres também podem conter uma vulnerabilidade no código armazenado neles.
Para segurança de pipeline de CI/CD, você deve verificar vulnerabilidades do início ao fim, inclusive em seus registros.
Além dessas verificações, as práticas recomendadas para segurança de aplicativos ao trabalhar com contêineres também incluem tarefas importantes, como assinar suas próprias imagens com ferramentas como Docker Content Trust, se você estiver usando o Docker Hub, ou Assinatura de Acesso Compartilhado, se sua equipe estiver usando o Microsoft Azure. .
#5 Priorize suas operações de correção
Tem havido um número crescente de vulnerabilidades nos últimos anos, e essa tendência não mostra sinais de desaceleração tão cedo.
Consequentemente, os desenvolvedores estão ocupados com a correção. Para as equipes que desejam manter seus aplicativos seguros enquanto permanecem sãs, a priorização é essencial.
As avaliações de ameaças são realizadas com base na gravidade de uma vulnerabilidade (classificação CVSS), na criticidade do aplicativo afetado e em vários outros fatores.
Você precisa saber se a vulnerabilidade de código aberto realmente afeta seu código proprietário quando se trata de vulnerabilidades de código aberto.
Ineficiente e não um risco alto, mesmo que a classificação CVSS do componente vulnerável seja crítica se ele não receber chamadas do seu produto.
Estratégias inteligentes são aquelas que priorizam as ameaças mais urgentes primeiro, com base nos fatores presentes, e deixam as de baixo risco para depois.
#6 Criptografar, Criptografar, Criptografar
O OWASP Top 10 inclui criptografia de dados em repouso e em trânsito há anos, tornando-se um requisito para qualquer lista de práticas recomendadas de segurança de aplicativos.
Ataques man-in-the-middle e outras formas de intrusão podem expor dados confidenciais quando você não consegue bloquear seu tráfego adequadamente.
Ao armazenar senhas e IDs de usuário em texto simples, por exemplo, você coloca seus clientes em risco.
Certifique-se de usar SSL com um certificado atualizado como parte de sua lista de verificação básica para criptografia. Não se deixe ficar para trás agora que HTTPS é o padrão. O hash também é recomendado.
Além disso, você nunca deve “rolar sua própria criptomoeda”, como dizem. Considere produtos de segurança que são suportados por uma equipe dedicada com experiência para fazer o trabalho certo.
#7 Gerenciar privilégios
Você não precisa dar acesso a tudo a todos em sua organização. Aplicativos e dados só podem ser acessados por aqueles que precisam deles, seguindo as práticas recomendadas de segurança de rede e as práticas recomendadas de segurança de aplicativos.
Há duas razões para isso. A primeira coisa que você precisa fazer é impedir que um hacker use credenciais de marketing para obter acesso a um sistema que contém outros dados mais confidenciais, como financeiros ou jurídicos.
As ameaças internas também são uma preocupação, sejam elas não intencionais – como perder um laptop ou enviar o anexo errado a um e-mail – ou maliciosas.
O Princípio do Privilégio Mínimo de fornecer aos funcionários apenas os dados de que eles precisam quando se trata de acessar dados pode reduzir sua exposição em comparação com a ausência de controles.
#8 Adote a automação para seu gerenciamento de vulnerabilidades
A segurança de seus aplicativos tornou-se cada vez mais importante para os desenvolvedores nos últimos anos, principalmente quando se trata de tarefas como gerenciamento de vulnerabilidades.
Para lidar com a mudança para a esquerda da segurança, as equipes de desenvolvedores estão testando com antecedência e com frequência, empurrando muitas de suas verificações de segurança no início do processo de desenvolvimento, quando é mais fácil e barato corrigir vulnerabilidades.
Para gerenciar o difícil processo de teste devido à grande quantidade de vulnerabilidades, os desenvolvedores precisam de ferramentas automatizadas.
Para encontrar possíveis vulnerabilidades de segurança em seu código proprietário, o teste de segurança de aplicativo estático (SAST) e o teste de segurança de aplicativo dinâmico (DAST) podem ser empregados durante o desenvolvimento.
As falhas de segurança são fechadas com SASTs e DASTs, mas o código proprietário compõe uma parte relativamente pequena de seu código geral.
Em mais de 92% de todos os aplicativos modernos, os componentes de código aberto representam 60-80% de sua base de código. Sua lista de verificação de segurança do aplicativo deve priorizar a proteção de componentes de código aberto.
Usando ferramentas de análise de composição de software, as equipes podem executar verificações e relatórios de segurança automatizados em todo o SDLC, identificando cada componente de código aberto em seu ambiente e indicando qual deles possui uma vulnerabilidade conhecida que representa um risco de segurança para seus aplicativos.
Você pode gerenciar melhor suas vulnerabilidades deslocando seus testes automatizados para problemas de segurança de código aberto para a esquerda.
#9 Teste de penetração
Uma lista das principais práticas recomendadas de segurança de aplicativos estaria incompleta sem mencionar o teste de caneta, embora as ferramentas automatizadas ajudem a detectar a grande maioria dos problemas de segurança.
O teste com caneta e papel permite que você cutuque e estimule seu aplicativo para encontrar pontos fracos. Se um hacker determinado tentar invadir seu aplicativo, bons pen testers sabem exatamente quais etapas precisam tomar.
Empresas de hackers podem ser contratadas ou freelancers podem participar de programas de recompensa de bugs como BugCrowd e HackerOne. Sua empresa deve patrocinar uma recompensa por bugs, se você ainda não o faz.
Se você contratar pen testers, é muito melhor pagar por eles do que lidar com as consequências de uma violação real.
#10 Tenha cuidado com os tokens
Apesar de ser fácil de proteger, muitos desenvolvedores não protegem adequadamente seus tokens para terceiros.
Ao pesquisar sites de desenvolvedores populares, você pode encontrar facilmente tokens não seguros online. Em vez de armazenar os detalhes do token em outro lugar, os desenvolvedores simplesmente os incluem em seus repositórios de código aberto.
Uma prática recomendada básica de segurança de aplicativos é proteger adequadamente seus tokens de terceiros. Você não deve deixar tokens que você comprou espalhados em seu código para que qualquer um pegue.
Práticas recomendadas de segurança de aplicativos como práticas básicas
Cada uma das melhores práticas descritas aqui deve ser integrada ao processo de desenvolvimento contínuo de sua organização. Os aplicativos e dados de sua empresa estarão em risco se você não minimizar o risco. Siga estas etapas para minimizar o risco.
Evitar os erros que outros provavelmente cometerão é uma maneira de ficar à frente dos hackers, então você é mais difícil de ser alvo de ataques. Nunca haverá uma medida de segurança de perímetro ou aplicativo que seja totalmente à prova de hackers.
No entanto, seguir essas práticas recomendadas básicas pode ajudar bastante a impedir que seu aplicativo valha a pena para os hackers.







