Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
beagle — بيغل هي أداة للاستجابة للحوادث والتحليل الرقمي الجنائي تقوم بتحويل سجلات الأمان والبيانات إلى رسوم بيانية. | Kitploit
أدوات/GitHubGitHub/yampelo/beagle
التحقيق الجنائي الرقميالتحاليل الرقمية الجنائيةاستخبارات التهديداتالاستجابة للحوادثتحليل السجلات
GitHubyampelo/beagle

beagle

بيغل هي أداة للاستجابة للحوادث والتحليل الرقمي الجنائي تقوم بتحويل سجلات الأمان والبيانات إلى رسوم بيانية.

عرض المستودع
1.4k151منذ 6 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

بيغل

حالة البناء تغطية الكود توثيق Read The Docs دوكر PyPI سلاك

  1. حول بيغل
  2. التثبيت
    1. دوكر
    2. حزمة بايثون
    3. الإعدادات
  3. الواجهة الويب
    1. تحميل البيانات
    2. تصفح الرسوم البيانية الحالية
    3. واجهة الرسم البياني
      1. فحص العقد والحواف
      2. توسيع الجيران
      3. إخفاء العقد
      4. تشغيل المحولات
      5. تبديل أنواع العقد والحواف
      6. التراجع/الإعادة وإعادة التعيين
      7. مناظير الرسم البياني
  4. مكتبة بايثون
    1. التحكم في توليد الحواف
    2. تحميل JSON المحفوظ
  5. التوثيق

حول بيغل

بيغل هو أداة للاستجابة للحوادث والتحقيق الجنائي الرقمي تحول مصادر البيانات والسجلات إلى رسوم بيانية. تشمل مصادر البيانات المدعومة تقارير FireEye HX Triages، وملفات Windows EVTX، وسجلات SysMon، وصور ذاكرة Windows الخام. يمكن إرسال الرسوم البيانية الناتجة إلى قواعد بيانات رسوم بيانية مثل Neo4J أو DGraph، أو الاحتفاظ بها محليًا ككائنات Python NetworkX.

يمكن استخدام بيغل مباشرة كمكتبة بايثون، أو من خلال واجهة ويب مدمجة.

يمكن استخدام المكتبة إما كسلسلة من الاستدعاءات الوظيفية من مصدر بيانات واحد.

root@kitploit:~
>>> from beagle.datasources import SysmonEVTX

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

أو كرسم بياني تم إنشاؤه من مجموعة من القطع الأثرية المتعددة

root@kitploit:~
>>> 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>

أو عن طريق استدعاء كل خطوة وسيطة في عملية تحويل مصدر البيانات إلى رسم بياني بشكل صارم.

root@kitploit:~
>>> 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>

تركز الرسوم البيانية حول نشاط العمليات الفردية، وهي مصممة أساسًا لمساعدة المحللين في التحقيق في النشاط على المضيفين، وليس بينهم.

التثبيت

دوكر

بيغل متاح كملف دوكر:

root@kitploit:~
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

root@kitploit:~
pip install pybeagle

ملاحظة: يتم دعم Python 3.6+ فقط حاليًا.

Rekall لا يتم تثبيته تلقائيًا. لتثبيت Rekall، نفذ الأمر التالي بدلاً من ذلك:

root@kitploit:~
pip install pybeagle[rekall]

الإعدادات

  • نظرة عامة كاملة على كل إدخال إعداد

يمكن تعديل أي إدخال في ملف الإعدادات باستخدام متغيرات بيئة تتبع التنسيق التالي: BEAGLE__{SECTION}__{KEY}. على سبيل المثال، لتغيير مفتاح API الخاص بـ VirusTotal المستخدم عند استخدام صورة دوكر، يمكنك استخدام معامل -e وتعيين متغير BEAGLE__VIRUSTOTAL__API_KEY:

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

يمكن تعريف متغيرات البيئة والدلائل بسهولة باستخدام docker compose

root@kitploit:~
version: "3"

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

الواجهة الويب

