
OWASP ASST (Automated Software Security Toolkit) | Um Novo Scanner de Segurança Web de Código Aberto.
OWASP ASST (Ferramenta Automatizada de Segurança de Software) | Um Novo Scanner de Segurança Web Open Source.
Nota: AWSS é o nome antigo do ASST

Aplicações web tornaram-se parte integrante do dia a dia, mas muitas dessas aplicações são implantadas com vulnerabilidades críticas que podem ser fatalmente exploradas. À medida que a tecnologia usada para desenvolver essas aplicações se torna sofisticada, também se tornam as técnicas dos atacantes. Os atacantes não precisam mais de acesso físico às vítimas, podem atacar mais de uma ao mesmo tempo e a possibilidade de serem pegos e levados à justiça é mínima.
Scanners automatizados de vulnerabilidades web têm sido amplamente utilizados para avaliar a segurança de aplicações web. Eles podem melhorar a eficiência da varredura de vulnerabilidades em comparação com a detecção manual tradicional, que é demorada, trabalhosa e ineficiente. Existem muitos scanners de vulnerabilidades web na Internet; no entanto, eles não explicam o possível ataque e como ter contramedidas contra ele.
Projetámos e implementámos um novo scanner automatizado de vulnerabilidades web chamado Automated Software Security Toolkit (ASST), que verifica o código fonte de um projeto web e gera um relatório dos resultados com explicação detalhada sobre cada possível vulnerabilidade e como se proteger contra ela. Testámos o desempenho do ASST e comparámos seus resultados com outros grandes scanners de vulnerabilidades open source. Nossos resultados mostram que o ASST pode identificar vulnerabilidades de segurança de software web de forma mais abrangente e precisa.
NOTA: Ainda está em desenvolvimento. Por favor, reporte qualquer erro que encontrar.
O ASST é uma ferramenta de varredura de código fonte Open Source, é uma aplicação CLI (Interface de Linha de Comando), desenvolvida com JavaScript (framework Node.js).
Atualmente concentra-se nas linguagens de programação PHP e MySQL, mas como suas funcionalidades principais estão prontas e disponíveis para todos, programadores podem contribuir e adicionar plugins ou extensões, para adicionar funcionalidades e fazê-lo varrer outras linguagens de programação como Java, C#, Python, etc., e seus frameworks. Portanto, sua infraestrutura foi projetada para ser contribuída por outros programadores para torná-lo melhor e mais inovador.
Até onde sabemos, o ASST é a única ferramenta que varre a linguagem PHP de acordo com os Riscos de Segurança Top 10 de Aplicações Web da OWASP.
Quando o ASST varre um projeto, ele verifica cada arquivo linha por linha em busca de vulnerabilidades de segurança. Se uma vulnerabilidade for detectada, ele alertará no relatório em qual linha de qual arquivo foi detectada e um link "Clique Aqui" para explicar o ataque e como se proteger contra ele.
Os resultados do ASST são exibidos como um Relatório HTML vinculado a arquivos PDF para explicar cada ataque e seu mecanismo de proteção.
O ASST pode ser facilmente estendido para suportar outras linguagens de programação que possam ser varridas em busca de vulnerabilidades. O projeto é open source, portanto, programadores com experiência em segurança cibernética podem contribuir ou bifurcar a ferramenta e adicionar funcionalidades. Outras linguagens de programação como Python, C#, Java ou o próprio Node.js podem ser adicionadas para serem varridas em busca de vulnerabilidades como código de servidor backend.
Se você é um desenvolvedor experiente em segurança, pode contribuir para melhorar esta versão atual, ou pode contribuir adicionando novas linguagens de programação para serem varridas. Mas existem regras a serem seguidas ao melhorá-lo:
Para fazer o ASST funcionar 100%, você precisará instalar:
Vídeo completo de como executar o ASST no Windows: https://youtu.be/FKxDa3zYz1E
Você pode baixar o XAMPP para Windows daqui: https://www.apachefriends.org/download.html escolha a versão do PHP que se adequa ao seu projeto, se não souber qual versão escolher, escolha a primeira para windows.
Após baixar e instalar o XAMPP (Next, Next, Next, Finish), execute o Painel de Controle do XAMPP, você pode digitar XAMPP no campo de Pesquisa do Menu Iniciar e o verá, execute-o. Ao lado dos rótulos Apache e MySQL, pressione start (dois botões).
Certifique-se de que seu PC não tenha um programa de Máquina Virtual instalado, porque o XAMPP e a Máquina Virtual entram em conflito nas Portas. Você terá que forçar o fechamento dos serviços em segundo plano da VM usando o Gerenciador de Tarefas (Pesquise no Google, se não souber do que estou falando).
Certifique-se de que o programa Skype está fechado (mesmo da barra de tarefas), porque eles também entram em conflito nas Portas. Você pode executar o Skype depois de iniciar o XAMPP.
Coloque a pasta do seu Projeto em htdocs: padrão: "C:\xampp\htdocs\NomeDaPastaDoSeuProjeto"
Abra o navegador, digite: localhost/phpmyadmin, crie um banco de dados vazio, importe seu arquivo project_database.sql para ele, abra a pasta do seu projeto e altere o arquivo de configuração do seu projeto para conectar ao localhost do MySQL: as configurações padrão são: host: "localhost" ou "127.0.0.1", username: "root", password: "" (String vazia), database name: "dbname_you_chose_in_phpmyadmin"
Você deve baixar uma versão específica do Node.js para Windows daqui: https://nodejs.org/en/blog/release/v12.13.0/ selecione (Windows 64-bit Installer), depois baixe, Next, Next, Next e Finish.
Não estamos acompanhando as atualizações do nodejs a cada mês, portanto, se quiser testar por conta própria, você pode baixar a versão mais recente do node.js daqui: https://nodejs.org/en/download/ escolha (Windows Installer (.msi)), baixe e execute, Next, Next, Next e Finish.
Baixe e Extraia o projeto ASST desta página do github, renomeie a pasta para "ASST" apenas, não "ASST-main", mova a pasta do ASST para o lado do seu projeto web a ser varrido, padrão: "C:\xampp\htdocs\ASST"
Abra o config.js dentro da pasta ASST e defina o nome da pasta do seu Projeto Web a ser varrido na variável DEFAULT_PROJECT_PATH_TO_SCAN.
Abra o config_php_lang.js dentro da pasta ASST: se você estiver usando MySQL, defina as variáveis conforme explicado no arquivo; se não estiver usando MySQL, apenas defina a variável IS_DBMS_USED como false e ignore o resto. Note que PHP_EXE_BIN_PATH está definido para o local padrão do XAMPP, então altere-o se estiver usando um binário PHP diferente ou um local diferente do XAMPP.
Clique duas vezes no ASST.bat para executá-lo. Se for bloqueado pelo Windows Defender Smart Screen, permita clicando em More Info e depois Run ou Run Anyway, ou você pode executá-lo usando o comando CMD.
Execute este comando uma vez para instalar os node_modules para este projeto:
$ cd C:\xampp\htdocs\ASST && npm install
Comando CMD padrão para executar o ASST:
$ node C:\xampp\htdocs\ASST\main.js
Vídeo completo de como executar o ASST no Ubuntu: https://youtu.be/XrAB8_BHxfo
Usando um navegador web, abra este link: https://www.apachefriends.org/download.html e procure pela seção "XAMPP for Linux", escolha a versão do PHP que se adequa ao seu projeto e baixe-a. Se não souber qual versão escolher, escolha a primeira. Ou você pode baixar o XAMPP através do terminal usando o comando (ferramenta) "wget", mas precisará ter e saber a url da versão correta para baixar.
Agora trabalhando no Terminal:
$ cd Downloads
$ ls
Você deve ver o arquivo de instalação do XAMPP que baixou.
$ sudo chmod +x xampp-linux-*
$ sudo ./xampp-linux-*
Aguarde um segundo para a instalação executar, depois siga as instruções. Após baixar e instalar o XAMPP, execute-o.
$ sudo /opt/lampp/lampp start
Coloque a pasta do seu Projeto em htdocs: padrão: "/opt/lampp/htdocs/NomeDaPastaDoSeuProjeto"
Abra o navegador, digite: localhost/phpmyadmin, crie um banco de dados vazio, importe seu arquivo project_database.sql para ele, abra a pasta do seu projeto e altere o arquivo de configuração do seu projeto para conectar ao localhost do MySQL: as configurações padrão são: host: "localhost" ou "127.0.0.1", username: "root", password: "" (String vazia), database name: "dbname_you_chose_in_phpmyadmin"
$ sudo apt-get install nodejs -y
$ sudo apt-get install npm -y
Você deve definir uma versão específica do Node.js para fazer o ASST funcionar sem problemas.
$ sudo npm install n -g
$ sudo n 12.13.0
Não estamos acompanhando as atualizações do nodejs a cada mês, portanto, se quiser testar por conta própria, você pode ignorar os dois últimos comandos de instalação do "n" usando o npm
Baixe e Extraia o projeto ASST desta página do github, usando um navegador, wget ou git, renomeie a pasta para "ASST" apenas, não "ASST-main", mova a pasta do ASST para o lado do seu projeto web a ser varrido, padrão: "/opt/lampp/htdocs/ASST"
Abra o config.js dentro da pasta ASST usando nano, vim ou editor de texto e defina o nome da pasta do seu Projeto Web a ser varrido na variável DEFAULT_PROJECT_PATH_TO_SCAN.
Abra o config_php_lang.js dentro da pasta ASST: se você estiver usando MySQL, defina as variáveis conforme explicado no arquivo; se não estiver usando MySQL, apenas defina a variável IS_DBMS_USED como false e ignore o resto. Note que PHP_EXE_BIN_PATH está definido para o local padrão do XAMPP, então altere-o se estiver usando um binário PHP diferente ou um local diferente do XAMPP.
Execute este comando uma vez para instalar os node_modules para este projeto:
$ cd /opt/lampp/htdocs/ASST && sudo npm install
Para executar o ASST, comando padrão:
$ sudo node /opt/lampp/htdocs/ASST/main.js
Vídeo completo de como executar o ASST no MacOSX: https://youtu.be/IThRZEQVa7M
Usando um navegador web, abra este link: https://www.apachefriends.org/download.html e procure pela seção "XAMPP for OSX", escolha a versão do PHP que se adequa ao seu projeto e baixe-a. Se não souber qual versão escolher, escolha a primeira.
Abra a Pasta Downloads e clique duas vezes no arquivo xampp-osx-.dmg que você baixou. depois instale: Next, Next, Next, Finish.
Após a instalação, abra a Pasta Applications usando o Finder e abra a pasta XAMPP, clique em manager-osx.app para abrir o Painel de Controle do XAMPP, clique na aba Manage Servers e depois clique no botão Start All.
Coloque a pasta do seu Projeto em htdocs:
Abra o navegador, digite: localhost/phpmyadmin, crie um banco de dados vazio, importe seu arquivo project_database.sql para ele, abra a pasta do seu projeto e altere o arquivo de configuração do seu projeto para conectar ao localhost do MySQL: as configurações padrão são: host: "localhost" ou "127.0.0.1", username: "root", password: "" (String vazia), database name: "dbname_you_chose_in_phpmyadmin"
Existem várias maneiras de baixar e instalar o Node.js no MacOSX especificadas aqui: https://nodejs.org/en/download/package-manager/#macos
Nós usamos: brew (sistema de pacotes), Abra o Terminal:
$ sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
$ sudo brew install node
Você deve definir uma versão específica do Node.js para fazer o ASST funcionar sem problemas.
$ sudo npm install n -g
$ sudo n 12.13.0
Não estamos acompanhando as atualizações do nodejs a cada mês, portanto, se quiser testar por conta própria, você pode ignorar os dois últimos comandos de instalação do "n" usando o npm
Baixe e Extraia o projeto ASST desta página do github, usando um navegador ou git, renomeie a pasta para "ASST" apenas, não "ASST-main", mova a pasta do ASST para o lado do seu projeto web a ser varrido, padrão: "/Applications/XAMPP/htdocs/ASST"
Abra o config.js dentro da pasta ASST usando um editor de texto, coloque o nome da pasta do seu Projeto Web a ser varrido na variável DEFAULT_PROJECT_PATH_TO_SCAN.
Abra o config_php_lang.js dentro da pasta ASST: se você estiver usando MySQL, defina as variáveis conforme explicado no arquivo; se não estiver usando MySQL, apenas defina a variável IS_DBMS_USED como false e ignore o resto. Note que PHP_EXE_BIN_PATH está definido para o local padrão do XAMPP, então altere-o se estiver usando um binário PHP diferente ou um local diferente do XAMPP.
Execute este comando uma vez para instalar os node_modules para este projeto:
$ cd /Applications/XAMPP/htdocs/ASST && sudo npm install
Para executar o ASST, comando padrão:
$ sudo node /Applications/XAMPP/htdocs/ASST/main.js
Agradecimentos Especiais a:
Por tornar esta ferramenta possível, fornecendo sua orientação e ajuda.