**Neo4j는 그래프 데이터베이스(Graph Database)**입니다.
보통의 DB (MySQL, PostgreSQL 등)는 **행(Row)/열(Column)**로 구성된 **표 형태의 관계형 데이터베이스(RDBMS)**입니다.
하지만 **Neo4j는 노드(Node)와 관계(Relationship)**로 구성된 그래프 구조를 저장하고 분석합니다.
이런 식의 연결 기반 데이터를 저장하고 쿼리하기에 최적화된 DB가 Neo4j입니다.
Active Directory(AD) 환경은 다음과 같은 관계가 많습니다:
이런 복잡한 권한 관계는 그래프 형태로 표현하면 매우 직관적이고 강력하게 분석할 수 있습니다.
BloodHound는 AD 내 권한 관계를 그래프로 표현하고, 그걸 Neo4j DB에 저장해서 시각화합니다.
bloodhound-python으로 AD 정보를 수집 → .json 결과물 생성[사용자A] --- 관리자권한 ---> [PC1]
\
멤버
\
[그룹B] --- DACL ---> [서버C]
이런 연결이 Neo4j에 의해 정점(노드)과 선(관계)으로 저장됩니다.
# 네오4j 설치
apt install neo4j
# 서비스 시작
systemctl start neo4j
# 웹 로그인
http://localhost:7474 (기본 neo4j/neo4j)
→ 처음 로그인하면 비밀번호 반드시 바꿔야 BloodHound GUI에서 접속됩니다.
| 항목 | 설명 |
|---|---|
| Neo4j | 그래프 DB, BloodHound가 내부적으로 사용 |
| 용도 | AD 권한 관계 분석에 최적 |
| 역할 | 수집한 JSON 데이터를 그래프로 저장 및 쿼리 |
| 접속 방법 | localhost:7474 웹 UI 통해 로그인 |