Segurança ponta a ponta

Olá pessoal! Vamos falar mais ainda de segurança hoje.

Para quem desenvolve aplicações web, que ficam expostas publicamente, além de código que produzimos para publicarmos na internet, temos outros vários componentes envolvidos, como infraestrutura (servidores, bancos de dados, etc), redes, DNS, firewall e outras coisas mais.

Quando falamos de segurança, todas as camadas envolvidas são passíveis de exploração por hackers se não fecharmos ao máximo as possibilidades de que eles explorem essas vulnerabilidades. Se estivessemos falando apenas de código, poderíamos falar de SAST (Static Application Security Testing), que seria basicamente um scan no código-fonte que identifica implementações que podem abrir essas brechas. Exemplos de ferramentas que fazem esse trabalho, podemos destacar o Snyk, Sonarqube, Veracode, Horusec, enfim, o próprio github fornece integrações nesse sentido.

Daí você me pergunta se executar uma ferramenta SAST e corrigirmos os problemas apontados nela é suficiente.

Infelizmente a resposta é “não”.

Conforme comentei no início, temos outros componentes envolvidos quando colocamos nossas aplicações na internet. Por isso, nós, desenvolvedores, precisamos observar estes outros itens e exigirmos das áreas que cuidam deles que nos garantam a mesma segurança com a qual nos preocupamos com o código.

E como podemos fazer isso?

Vou aqui falar do Nessus, ferramenta da Tenable, muito utilizada e bastante eficiente para identificarmos problemas após a publicação de nossas aplicações.

Então bora lá. A instalação pode ser feita pelo desenvolvedor em sua própria máquina ou em um servidor. Importante dizer que a ferramenta demanda processamento e memória, portanto é necessário que tenhamos recursos disponíveis.

A instalação pode ser realizada com instaladores disponíveis em https://www.tenable.com/downloads/nessus?loginAttempted=true, para diversos sistemas operacionais. Exemplificando com Ubuntu, por exemplo, pode-se baixar o pacote debian (Nessus-xxxx.deb) e instalar com o comando “dpkg”. Um link de referência para apoio no setup pode ser visto neste link. Outro ponto importante é que, na instalação, podemos escolher a versão, sendo que algumas são pagas, então opte pela versão Essentials, que é gratuita e solicitará apenas uma chave que é obtida pelo cadastro no site da Tenable.

Após a instalação, a aplicação estará disponível na porta padrão do Nessus, a 8834 (algo como https://0.0.0.0:8834), lembrando que é obrigatório chamar com “https”. Será solicitada a chave que mencionei (use o link da tela para cadastro na Tenable e receber em seu email a chave), após crie usuário e senha inicial. Em seguida, logue com ele.

Logando na ferramenta, pode-se cadastrar um novo scan pelo botão destacado abaixo.

O Nessus, na versão Essentials, que é gratuita como comentei, fornece vários templates de scan. Vamos exemplificar com Advanced Scan.

Após escolher o template, atribua o nome, o IP ou endereço da aplicação na internet, ou ambos.

Salve e após podemos iniciar pelo botão “Launch”.

O scan requer um tempo, porém após a conclusão, a ferramenta apresenta o consolidado final, semelhante ao abaixo:

Notem que temos nesse caso 20 vulnerabilidades críticas, o que é altamente preocupante. Clicando no host é possivel observar os detalhes. Neste exemplo, os problemas estão no Apache, o web server.

O Nessus mostra um gráfico por grupo de vulnerabilidades e, neste caso, fica bem visível a criticidade.

Parte das correções apontadas também neste exemplo, podem ser resolvidas com atualização da versão do Apache, mas é importante que todos os envolvidos (desenvolvedores, analistas de infraestrutura / cloud, DevOps) sejam envolvidos. Uma força-tarefa é importante para solucionar todos os problemas.

A Dopster pode ajudar sua empresa nessa jornada também, fale com a gente.

Até mais pessoal!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *