INTRODUÇÃO
Existem muitos vetores de ataque comuns que são usados para explorar vulnerabilidades em aplicativos de software. Neste artigo, exploraremos algumas das vulnerabilidades mais comuns e como abordamos elas no Workvivo.
Injeção de SQL
“A injeção de SQL é uma técnica de injeção de código, usada para atacar ataques baseados em dados
aplicações, nas quais instruções SQL nefastas são inseridas em um campo de entrada para execução (por exemplo, para despejar o conteúdo do banco de dados para o invasor)" - Wikipedia
O código-fonte do Workvivo abstrai completamente toda a interação do banco de dados por meio de uma biblioteca Object Relational Mapper (ORM), que higieniza automaticamente a entrada do usuário e usa consultas parametrizadas para garantir que a injeção de SQL não seja possível. Não há consultas SQL diretas no código-fonte do Workvivo e nossas diretrizes de revisão de código determinam que toda interação com o banco de dados deve passar pelo ORM.
Proteção XSS
“Ataques de Cross-Site Scripting (XSS) são um tipo de injeção, na qual
Scripts maliciosos são injetados em sites que, de outra forma, seriam inofensivos e confiáveis. Ataques XSS ocorrem quando um invasor usa uma aplicação web para enviar código malicioso, geralmente na forma de um script no navegador, para um usuário final diferente. - Fonte
O Workvivo protege contra XSS higienizando todas as entradas do usuário e validando-as para garantir que não contenham nenhum código malicioso. Também higienizamos e escapamos todas as saídas para garantir que, se um código malicioso entrasse no banco de dados, ele não seria executado quando exibido no navegador.
Proteção CSRF
Falsificação de Solicitação Entre Sites (CSRF) é um ataque que força um usuário final a executar ações indesejadas em um aplicativo web no qual ele já está autenticado. Os ataques de CSRF visam especificamente solicitações de alteração de estado, não roubo de dados, já que o invasor não tem como ver a resposta à solicitação falsificada. - Fonte
O Workvivo protege contra CSRF gerando automaticamente um token CSRF para cada sessão de usuário ativa gerenciada pelo aplicativo. Esse token é então usado para verificar se o usuário autenticado é quem realmente está fazendo as solicitações ao aplicativo. Passamos esse token para cada solicitação de API nos cabeçalhos de solicitação. O token é atualizado a cada solicitação, e uma solicitação de API que não passa o token correto retornará uma resposta de erro.
HTTPS
O Workvivo suporta apenas operação via protocolo HTTPS, o que significa que todas as comunicações entre cliente e servidor são processadas por um canal seguro e criptografado que não pode ser rastreado ou interceptado. Se um usuário tentar acessar o Workvivo por HTTP não criptografado, ele será redirecionado automaticamente para a versão HTTPS da URL.
Usamos o AWS Certificate Manager para gerar automaticamente novos certificados TLS quando o certificado atual estiver prestes a expirar. Isso inclui o provisionamento de certificados para nomes de domínio personalizados. Essa abordagem garante que um cenário em que o certificado TLS expire nunca ocorrerá.
Detecção de intrusão
O Workvivo inclui um sistema de detecção de intrusão de última geração que registra todas as tentativas de intrusão no aplicativo e previne ativamente tentativas de alto risco com base no nível de ameaça.