270 lines
4.5 KiB
Markdown
270 lines
4.5 KiB
Markdown
# Roadmap
|
|
|
|
# Vision
|
|
|
|
Labfy Investigation est un logiciel libre d'investigation numérique,
|
|
développé en C17 avec GTK4.
|
|
|
|
Le projet a pour objectif de fournir un environnement professionnel
|
|
permettant de gérer une enquête numérique de bout en bout, depuis la
|
|
collecte des preuves jusqu'à la génération d'un rapport.
|
|
|
|
Le logiciel est conçu pour être utilisé aussi bien par des particuliers
|
|
que par des professionnels (journalistes, enquêteurs, forces de l'ordre,
|
|
experts judiciaires, analystes OSINT).
|
|
|
|
---
|
|
|
|
# Principes d'architecture
|
|
|
|
Le développement repose sur plusieurs règles fondamentales.
|
|
|
|
## Une enquête = un dossier autonome
|
|
|
|
Chaque enquête contient l'ensemble des éléments nécessaires à son
|
|
fonctionnement.
|
|
|
|
```text
|
|
MonEnquete/
|
|
│
|
|
├── 00_BaseDeDonnees/
|
|
│ └── Enquete.sqlite
|
|
│
|
|
├── 01_Preuves_Originales/
|
|
├── 02_Preuves_Traitees/
|
|
├── 03_Chronologie/
|
|
├── 04_Entites/
|
|
├── 05_Rapports/
|
|
│
|
|
└── ...
|
|
```
|
|
|
|
Une enquête peut être :
|
|
|
|
- copiée ;
|
|
- sauvegardée ;
|
|
- synchronisée ;
|
|
- archivée ;
|
|
- transmise.
|
|
|
|
Sans dépendre d'une installation particulière.
|
|
|
|
---
|
|
|
|
## Séparation des responsabilités
|
|
|
|
Le Core ne dépend jamais de GTK.
|
|
|
|
La couche graphique ne contient aucune logique métier.
|
|
|
|
```text
|
|
GUI
|
|
│
|
|
▼
|
|
Application
|
|
│
|
|
▼
|
|
InvestigationProject
|
|
│
|
|
┌──────┴────────────┐
|
|
│ │
|
|
▼ ▼
|
|
FileSystem Database
|
|
│
|
|
▼
|
|
Investigation
|
|
```
|
|
|
|
---
|
|
|
|
## Préservation des preuves
|
|
|
|
Les preuves originales ne sont jamais modifiées.
|
|
|
|
Toute opération produisant une version annotée,
|
|
convertie ou analysée est enregistrée dans un
|
|
espace distinct.
|
|
|
|
---
|
|
|
|
## Développement incrémental
|
|
|
|
Chaque ticket doit :
|
|
|
|
- être autonome ;
|
|
- être testé ;
|
|
- compiler sans warning ;
|
|
- ne pas introduire de régression.
|
|
|
|
Aucun ticket ne doit casser les fonctionnalités existantes.
|
|
|
|
---
|
|
|
|
# Phases du projet
|
|
|
|
## Phase 1 — Infrastructure ✅
|
|
|
|
### Architecture
|
|
|
|
- [x] Structure du projet
|
|
- [x] Architecture C17
|
|
- [x] Organisation des modules
|
|
- [x] Documentation Doxygen
|
|
- [x] Makefile
|
|
- [x] Tests unitaires
|
|
|
|
### Core
|
|
|
|
- [x] Investigation
|
|
- [x] InvestigationNode
|
|
- [x] InvestigationTreeBuilder
|
|
- [x] InvestigationTreeModel
|
|
|
|
### Interface GTK4
|
|
|
|
- [x] MainWindow
|
|
- [x] Sidebar
|
|
- [x] Workspace
|
|
- [x] GtkStack
|
|
- [x] InvestigationTreeView
|
|
- [x] Sélection des nœuds
|
|
- [x] Affichage des informations
|
|
- [x] Affichage du chemin complet
|
|
- [x] Icônes selon le type de fichier
|
|
|
|
---
|
|
|
|
# Phase 2 — Gestion des enquêtes
|
|
|
|
## TICKET-020
|
|
|
|
- [ ] Création d'une nouvelle enquête
|
|
|
|
### Objectifs
|
|
|
|
- création de l'arborescence
|
|
- création de `00_BaseDeDonnees`
|
|
- création de `Enquete.sqlite`
|
|
|
|
---
|
|
|
|
## TICKET-021
|
|
|
|
- [ ] Validation d'une enquête existante
|
|
|
|
### Objectifs
|
|
|
|
- vérifier l'arborescence
|
|
- vérifier la présence de la base
|
|
- détecter une enquête invalide
|
|
- import d'une enquête
|
|
|
|
---
|
|
|
|
## TICKET-022
|
|
|
|
- [ ] Initialisation de SQLite
|
|
|
|
### Objectifs
|
|
|
|
- création du schéma
|
|
- table metadata
|
|
- version du schéma
|
|
- UUID de l'enquête
|
|
|
|
---
|
|
|
|
## TICKET-023
|
|
|
|
- [ ] InvestigationProject
|
|
|
|
### Objectifs
|
|
|
|
- ouverture d'une enquête
|
|
- fermeture
|
|
- validation
|
|
- création
|
|
|
|
---
|
|
|
|
# Phase 3 — Consultation
|
|
|
|
- [ ] Aperçu des fichiers texte
|
|
- [ ] Aperçu des images
|
|
- [ ] Aperçu PDF
|
|
- [ ] Aperçu vidéo
|
|
- [ ] Aperçu audio
|
|
|
|
---
|
|
|
|
# Phase 4 — Base de données
|
|
|
|
- [ ] Gestion des preuves
|
|
- [ ] Gestion des entités
|
|
- [ ] Gestion des relations
|
|
- [ ] Chronologie
|
|
- [ ] Tags
|
|
- [ ] Notes
|
|
|
|
---
|
|
|
|
# Phase 5 — Analyse
|
|
|
|
- [ ] Calcul des hash
|
|
- [ ] EXIF
|
|
- [ ] OCR
|
|
- [ ] Recherche plein texte
|
|
- [ ] Analyse des métadonnées
|
|
- [ ] Import massif
|
|
|
|
---
|
|
|
|
# Phase 6 — OSINT
|
|
|
|
- [ ] Whois
|
|
- [ ] DNS
|
|
- [ ] Sous-domaines
|
|
- [ ] HTTP
|
|
- [ ] Certificats TLS
|
|
- [ ] Réseaux sociaux
|
|
- [ ] Emails
|
|
- [ ] Téléphones
|
|
|
|
---
|
|
|
|
# Phase 7 — Rapports
|
|
|
|
- [ ] Rapport HTML
|
|
- [ ] Rapport PDF
|
|
- [ ] Export ZIP
|
|
- [ ] Export dossier complet
|
|
|
|
---
|
|
|
|
# Phase 8 — Qualité
|
|
|
|
- [ ] Traductions
|
|
- [ ] Thèmes
|
|
- [ ] Tests d'intégration
|
|
- [ ] Packaging
|
|
- [ ] Installateur Linux
|
|
- [ ] Documentation utilisateur
|
|
|
|
# Objectifs à long terme
|
|
|
|
Le projet doit permettre :
|
|
|
|
- la gestion complète d'une enquête numérique ;
|
|
- la conservation de la chaîne de preuve ;
|
|
- l'intégration de modules OSINT ;
|
|
- l'analyse de fichiers et de métadonnées ;
|
|
- la génération de rapports exploitables ;
|
|
- une architecture modulaire facilitant les évolutions futures.
|
|
|
|
Le logiciel doit rester :
|
|
|
|
- libre ;
|
|
- documenté ;
|
|
- portable ;
|
|
- testable ;
|
|
- maintenable.
|