Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
beagle — 비글(Beagle)은 보안 로그와 데이터를 그래프로 변환하는 사고 대응 및 디지털 포렌식 도구입니다. | Kitploit
도구/GitHubGitHub/yampelo/beagle
ForensicsDigital ForensicsThreat IntelligenceIncident ResponseLog Analysis
GitHubyampelo/beagle

beagle

비글(Beagle)은 보안 로그와 데이터를 그래프로 변환하는 사고 대응 및 디지털 포렌식 도구입니다.

저장소 보기
1.4k151156년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Beagle

Build Status codecov Read The Docs Docker PyPI Slack

  1. Beagle 소개
  2. 설치
    1. Docker
    2. Python 패키지
    3. 설정
  3. 웹 인터페이스
    1. 데이터 업로드
    2. 기존 그래프 탐색
    3. 그래프 인터페이스
      1. 노드와 엣지 검사
      2. 이웃 확장
      3. 노드 숨기기
      4. Mutators 실행
      5. 노드 및 엣지 유형 전환
      6. 실행 취소/재실행 및 초기화
      7. 그래프 관점
  4. Python 라이브러리
    1. 엣지 생성 제어
    2. 저장된 JSON 로드
  5. 문서

Beagle 소개

Beagle은 데이터 소스와 로그를 그래프로 변환하는 침해 대응 및 디지털 포렌식 도구입니다. 지원되는 데이터 소스로는 FireEye HX Triage, Windows EVTX 파일, SysMon 로그 및 원시 Windows 메모리 이미지가 있습니다. 생성된 그래프는 Neo4J 또는 DGraph와 같은 그래프 데이터베이스로 전송하거나 로컬에서 Python NetworkX 객체로 유지할 수 있습니다.

Beagle은 Python 라이브러리로 직접 사용하거나 제공되는 웹 인터페이스를 통해 사용할 수 있습니다.

라이브러리는 단일 데이터 소스에서 일련의 함수 호출로 사용할 수 있습니다.

>>> from beagle.datasources import SysmonEVTX

>>> graph = SysmonEVTX("malicious.evtx").to_graph()
>>> graph
<networkx.classes.multidigraph.MultiDiGraph at 0x12700ee10>

여러 아티팩트 집합에서 생성된 그래프로도 사용할 수 있습니다.

>>> from beagle.datasources import SysmonEVTX, HXTriage, PCAP
>>> from beagle.backends import NetworkX

>>> nx = NetworkX.from_datasources(
    datasources=[
        SysmonEVTX("malicious.evtx"),
        HXTriage("alert.mans"),
        PCAP("traffic.pcap"),
    ]
)
>>> G = nx.graph()
<networkx.classes.multidigraph.MultiDiGraph at 0x12700ee10>

또는 데이터 소스에서 그래프까지의 각 중간 단계를 엄격하게 호출할 수도 있습니다.

>>> from beagle.backends import NetworkX
>>> from beagle.datasources import SysmonEVTX
>>> from beagle.transformers import SysmonTransformer

>>> datasource = SysmonEVTX("malicious.evtx")

# Transformers take a datasource, and transform each event
# into a tuple of one or more nodes.
>>> transformer = SysmonTransformer(datasource=datasource)
>>> nodes = transformer.run()

# Transformers output an array of nodes.
[
    (<SysMonProc> process_guid="{0ad3e319-0c16-59c8-0000-0010d47d0000}"),
    (<File> host="DESKTOP-2C3IQHO" full_path="C:\Windows\System32\services.exe"),
    ...
]

# Backends take the nodes, and transform them into graphs
>>> backend = NetworkX(nodes=nodes)
>>> G = backend.graph()
<networkx.classes.multidigraph.MultiDiGraph at 0x126b887f0>

그래프는 개별 프로세스의 활동을 중심으로 구성되며, 주로 분석가가 호스트 간이 아닌 호스트 내 활동을 조사하는 데 도움을 주기 위한 것입니다.

설치

Docker

Beagle은 Docker 파일로 제공됩니다.

docker pull yampelo/beagle
mkdir -p data/beagle
docker run -v "$PWD/data/beagle":"/data/beagle" -p 8000:8000 yampelo/beagle

Python 패키지

라이브러리로도 사용할 수 있습니다. 전체 API 문서는 https://beagle-graphs.readthedocs.io에서 확인할 수 있습니다.

pip install pybeagle

참고: 현재 Python 3.6+만 지원됩니다.

Rekall은 자동으로 설치되지 않습니다. Rekall을 설치하려면 다음 명령어를 대신 실행하세요.

pip install pybeagle[rekall]

설정

  • 각 설정 항목의 전체 개요

설정 파일의 모든 항목은 BEAGLE__{SECTION}__{KEY} 형식을 따르는 환경 변수를 사용하여 수정할 수 있습니다. 예를 들어, Docker 이미지를 사용할 때 VirusTotal API 키를 변경하려면 -e 매개변수를 사용하여 BEAGLE__VIRUSTOTAL__API_KEY 변수를 설정하면 됩니다.

