18 KiB
TICKET-040 — Inventaire et qualification de l’arsenal OSINT
Statut
À faire
Priorité
Très haute
Nature
Recherche, audit juridique, architecture et préparation des futures intégrations.
La présence d’un outil dans cet inventaire ne signifie pas qu’il est approuvé.
Objectif
Constituer une base large, structurée et maintenable d’outils OSINT pouvant être intégrés à Labfy Investigation afin d’aider à enquêter légalement sur :
- pseudonymes et comptes publics ;
- adresses e-mail ;
- numéros de téléphone ;
- domaines, IP, certificats et infrastructures publiques ;
- documents, faux papiers, photos et vidéos ;
- historiques de pages supprimées ;
- dépôts publics ;
- IBAN, entreprises et cryptomonnaies ;
- relations entre personnes, comptes, domaines et moyens de paiement ;
- réseaux d’escrocs réutilisant les mêmes identifiants.
Le résultat doit être traçable, reproductible et présentable à des enquêteurs.
Cadre légal non négociable
Labfy Investigation reste limité à :
- sources publiquement accessibles ;
- données remises légalement par une victime ou un enquêteur ;
- API et comptes utilisés conformément à leurs autorisations ;
- collecte sans contournement d’authentification ;
- recherche passive ou explicitement autorisée ;
- conservation de la méthode, de la source et de la sortie brute.
Sont exclus :
- intrusion ;
- exploitation de vulnérabilité ;
- brute force d’authentification ;
- credential stuffing ;
- phishing ;
- vol ou réutilisation de jetons ;
- usurpation ;
- social engineering ;
- accès à une ressource privée ;
- modification d’une ressource distante ;
- utilisation de données obtenues illicitement.
Livrables
docs/osint/TOOL_INVENTORY.md
docs/osint/LEGAL_AND_OPERATIONAL_POLICY.md
data/osint_tools.json
data/osint_tools.csv
Le JSON deviendra la future source de génération du catalogue étendu.
Schéma d’une fiche outil
identifier
name
repository
homepage
publisher
category
subcategories
description
license
license_verified
open_source_status
latest_release
last_activity
primary_language
installation_methods
ubuntu_packages
runtime_dependencies
input_types
output_formats
supports_json
supports_csv
supports_stdout
supports_file_output
requires_account
requires_api_key
requires_paid_service
network_activity
collection_mode
authentication_mode
rate_limit_risk
terms_of_service_risk
personal_data_risk
false_positive_risk
evidentiary_value
reproducibility
tool_version_command
integration_mode
integration_priority
legal_status
maintenance_status
decision
decision_reason
notes
reviewed_at
reviewed_by
Valeurs normalisées
open_source_status
OPEN_SOURCE
SOURCE_AVAILABLE
OPEN_CLIENT_CLOSED_SERVICE
CLOSED_SOURCE
UNKNOWN
collection_mode
LOCAL_ONLY
PASSIVE_REMOTE
REMOTE_PUBLIC_REQUESTS
AUTHENTICATED_PUBLIC_API
ACTIVE_LOW_IMPACT
ACTIVE_INTRUSIVE
MIXED
legal_status
APPROVED_PASSIVE
APPROVED_WITH_CONFIGURATION
MANUAL_REVIEW_REQUIRED
RESTRICTED_TO_AUTHORIZED_TARGETS
REJECTED
UNKNOWN
integration_mode
DIRECT_CLI
DIRECT_LIBRARY
LOCAL_SERVICE
REMOTE_API
BROWSER_ASSISTED
EXPORT_IMPORT
REFERENCE_ONLY
REJECTED
integration_priority
P0
P1
P2
P3
BACKLOG
REJECTED
decision
INTEGRATE
PROTOTYPE
MONITOR
MANUAL_ONLY
REJECT
UNREVIEWED
Notation sur 100
- valeur opérationnelle : 30 ;
- intégrabilité : 20 ;
- légalité et maîtrise du risque : 20 ;
- traçabilité : 15 ;
- maintenance : 10 ;
- coût : 5.
Un outil sous 50/100 ne doit pas être intégré sans justification écrite.
Inventaire initial à auditer
A. Pseudonymes, comptes et identités publiques
| Outil | Dépôt/projet | Usage | Priorité |
|---|---|---|---|
| Sherlock | sherlock-project/sherlock |
Recherche de pseudonymes | P0 |
| Maigret | soxoj/maigret |
Recherche approfondie de pseudonymes | P0 |
| Blackbird | p1ngul1n0/blackbird |
Comptes et enrichissement | P1 |
| WhatsMyName | WebBreacher/WhatsMyName |
Base de règles de présence | P0 |
| Enola | theyahya/enola |
Recherche rapide de pseudonymes | P2 |
| Social Analyzer | qeeqbox/social-analyzer |
Analyse multi-plateformes | P2 |
| socialscan | iojw/socialscan |
Pseudonymes et e-mails | P1 |
| GHunt | mxrch/GHunt |
Écosystème Google | P1 |
| GitFive | mxrch/GitFive |
Corrélation GitHub | P1 |
| Holehe | megadose/holehe |
Présence d’une adresse sur des services | P0 |
| MOSINT | alpkeskin/mosint |
Enrichissement d’e-mails | P2 |
| h8mail | khast3x/h8mail |
Jeux de données autorisés uniquement | P1 restreint |
| Ignorant | megadose/ignorant |
Présence d’un téléphone sur des services | Revue |
| Instaloader | instaloader/instaloader |
Contenus Instagram publics | Revue |
| snscrape | JustAnotherArchivist/snscrape |
Collecte sociale publique | Revue |
| gallery-dl | mikf/gallery-dl |
Conservation de médias publics | P1 |
| yt-dlp | yt-dlp/yt-dlp |
Métadonnées et médias publics | P0 |
B. E-mails
| Outil | Usage | Priorité |
|---|---|---|
| Holehe | Présence sur des services | P0 |
| MOSINT | Enrichissement multi-source | P2 |
| h8mail | Recherche dans des sources licites | Restreint |
| GHunt | Enrichissement Google | P1 |
| theHarvester | E-mails liés à un domaine | P0 |
| SpiderFoot | Modules d’enrichissement | P1 |
| Recon-ng | Framework modulaire | P2 |
| python-email-validator | Validation et normalisation | P1 |
| dnspython | Vérification DNS et MX | P1 |
| Clients OpenPGP | Identifiants publiés dans des clés | P2 |
C. Téléphones
| Outil | Dépôt/projet | Usage | Priorité |
|---|---|---|---|
| PhoneInfoga | sundowndev/phoneinfoga |
Pays, opérateur, formats, sources publiques | P0 |
| libphonenumber | google/libphonenumber |
Parsing et validation | P0 |
| python-phonenumbers | daviddrysdale/python-phonenumbers |
Adaptateur Python | P2 |
| Ignorant | megadose/ignorant |
Présence sur certains services | Revue |
| Normalisation E.164 interne | Labfy | Canonicalisation | P0 |
Aucun outil ne doit prétendre identifier le titulaire réel d’un numéro sans source officielle ou judiciaire.
D. Domaines, DNS, certificats et infrastructures
| Outil | Dépôt/projet | Usage | Priorité |
|---|---|---|---|
| Amass | owasp-amass/amass |
Cartographie d’actifs | P1 |
| Subfinder | projectdiscovery/subfinder |
Sous-domaines passifs | P0 |
| theHarvester | laramies/theHarvester |
Domaines, e-mails, IP, noms | P0 |
| SpiderFoot | smicallef/spiderfoot |
Automatisation multi-source | P1 |
| Recon-ng | lanmaster53/recon-ng |
Framework modulaire | P2 |
| sn0int | kpcyrd/sn0int |
Framework semi-automatique | P2 |
| BBOT | blacklanternsecurity/bbot |
Orchestration récursive | Revue |
| dnsx | projectdiscovery/dnsx |
Requêtes DNS structurées | P1 |
| Findomain | Findomain/Findomain |
Sous-domaines | P2 |
| assetfinder | tomnomnom/assetfinder |
Actifs passifs | P2 |
| dnstwist | elceef/dnstwist |
Typosquatting et variantes | P0 |
| URLCrazy | urbanadventurer/urlcrazy |
Variantes de domaines | P1 |
| CertStream | CaliDog/certstream-python |
Certificats publics | P1 |
| massdns | blechschmidt/massdns |
Résolution de masse | Restreint |
| puredns | d3mondev/puredns |
Résolution de masse | Restreint |
| shuffledns | projectdiscovery/shuffledns |
Résolution de masse | Restreint |
| Knockpy | guelfoweb/knock |
Sous-domaines | Revue |
| Sublist3r | aboul3la/Sublist3r |
Sous-domaines | Surveillance |
| httpx | projectdiscovery/httpx |
Qualification HTTP | Restreint |
| httprobe | tomnomnom/httprobe |
Services HTTP | Restreint |
| Katana | projectdiscovery/katana |
Exploration Web | Restreint |
| RDAP clients | À sélectionner | Enregistrements normalisés | P0 |
| curl | Projet curl | Requêtes HTTP reproductibles | P0 |
| OpenSSL | Projet OpenSSL | Certificats TLS | P0 |
| dig / host / whois | Paquets système | DNS et enregistrements | P0 |
Les outils à forte volumétrie sont désactivés par défaut.
E. Historique du Web et conservation
| Outil | Dépôt/projet | Usage | Priorité |
|---|---|---|---|
| waybackurls | tomnomnom/waybackurls |
URLs Wayback | P0 |
| gau | lc/gau |
URLs d’archives multiples | P0 |
| waymore | xnl-h4ck3r/waymore |
Historique approfondi | P1 |
| ArchiveBox | ArchiveBox/ArchiveBox |
Archivage local | P0 |
| Browsertrix Crawler | webrecorder/browsertrix-crawler |
WARC/WACZ | P0 |
| Browsertrix | webrecorder/browsertrix |
Service local | P2 |
| ArchiveWeb.page | webrecorder/archiveweb.page |
Capture navigateur | P0 |
| pywb | webrecorder/pywb |
Relecture WARC | P1 |
| warcio | webrecorder/warcio |
Lecture/écriture WARC | P0 |
| ReplayWeb.page | webrecorder/replayweb.page |
Relecture d’archives | P1 |
| SingleFile | gildas-lormeau/SingleFile |
Copie autonome d’une page | P0 |
| monolith | Y2Z/monolith |
Sauvegarde autonome | P1 |
| grab-site | ArchiveTeam/grab-site |
Archivage WARC | Revue |
| Heritrix | internetarchive/heritrix3 |
Crawl d’archivage | Restreint |
| waybackpy | akamhy/waybackpy |
Client Wayback | P2 |
| Perma | harvard-lil/perma |
Préservation de références | Manuel/API |
F. Documents, photos et vidéos
| Outil | Dépôt/projet | Usage | Priorité |
|---|---|---|---|
| ExifTool | exiftool/exiftool |
Métadonnées multi-format | P0 |
| MediaInfo | MediaArea/MediaInfo |
Audio et vidéo | P0 |
| FFmpeg / ffprobe | FFmpeg/FFmpeg |
Analyse technique | P0 |
| Exiv2 | Exiv2/exiv2 |
Métadonnées d’images | P1 |
| Hachoir | hachoir/hachoir |
Formats binaires | P1 |
| oletools | decalage2/oletools |
Documents Office | P0 |
| DidierStevensSuite | DidierStevens/DidierStevensSuite |
PDF et OLE | P1 |
| Poppler tools | Projet Poppler | PDF, texte et images | P0 |
| qpdf | qpdf/qpdf |
Structure PDF | P0 |
| Tesseract OCR | tesseract-ocr/tesseract |
OCR local | P0 |
| ImageMagick | ImageMagick/ImageMagick |
Inspection de copies | P1 |
| OpenCV | opencv/opencv |
Comparaison d’images | P2 |
| ImageHash | JohannesBuchner/imagehash |
Empreintes perceptuelles | P1 |
| pHash | Projet pHash | Empreintes perceptuelles | P2 |
| file/libmagic | Paquet système | Identification de format | P0 |
| strings/binutils | Paquet système | Chaînes de caractères | P1 |
| MAT2 | jvoisin/mat2 |
Métadonnées sur copies | P2 |
| yt-dlp | yt-dlp/yt-dlp |
Conservation de médias publics | P0 |
| gallery-dl | mikf/gallery-dl |
Galeries publiques | P1 |
| InVID-WeVerify | Extension/service | Vérification manuelle | Manuel |
| face_recognition | ageitgey/face_recognition |
Comparaison locale | Restreint |
| DeepFace | serengil/deepface |
Comparaison locale | Restreint |
| InsightFace | deepinsight/insightface |
Analyse faciale | Restreint |
Aucune recherche biométrique massive ne doit être intégrée.
G. Dépôts publics et code
| Outil | Usage | Priorité |
|---|---|---|
| GitFive | Corrélation GitHub | P1 |
| GitHub CLI | API et données publiques | P0 |
| TruffleHog | Dépôts publics autorisés | Revue |
| Gitleaks | Secrets publiés | Revue |
| ggshield | Dépôts autorisés | Revue |
| ripgrep | Recherche locale | P0 |
| git-sizer | Structure de dépôt | P2 |
| Git natif | Historique, auteurs et dates | P0 |
Un secret découvert ne doit jamais être utilisé pour accéder à un compte.
H. Réputation et APIs
| Outil/client | Usage | Priorité |
|---|---|---|
| vt-cli | VirusTotal | API |
| OTX Python SDK | AlienVault OTX | API |
| urlscan-go | URLScan | API |
| Shodan Python | Shodan | API |
| Censys Python | Censys | API |
| pyGreynoise | GreyNoise | API |
| PyMISP | MISP | P2 |
| OpenCTI client | OpenCTI | P2 |
| YARA | Classement local | P2 |
| capa | Analyse locale | Backlog |
Toute donnée envoyée à un tiers doit être affichée avant l’appel.
I. Corrélation et graphes
| Outil | Usage | Priorité |
|---|---|---|
| NetworkX | Algorithmes de graphe | P1 |
| igraph | Graphes performants | P2 |
| Graphviz | Rendu | P0 |
| Gephi | Analyse visuelle externe | Export |
| Cytoscape | Analyse visuelle externe | Export |
| OpenCTI | Référence de modèle | Référence |
| MISP | Référence d’indicateurs | Référence |
| Aleph | Recherche documentaire et entités | P1 |
| OpenSanctions | Entités et sanctions publiques | P1 |
| FollowTheMoney | Modèle de relations | P1 |
| Neo4j Community | Base graphe externe | P3 |
| OSINTBuddy | Graphe d’enquête | Surveillance |
Labfy conserve son propre modèle de données.
J. Géolocalisation
| Outil | Usage | Priorité |
|---|---|---|
| geopy | Géocodage configurable | P2 |
| Nominatim | Géocodage OpenStreetMap | P1 |
| OSMnx | Réseaux géographiques | P3 |
| Overpass API | Données OpenStreetMap | P2 |
| QGIS | Analyse externe | Export |
| SunCalc | Position du soleil | P2 |
| Skyfield | Calculs astronomiques | P3 |
| ExifTool | Coordonnées de médias | P0 |
K. IBAN, entreprises et cryptomonnaies
| Outil | Usage | Priorité |
|---|---|---|
| python-stdnum | Validation IBAN et identifiants | P0 |
| iban4j | Validation IBAN | P3 |
| OpenSanctions | Personnes et organisations | P1 |
| FollowTheMoney | Relations structurées | P1 |
| bitcoin-etl | Données publiques Bitcoin | P2 |
| ethereum-etl | Données publiques Ethereum | P2 |
| GraphSense | Analyse de blockchains | P2 |
| BlockSci | Analyse locale | Surveillance |
| mempool | Explorateur Bitcoin open source | P2 |
| Bitcoin Core | Nœud local | P3 |
| Geth | Nœud Ethereum local | P3 |
Un IBAN ne permet pas d’identifier publiquement son titulaire. Labfy se limite à la validation, au pays, à la banque lorsqu’elle est publique et aux corrélations entre dossiers.
Outils exclus du mode OSINT standard
nmap
masscan
naabu
nuclei
gobuster
ffuf
dirsearch
sqlmap
hydra
metasploit
Sn1per
Nikto
WPScan
scanners actifs Burp
outils d’exploitation
outils de credential stuffing
outils de phishing
Décision initiale :
integration_mode = REJECTED
decision = REJECT
Vague prioritaire pour l’affaire d’escroquerie
P0
Sherlock
Maigret
WhatsMyName
Holehe
PhoneInfoga
libphonenumber
GitHub CLI
ExifTool
MediaInfo
ffprobe
Tesseract OCR
Poppler tools
qpdf
oletools
file/libmagic
yt-dlp
waybackurls
gau
ArchiveBox
Browsertrix Crawler
ArchiveWeb.page
warcio
SingleFile
theHarvester
Subfinder
dnstwist
python-stdnum
Graphviz
P1
Blackbird
GHunt
GitFive
h8mail avec sources licites uniquement
gallery-dl
SpiderFoot
Amass
dnsx
URLCrazy
OpenSanctions
FollowTheMoney
Aleph
NetworkX
ImageHash
VirusTotal CLI
urlscan
Audit obligatoire par outil
- données envoyées sur Internet ;
- domaines et API contactés ;
- compte, cookie ou jeton requis ;
- compatibilité avec les CGU ;
- volume de requêtes ;
- accès strictement public ;
- capacité de modifier une ressource distante ;
- risque de faux positif ;
- précision des sources ;
- sortie brute conservable ;
- reproductibilité ;
- commande de version ;
- licence et redistribution ;
- installation Ubuntu ;
- dépendances ;
- coût ou API obligatoire ;
- activité du projet ;
- vulnérabilités connues ;
- télémétrie ;
- scripts d’installation distants.
Aucun curl | sh, wget | bash, sudo pip install ou sudo npm install -g ne doit être exécuté sans audit.
Modèle de sécurité d’intégration
arguments séparés
aucun shell
utilisateur non privilégié
dossier temporaire
environnement minimal
timeout
limites stdout/stderr
annulation
journal
empreinte du binaire
version
domaines contactés
sortie brute UTC
SHA-256
Valeur probatoire
Labfy doit distinguer :
résultat de l’outil
source publique
copie locale
interprétation
corrélation
hypothèse
Chaque exécution doit conserver :
outil
version
commande
arguments
date UTC
source
URL
sortie brute
capture
archive
SHA-256
statut HTTP
notes
niveau de confiance
Un résultat Sherlock, Maigret, Holehe ou PhoneInfoga ne prouve jamais une identité à lui seul.
Phases
Phase 1
Créer le JSON, le CSV et le schéma.
Phase 2
Auditer toute la liste P0.
Phase 3
Auditer la liste P1.
Phase 4
Attribuer note, priorité, mode d’intégration, statut juridique et décision.
Phase 5
Produire le rapport des outils retenus, manuels, surveillés et rejetés.
Phase 6
Validation humaine avant tout passage à INTEGRATE.
Contrôles automatisés futurs
- identifiants uniques ;
- noms non vides ;
- dépôt renseigné ;
- licence vérifiée pour tout outil approuvé ;
- décision renseignée ;
- aucune priorité P0 pour un outil rejeté ;
- aucun outil actif marqué passif ;
- JSON valide ;
- CSV généré depuis le JSON ;
- aucune clé API ;
- aucun secret ;
- aucune donnée issue d’une enquête réelle.
Critères d’acceptation
- au moins 80 outils ou composants recensés ;
- toutes les catégories couvertes ;
- tous les P0 audités ;
- licences P0 vérifiées ;
- installation Ubuntu P0 documentée ;
- qualification juridique P0 ;
- commande de version P0 ;
- séparation claire passif/actif/intrusif ;
- aucun outil rejeté proposé à l’utilisateur ;
- inventaire Markdown, JSON et CSV ;
- décisions justifiées ;
- feuille de route d’intégration ;
- document présentable à des enquêteurs.
Suite prévue
#041 — Initialisation asynchrone des dépendances
#042 — Adaptateurs pseudonymes
#043 — Adaptateurs e-mail
#044 — Adaptateurs téléphone
#045 — Documents et métadonnées
#046 — Archivage probatoire du Web
#047 — Domaines et infrastructures passives
#048 — Graphe de corrélation