본문으로 건너뛰기
PentAGI
Enterprise

Knowledge graph 및 분석

Knowledge graph가 호스트, 서비스, 취약점 및 접근을 어떻게 연결하는지, 두 가지 백엔드, 그리고 이를 기반으로 구축된 attack-chain 대시보드에 대해 설명합니다.

PostgreSQL 레코드는 명령어 출력 결과를 보여줍니다. Knowledge graph는 두 findings가 어떻게 연결되는지, 즉 어떤 호스트가 어떤 서비스를 실행 중인지, 어떤 취약점이 어떤 접근 권한 획득으로 이어졌는지를 보여줍니다.

두 가지 백엔드

graphstoregraphiti
실행 방식백엔드 내, Neo4j의 그래프Neo4j의 별도 서비스
활성화 방법GRAPHSTORE_INGEST_ENABLEDGRAPHITI_ENABLED + GRAPHITI_URL
Agent toolgraphstore_searchgraphiti_search
상태graphiti의 후속 버전레거시, 비교용으로 유지

두 백엔드 모두 단일 flow로 범위가 제한됩니다. 모든 조회 요청은 flow별로 필터링되므로, 한 flow에서 다른 flow의 그래프에 접근할 수 없습니다.

두 백엔드는 기본적으로 비활성화되어 있습니다. GRAPHSTORE_INGEST_ENABLED=true를 사용하면 그래프스토어는 GRAPHSTORE_NEO4J_URI와 GRAPHSTORE_NEO4J_DATABASE가 필요하며, PentAGI는 이들이 없으면 시작되지 않습니다.

Graphiti도 활성화된 경우 두 백엔드는 자산을 서로 다른 방식으로 저장하므로, 둘 다 하나의 서버에서 같은 이름의 데이터베이스에 기록하거나 Graphiti의 NEO4J_URI이 설정되지 않은 상태에서 어떤 서버에서든 기록할 때 PentAGI는 시작을 거부합니다. 단, GRAPHSTORE_ALLOW_SHARED_NEO4J_DATABASE=true인 경우는 예외입니다. 번들된 Neo4j는 Community Edition이며 neo4j 데이터베이스만 제공합니다. 이 Neo4j에 두 백엔드를 모두 사용할 경우 neo4j을 유지하고 공유를 허용해야 하지만, 포트와 서비스가 두 번 저장되고 일부 Graphiti 쓰기 작업이 거부될 수 있어 그래프 품질이 저하됩니다. 그래프를 분리하려면 graphstore 전용 Neo4j 서버를 사용하거나, Neo4j Enterprise에서 전용 데이터베이스를 할당하십시오. graphstore의 Neo4j 계정이 데이터베이스 생성 권한을 가진 경우 해당 데이터베이스가 없으면 PentAGI가 자동으로 생성합니다. 그렇지 않으면 사전에 데이터베이스를 생성하십시오.

Attack chain 대시보드

주요 attack chain: 호스트, 포트, 서비스, 취약점, 확인된 접근 권한 및 계정

Knowledge graph가 활성화되면 flow의 Dashboard → Analytics 탭에서 그래프가 확장되는 과정을 실시간으로 렌더링합니다.

  • Main Attack Chain — 호스트, 포트, 서비스, 취약점, 확인된 접근 권한 및 계정을 표시합니다.
  • Action Chain, Infrastructure, Access Chain 및 Priv Esc Chain 뷰를 제공합니다.
  • 타임라인 스크러버를 통해 그래프 변화 과정을 재생할 수 있으며, 열린 포트, 탐지된 CVE, 자격 증명 상태 표도 함께 제공됩니다.

Access chain 뷰

공격 표면 및 확인된 접근 권한 요약

최종 업데이트: