# Knowledge graph et analyses

> Comment le knowledge graph relie les hôtes, les services, les vulnérabilités et l’accès, ses deux backends et le tableau de bord attack chain qui en est dérivé.

L'enregistrement PostgreSQL indique *ce qu'une commande a affiché*. Le [knowledge graph](https://pentagi.com/fr/docs/glossary/#knowledge-graph) explique *comment deux [findings](https://pentagi.com/fr/docs/glossary/#finding) sont reliés* — quel hôte exécute quel service, quelle vulnérabilité a conduit à quel accès.

## [Deux backends](https://pentagi.com/fr/docs/enterprise/knowledge-graph/#two-backends)

|                                                             | graphstore                         | graphiti                            |
| ----------------------------------------------------------- | ---------------------------------- | ----------------------------------- |
| S’exécute comme                                             | dans le backend, graphe dans Neo4j | service séparé sur Neo4j            |
| Activé par                                                  | `GRAPHSTORE_INGEST_ENABLED`        | `GRAPHITI_ENABLED` + `GRAPHITI_URL` |
| [Agent](https://pentagi.com/fr/docs/glossary/#agent) [tool](https://pentagi.com/fr/docs/glossary/#tool) | `graphstore_search`                | `graphiti_search`                   |
| Statut                                                      | successeur de graphiti             | ancien, conservé pour comparaison   |

Les deux sont limités à un seul [flow](https://pentagi.com/fr/docs/glossary/#flow) : chaque lecture est filtrée par celui-ci, de sorte qu'un flow ne voit jamais le graphe d'un autre flow.

Les deux backends sont désactivés par défaut. Avec `GRAPHSTORE_INGEST_ENABLED=true`, le graphstore a besoin de `GRAPHSTORE_NEO4J_URI` et de `GRAPHSTORE_NEO4J_DATABASE`, et PentAGI ne démarre pas sans eux.

Avec Graphiti activé également, les deux backends stockent les actifs différemment, donc PentAGI refuse de démarrer lorsque les deux écrivent une base de données du même nom sur un seul serveur, ou sur n’importe quel serveur tant que `NEO4J_URI` de Graphiti n’est pas défini, sauf si `GRAPHSTORE_ALLOW_SHARED_NEO4J_DATABASE=true`. Le Neo4j fourni est la version Community et ne dessert que la base de données `neo4j` : avec les deux backends dessus, conservez `neo4j` et autorisez le partage, au prix d’une qualité réduite du graph, puisque les ports et les services sont stockés deux fois et que certaines écritures de Graphiti peuvent être rejetées. Pour garder les graphs séparés, attribuez au graphstore son propre serveur Neo4j, ou sa propre base de données sur Neo4j Enterprise : PentAGI crée cette base de données si elle est absente, à condition que le compte Neo4j du graphstore puisse créer des bases de données ; sinon, créez-la au préalable.

## [Tableau de bord de l'attack chain](https://pentagi.com/fr/docs/enterprise/knowledge-graph/#attack-chain-dashboard)

![Attack chain principale : hôtes, ports, services, vulnérabilités, accès confirmés et comptes](https://pentagi.com/images/product/attack-chain.webp)

Lorsque le knowledge graph est activé, l'onglet **Dashboard → Analytics** du flow affiche le graphe au fur et à mesure de son expansion :

* **Main Attack Chain** — hôtes, ports, services, vulnérabilités, accès confirmés et comptes.
* Vues **Action Chain**, **Infrastructure**, **Access Chain** et **Priv Esc Chain**.
* Une barre de défilement temporelle pour rejouer l'évolution de la situation, ainsi que des tableaux des ports ouverts, des CVE détectées et de l'état des identifiants.

![Vue de la chaîne d'accès](https://pentagi.com/images/product/access-chain.webp)

![Surface d'attaque et résumés des accès confirmés](https://pentagi.com/images/product/analytics-stats.webp)