docker run -v "data/beagle":"/data/beagle" -p 8000:8000 -e "BEAGLE__VIRUSTOTAL__API_KEY=$API_KEY" beagle

환경 변수와 디렉터리는 docker compose를 사용하여 쉽게 정의할 수 있습니다.

version: "3"

services:
    beagle:
        image: yampelo/beagle
        volumes:
            - /data/beagle:/data/beagle
        ports:
            - "8000:8000"
        environment:
            - BEAGLE__VIRUSTOTAL__API_KEY=$key$

웹 인터페이스

Beagle의 Docker 이미지에는 데이터를 그래프로 변환하는 과정과 이를 사용하여 데이터를 조사하는 과정을 모두 포함하는 웹 인터페이스가 함께 제공됩니다.

데이터 업로드

업로드 양식은 그래프 생성 과정을 감싸며 자동으로 NetworkX를 백엔드로 사용합니다. 데이터 소스에 필요한 매개변수에 따라 양식은 파일 업로드 또는 텍스트 입력을 요구합니다. 예를 들어:

  • VT API Sandbox Report는 그래프로 만들 해시를 입력하도록 요청합니다.
  • FireEye HX는 HX triage 파일을 요구합니다.

생성된 그래프는 설정의 storage 섹션에 있는 dir 키로 정의된 폴더에 로컬로 저장됩니다. 이는 BEAGLE__STORAGE__DIR 환경 변수를 설정하여 수정할 수 있습니다.

선택적으로 그래프에 설명을 추가하여 더 잘 식별할 수 있습니다.

각 데이터 소스는 제공된 매개변수에서 자동으로 메타데이터를 추출합니다. 메타데이터와 설명은 나중에 해당 데이터 소스의 기존 그래프를 볼 때 표시됩니다.

기존 그래프 탐색

사이드바에서 데이터 소스를 클릭하면 해당 데이터 소스에 대해 분석된 모든 그래프의 테이블이 표시됩니다.

그래프 인터페이스

Beagle에서 그래프를 보면 분석가가 사건을 신속하게 피벗할 수 있는 웹 인터페이스가 제공됩니다.

인터페이스는 두 부분으로 나뉩니다. 왼쪽에는 그래프의 다양한 관점(그래프, 트리, 테이블 등)이 있고, 오른쪽에는 유형별로 노드와 엣지를 필터링하고, 노드를 검색하며, 노드의 속성을 확장할 수 있습니다. 또한 그래프에 수행한 작업을 실행 취소 및 재실행할 수 있습니다.

그래프에서 위에 구분선이 있는 요소는 접을 수 있습니다.

노드와 엣지 검사

그래프의 노드는 특정 필드의 처음 15자를 표시합니다. 예를 들어 프로세스 노드의 경우 프로세스 이름이 표시됩니다.

엣지는 단순히 엣지 유형을 표시합니다.

노드 또는 엣지를 한 번 클릭하면 해당 요소가 선택되고 오른쪽 사이드바의 "노드 정보" 패널에 정보가 표시됩니다.

노드 포커스
엣지 포커스

이웃 확장

노드를 더블 클릭하면 인접 노드가 가져와집니다. 인접 노드는 클릭한 노드와 엣지로 연결된 모든 노드입니다. 가져올 이웃이 없으면 그래프에 변화가 없습니다.

  • 방향에 관계없이 적용됩니다. 즉, 노드를 더블 클릭하면 부모 프로세스나 자식 프로세스가 가져와질 수 있습니다.
  • Beagle은 한 번에 25개의 노드만 가져옵니다.

노드 숨기기

노드를 길게 한 번 클릭하면 해당 노드와 이에 의존하는 모든 엣지가 그래프에서 숨겨집니다.

Mutators 실행

노드를 마우스 오른쪽 버튼으로 클릭하면 그래프 mutators를 실행할 수 있는 컨텍스트 메뉴가 나타납니다. Mutators는 그래프 상태를 받아 새 상태를 반환하는 함수입니다.

매우 유용한 두 가지 mutators는 다음과 같습니다.

  1. 노드 역추적: 이 노드가 생성되기까지의 노드 및 엣지 시퀀스를 찾습니다.
    • 프로세스 노드를 역추적하면 프로세스 트리가 표시됩니다.
  2. 모든 하위 항목 확장: 현재 노드부터 이 노드를 조상으로 하는 모든 노드를 표시합니다.
    • 프로세스 노드를 확장하면 생성한 모든 자식 프로세스 노드, 접촉한 파일 및 이 노드로 인해 발생한 거의 모든 활동이 표시됩니다.
노드 역추적

노드 역추적은 매우 유용하며 로그 파일에서 근본 원인 감염을 수행하는 것과 유사합니다.

도구 다운로드