Skip to content

niklaz4/vulnerability-analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

API Vulnerability Analyzer

O API Vulnerability Analyzer é uma aplicação desenvolvida para analisar especificações OpenAPI, detectando vulnerabilidades relacionadas a práticas inadequadas de segurança, como a ausência de autenticação ou a exposição indevida de chaves API. O projeto é estruturado em duas partes principais: um backend implementado com Flask, responsável pela análise, e um frontend desenvolvido em React, que oferece uma interface gráfica para upload e visualização de resultados.

Aviso: Esta ferramenta é destinada ao uso educacional e de conscientização. Seu uso para fins mal-intencionados é ilegal.


Arquitetura e Lógica de Implementação

A aplicação está dividida em dois componentes principais:

  • Backend (Flask): Responsável pelo processamento dos arquivos enviados e pela análise das vulnerabilidades nas especificações OpenAPI. O backend implementa autenticação JWT, manipulação de arquivos e verificação de falhas de segurança. A função principal analyze_openapi realiza verificações críticas, como a ausência de autenticação em endpoints e a exposição de chaves de API.
  • Frontend (React): Proporciona uma interface gráfica simples e intuitiva, onde o usuário pode fazer upload dos arquivos de especificação, disparar a análise e visualizar os resultados. O frontend exibe as vulnerabilidades encontradas através de gráficos e listas detalhadas, aceitando arquivos nos formatos .json, .yaml ou .yml.

🚀 Instalação

A seguir estão as instruções para configurar o ambiente, tanto para o backend (Flask) quanto para o frontend (React).

Backend (Flask)

Siga os passos abaixo para configurar o ambiente Flask:

1. Clonar o repositório:

git clone https://github.com/niklaz4/vulnerability-analyzer.git
cd api-vulnerability-analyzer/backend

2. Criar e ativar o ambiente virtual (venv):

  • Em sistemas Unix ou MacOS:
  • python3 -m venv venv
  • Ativar o ambiente virtual:
  • source venv/bin/activate
  • Em sistemas Windows:
  • python -m venv venv
  • Ativar o ambiente virtual:
  • venv\Scripts\activate

3. Instalar as dependências:

pip install Flask PyYAML requests PyJWT

4. Executar o backend:

python app.py

O servidor Flask estará rodando na porta 5000.

Frontend (React)

Para configurar o frontend, siga os passos abaixo:

1. Instalar o Node.js e o npm (se ainda não estiverem instalados):

  • Em sistemas Unix ou MacOS, instale via gerenciador de pacotes:
  • sudo apt install nodejs npm
  • Em sistemas Windows, baixe e instale o Node.js a partir de https://nodejs.org/.

2. Navegar para o diretório do frontend:

cd api-vulnerability-analyzer/frontend

3. Instalar as dependências do React:

npm install

4. Executar o frontend:

npm start

O frontend será iniciado na porta 3000 e poderá ser acessado via http://localhost:3000.


📊 Fluxo da Aplicação

A seguir está o fluxo geral da aplicação:

  1. O usuário faz upload de um arquivo de especificação OpenAPI (em formato JSON ou YAML) na interface do React.
  2. O arquivo é enviado para o backend em Flask, que processa o conteúdo.
  3. A função analyze_openapi verifica a presença de autenticação nos endpoints e detecta possíveis vulnerabilidades como a exposição de chaves API.
  4. As vulnerabilidades são classificadas por severidade e retornadas ao frontend.
  5. O frontend exibe os resultados na forma de gráficos e listas detalhadas para o usuário.

🔐 Autenticação JWT e Segurança

O backend utiliza JSON Web Tokens (JWT) para autenticar os usuários. Apenas usuários autenticados podem acessar funcionalidades críticas, como o upload e análise de especificações OpenAPI. O sistema também inclui suporte para logout, onde os tokens JWT são inseridos em uma lista de revogação (blacklist) para impedir seu reuso.


🛠 Docker e Deploy

Este projeto inclui um arquivo docker-compose.yml para facilitar a configuração do ambiente de desenvolvimento e produção. Com Docker, é possível executar tanto o backend quanto o frontend em contêineres isolados, garantindo a consistência do ambiente e simplificando a implantação.

Instruções para Deploy com Docker:

docker-compose up --build

Isso construirá as imagens e iniciará os contêineres do backend e do frontend simultaneamente.


🔒 Boas Práticas de Segurança em APIs

Durante o desenvolvimento do API Vulnerability Analyzer, foram aplicadas várias práticas recomendadas de segurança para APIs, incluindo:

  • Autenticação e Autorização: Proteção de todos os endpoints críticos com autenticação JWT.
  • Uso Seguro de Chaves API: Evitar a exposição de chaves API em URLs ou parâmetros de caminho.
  • Validação de Entrada: Todos os dados de entrada são validados e sanitizados para prevenir injeções e manipulações maliciosas.
  • Revogação de Tokens: Implementação de uma lista de revogação (blacklist) para tokens JWT.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published