QSES 2018/19 - projecto 1 - uso de ferramentas

Autor: Eduardo R. B. Marques, DCC/FCUP

Página de QSES

Enunciado do projecto

Maven

Instalação

  1. Pré-requisito: verique se tem o Java Development Kit instalado (versão 1.8 ou superior), ex.

    $ java -version
    java version "1.8.0_181"
    ... 
    $ javac -version
    javac 1.8.0_181
  2. Pode verificar se tem o Maven instalado executando:

    $ mvn --version
    Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T17:29:23+00:00)
    Maven home: /Users/edrdo/tools/apache-maven-3.2.5
    ...
  3. Caso não tenha instalado obtenha um arquivo para a última release do Maven. Descomprima o ficheiro e onfigure a variável de ambiente PATH para incluir o subdirectório bin.

Estrutura do projecto Maven

No directório JavaVulnerableLab encontra:

Comandos

Os comandos descritos a seguir deverão ser executados a partir do directório raíz do projecto, aquele que contém o ficheiro pom.xml.

Compilação da JVL

Use

mvn package

para compilar a aplicação. Os ficheiros gerados durante a compilação são depositados no sub-directório target.

Por sua vez, o comando

mvn clean

apaga todo o directório target.

Combinando os comandos:

mvn clean package

procederá a uma recompilação completa.

Execução da JVL

Pode iniciar a aplicação com o comando

mvn package exec:exec

podendo package ser omitido caso não queira recompilar a aplicação.

Análise estática de código / interface ao SonarQube

(Configure previamente o SonarQube; veja instruções abaixo.)

Execute

mvn package sonar:sonar

para correr os módulos de análise estática e submeter o resultado ao servidor SonarQube.

SonarQube

Instalação

Há 3 opções para instalar e correr o Sonar

  1. Container Docker local (recomendado)

  2. Container na Google Cloud Platform

  3. Pode também optar por descarregar e instalar o SonarQube Community Edition 7.9 no seu PC.

Configuração

  1. Aceda ao SonarQube em http://localhost:9000. As credenciais iniciais para login são admin/admin.
  2. Actualize/instale plugins necessários, acedendo a Administration > MarketPlace.

  3. Instale o "perfil de qualidade" QSES acedendo a Quality Profiles.

  4. Se a configuração tiver sido bem feita, a primeira análise do projecto (veja como executar o Maven acima neste documento) deverá revelar um total de 230 vulnerabilidades de segurança.

ZAP

Instalação

Condução de um "active scan"

Configuração

A configuração "default" do ZAP deverá servir para detectar as vulnerabilidades do trabalho com respeito
a XSS, vulnerabilidades de cookies e alguns casos de SQLi.

Caso queira no entanto customizar, a imagem abaixo ilustra a configuração mais agressiva para o ZAP.

sqlmap

Instalação

Execução