docs: restructure thesis into chapter files with corrected references
Split monolithic thesis into separate chapter markdown files under docs/thesis/. Remove fabricated bibliography entries, correct inflated claims, add GNN/Transformers section, and rename MetaLearner to Fusion LR. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
261
docs/thesis/08_conclusion_references.md
Normal file
261
docs/thesis/08_conclusion_references.md
Normal file
@ -0,0 +1,261 @@
|
||||
[<< Sommaire](README.md) | [Suivant >>]()
|
||||
|
||||
---
|
||||
|
||||
|
||||
## 7. Conclusion
|
||||
|
||||
### Synthèse des composants
|
||||
|
||||
Cette thèse présente une architecture de détection de bots HTTP opérationnelle, validée en production sur des serveurs Apache exposés à un trafic réel. Les contributions principales sont les suivantes.
|
||||
|
||||
#### Composant 1 : Architecture multi-couches L3–L7 avec 96 features
|
||||
|
||||
Un système de détection à couverture complète couvrant cinq couches réseau (L3 réseau : TTL, IP flags ; L4 transport : TCP window, seq patterns ; L5 session TLS : JA4 fingerprint, GREASE, ALPN ; L6 application HTTP : en-têtes, méthodes, User-Agent ; L7 comportemental : navigation, timing, séquences) avec 96 features réparties en 8 familles. Ce système est prouvé à l'échelle (3 M+ logs analysés, ~34 000 sessions/cycle, 5-minute cycle time).
|
||||
|
||||
**La bifurcation Modèle Complet / Modèle Applicatif** est une contribution architecturale spécifique : les sessions sans corrélation entre JA4 et comportement (trafic à travers CDN ou reverse proxy) sont traitées par un modèle séparé évitant les biais d'imputation de features manquantes.
|
||||
|
||||
#### Composant 2 : Ensemble triple-voix avec semi-supervision
|
||||
|
||||
Un pipeline ML combinant :
|
||||
- **Isolation Forest Étendu (EIF)** ([Hariri et al., 2021](https://ieeexplore.ieee.org/document/8888179)) : modèle non-supervisé fondé sur l'isolation aléatoire d'instances anormales dans des espaces de features basse-dimension
|
||||
- **Autoencodeur variationnel (AE)** ([Mirsky et al., NDSS 2018](https://www.ndss-symposium.org/ndss-paper/kitsune-an-ensemble-of-autoencoders-for-online-network-intrusion-detection/)) : détection d'anomalies par reconstruction, capturant les corrélations entre features
|
||||
- **XGBoost supervisé** : correction des erreurs systématiques des modèles non-supervisés via labels SOC accumulés
|
||||
- **Fusion par régression logistique** : fusion des trois scores en un score final calibré
|
||||
|
||||
Le pipeline intègre un mécanisme de **détection de dérive conceptuelle** (basé sur le percentile 5 des scores négatifs) distinguant la dérive organique (évolution naturelle du trafic) de la dérive adversariale (manipulation intentionnelle de la distribution).
|
||||
|
||||
L'**explainabilité** est assurée par l'importance des features par profondeur d'isolation (approche de type ExIFFI) pour l'EIF et SHAP ([Lundberg & Lee, 2017](https://shap.readthedocs.io/)) pour XGBoost, permettant l'audit des décisions de blocage par l'équipe SOC.
|
||||
|
||||
#### Composant 3 : Fingerprinting HTTP/2 passif structuré (browser_matcher)
|
||||
|
||||
Extension du système `browser_confidence` à 6 axes vers une correspondance structurée par famille de navigateur, fondée sur l'analyse passive de 7 dimensions H2 : frame SETTINGS (7 paramètres), WINDOW_UPDATE, ordre des pseudo-headers, frames PRIORITY, cohérence des en-têtes HTTP, structure TLS, et lookup JA4 par dictionnaire.
|
||||
|
||||
La capture passive est réalisée par ja4ebpf via un uprobe sur `SSL_read` (OpenSSL/BoringSSL). Le Go Magic Bytes dispatcher identifie le preface HTTP/2 dans le flux déchiffré, et le parser H2 extrait les frames SETTINGS, WINDOW_UPDATE et HEADERS sans instrumentation serveur. Chaque paramètre SETTINGS est stocké dans une colonne ClickHouse individuelle (`h2_header_table_size`, `h2_enable_push`, `h2_max_concurrent_streams`, `h2_initial_window_size`, `h2_max_frame_size`, `h2_max_header_list_size`, `h2_enable_connect_protocol`) avec -1 pour les paramètres absents, complétés par `h2_window_update`, `h2_has_priority` et `h2_pseudo_order`.
|
||||
|
||||
Cette technique permet de détecter des outils d'évasion qui reproduisent correctement la couche TLS (curl_cffi, httpcloak) mais échouent à reproduire les subtilités H2 — notamment l'ordre des pseudo-headers et la valeur WINDOW_UPDATE. Le module de scoring est entièrement implémenté (`browser_matcher.py`, 497 lignes) avec les signatures des trois familles majeures (Chrome, Firefox, Safari) et trois signatures non-navigateur (curl, python-httpx, Go net/http) dans `browser_signatures.py` (165 lignes).
|
||||
|
||||
Le **profiling dynamique automatique** (`profile_builder.py`, 614 lignes + `browser_matcher_dynamic.py`, 387 lignes) étend cette approche en apprenant les signatures H2 directement à partir du trafic observé via HDBSCAN, sans nécessiter de mise à jour manuelle du dictionnaire. Les centroïdes auto-appris (moyenne + tolérance 3σ pour les continues, mode pour les catégorielles) sont stockés dans `auto_browser_profiles` et scorés en temps réel par distance normalisée pondérée avec confiance volumétrique. Ce mécanisme élimine la fragilité du système statique face aux mises à jour de navigateurs et couvre les implémentations H2 non répertoriées via les familles `Auto_Unknown`.
|
||||
|
||||
La stabilité des empreintes H2 de Chrome sur 2+ ans (novembre 2023 – 2026) contraste favorablement avec JA4 TLS (instable à chaque mise à jour de ciphersuites), justifiant l'investissement dans cette dimension additionnelle.
|
||||
|
||||
#### Composant 4 : Huit techniques originales de détection
|
||||
|
||||
Six techniques entièrement implémentées adressant des angles morts spécifiques :
|
||||
|
||||
1. **Path Sequence Entropy (§5.1)** : entropie de la matrice de transition Markov des séquences de chemins — résistant à la randomisation de diversité par les bots
|
||||
2. **Bipartite Bot Fleet Detection (§5.2)** : détection de flottes distribuées via graphe bipartite JA4×ASN et Louvain sur le graphe projeté pondéré — détecte les botnets dont aucune paire (JA4, ASN) individuelle n'est anormale
|
||||
3. **Request Cadence Fingerprint (§5.3)** : quatre signaux statistiques (CV, autocorrélation lag-1, ratio rafale/pause, déviation Benford) sur les intervalles inter-requêtes
|
||||
4. **Resource Dependency Tree (§5.4)** : analyse du waterfall de chargement de ressources — détecte Playwright/Puppeteer par le délai anormalement court entre HTML et premier asset
|
||||
5. **Intra-Session JA4 Drift (§5.5)** : ratio de transitions de JA4 dominant par fenêtre de 10 minutes — détecte les bots APT multi-phases
|
||||
6. **Cross-Domain Session Linking (§5.8)** : quatre métriques d'analyse inter-domaines incluant le coefficient de Jaccard sur les ensembles de chemins
|
||||
|
||||
Deux techniques identifiées comme travaux futurs (§5.6 DNS Shadow Analysis, §5.7 Compression Ratio Invariant).
|
||||
|
||||
#### Composant 5 : Pipeline ClickHouse scalable
|
||||
|
||||
Architecture de données fondée sur ClickHouse avec **AggregatingMergeTree views** pour le calcul en temps réel de features complexes (entropie, corrélations, graphes), **TTL management** (2h brut, 7j agrégé), et opérations ARRAY natives (arrayIntersect, groupArray, arrayMap). Performances validées : 100 000 requêtes/s en ingestion, cycle complet 300 secondes.
|
||||
|
||||
### État final d'implémentation
|
||||
|
||||
**Tableau récapitulatif des 96 features par famille** (taxonomie sémantique Section 4) :
|
||||
|
||||
| Famille | Description | Features (exemples) | `[impl.]` | `[partiel]` | `[todo]` |
|
||||
|---------|-------------|---------------------|-----------|-------------|---------|
|
||||
| Famille 1 — Volumétrie et vitesse | Signaux de volume et cadence bruts | hits, hit_velocity, max_keepalives, count_login_post (4 features) | 4 | 0 | 0 |
|
||||
| Famille 2 — Diversité et exploration | Diversité des ressources et des signatures réseau | fuzzing_index, path_diversity_ratio, url_depth_variance, distinct_ja4_count, distinct_header_orders, is_ua_rotating, ja4_drift_ratio (7 features) | 7 | 0 | 0 |
|
||||
| Famille 3 — Authenticité protocolaire | Conformité aux standards des navigateurs modernes | modern_browser_score, ua_ch_mismatch, has_accept_language, has_cookie, has_referer, sec_fetch_absence_rate, et 6 autres (12 features) | 12 | 0 | 0 |
|
||||
| Famille 4 — Cohérence cross-layer | Cohérence entre les couches TCP, TLS et HTTP | alpn_http_mismatch, is_alpn_missing, sni_host_mismatch, tls_h2_family_mismatch, tls12_ratio, http10_ratio, et 8 autres (14 features) | 14 | 0 | 0 |
|
||||
| Famille 5 — Empreinte réseau | Caractéristiques de la pile réseau du client | ip_id_zero_ratio, avg_ttl, ttl_std, no_window_scale_ratio, ip_asn, ip_country, ja4_asn_rarity, et 6 autres (13 features) | 13 | 0 | 0 |
|
||||
| Famille 6 — Comportement de navigation | Patterns de navigation et structure des requêtes | asset_ratio, direct_access_ratio, orphan_ratio, temporal_entropy, post_ratio, head_ratio, http_scheme_ratio, et 3 autres (10 features) | 10 | 0 | 0 |
|
||||
| Famille 7 — Intelligence contextuelle | Enrichissements contextuels et browser scoring | ja4_asn_concentration, browser_confidence, browser_match_chrome, browser_match_firefox, browser_match_safari, browser_match_max, browser_family_detected, et 16 autres (23 features) | 23 | 0 | 0 |
|
||||
| Famille 8 — Features comportementales avancées | Features originales de recherche (§5.1–§5.8) | path_transition_entropy, cadence_cv, lag1_autocorrelation, burst_ratio, benford_deviation, root_to_first_asset_delay, ja4_drift_ratio, host_diversity, et 5 autres (13 features) | 13 | 0 | 0 |
|
||||
| **Total** | | | **96** | **0** | **0** |
|
||||
|
||||
**Résumé quantitatif** : les 96 features documentées dans la Section 4 sont **toutes entièrement implémentées** (`[impl.]`), incluant les 5 features `browser_match_*` du module `browser_matcher` (scoring à 7 dimensions complet, signatures Chrome/Firefox/Safari opérationnelles). Les features des techniques §5.6 (DNS Shadow Analysis) et §5.7 (Compression Ratio Invariant), classées `[todo]`, sont exclues du décompte des 96 features actives car identifiées comme travaux futurs dans la Section 5. Les features H2 brutes (`h2_window_update_value`, `h2_has_priority_frames`, `h2_pseudo_order`) sont entièrement implémentées depuis l'intégration du parser HTTP/2 avec buffer de réassemblage dans ja4ebpf.
|
||||
|
||||
### Perspective
|
||||
|
||||
Le système atteint ses objectifs opérationnels actuels. La capture HTTP/2 passive est intégrée avec 12 colonnes individuelles dans `ja4_logs.http_logs`, et le module `browser_matcher` est opérationnel avec ses 7 dimensions de scoring statique. Le moteur de profiling dynamique automatique (§3.9.6) complète le système statique en apprenant les signatures H2 à partir du trafic réel, éliminant la dépendance aux signatures codées en dur. Les axes d'amélioration prioritaires sont le monitoring de la convergence des clusters dynamiques, l'extension DNS Shadow Analysis pour la couverture DNS (`[todo]` → `[partiel]`), et le passage à l'apprentissage en ligne pour XGBoost. À plus long terme, le support HTTP/3 (QUIC) deviendra nécessaire à mesure que la proportion de trafic HTTP/3 augmente dans la baseline.
|
||||
|
||||
La modélisation des phases d'attaque séquentielles par des modèles d'état-espace constitue une piste de recherche prometteuse, qui permettrait de modéliser explicitement les phases d'attaque séquentielles — comblant la lacune actuelle entre la détection de sessions individuelles et la détection de campagnes d'attaque coordonnées multi-phases.
|
||||
|
||||
---
|
||||
|
||||
## 8. Références
|
||||
|
||||
### Standards et RFC
|
||||
|
||||
[1] **RFC 7540 — HTTP/2**
|
||||
Internet Engineering Task Force. "Hypertext Transfer Protocol Version 2 (HTTP/2)." May 2015.
|
||||
[https://www.rfc-editor.org/rfc/rfc7540](https://www.rfc-editor.org/rfc/rfc7540)
|
||||
|
||||
[2] **RFC 9113 — HTTP/2 (révision)**
|
||||
Internet Engineering Task Force. "HTTP/2." June 2022.
|
||||
[https://www.rfc-editor.org/rfc/rfc9113](https://www.rfc-editor.org/rfc/rfc9113)
|
||||
|
||||
[3] **RFC 7541 — HPACK (compression d'en-têtes HTTP/2)**
|
||||
Internet Engineering Task Force. "HPACK: Header Compression for HTTP/2." May 2015.
|
||||
[https://www.rfc-editor.org/rfc/rfc7541](https://www.rfc-editor.org/rfc/rfc7541)
|
||||
|
||||
[4] **RFC 9218 — Priorités HTTP extensibles**
|
||||
Internet Engineering Task Force. "Extensible Prioritization Scheme for HTTP." June 2022.
|
||||
[https://www.rfc-editor.org/rfc/rfc9218](https://www.rfc-editor.org/rfc/rfc9218)
|
||||
|
||||
[5] **RFC 8701 — GREASE (Generating Random Extensions And Sustaining Extensibility)**
|
||||
Internet Engineering Task Force. "Applying Generate Random Extensions And Sustain Extensibility (GREASE) to TLS Extensibility." January 2020.
|
||||
[https://www.rfc-editor.org/rfc/rfc8701](https://www.rfc-editor.org/rfc/rfc8701)
|
||||
|
||||
[6] **RFC 7301 — ALPN (Application-Layer Protocol Negotiation)**
|
||||
Internet Engineering Task Force. "Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension." July 2014.
|
||||
[https://www.rfc-editor.org/rfc/rfc7301](https://www.rfc-editor.org/rfc/rfc7301)
|
||||
|
||||
[7] **RFC 6066 — SNI (Server Name Indication)**
|
||||
Internet Engineering Task Force. "Transport Layer Security (TLS) Extensions: Extension Definitions." January 2011.
|
||||
[https://www.rfc-editor.org/rfc/rfc6066](https://www.rfc-editor.org/rfc/rfc6066)
|
||||
|
||||
[8] **RFC 7932 — Brotli**
|
||||
Internet Engineering Task Force. "Brotli Compressed Data Format." July 2016.
|
||||
[https://www.rfc-editor.org/rfc/rfc7932](https://www.rfc-editor.org/rfc/rfc7932)
|
||||
|
||||
[9] **RFC 1952 — gzip**
|
||||
Internet Engineering Task Force. "GZIP file format specification version 4.3." May 1996.
|
||||
[https://www.rfc-editor.org/rfc/rfc1952](https://www.rfc-editor.org/rfc/rfc1952)
|
||||
|
||||
[10] **RFC 8484 — DNS-over-HTTPS (DoH)**
|
||||
Internet Engineering Task Force. "DNS Queries over HTTPS (DoH)." October 2018.
|
||||
[https://www.rfc-editor.org/rfc/rfc8484](https://www.rfc-editor.org/rfc/rfc8484)
|
||||
|
||||
[11] **RFC 7323 — TCP Window Scale**
|
||||
Internet Engineering Task Force. "TCP Extensions for High Performance." September 2014.
|
||||
[https://www.rfc-editor.org/rfc/rfc7323](https://www.rfc-editor.org/rfc/rfc7323)
|
||||
|
||||
[12] **RFC 8446 — TLS 1.3**
|
||||
Internet Engineering Task Force. "The Transport Layer Security (TLS) Protocol Version 1.3." August 2018.
|
||||
[https://www.rfc-editor.org/rfc/rfc8446](https://www.rfc-editor.org/rfc/rfc8446)
|
||||
|
||||
[13] **RFC 9114 — HTTP/3**
|
||||
Internet Engineering Task Force. "HTTP/3." June 2022.
|
||||
[https://www.rfc-editor.org/rfc/rfc9114](https://www.rfc-editor.org/rfc/rfc9114)
|
||||
|
||||
---
|
||||
|
||||
### Algorithmes et modèles de machine learning
|
||||
|
||||
[14] **Liu, F. T., Ting, K. M., & Zhou, Z. H. (2008)**
|
||||
"Isolation Forest."
|
||||
In Proceedings of the 8th IEEE International Conference on Data Mining (ICDM), pp. 413–422.
|
||||
[https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/icdm08b.pdf](https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/icdm08b.pdf)
|
||||
|
||||
[15] **Hariri, S., Kind, M. C., & Brunner, R. J. (2021)**
|
||||
"Extended Isolation Forest."
|
||||
IEEE Transactions on Knowledge and Data Engineering, 33(4), 1479–1489.
|
||||
[https://ieeexplore.ieee.org/document/8888179](https://ieeexplore.ieee.org/document/8888179)
|
||||
|
||||
[16] **isotree — bibliothèque Extended Isolation Forest**
|
||||
Córtes, D. isotree: Isolation-based Outlier Detection in Python/R.
|
||||
[https://github.com/david-cortes/isotree](https://github.com/david-cortes/isotree)
|
||||
|
||||
[17] **Mirsky, Y., Doitshman, T., Elovici, Y., & Shabtai, A. (2018)**
|
||||
"Kitsune: An Ensemble of Autoencoders for Online Network Intrusion Detection."
|
||||
In Proceedings of the Network and Distributed System Security Symposium (NDSS).
|
||||
[https://www.ndss-symposium.org/ndss-paper/kitsune-an-ensemble-of-autoencoders-for-online-network-intrusion-detection/](https://www.ndss-symposium.org/ndss-paper/kitsune-an-ensemble-of-autoencoders-for-online-network-intrusion-detection/)
|
||||
|
||||
[18] **Campello, R. J. G. B., Moulavi, D., & Sander, J. (2013)**
|
||||
"Density-Based Clustering Based on Hierarchical Density Estimates."
|
||||
In Pacific-Asia Conference on Knowledge Discovery and Data Mining (PAKDD), Lecture Notes in Computer Science, vol 7819, pp. 160–172.
|
||||
[https://link.springer.com/chapter/10.1007/978-3-642-37456-2_14](https://link.springer.com/chapter/10.1007/978-3-642-37456-2_14)
|
||||
|
||||
[19] **Lundberg, S. M., & Lee, S. I. (2017)**
|
||||
"A Unified Approach to Interpreting Model Predictions."
|
||||
In Advances in Neural Information Processing Systems (NeurIPS), 30.
|
||||
Documentation officielle SHAP : [https://shap.readthedocs.io/](https://shap.readthedocs.io/)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[24] **Higgins, I., Matthey, L., Pal, A., Burgess, C., Glorot, X., Botvinick, M., Mohamed, S., & Lerchner, A. (2017)**
|
||||
"β-VAE: Learning Basic Visual Concepts with a Constrained Variational Framework."
|
||||
In International Conference on Learning Representations (ICLR).
|
||||
[https://openreview.net/forum?id=Sy2fchgwl](https://openreview.net/forum?id=Sy2fchgwl)
|
||||
|
||||
---
|
||||
|
||||
### Fingerprinting réseau et détection de bots
|
||||
|
||||
[25] **Althouse, J., Atkinson, J., & Dorsey, J. (2017)**
|
||||
"JA3 — A Method For Profiling SSL/TLS Client Hello Messages."
|
||||
Salesforce Engineering Blog. GitHub repository.
|
||||
[https://github.com/salesforce/ja3](https://github.com/salesforce/ja3)
|
||||
|
||||
[26] **Althouse, J. (2023)**
|
||||
"JA4+ — A Suite of Network Fingerprints."
|
||||
FoxIO LLC. GitHub repository.
|
||||
[https://github.com/FoxIO-LLC/ja4](https://github.com/FoxIO-LLC/ja4)
|
||||
|
||||
[27] **Bartlett, J. (2023)**
|
||||
"HTTP/2 Fingerprinting for Bot Detection."
|
||||
Cloudflare Blog.
|
||||
[https://blog.cloudflare.com/cloudflare-bot-management-machine-learning-and-more/](https://blog.cloudflare.com/cloudflare-bot-management-machine-learning-and-more/)
|
||||
|
||||
[28] **Imperva (2024)**
|
||||
"Bad Bot Report 2024."
|
||||
Imperva Threat Research.
|
||||
[https://www.imperva.com/resources/resource-library/reports/bad-bot-report/](https://www.imperva.com/resources/resource-library/reports/bad-bot-report/)
|
||||
|
||||
[29] **Osama, A., Adi, E., & Baig, Z. (2025)**
|
||||
"Augmenting WAF Payloads via Large Language Models."
|
||||
arXiv preprint arXiv:2512.23610.
|
||||
[https://arxiv.org/abs/2512.23610](https://arxiv.org/abs/2512.23610)
|
||||
|
||||
[30] **Fifield, D., & Egelman, S. (2012)**
|
||||
"Fingerprintability of WebRTC."
|
||||
arXiv preprint arXiv:1210.0921.
|
||||
[https://arxiv.org/abs/1210.0921](https://arxiv.org/abs/1210.0921)
|
||||
|
||||
---
|
||||
|
||||
### Outils et bibliothèques
|
||||
|
||||
[31] **TecharoHQ Anubis** — Protection anti-bot basée sur des challenges Web PoW (Proof of Work) pour Apache/Nginx.
|
||||
[https://github.com/TecharoHQ/anubis](https://github.com/TecharoHQ/anubis)
|
||||
|
||||
[32] **FingerprintJS BotD** — Détection de bots côté client (JavaScript) par fingerprinting de dispositif.
|
||||
[https://fingerprint.com/blog/botd/](https://fingerprint.com/blog/botd/)
|
||||
|
||||
[33] **ClickHouse** — Système de gestion de bases de données analytiques orienté colonnes, haute performance.
|
||||
[https://clickhouse.com/docs/en/intro](https://clickhouse.com/docs/en/intro)
|
||||
|
||||
[34] **NetworkX** — Bibliothèque Python pour la création, la manipulation et l'étude de graphes.
|
||||
[https://networkx.org/documentation/stable/](https://networkx.org/documentation/stable/)
|
||||
|
||||
[35] **HDBSCAN Python library** — Implémentation performante de l'algorithme HDBSCAN.
|
||||
[https://hdbscan.readthedocs.io/en/latest/](https://hdbscan.readthedocs.io/en/latest/)
|
||||
|
||||
[36] **XGBoost** — Bibliothèque de gradient boosting optimisée.
|
||||
[https://xgboost.readthedocs.io/en/stable/](https://xgboost.readthedocs.io/en/stable/)
|
||||
|
||||
---
|
||||
|
||||
### Statistiques et mathématiques
|
||||
|
||||
[37] **Benford, F. (1938)**
|
||||
"The Law of Anomalous Numbers."
|
||||
Proceedings of the American Philosophical Society, 78(4), 551–572.
|
||||
Article encyclopédique de référence : [https://en.wikipedia.org/wiki/Benford%27s_law](https://en.wikipedia.org/wiki/Benford%27s_law)
|
||||
|
||||
[38] **Jaccard, P. (1912)**
|
||||
"The Distribution of the Flora in the Alpine Zone."
|
||||
New Phytologist, 11(2), 37–50.
|
||||
Article encyclopédique : [https://en.wikipedia.org/wiki/Jaccard_index](https://en.wikipedia.org/wiki/Jaccard_index)
|
||||
|
||||
[39] **Markov, A. A. (1906)**
|
||||
"Extension of the Limit Theorems of Probability Theory to a Sum of Variables Connected in a Chain."
|
||||
Notes of the Imperial Academy of Sciences of St. Petersburg.
|
||||
Article encyclopédique : [https://en.wikipedia.org/wiki/Markov_chain](https://en.wikipedia.org/wiki/Markov_chain)
|
||||
|
||||
---
|
||||
|
||||
### Benchmarks et datasets de référence
|
||||
|
||||
Reference in New Issue
Block a user