Introdução ao DAST e Contextualização
Na nossa última aula, discutimos o que é o DAST, como ele funciona, para que serve e as justificativas para sua implementação no processo de desenvolvimento de software, além das implicações envolvidas. Agora, vamos entender como realizar o setup inicial. Mostraremos a instalação e primeira execução, além de como funciona a interface de usuário do DAST e as configurações iniciais necessárias para rodá-lo pela primeira vez.
Para contextualizar, nesta primeira aula, focada em aplicações web, utilizaremos o OWASP Juice Shop, uma ferramenta famosa criada com o propósito de ser testada, pois contém várias vulnerabilidades por design. Isso nos ajudará a ilustrar como o DAST funciona, como ele identifica essas vulnerabilidades e, mais adiante, exploraremos uma vulnerabilidade juntos.
Estrutura do Curso e Ferramentas Utilizadas
Na segunda etapa, utilizaremos a CRAPI, que será abordada na aula de APIs. Mostraremos como configurar tudo corretamente. Usaremos o OWASP ZAP e, como aplicação vulnerável, o OWASP Juice Shop. Na terceira aula, voltada para APIs, utilizaremos a CRAPI e o OWASP ZAP. Na última aula, integraremos o OWASP ZAP na nossa pipeline utilizando GitHub Actions, e mostraremos um pouco do código. Continuaremos usando o OWASP Juice Shop.
Primeira Execução e Instalação do OWASP Juice Shop
Vamos iniciar com a primeira execução, que envolve a instalação. A ferramenta que utilizaremos é o OWASP Juice Shop. Usaremos a aplicação no Docker, faremos o download e veremos seu funcionamento inicial de forma superficial. Também introduziremos a parte de Scan passivo e Spidering.
Mostraremos o OWASP ZAP, faremos o download para a versão do Windows que estamos usando e instalaremos novamente para demonstração. Após finalizar, abriremos o executável, avançaremos sem mudar nenhuma configuração padrão. Como já estava instalado, apenas atualizaremos a versão. O processo de instalação é basicamente o mesmo.
Configuração do Container e Teste da Aplicação
Agora, configuraremos o container que conterá nossa aplicação, o OWASP Juice Shop. Para isso, utilizaremos o terminal de comando do CMD. Já instalamos o Docker Desktop. Rodamos o Hello World inicial para testar o funcionamento e verificamos a versão. Iniciaremos o processo de instalação da imagem. Primeiro, puxaremos a imagem e, em seguida, executaremos um docker run para rodar na porta 3000 a aplicação do OWASP Juice Shop. No console do Docker Desktop, veremos que a aplicação já está rodando no container.
Para testar, abriremos uma aba e veremos a aplicação em funcionamento. Mostraremos o OWASP ZAP e sua interface gráfica. A ferramenta DAST possui três menus na janela principal: o automated scan, voltado para scan ativo, e o manual explore, usado para scan passivo. Ao realizar qualquer scan, na aba de sites, veremos o endereço IP e a aplicação, juntamente com os endpoints ligados a ela. Tudo que o OWASP ZAP capturar de endpoint aparecerá na aba sites.
Configurações de Proxy e Certificado
No painel inferior, temos a parte de histórico, localização e alertas, onde aparecerão as vulnerabilidades reportadas durante os scans. Agora, mostraremos algumas configurações para melhorar a fluidez dos testes, como configurações de proxy e certificado.
A primeira ação que devemos realizar é acessar a seção de ferramentas, selecionar opções e, em seguida, o menu de opções. Diversas caixas de opções estarão disponíveis para seleção. Devemos expandir a opção chamada Network e, dentro dela, acessar a última opção denominada Server Certificates. Nesta aba, já existe um certificado gerado, mas vamos gerar um novo e salvá-lo em um local de fácil acesso, como em uma pasta específica.
Recomendamos também o download do Firefox, pois o DAST funciona melhor com a interface do OWASP ZAP, que se integra de forma mais eficiente com o Firefox. Vamos demonstrar as configurações necessárias no navegador para realizar os testes de maneira mais dinâmica.
Configuração do Firefox para Integração com OWASP ZAP
No Firefox, acessamos o menu, depois configurações, e na aba de configurações, importamos o certificado gerado. Dentro das configurações do Firefox, na seção de privacidade e segurança, importamos o certificado na opção certificados. Na aba autoridades, clicamos em importar e selecionamos o certificado, marcando a opção "confiar nesta CA para identificar sites". Confirmamos com "ok".
A segunda parte da configuração envolve o proxy. No OWASP ZAP, dentro de ferramentas, opções, local servers e proxies, o ZAP escuta por padrão na porta 8080. Configuramos o Firefox para que todo o tráfego seja direcionado para o OWASP ZAP. No Firefox, em geral, configurações de rede, configuramos a conexão manualmente. O proxy será HTTP, com endereço local host 127.0.0.1 na porta 8080. Devemos deixar a opção "sem proxy para" vazia para garantir a comunicação entre o navegador e o OWASP ZAP. Confirmamos com "ok" e testamos abrindo a aplicação OWASP Juice Shop, que roda na porta 3000, no Firefox.
Além da configuração de rede, é importante realizar uma alteração em About Config no Firefox. Aceitamos o risco e continuamos. Procuramos pela diretriz Network proxy allow hijacking local host e alteramos para True, pois por padrão está como False. Essa alteração permite que o Firefox confie no proxy e intercepte o tráfego local. Sem essa mudança, o Firefox não encaminhará o tráfego local para o proxy, mesmo que configurado.
Continuação com a Aula de Scan Passivo
Vamos prosseguir com a aula de Scan passivo.