صورة دوكر الخاصة ببيغل تأتي مع واجهة ويب تغلف عملية تحويل البيانات إلى رسوم بيانية، وكذلك استخدامها للتحقيق في البيانات.

تحميل البيانات

يغلف نموذج التحميل عملية إنشاء الرسم البياني، ويستخدم تلقائيًا NetworkX كواجهة خلفية. بناءً على المعاملات المطلوبة من قبل مصدر البيانات، سيطلب النموذج إما تحميل ملف أو إدخال نصي. على سبيل المثال:

  • تقرير صندوق رمل API VT يطلب تجزئة (hash) لإنشاء الرسم البياني.
  • FireEye HX يتطلب تقرير HX triage.

يتم تخزين أي رسم بياني يتم إنشاؤه محليًا في المجلد المحدد تحت مفتاح dir من قسم storage في الإعدادات. يمكن تعديل ذلك بتعيين متغير البيئة BEAGLE__STORAGE__DIR.

اختياريًا، يمكن إضافة تعليق لأي رسم بياني للمساعدة في وصفه بشكل أفضل.

سيقوم كل مصدر بيانات تلقائيًا باستخراج البيانات الوصفية من المعامل المقدم. تكون البيانات الوصفية والتعليق مرئية لاحقًا عند عرض الرسوم البيانية الحالية لمصدر البيانات.

تصفح الرسوم البيانية الحالية

النقر على مصدر بيانات في الشريط الجانبي يعرض جدولًا بجميع الرسوم البيانية المحللة لمصدر البيانات ذلك.

واجهة الرسم البياني

عرض رسم بياني في بيغل يوفر واجهة ويب تسمح للمحللين بالتنقل بسرعة حول حادثة ما.

تنقسم الواجهة إلى جزئين رئيسيين، الجزء الأيسر الذي يحتوي على مناظير مختلفة للرسم البياني (رسم بياني، شجرة، جدول، إلخ)، والجزء الأيمن الذي يسمح لك بتصفية العقد والحواف حسب النوع، والبحث عن العقد، وتوسيع خصائص العقدة. كما يسمح لك بالتراجع والإعادة عن العمليات التي تقوم بها على الرسم البياني.

أي عنصر في الرسم البياني يحتوي على فاصل فوقه قابل للطي:

فحص العقد والحواف

تعرض العقد في الرسم البياني أول 15 حرفًا من حقل معين. على سبيل المثال، بالنسبة لعقدة عملية، سيكون هذا هو اسم العملية.

تظهر الحواف ببساطة نوع الحافة.

نقرة واحدة على عقدة أو حافة ستركز على تلك العقدة وتعرض معلوماتها في لوحة "معلومات العقدة" في الشريط الجانبي الأيمن.

التركيز على عقدة
التركيز على حافة

توسيع الجيران

نقرة مزدوجة على عقدة ستجذب أي عقد مجاورة. العقدة المجاورة هي أي عقدة متصلة بالعقدة التي تم النقر عليها بواسطة حافة. إذا لم يكن هناك جيران لجذبهم، فلن يظهر أي تغيير في الرسم البياني.

  • هذا بغض النظر عن الاتجاه. وهذا يعني أنه يمكن جذب عملية أصل أو عملية فرعية عند النقر المزدوج على عقدة.
  • سيقوم بيغل بسحب 25 عقدة فقط في المرة الواحدة.

إخفاء العقد

نقرة واحدة طويلة على عقدة ستخفيها من الرسم البياني، بالإضافة إلى أي حواف تعتمد عليها.

تشغيل المحولات

النقر بزر الماوس الأيمن على عقدة يعرض قائمة سياق تتيح لك تشغيل محولات الرسم البياني. المحولات هي دوال تأخذ حالة الرسم البياني، وتعيد حالة جديدة.

