# Knowledge graph e analisi

> Come il knowledge graph collega host, servizi, vulnerabilità e accessi, i suoi due backend e la dashboard dell'attack chain costruita su di esso.

Il record PostgreSQL risponde a *cosa ha stampato un comando*. Il [knowledge graph](https://pentagi.com/it/docs/glossary/#knowledge-graph) risponde a *come si collegano due [findings](https://pentagi.com/it/docs/glossary/#finding)* — quale host esegue quale servizio, quale vulnerabilità ha portato a quale accesso.

## [Due backend](https://pentagi.com/it/docs/enterprise/knowledge-graph/#two-backends)

|                                                             | graphstore                  | graphiti                            |
| ----------------------------------------------------------- | --------------------------- | ----------------------------------- |
| Eseguito come                                               | nel backend, grafo in Neo4j | servizio separato su Neo4j          |
| Abilitato da                                                | `GRAPHSTORE_INGEST_ENABLED` | `GRAPHITI_ENABLED` + `GRAPHITI_URL` |
| [Agent](https://pentagi.com/it/docs/glossary/#agent) [tool](https://pentagi.com/it/docs/glossary/#tool) | `graphstore_search`         | `graphiti_search`                   |
| Stato                                                       | successore di graphiti      | legacy, mantenuto per confronto     |

Entrambi hanno come ambito un singolo [flow](https://pentagi.com/it/docs/glossary/#flow): ogni lettura filtra per esso, quindi un flow non vede mai il grafo di un altro flow.

Entrambi i backend sono disattivati di default. Con `GRAPHSTORE_INGEST_ENABLED=true`, il graphstore ha bisogno di `GRAPHSTORE_NEO4J_URI` e `GRAPHSTORE_NEO4J_DATABASE`, e PentAGI non si avvia senza di essi.

Con Graphiti abilitato, i due backend memorizzano gli asset in modo diverso, quindi PentAGI si rifiuta di avviarsi quando entrambi scrivono un database con lo stesso nome su un server, o su qualsiasi server mentre `NEO4J_URI` di Graphiti non è impostato, a meno che `GRAPHSTORE_ALLOW_SHARED_NEO4J_DATABASE=true`. Il Neo4j incluso è la versione Community e serve solo il database `neo4j`: con entrambi i backend su di esso, mantieni `neo4j` e consenti la condivisione, a scapito della qualità del graph, poiché porte e servizi vengono memorizzati due volte e alcune scritture di Graphiti possono essere rifiutate. Per tenere separati i graph, assegna al graphstore un proprio server Neo4j, oppure un proprio database su Neo4j Enterprise: PentAGI crea quel database se mancante, purché l'account Neo4j del graphstore possa creare database; altrimenti crealo in anticipo.

## [Dashboard dell'attack chain](https://pentagi.com/it/docs/enterprise/knowledge-graph/#attack-chain-dashboard)

![Attack chain principale: host, porte, servizi, vulnerabilità, accessi confermati e account](https://pentagi.com/images/product/attack-chain.webp)

Con il knowledge graph abilitato, la scheda **Dashboard → Analytics** del flow visualizza il grafo man mano che cresce:

* **Main Attack Chain** — host, porte, servizi, vulnerabilità, accessi confermati e account.
* Viste **Action Chain**, **Infrastructure**, **Access Chain** e **Priv Esc Chain**.
* Una barra temporale per riprodurre l'evoluzione del quadro, oltre a tabelle delle porte aperte, CVE rilevati e stato delle credenziali.

![Vista della catena di accesso](https://pentagi.com/images/product/access-chain.webp)

![Superficie di attacco e riepiloghi degli accessi confermati](https://pentagi.com/images/product/analytics-stats.webp)