
위협 연구를 위한 그래프 도구 키트 - 그리고 다른 것들
이 프로젝트는 대부분 "vibecoded"(직관적 코딩) 방식으로 작성되었으므로 적절한 주의가 필요합니다. 코드는 실제 프로그래머가 검토했지만, 취약점에 대해 강화되지 않았습니다. 완전한 보안 검토 없이 외부에 노출하지 마십시오.
Quantickle은 네트워크 그래프를 구축하고 탐색하기 위한 대화형 브라우저 우선 툴킷입니다. 프론트엔드(Cytoscape.js + 사용자 정의 UI)는 렌더링, 편집 및 레이아웃 실행을 담당하고, 경량 Express 서버는 UI를 제공하고 통합 호출을 프록시하며 선택적으로 그래프를 Neo4j에 저장합니다. 즉, 브라우저가 그래프 상태와 시각화를 소유하고, 서버는 필요할 때 자산과 통합을 제공하는 역할을 합니다.
bezier), 직선, 번들(unbundled-bezier), 택시, 둥근 택시 옵션을 제공합니다.haystack 및 segments 곡선 스타일도 지원합니다.다음은 Quantickle이 할 수 있는 몇 가지 예시입니다:
Quantickle은 문서 집합을 연결하는 소수의 공유 개념을 기반으로 합니다:
좌표계 및 공간 레이아웃 — Quantickle의 절대 및 깊이 인식 레이아웃은 x, y, z 좌표에 대해 0–1000 큐브를 사용합니다. 전체 공간 규칙 및 조명 동작은 COORDINATE_SYSTEM.md를 참조하십시오.
그래프 파일 관리 및 프로젝트 파일 — .qut 파일은 표준 저장 상태이며, 노드, 엣지, 메타데이터 및 컨테이너 계층을 저장합니다.
Neo4j 통합 — 서버는 메타데이터 스냅샷을 포함하여 Neo4j에서 그래프를 저장하고 검색할 수 있습니다. 구성 및 워크플로우 세부 사항은 NEO4J_INTEGRATION_README.md를 참조하십시오.
Quantickle 그래프는 레이아웃, 스타일링 및 그룹화를 구동하는 메타데이터가 있는 노드와 엣지의 집합입니다.
id와 선택적 속성(예: label, type, size, color, 좌표)을 가진 정점입니다. 노드에는 마크다운 info 또는 통합에서 사용하는 사용자 정의 속성이 포함될 수 있습니다.source + target 노드 ID와 선택적 label, type, weight 및 스타일링 메타데이터가 있는 관계입니다.Quantickle의 내부 그래프 JSON은 nodes와 edges 배열이 있는 평면 구조입니다. 컨테이너 관계와 클래스는 노드 메타데이터로 보존됩니다.
Quantickle은 파일 → 데이터 가져오기 메뉴와 자동화된 통합을 통해 여러 가져오기 형식을 지원합니다. 각 가져오기 도구는 .qut 프로젝트 파일을 저장할 때 사용되는 동일한 그래프 파이프라인을 사용하므로 아래 구조는 내보내기 형식도 나타냅니다.
CSV 가져오기 도구는 두 가지 레이아웃을 인식합니다:
노드 + 엣지 섹션 – Quantickle에서 사용하는 내보내기 형식으로, 데이터를 수동으로 준비할 때 가장 안전한 옵션입니다. 파일에는 노드 테이블, 빈 행, 엣지 테이블 순서로 포함됩니다: ```csv node_id,node_label,node_type,node_size,node_color,node_x,node_y srv-1,Gateway,server,40,#2dd4bf,100,250 cli-1,Analyst,client,28,#38bdf8,320,210
source,target,label,weight,type srv-1,cli-1,allows,1,connection
추가 열은 허용됩니다. 임포터는 Node Label, nodeLabel 또는 label과 같은 헤더를 정규화하고, 명시적인 color/size 값을 보존하며, 좌표가 제공된 경우 이를 유지합니다.
source 및 target 열을 포함하는 최소한의 CSV입니다. label, type, weight, source_type, target_type, source_label 또는 color와 같은 선택적 열은 있는 경우 생성된 노드와 엣지에 병합됩니다: ```csv
source,target,label,source_type,target_type
srv-1,cli-1,allows,server,client
srv-1,sensor-2,monitors,server,sensor
Quantickle은 헤더를 대소문자 구분 없이 파싱하며, snake_case와 공백이 포함된 이름을 모두 허용하고, 빈 행을 자동으로 건너뜁니다.
.edges)일반적인 공백으로 구분된 엣지 쌍을 지원하여 빠른 스켈레톤 그래프를 만들 수 있습니다. 누락된 노드는 자동으로 생성됩니다.```text srv-1 cli-1 srv-1 sensor-2
> **참고:** Excel 통합 문서(`.xlsx`)는 더 이상 지원되지 않습니다. Quantickle에 가져오기 전에 데이터를 CSV로 내보내거나 저장하세요.
#### JSON
`File → Import Data`는 Quantickle에서 생성된 JSON 내보내기 또는 원시 Cytoscape 요소 컬렉션도 허용합니다. 파일에 중첩된 `data` 항목이 있는 `elements`가 포함된 경우, 이는 Quantickle의 내부 구조로 정규화됩니다.
#### Quantickle 그래프 (`.qut`)