هناك نوعان من المحولات المفيدة للغاية:

  1. تتبع العقدة بالرجوع إلى الخلف: البحث عن تسلسل العقد والحواف التي أدت إلى إنشاء هذه العقدة.
    • تتبع عقدة عملية بالرجوع إلى الخلف سيظهر شجرة العمليات الخاصة بها.
  2. توسيع جميع الأحفاد: من العقدة الحالية، عرض كل عقدة لديها هذه العقدة كسلف.
    • توسيع عقدة عملية سيظهر كل عقد عملية فرعية أنشأتها، وأي ملف قد لمسته، وكل نشاط حدث نتيجة لهذه العقدة تقريبًا.
تتبع عقدة بالرجوع إلى الخلف

تتبع العقدة بالرجوع إلى الخلف مفيد للغاية ويشبه القيام بتحليل السبب الجذري للإصابة في ملفات السجل.

توسيع أحفاد العقدة

يتيح لك توسيع أحفاد العقدة عرض كل ما حدث بسبب هذه العقدة فورًا. يكشف هذا الإجراء عن الرسم البياني الفرعي المتجذر في العقدة المحددة.

تبديل أنواع العقد والحواف

أحيانًا، قد لا تكون عقدة أو حافة ذات صلة بالحادثة الحالية، يمكنك تشغيل وإيقاف أنواع الحواف والعقد. بمجرد تبديل النوع، تتم إزالة العقد أو الحواف من هذا النوع من الرسم البياني المرئي.

إيقاف نوع عقدة يمنع استخدام هذا النوع من العقد عند استخدام المحولات، أو عند سحب الجيران.

التراجع/الإعادة وإعادة التعيين

أي إجراء في الرسم البياني يمكن عكسه فورًا! باستخدام أزرار التراجع/الإعادة يمكنك التراجع عن أي إجراء تقوم به. زر إعادة التعيين يعيد حالة الرسم البياني إلى وقت تحميله، مما يوفر عليك إعادة التحميل.

مناظير الرسم البياني

عندما تقوم بتغيير الحالة الحالية للرسم البياني باستخدام الإجراءات أعلاه، قد ترغب أيضًا في عرض المجموعة الحالية من العقد والحواف المرئية من منظور مختلف. تسمح لك الألسنة في أعلى شاشة الرسم البياني بتحويل البيانات إلى مجموعة متنوعة من العروض:

  • رسم بياني (المنظور الافتراضي)
  • شجرة
  • جدول
  • خط زمني
  • Markdown

كل المناظير تدعم التركيز على العقد عن طريق النقر عليها.

مكتبة بايثون

يمكن تنفيذ عملية إنشاء الرسم البياني برمجيًا باستخدام مكتبة بايثون. تتكون عملية إنشاء الرسم البياني من ثلاث خطوات:

  1. فئات DataSource تقوم بتحليل وإنتاج الأحداث واحدًا تلو الآخر.
  2. فئات Transformer تأخذ تلك المدخلات وتحولها إلى فئات Node مختلفة مثل Process.
  3. فئات Backend تأخذ مصفوفة العقد، وتضعها في هيكل رسم بياني، وترسلها إلى الموقع المطلوب.

يمكن تثبيت حزمة بايثون عبر pip:

root@kitploit:~
pip install pybeagle

يتطلب إنشاء رسم بياني ربط هذه العناصر معًا. يمكن القيام بذلك تلقائيًا باستخدام الدالة to_graph().

root@kitploit:~
from beagle.datasources import HXTriage

# افتراضيًا، استخدام دالة to_graph() يستخدم NetworkX والمحول الأول.
G = HXTriage('test.mans').to_graph()
<networkx.classes.multidigraph.MultiDiGraph at 0x12700ee10>

يمكن أيضًا القيام بذلك بشكل صريح في كل خطوة. باستخدام الاستدعاءات الوظيفية، يمكنك أيضًا تحديد الواجهة الخلفية التي ترغب في استخدامها، على سبيل المثال، لإرسال البيانات إلى DGraph

root@kitploit:~
from beagle.datasources import HXTriage
from beagle.backends import DGraph
from beagle.transformers import FireEyeHXTransformer

# سيتم إرسال البيانات إلى مثيل DGraph المكون في ملف الإعدادات
backend = HXTriage('test.mans').to_graph(backend=DGraph)

