
بيغل هي أداة للاستجابة للحوادث والتحليل الرقمي الجنائي تقوم بتحويل سجلات الأمان والبيانات إلى رسوم بيانية.
بيغل هو أداة للاستجابة للحوادث والتحقيق الجنائي الرقمي تحول مصادر البيانات والسجلات إلى رسوم بيانية. تشمل مصادر البيانات المدعومة تقارير 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")
# تقوم المحولات بأخذ مصدر البيانات، وتحويل كل حدث
# إلى مجموعة من عقدة واحدة أو أكثر.
>>> transformer = SysmonTransformer(datasource=datasource)
>>> nodes = transformer.run()
# مخرجات المحول هي مصفوفة من العقد.
[
(<SysMonProc> process_guid="{0ad3e319-0c16-59c8-0000-0010d47d0000}"),
(<File> host="DESKTOP-2C3IQHO" full_path="C:\Windows\System32\services.exe"),
...
]
# تقوم الواجهات الخلفية بأخذ العقد، وتحويلها إلى رسوم بيانية
>>> 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
وهي متاحة أيضًا كمكتبة. توثيق واجهة برمجة التطبيقات الكامل متاح على https://beagle-graphs.readthedocs.io
pip install pybeagle
ملاحظة: يتم دعم Python 3.6+ فقط حاليًا.
Rekall لا يتم تثبيته تلقائيًا. لتثبيت Rekall، نفذ الأمر التالي بدلاً من ذلك:
pip install pybeagle[rekall]
يمكن تعديل أي إدخال في ملف الإعدادات باستخدام متغيرات بيئة تتبع التنسيق التالي: BEAGLE__{SECTION}__{KEY}. على سبيل المثال، لتغيير مفتاح API الخاص بـ VirusTotal المستخدم عند استخدام صورة دوكر، يمكنك استخدام معامل -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 كواجهة خلفية. بناءً على المعاملات المطلوبة من قبل مصدر البيانات، سيطلب النموذج إما تحميل ملف أو إدخال نصي. على سبيل المثال:
يتم تخزين أي رسم بياني يتم إنشاؤه محليًا في المجلد المحدد تحت مفتاح dir من قسم storage في الإعدادات. يمكن تعديل ذلك بتعيين متغير البيئة BEAGLE__STORAGE__DIR.
اختياريًا، يمكن إضافة تعليق لأي رسم بياني للمساعدة في وصفه بشكل أفضل.
سيقوم كل مصدر بيانات تلقائيًا باستخراج البيانات الوصفية من المعامل المقدم. تكون البيانات الوصفية والتعليق مرئية لاحقًا عند عرض الرسوم البيانية الحالية لمصدر البيانات.
النقر على مصدر بيانات في الشريط الجانبي يعرض جدولًا بجميع الرسوم البيانية المحللة لمصدر البيانات ذلك.
عرض رسم بياني في بيغل يوفر واجهة ويب تسمح للمحللين بالتنقل بسرعة حول حادثة ما.
تنقسم الواجهة إلى جزئين رئيسيين، الجزء الأيسر الذي يحتوي على مناظير مختلفة للرسم البياني (رسم بياني، شجرة، جدول، إلخ)، والجزء الأيمن الذي يسمح لك بتصفية العقد والحواف حسب النوع، والبحث عن العقد، وتوسيع خصائص العقدة. كما يسمح لك بالتراجع والإعادة عن العمليات التي تقوم بها على الرسم البياني.
أي عنصر في الرسم البياني يحتوي على فاصل فوقه قابل للطي:
تعرض العقد في الرسم البياني أول 15 حرفًا من حقل معين. على سبيل المثال، بالنسبة لعقدة عملية، سيكون هذا هو اسم العملية.
تظهر الحواف ببساطة نوع الحافة.
نقرة واحدة على عقدة أو حافة ستركز على تلك العقدة وتعرض معلوماتها في لوحة "معلومات العقدة" في الشريط الجانبي الأيمن.