Plantilla para proyectos de Ciberseguridad y Situational Awareness con Python.
- Estructura limpia (
src/,data/,rules/,scripts/,tests/). - Formateo y lint automático: Black + isort + Ruff.
- Escaneos de seguridad: Bandit (SAST Python) y Semgrep (reglas amplias).
- Configuración lista para VS Code y Dev Containers.
- Gestión de secretos con
.env(no se sube al repo).
- Python 3.11+ (recomendado)
pipyvenv- (Opcional)
pipxpara instalar Semgrep y otras CLIs - (Opcional) Docker + Dev Containers
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
python -m pip install --upgrade pip
pip install -e ".[dev]" # instala deps y herramientas de desarrollo
pre-commit install # activa hooks
# Primer chequeo
make lint
make security
pytest -qsrc/app/ # código fuente (paquete)
security/ # utilidades de seguridad (HTTP seguro, IOCs, etc.)
data/ # cargadores y utils de datasets/logs
utils/ # logging, configuración, helpers
data/ # datos (raw/processed/tmp) - ignorados por git
rules/semgrep/ # reglas personalizadas de Semgrep
notebooks/ # notebooks de análisis (ipynb)
scripts/ # scripts CLI
tests/ # pruebas (pytest)
.vscode/ # settings, tasks
.devcontainer/ # Dev Container opcional
make install # instala deps (prod) y extras (dev)
make format # black + isort
make lint # ruff check
make test # pytest
make security # bandit (+ semgrep si instalado)
make run # ejecuta el entrypoint principal- Añade tus reglas en
rules/semgrep/*.yml. - Variables sensibles en
.env(usa.env.examplecomo base). - Nunca subas
data/rawni secretos al repo.