# يمكن أيضًا تحديد المحول
backend = HXTriage('test.mans').to_transformer(transformer=FireEyeHXTransformer).to_graph(backend=DGraph)

عند استدعاء طريقتي to_graph أو to_transformer، يمكنك تمرير أي وسائط لتلك الفئات:

root@kitploit:~
from beagle.datasources import HXTriage
from beagle.backends import Graphistry

# أرسل إلى Graphistry، وقم بإخفاء هوية البيانات أولاً، وأعد عنوان URL
graphistry_url = HXTriage('test.mans').to_graph(backend=Graphistry, anonymize=True, render=False)

يمكنك أيضًا استدعاء كل خطوة يدويًا في العملية المذكورة أعلاه، والوصول إلى المخرجات الوسيطة

root@kitploit:~
>>> from beagle.backends import NetworkX
>>> from beagle.datasources import HXTriage
>>> from beagle.transformers import FireEyeHXTransformer

>>> datasource = HXTriage("test.mans")
>>> transformer = FireEyeHXTransformer(datasource=datasource)
>>> nodes = transformer.run()
>>> backend = NetworkX(nodes=nodes)
>>> G = backend.graph()

إذا كنت ترغب في استدعاء كل خطوة يدويًا، فستحتاج إلى التأكد من أن مثيل فئة Transformer متوافق مع مخرجات فئة DataSource المقدمة.

  • جميع الواجهات الخلفية متوافقة مع جميع المحولات.

يحدد كل مصدر بيانات قائمة المحولات المتوافقة معه، ويمكن الوصول إليها عبر الخاصية .transformers:

root@kitploit:~
>>> from beagle.datasources import HXTriage
>>> HXTriage.transformers
[beagle.transformers.fireeye_hx_transformer.FireEyeHXTransformer]

التحكم في توليد الحواف

افتراضيًا، لا يتم تكثيف الحواف، مما يعني أنه إذا كانت عقدة عملية u تكتب إلى عقدة ملف v 5000 مرة، فسيكون لديك 5000 حافة بين تلك العقد. في بعض الأحيان، خاصة عند محاولة تصور البيانات، قد يطغى ذلك على المحلل.

يمكنك تكثيف جميع الحواف البالغ عددها 5000 في حافة واحدة لهذا النوع من الإجراءات (كتب في هذه الحالة)، عن طريق تمرير المعامل consolidate_edges=True إلى فئة الواجهة الخلفية، على سبيل المثال:

root@kitploit:~
SysmonEVTX("data/sysmon/autoruns-sysmon.evtx").to_graph(NetworkX, consolidate_edges=False)
# الرسم البياني يحتوي على 826 عقدة و 2469 حافة.

SysmonEVTX("data/sysmon/autoruns-sysmon.evtx").to_graph(NetworkX, consolidate_edges=True)
# الرسم البياني يحتوي على 826 عقدة و 1396 حافة

بشكل افتراضي، ستقوم الواجهة الويب بتكثيف الحواف.

تحميل JSON المحفوظ

يتيح لك استخدام الواجهة الخلفية NetworkX حفظ الرسم البياني الناتج ككائن JSON، وحفظه للاستخدام لاحقًا. يمكنك استخدام الطريقة الثابتة NetworkX.from_json لتحميله مرة أخرى.

root@kitploit:~
import json
from beagle.datasources import SysmonEVTX
from beagle.backends import NetworkX

# الحصول على كائن nx.MultiDiGraph
graph = SysmonEVTX("malicious.evtx").to_graph()

# تحويل الكائن إلى JSON
graph_json = NetworkX.graph_to_json(graph)

with open("my_graph.json", "w") as f:
    json.dump(graph_json, f)

# لاحقًا:
# G هو نفس كائن nx.MultiDiGraph الذي تم إنشاؤه بواسطة `.to_graph()`
G = NetworkX.from_json("my_graph.json")

التوثيق

  • نظرة عامة على REST API
  • الإعدادات
  • التطوير
  • منطق التصميم
تنزيل الأداة