
Beagle एक घटना प्रतिक्रिया और डिजिटल फोरेंसिक उपकरण है जो सुरक्षा लॉग और डेटा को ग्राफ़ में बदलता है।
बीगल एक घटना प्रतिक्रिया और डिजिटल फोरेंसिक उपकरण है जो डेटा स्रोतों और लॉग को ग्राफ़ में रूपांतरित करता है। समर्थित डेटा स्रोतों में FireEye HX Triages, Windows EVTX फ़ाइलें, SysMon लॉग और रॉ Windows मेमोरी इमेज शामिल हैं। परिणामी ग्राफ़ को Neo4J या DGraph जैसे ग्राफ़ डेटाबेस पर भेजा जा सकता है, या उन्हें स्थानीय रूप से Python NetworkX ऑब्जेक्ट के रूप में रखा जा सकता है।
बीगल को सीधे पायथन लाइब्रेरी के रूप में या प्रदान किए गए वेब इंटरफ़ेस के माध्यम से उपयोग किया जा सकता है।
लाइब्रेरी का उपयोग एकल डेटासोर्स से फ़ंक्शनल कॉल के अनुक्रम के रूप में किया जा सकता है।
>>> 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 pull yampelo/beagle
mkdir -p data/beagle
docker run -v "$PWD/data/beagle":"/data/beagle" -p 8000:8000 yampelo/beagle
यह लाइब्रेरी के रूप में भी उपलब्ध है। पूर्ण API दस्तावेज़ीकरण https://beagle-graphs.readthedocs.io पर उपलब्ध है।
pip install pybeagle
नोट: वर्तमान में केवल Python 3.6+ समर्थित है।
Rekall स्वचालित रूप से स्थापित नहीं है। Rekall स्थापित करने के लिए निम्नलिखित कमांड चलाएँ:
pip install pybeagle[rekall]
कॉन्फ़िगरेशन फ़ाइल में किसी भी प्रविष्टि को पर्यावरण चर का उपयोग करके संशोधित किया जा सकता है जो निम्नलिखित प्रारूप का पालन करते हैं: BEAGLE__{SECTION}__{KEY}। उदाहरण के लिए, डॉकर इमेज का उपयोग करते समय VirusTotal API Key बदलने के लिए, आप -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$
बीगल की डॉकर इमेज एक वेब इंटरफ़ेस के साथ आती है जो डेटा को ग्राफ़ में बदलने और उनका उपयोग करके डेटा की जांच करने की प्रक्रिया को लपेटता है।
अपलोड फ़ॉर्म ग्राफ़ निर्माण प्रक्रिया को लपेटता है, और स्वचालित रूप से NetworkX को बैकएंड के रूप में उपयोग करता है। डेटा स्रोत द्वारा आवश्यक पैरामीटर के आधार पर, फ़ॉर्म या तो फ़ाइल अपलोड के लिए संकेत देगा, या टेक्स्ट इनपुट के लिए। उदाहरण के लिए:
बनाया गया कोई भी ग्राफ़ कॉन्फ़िगरेशन में storage अनुभाग के dir कुंजी के अंतर्गत परिभाषित फ़ोल्डर में स्थानीय रूप से संग्रहीत किया जाता है। इसे BEAGLE__STORAGE__DIR पर्यावरण चर सेट करके संशोधित किया जा सकता है।
वैकल्पिक रूप से, किसी भी ग्राफ़ में बेहतर वर्णन में मदद के लिए एक टिप्पणी जोड़ी जा सकती है।
प्रत्येक डेटा स्रोत स्वचालित रूप से प्रदान किए गए पैरामीटर से मेटाडेटा निकालेगा। मेटाडेटा और टिप्पणी बाद में डेटासोर्स के मौजूदा ग्राफ़ देखते समय दिखाई देती हैं।
साइडबार पर डेटासोर्स पर क्लिक करने से उस डेटासोर्स के लिए सभी पार्स किए गए ग्राफ़ की एक तालिका प्रस्तुत होती है।
बीगल में ग्राफ़ देखना एक वेब इंटरफ़ेस प्रदान करता है जो विश्लेषकों को किसी घटना के आसपास तुरंत घूमने की अनुमति देता है।
इंटरफ़ेस दो मुख्य भागों में विभाजित है, बायां भाग जिसमें ग्राफ़ के विभिन्न दृष्टिकोण (ग्राफ़, ट्री, टेबल, आदि) होते हैं, और दायां भाग जो आपको प्रकार के अनुसार नोड और एज को फ़िल्टर करने, नोड खोजने और नोड के गुणों का विस्तार करने की अनुमति देता है। यह आपको ग्राफ़ पर किए गए ऑपरेशन को पूर्ववत और पुनर्क्रिया करने की भी अनुमति देता है।
ग्राफ़ में कोई भी तत्व जिसके ऊपर एक विभाजक है, संक्षिप्त किया जा सकता है: