API REST que agrega datos de inteligencia de amenazas (CTI) de múltiples fuentes (VirusTotal y MalwareBazaar) para un hash de archivo específico.
- Docker y Docker Compose
- O Python 3.11+ (para ejecución local)
- Clonar el repositorio
- Crear archivo
.enven la raíz del proyecto:
VT_API_KEY=your_virustotal_api_key
MB_API_KEY=your_malwarebazaar_api_key
- Construir y ejecutar con Docker Compose:
docker compose up --build- Para detener la aplicación:
docker compose down- Crear entorno virtual:
python -m venv venv
source venv/bin/activate # Linux/Mac
.\venv\Scripts\activate # Windows- Instalar dependencias:
pip install -r requirements.txt- Ejecutar la aplicación:
uvicorn main:app --reloadLa API estará disponible en: http://localhost:8000
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
GET /cti/{file_hash}
- Parámetros:
file_hash: Hash del archivo (MD5, SHA-1, SHA-256)format: (opcional) 'csv' o 'excel' para descarga de reporte
Ejemplo:
curl http://localhost:8000/cti/YOUR_HASH_HERE
curl http://localhost:8000/cti/YOUR_HASH_HERE?format=excel- Consulta a VirusTotal y MalwareBazaar
- Extracción de datos CTI relevantes:
- Información de archivo (hashes, nombres, tamaños)
- Detecciones de antivirus
- Análisis MITRE ATT&CK
- Comportamiento del malware
- Comentarios de la comunidad
- Exportación de resultados en múltiples formatos:
- JSON (formato predeterminado)
- CSV
- Excel (con múltiples hojas organizadas por tipo de dato)
- Clonar el repositorio :
git clone https://github.com/lilfvchx/VT-MB-Search
cd VT-MB-SEARCH- Crear y activar entorno virtual:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows- Instalar dependencias:
pip install -r requirements.txt- Configurar variables de entorno:
Crear archivo
.envcon las siguientes variables:
VIRUSTOTAL_API_KEY=your_vt_api_key
MALWARE_BAZAAR_API_KEY=your_mb_api_key
- Iniciar el servidor:
uvicorn main:app --reload- Acceder al endpoint principal:
GET /cti/{file_hash}
file_hash: Hash MD5, SHA-1 o SHA-256 del archivoformat(opcional): Formato de salida ('csv' o 'excel') si no es especificado, se devuelve JSON
Consulta básica (retorna JSON):
GET /cti/44d88612fea8a8f36de82e1278abb02f
Exportar a CSV:
GET /cti/44d88612fea8a8f36de82e1278abb02f?format=csv
Exportar a Excel:
GET /cti/44d88612fea8a8f36de82e1278abb02f?format=excel
MELI/
├── main.py # Punto de entrada y rutas de la API
├── requirements.txt # Dependencias del proyecto
├── src/
│ ├── vt_utils.py # Utilidades para VirusTotal
│ ├── mb_utils.py # Utilidades para MalwareBazaar
│ └── utils.py # Utilidades generales
└── .env # Variables de entorno (no incluido en repo)
La documentación completa de la API está disponible en:
http://localhost:8000/docs
- FastAPI: Framework web moderno y rápido
- Requests: Cliente HTTP para Python
- Pandas: Manipulación y análisis de datos
- python-dotenv: Manejo de variables de entorno