ابدأ مع مفكرات Jupyter وMSTICPy في Microsoft Azure Sentinel

توضح هذه المقالة كيفية تشغيل دليل البدء لدفتر ملاحظات التعلم الآلي من Microsoft Sentinel، الذي يقوم بإعداد التكوينات الأساسية لتشغيل دفاتر ملاحظات Jupyter في Microsoft Sentinel وتشغيل استعلامات البيانات البسيطة.

يستخدم مفكرة Getting Started Guide for Microsoft Azure Sentinel التعلم الآلي Notebooks MSTICPy، وهي مكتبة Python لأدوات الأمن السيبراني التي أنشأتها Microsoft، والتي توفر وظائف البحث عن التهديدات والتحقيق فيها.

يقلل MSTICPy من مقدار التعليمة البرمجية التي يحتاج العملاء إلى كتابتها لـ Microsoft Azure Sentinel، ويوفر:

  • قدرات الاستعلام عن البيانات، مقابل جداول Microsoft Azure Sentinel، وMicrosoft Defender لنقطة النهاية، وSplunk، ومصادر البيانات الأخرى.
  • عمليات البحث عن المعلومات المتعلقة بالتهديدات باستخدام موفري TI، مثل VirusTotal وAlienVault OTX.
  • وظائف الإثراء مثل تحديد الموقع الجغرافي لعناوين IP واستخراج مؤشر الاختراق (IoC) وعمليات البحث عن WhoIs.
  • أدوات التمثيل باستخدام المخططات الزمنية للأحداث، وأشجار المعالجة، والتخطيط الجغرافي.
  • التحليلات المتقدمة، مثل تحلل التسلسل الزمني، واكتشاف العيوب، والتكتل.

تصف الخطوات الواردة في هذه المقالة كيفية تشغيل دليل البدء لدفتر ملاحظات Microsoft Sentinel ML في مساحة عمل Azure التعلم الآلي عبر Microsoft Sentinel. يمكنك أيضا استخدام هذه المقالة كإرشادات لتنفيذ خطوات مماثلة لتشغيل دفاتر الملاحظات في بيئات أخرى، بما في ذلك محليا.

لمزيد من المعلومات، راجع استخدام المفكرات لتشغيل التحقيقات و استخدام مفكرات Jupyter للبحث عن التهديدات الأمنية .

لا تستخدم العديد من دفاتر ملاحظات Microsoft Sentinel MSTICPy، مثل دفاتر ملاحظات Credential Scanner أو أمثلة PowerShell وC# . لا تحتاج دفاتر الملاحظات التي لا تستخدم MSTICpy إلى تكوين MSTICPy الموضح في هذه المقالة.

هام

يتوفر Microsoft Sentinel كجزء من المعاينة العامة للنظام الأساسي لعمليات الأمان الموحدة في مدخل Microsoft Defender. لمزيد من المعلومات، راجع Microsoft Sentinel في مدخل Microsoft Defender.

المتطلبات الأساسية

قبل البدء، تأكد من أن لديك الأذونات والموارد المطلوبة.

  • لاستخدام مفكرات الملاحظات في Microsoft Azure Sentinel، تأكد من أن لديك الأذونات المطلوبة. لمزيد من المعلومات، راجع إدارة الوصول إلى مفكرات ملاحظات Microsoft Azure Sentinel .

  • لتنفيذ الخطوات الواردة في هذه المقالة، تحتاج إلى Python 3.6 أو أحدث. في Azure التعلم الآلي، يمكنك استخدام نواة Python 3.8 (مستحسن) أو نواة Python 3.6.

  • يستخدم هذا الكمبيوتر الدفتري خدمة البحث MaxMind GeoLite2 عن الموقع الجغرافي لعناوين IP. لاستخدام خدمة MaxMind GeoLite2، تحتاج إلى مفتاح حساب. يمكنك التسجيل للحصول على حساب مجاني والمفتاح في Maxmind signup page.

  • يستخدم هذا الكمبيوتر الدفتري VirusTotal (VT) كمصدر استخبارات تهديدات. لاستخدام البحث الذكي للمخاطر VirusTotal، تحتاج إلى حساب VirusTotal ومفتاح API.

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

    تحذير

    إذا كنت تستخدم مفتاح VT enterprise، فقم بتخزينه في Azure Key Vault بدلاً من ملف msticpyconfig.yaالتعلم الآلي . لمزيد من المعلومات، راجع تحديد البيانات السرية كبيانات سرية Key Vault في وثائق MSTICPY.

    إذا كنت لا ترغب في إعداد Azure Key Vault في الوقت الحالي، فقم بالتسجيل واستخدام حساب مجاني حتى تتمكن من إعداد تخزين Key Vault.

قم بتشغيل وتهيئة دفتر دليل الشروع في البدء

يصف هذا الإجراء كيفية تشغيل الكمبيوتر الدفتري وتهيئة MSTICpy.

  1. بالنسبة إلى Microsoft Sentinel في مدخل Microsoft Azure، ضمن Threat management، حدد Notebooks.
    بالنسبة إلى Microsoft Sentinel في مدخل Defender، حدد دفاتر ملاحظات إدارة>المخاطر في Microsoft Sentinel.>

  2. من علامة التبويب Templates، حدد A Getting Started Guide for Microsoft Sentinel ML Notebooks .

  3. حدد إنشاء مواصفات القالب.

  4. قم بتحرير الاسم وحدد مساحة عمل Azure التعلم الآلي حسب الاقتضاء.

  5. حدد حفظ لحفظه في مساحة عمل Azure التعلم الآلي.

  6. حدد Launch notebook لتشغيل دفتر الملاحظات. يحتوي دفتر الملاحظات على سلسلة من الخلايا:

    • تحتوي خلايا Markdown على نصوص ورسومات مع إرشادات بشأن استخدام دفتر الملاحظات
    • تحتوي خلايا التعليمات البرمجية على تعليمات برمجية قابلة للتنفيذ تقوم بتنفيذ وظائف دفتر الملاحظات
  7. قراءة وتشغيل خلايا التعليمة البرمجية بالترتيب. قد يؤدي تخطي الخلايا أو عدم ترتيبها إلى حدوث أخطاء لاحقا في دفتر الملاحظات.

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

    عند تشغيل الخلية، يتغير زر التشغيل إلى زيادة التحميل، ويتم عرض حالة Executing في أسفل الخلية، جنبا إلى جنب مع الوقت المنقضي.

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

    يتضمن مفكرة دليل البدء إرشادات للاستخدام الأساسي لمفكرات Jupyter، بما في ذلك إعادة تشغيل Jupyter kernel.

    بعد إكمال قراءة الخلايا وتشغيلها في القسم What is a Jupyter Notebook ، تصبح جاهزا لبدء مهام التكوين، بدءا من قسم إعداد بيئة دفتر الملاحظات.

  8. قم بتشغيل خلية التعليمة البرمجية الأولى في قسم Setting up the notebook environment في دفتر، والذي يتضمن التعليمة البرمجية التالي:

    # import some modules needed in this cell
    from pathlib import Path
    from IPython.display import display, HTML
    
    REQ_PYTHON_VER="3.6"
    REQ_MSTICPY_VER="1.2.3"
    
    display(HTML("Checking upgrade to latest msticpy version"))
    %pip install --upgrade --quiet msticpy[azuresentinel]>=$REQ_MSTICPY_VER
    
    # intialize msticpy
    from msticpy.nbtools import nbinit
    nbinit.init_notebook(
    namespace=globals(),
    extra_imports=["urllib.request, urlretrieve"]
    )
    pd.set_option("display.html.table_schema", False)
    

    يتم عرض حالة التهيئة في الإخراج. من المتوقع ظهور تحذيرات التكوين حول الإعدادات المفقودة Missing msticpyconfig.yaml في الملف لأنك لم تقم بتكوين أي شيء بعد.

قم بإنشاء ملف التكوين الخاص بك

بعد التكوين الأساسية، تكون جاهزاً لإنشاء ملف التكوين الخاص بك بالإعدادات الأساسية للعمل مع MSTICPy.

تتصل العديد من أجهزة Microsoft Azure Sentinel المحمولة بخدمات خارجية مثل VirusTotal (VT) لجمع البيانات وإثرائها. للاتصال بهذه الخدمات، يلزمك تعيين تفاصيل التكوين وتخزينها، مثل رموز المصادقة المميزة. يؤدي وجود هذه البيانات في ملف التكوين إلى تجنب الاضطرار إلى كتابة رموز المصادقة وتفاصيل مساحة العمل في كل مرة تستخدم فيها مفكرة.

يستخدم MSTICPy msticpyconfig.yaالتعلم الآلي لتخزين مجموعة كبيرة من تفاصيل التكوين. بشكل افتراضي، يتم إنشاء ملف msticpyconfig.yaالتعلم الآلي بواسطة وظيفة تهيئة دفتر الملاحظات. إذا قمت بنسخ دفتر الملاحظات هذا من مدخل Microsoft Sentinel، يتم ملء ملف التكوين ببيانات مساحة عمل Microsoft Sentinel. تتم قراءة هذه البيانات من ملف config.json، تم إنشاؤها في مساحة عمل Azure التعلم الآلي عند تشغيل دفتر الملاحظات. لمزيد من المعلومات، راجع وثائق تكوين حزمة MSTICPy .

تصف الأقسام التالية كيفية إضافة المزيد من تفاصيل التكوين إلى ملف msticpyconfig.yaml .

إذا قمت بتشغيل دفتر ملاحظات دليل البدء مرة أخرى، وكان لديك بالفعل ملف msticpyconfig.yaml تم تكوينه بشكل بسيط، فلن تقوم الدالة init_notebook بالكتابة فوق الملف الموجود أو تعديله.

في أي وقت، حدد القائمة المنسدلة -Help في أداة تكوين MSTICPy للحصول على مزيد من الإرشادات والروابط إلى الوثائق التفصيلية.

اعرض محرر إعدادات MSTICPy

  1. في خلية التعليمة البرمجية، قم بتشغيل التعليمة البرمجية التالية لاستيراد الأداة MpConfigEdit وعرض محرر إعدادات لملف msticpyconfig.yaالتعلم الآلي الخاص بك:

    from msticpy.config import MpConfigEdit
    
    mpedit = MpConfigEdit( "msticpyconfig.yaml")
    mpedit.set_tab("AzureSentinel")
    display(mpedit)
    

    على سبيل المثال:

    لقطة شاشة لمحرر إعدادات MSTICPy.

    يحتوي ملف msticpyconfig.yaالتعلم الآلي الذي تم إنشاؤه تلقائياً، والذي يظهر في محرر الإعدادات، على إدخالين في قسم Microsoft Azure Sentinel. يتم ملء كليهما بتفاصيل مساحة عمل Microsoft Azure Sentinel التي تم استنساخ دفتر الملاحظات منها. أحد الإدخالين له اسم مساحة العمل الخاصة بك والآخر يسمى افتراضي .

    يتيح لك MSTICPy تخزين التكوينات لمساحات عمل Microsoft Azure Sentinel المتعددة والتبديل بينها. يسمح لك الإدخال الافتراضي بالمصادقة على مساحة العمل "بالمنزل" افتراضياً، دون الحاجة إلى تسميتها صراحة. إذا قمت بإضافة مساحات عمل أخرى، يمكنك تكوين أي منها لتكون الإدخال الافتراضي .

    في بيئة Azure التعلم الآلي، قد يستغرق ظهور محرر الإعدادات من 10 إلى 20 ثانية.

  2. تحقق من إعداداتك الحالية وحدد Save Settings.

أضف إعدادات موفر معلومات التهديد

يصف هذا الإجراء كيفية تخزين مفتاح واجهة برمجة تطبيقات VirusTotal في ملف msticpyconfig.yaالتعلم الآلي . يمكنك اختيار تحميل مفتاح API إلى Azure Key Vault، ولكن يجب عليك تكوين إعدادات Key Vault أولاً. لمزيد من المعلومات، راجع تكوين إعدادات Key Vault .

لإضافة تفاصيل VirusTotal في محرر إعدادات MSTICPy، أكمل الخطوات التالية.

  1. أدخل التعليمة البرمجية التالية في خلية تعليمة برمجية وقم بتشغيل:

    mpedit.set_tab("TI Providers")
    mpedit
    
  2. في علامة التبويب TI Providers، حدد Add prov> VirusTotal > إضافة .

  3. ضمن Auth Key، حدد Text بجوار خيار Storage.

  4. في حقل Value، الصق مفتاح API الخاص بك.

  5. حدد Update، ثم حدد Save Settings أسفل محرر الإعدادات.

لمزيد من المعلومات بشأن موفري معلومات التهديدات الآخرين المدعومين، راجع موفرو معلومات التهديدات في وثائق MSTICPy و تكامل معلومات التهديدات في Microsoft Azure Sentinel .

أضف إعدادات مزود GeoIP

يصف هذا الإجراء كيفية تخزين مفتاح حساب MaxMind GeoLite2 في ملف msticpyconfig.yaالتعلم الآلي ، والذي يسمح لجهاز الكمبيوتر المحمول الخاص بك باستخدام خدمات البحث عن الموقع الجغرافي لعناوين IP.

لإضافة إعدادات موفر GeoIP في محرر إعدادات MSTICPy، أكمل الخطوات التالية.

  1. أدخل التعليمة البرمجية التالية في خلية تعليمة برمجية فارغة وقم بتشغيل:

    mpedit.set_tab("GeoIP Providers")
    mpedit
    
  2. في علامة التبويب GeoIP Providers، حدد Add prov> GeoIPLite > إضافة .

  3. في حقل Value، أدخل مفتاح حساب MaxMind الخاص بك.

  4. إذا لزم الأمر، فقم بتحديث المجلد الافتراضي ~/.msticpy لتخزين قاعدة بيانات GeoIP التي تم تنزيلها.

    • في نظام التشغيل Windows، تم تعيين هذا المجلد إلى % USERPROFILE% /. msticpy .
    • في نظام التشغيل Linux أو macOS، يتم تعيين هذا المسار إلى المجلد .msticpy في المجلد الرئيسي.

لمزيد من المعلومات بشأن خدمات البحث عن الموقع الجغرافي المدعومة الأخرى، راجع وثائق موفري MSTICPy GeoIP .

تكوين إعدادات Azure Cloud

إذا كانت مؤسستك لا تستخدم سحابة Azure العامة، يجب عليك تحديد ذلك في إعداداتك لمصادقة واستخدام البيانات بنجاح من Microsoft Azure Sentinel وAzure. لمزيد من المعلومات، راجع تحديد Azure Cloud وأساليب مصادقة Azure الافتراضية .

تحقق من صحة الإعدادات

  1. حدد Validate settings في محرر الإعدادات.

    من المتوقع ظهور رسائل تحذير بشأن التكوينات المفقودة، ولكن لا ينبغي أن يكون لديك أي منها لمزود التحليل الذكي للمخاطرات أو إعدادات موفر GeoIP.

  2. اعتمادا على البيئة الخاصة بك، قد تحتاج أيضا إلى تكوين إعدادات Key Vault أو تحديد سحابة Azure.

  3. إذا كنت بحاجة إلى إجراء أي تغييرات بسبب التحقق، فقم بإجراء تلك التغييرات ثم حدد Save Settings.

  4. عند الانتهاء، حدد الزر Close لإخفاء ناتج التحقق.

لمزيد من المعلومات، راجع: التكوينات المتقدمة لمفكرات Jupyter وMSTICPy في Microsoft Azure Sentinel

تحميل إعدادات MSTICPy المحفوظة

في إجراء Create your configuration file، قمت بحفظ الإعدادات في ملف msticpyconfig.yaالتعلم الآلي المحلي.

ومع ذلك، لا تقوم MSTICPy بإعادة تحميل هذه الإعدادات تلقائياً حتى تقوم بإعادة تشغيل kernel أو تشغيل مفكرة آخر. لإجبار MSTICPy على إعادة التحميل من ملف التكوين الجديد، انتقل إلى خلية التعليمة البرمجية التالية، مع التعليمة البرمجية التالي، وقم بتشغيلها:

import msticpy
msticpy.settings.refresh_config()

اختبر دفتر

الآن بعد أن قمت بتهيئة بيئتك وتكوين الإعدادات الأساسية لمساحة العمل الخاصة بك، استخدم فئة MSTICPy QueryProvider لاختبار دفتر الملاحظات. QueryProvider يستعلم عن مصدر بيانات، في هذه الحالة، مساحة عمل Microsoft Sentinel، ويجعل البيانات التي تم الاستعلام فيها متاحة لعرضها وتحليلها في دفتر الملاحظات.

استخدم الإجراءات التالية لإنشاء مثيل للفئة QueryProvider ، والمصادقة على Microsoft Sentinel من دفتر الملاحظات، وعرض الاستعلامات وتشغيلها باستخدام خيارات معلمات مختلفة مختلفة.

يمكن أن يكون لديك مثيلات متعددة من QueryProvider محملة للاستخدام مع العديد من مساحات عمل Microsoft Azure Sentinel أو موفري البيانات الآخرين مثل Microsoft Defender for Endpoint.

قم بتحميل QueryProvider

لتحميل QueryProvider لـ AzureSentinel، تابع إلى الخلية التي تحتوي على التعليمة البرمجية التالية وقم بتشغيلها:

# Initialize a QueryProvider for Microsoft Sentinel
qry_prov = QueryProvider("AzureSentinel")

إذا رأيت تحذيراً Runtime dependency of PyGObject is missing عند تحميل برنامج تشغيل Microsoft Azure Sentinel، فراجع خطأ: تبعية وقت التشغيل لـ PyGObject مفقودة . لا يؤثر هذا التحذير على وظائف الكمبيوتر الدفتري.

قم بالمصادقة على مساحة عمل Microsoft Azure Sentinel من دفتر

في دفاتر ملاحظات Azure التعلم الآلي، يتم تعيين المصادقة افتراضيا لاستخدام بيانات الاعتماد التي استخدمتها للمصادقة على مساحة عمل Azure التعلم الآلي.

المصادقة باستخدام الهوية المدارة عن طريق إكمال الخطوات التالية.

  1. قم بتشغيل التعليمة البرمجية التالية للمصادقة على مساحة عمل Microsoft Azure Sentinel الخاصة بك.

    # Get the default Microsoft Sentinel workspace details from msticpyconfig.yaml
    
    ws_config = WorkspaceConfig()
    
    # Connect to Microsoft Sentinel with our QueryProvider and config details
    qry_prov.connect(ws_config)
    
  2. راجع الإخراج. الإخراج المعروض مشابه للصورة التالية.

    لقطة شاشة تعرض مصادقة لـ Azure تنتهي برسالة متصلة.

تخزين الرمز المميز لتسجيل الدخول مؤقتاً باستخدام Azure CLI

لتجنب الاضطرار إلى إعادة المصادقة إذا قمت بإعادة تشغيل kernel أو تشغيل مفكرات ملاحظات أخرى، يمكنك تخزين رمز تسجيل الدخول الخاص بك مؤقتاً باستخدام Azure CLI.

يقوم مكون Azure CLI الموجود على مثيل Compute بتخزين رمز التحديث المميز الذي يمكنه إعادة استخدامه حتى تنتهي مهلة الرمز المميز. يستخدم MSTICPy بيانات اعتماد Azure CLI تلقائياً، إذا كانت متوفرة.

للمصادقة باستخدام Azure CLI، أدخل الأمر التالي في خلية فارغة وقم بتشغيله:

!az login

تحتاج إلى إعادة المصادقة إذا قمت بإعادة تشغيل مثيل الحساب أو التبديل إلى مثيل مختلف. لمزيد من المعلومات، راجع قسم تخزين معلومات تسجيل الدخول مؤقتاً باستخدام Azure CLI في موقع wiki Microsoft Azure Sentinel Notebooks GitHub.

عرض مخطط بيانات مساحة عمل Microsoft Azure Sentinel واستعلامات MSTICPy المضمنة

بعد اتصالك بـ Microsoft Azure Sentinel QueryProvider، يمكنك فهم أنواع البيانات المتاحة للاستعلام عن طريق الاستعلام عن مخطط بيانات مساحة عمل Microsoft Azure Sentinel.

يحتوي Microsoft Azure Sentinel QueryProvider على خاصية schema_tables، والتي تمنحك قائمة بجداول المخطط، وخاصية schema، والتي تتضمن أيضاً أسماء الأعمدة وأنواع البيانات لكل جدول.

لعرض أول 10 جداول في مخطط Microsoft Azure Sentinel :

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

# Get list of tables in the Workspace with the 'schema_tables' property
qry_prov.schema_tables[:10]  # Output only a sample of tables for brevity
                             # Remove the "[:10]" to see the whole list

يظهر الإخراج التالي:

Sample of first 10 tables in the schema
    ['AACAudit',
     'AACHttpRequest',
     'AADDomainServicesAccountLogon',
     'AADDomainServicesAccountManagement',
     'AADDomainServicesDirectoryServiceAccess',
     'AADDomainServicesLogonLogoff',
     'AADDomainServicesPolicyChange',
     'AADDomainServicesPrivilegeUse',
     'AADDomainServicesSystemSecurity',
     'AADManagedIdentitySignInLogs']

يتضمن MSTICPy أيضاً العديد من الاستعلامات المضمنة المتاحة لك للتشغيل. قم بسرد الاستعلامات المتاحة باستخدام .list_queries()، واحصل على تفاصيل محددة بشأن استعلام عن طريق تسميته بعلامة استفهام (?) مضمنة كمعامل. بدلاً من ذلك، يمكنك عرض قائمة الاستعلامات والمساعدة المرتبطة بها في متصفح الاستعلام.

لعرض عينة من الاستعلامات المتوفرة :

  1. انتقل إلى الخلية التالية، مع التعليمة البرمجية التالية، وقم بتشغيلها. يمكنك حذف [::5] لسرد جميع الاستعلامات.

    # Get a sample of available queries
    print(qry_prov.list_queries()[::5])  # showing a sample - remove "[::5]" for whole list
    
  2. راجع الإخراج.

    Sample of queries
    =================
    ['Azure.get_vmcomputer_for_host', 'Azure.list_azure_activity_for_account', 'AzureNetwork.az_net_analytics', 'AzureNetwork.get_heartbeat_for_ip', 'AzureSentinel.get_bookmark_by_id', 'Heartbeatget_heartbeat_for_host', 'LinuxSyslog.all_syslog', 'LinuxSyslog.list_logon_failures', 'LinuxSyslog.sudo_activity', 'MultiDataSource.get_timeseries_decompose', 'Network.get_host_for_ip','Office365.list_activity_for_ip', 'SecurityAlert.list_alerts_for_ip', 'ThreatIntelligence.list_indicators_by_filepath', 'WindowsSecurity.get_parent_process', 'WindowsSecurity.list_host_events','WindowsSecurity.list_hosts_matching_commandline', 'WindowsSecurity.list_other_events']
    
  3. للحصول على تعليمات حول استعلام عن طريق تمرير ? كمعلمة:

    # Get help about a query by passing "?" as a parameter
    qry_prov.Azure.list_all_signins_geo("?")
    
  4. راجع الإخراج.

    Help for 'list_all_signins_geo' query
    =====================================
    Query:  list_all_signins_geo
    Data source:  AzureSentinel
    Gets Signin data used by morph charts
    
    Parameters
    ----------
    add_query_items: str (optional)
        Additional query clauses
    end: datetime (optional)
        Query end time
    start: datetime (optional)
        Query start time
        (default value is: -5)
    table: str (optional)
        Table name
        (default value is: SigninLogs)
    Query:
         {table} | where TimeGenerated >= datetime({start}) | where TimeGenerated <= datetime({end}) | extend Result = iif(ResultType==0, "Sucess", "Failed") | extend Latitude = tostring(parse_json(tostring(LocationDetails.geoCoordinates)).latitude) | extend Longitude = tostring(parse_json(tostring(LocationDetails.geoCoordinates)).longitude)
    
  5. لعرض كل من الجداول والاستعلامات في قائمة قابلة للتمرير وقابلة للتصفية، انتقل إلى الخلية التالية، مع التعليمات البرمجية التالية، وقم بتشغيلها.

    qry_prov.browse_queries()
    
  6. بالنسبة إلى الاستعلام المحدد، يتم عرض جميع المعلمات المطلوبة والاختيارية، جنباً إلى جنب مع النص الكامل للاستعلام. على سبيل المثال:

    لقطة شاشة للجداول والاستعلامات المعروضة في قائمة قابلة للتمرير والتصفية.

بينما لا يمكنك تشغيل الاستعلامات من المستعرض، يمكنك نسخ المثال ولصقه في نهاية كل استعلام لتشغيله في مكان آخر في دفتر الملاحظات.

لمزيد من المعلومات، راجع تشغيل استعلام محدد مسبقاً في وثائق MSTICPy.

قم بتشغيل الاستعلامات مع معلمات الوقت

تتطلب معظم الاستعلامات معلمات الوقت. سلاسل التاريخ/الوقت مملة للكتابة، ويمكن أن يكون تعديلها في أماكن متعددة عرضة للخطأ.

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

  1. انتقل إلى الخلية التالية، مع الكود التالي، وقم بتشغيلها:

    # Open the query time control for your query provider
    qry_prov.query_time
    
  2. قم بتعيين مرات start وend حسب الحاجة. على سبيل المثال:

    لقطة شاشة لتعيين معلمات الوقت الافتراضية للاستعلامات.

قم بتشغيل استعلام باستخدام النطاق الزمني المدمج

تظهر نتائج الاستعلام كـ Pandas DataFrame ، وهو عبارة عن بنية بيانات مجدولة، مثل جدول بيانات أو جدول قاعدة بيانات. استخدم وظائف pandas لإجراء تصفية وتحليل إضافيين على نتائج الاستعلام.

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

    # The time parameters are taken from the qry_prov time settings
    # but you can override this by supplying explict "start" and "end" datetimes
    signins_df = qry_prov.Azure.list_all_signins_geo()
    
    # display first 5 rows of any results
    # If there is no data, just the column headings display
    signins_df.head()
    
  2. راجع الإخراج. يعرض الصفوف الخمسة الأولى من النتائج. على سبيل المثال:

    لقطة شاشة لاستعلام يتم تشغيله باستخدام النطاق الزمني المضمّن.

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

قم بتشغيل استعلام باستخدام نطاق زمني مخصص

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

# Create and display a QueryTime control.
time_range = nbwidgets.QueryTime()
time_range

بعد تعيين النطاق الزمني المطلوب، يمكنك تمرير النطاق الزمني إلى دالة الاستعلام، وتشغيل التعليمات البرمجية التالية في خلية منفصلة عن التعليمات البرمجية السابقة:

signins_df = qry_prov.Azure.list_all_signins_geo(time_range)
signins_df.head()

يمكنك أيضاً تمرير قيم التاريخ والوقت مثل أوقات التاريخ والوقت في Python أو سلاسل التاريخ والوقت باستخدام المعلمات start وend:

from datetime import datetime, timedelta
q_end = datetime.utc.now()
q_start = end – timedelta(5)
signins_df = qry_prov.Azure.list_all_signins_geo(start=q_start, end=q_end)

تخصيص استفساراتك

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

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

  1. قم بتشغيل خلية التعليمة البرمجية التالية لإضافة إطار بيانات يلخص عدد التنبيهات حسب اسم التنبيه:

    from datetime import datetime, timedelta
    
    qry_prov.SecurityAlert.list_alerts(
       start=datetime.utcnow() - timedelta(28),
        end=datetime.utcnow(),
        add_query_items="| summarize NumAlerts=count() by AlertName"
    )
    
  2. قم بتمرير سلسلة استعلام Kusto Query Language (KQL) كاملة إلى موفر الاستعلام. يتم تشغيل الاستعلام مقابل مساحة العمل المتصلة، وترجع البيانات كـ panda DataFrame. تشغيل:

    # Define your query
    test_query = """
    OfficeActivity
    | where TimeGenerated > ago(1d)
    | take 10
    """
    
    # Pass the query to your QueryProvider
    office_events_df = qry_prov.exec_query(test_query)
    display(office_events_df.head())
    
    

لمزيد من المعلومات، راجع:

اختبار VirusTotal

  1. لاستخدام ذكاء التهديدات لمعرفة ما إذا كان عنوان IP يظهر في بيانات VirusTotal، قم بتشغيل الخلية مع التعليمة البرمجية التالي:

    # Create your TI provider – note you can re-use the TILookup provider (‘ti’) for
    # subsequent queries - you don’t have to create it for each query
    ti = TILookup()
    
    # Look up an IP address
    ti_resp = ti.lookup_ioc("85.214.149.236")
    
    ti_df = ti.result_to_df(ti_resp)
    ti.browse_results(ti_df, severities="all")
    
  2. راجع الإخراج. على سبيل المثال:

    لقطة شاشة لعنوان IP يظهر في بيانات VirusTotal.

  3. مرر لأسفل لعرض النتائج الكاملة.

لمزيد من المعلومات، راجع Threat Intel Lookups في MSTICPy .

اختبار بحث IP تحديد الموقع الجغرافي

  1. للحصول على تفاصيل الموقع الجغرافي لعنوان IP باستخدام خدمة MaxMind، قم بتشغيل الخلية مع التعليمة البرمجية التالي:

    # create an instance of the GeoLiteLookup provider – this
    # can be re-used for subsequent queries.
    geo_ip = GeoLiteLookup()
    raw_res, ip_entity = geo_ip.lookup_ip("85.214.149.236")
    display(ip_entity[0])
    
  2. راجع الإخراج. على سبيل المثال:

    ipaddress
    { 'AdditionalData': {},
      'Address': '85.214.149.236',
      'Location': { 'AdditionalData': {},
                    'CountryCode': 'DE',
                    'CountryName': 'Germany',
                    'Latitude': 51.2993,
                    'Longitude': 9.491,
                    'Type': 'geolocation',
                    'edges': set()},
      'ThreatIntelligence': [],
      'Type': 'ipaddress',
      'edges': set()}
    

في المرة الأولى التي تقوم فيها بتشغيل هذه التعليمة البرمجية، يجب أن ترى برنامج التشغيل GeoLite يقوم بتنزيل قاعدة البيانات الخاصة به.

لمزيد من المعلومات، راجع موفرو MSTICPy GeoIP .

تكوين إعدادات Key Vault

هذا القسم مناسب فقط عند تخزين البيانات السرية في Azure Key Vault.

عند تخزين الأسرار في Azure Key Vault، تحتاج إلى إنشاء Key Vault أولا في مدخل إدارة Azure العمومي KeyVault.

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

  • يتم عرض VaultName في الجزء العلوي الأيسر من شاشة خصائص Azure Key Vault
  • يتم عرض TenantId كـ معرف الدليل
  • يتم عرض AzureRegion كـ الموقع
  • السلطة هي السحابة لخدمة Azure.

مطلوب فقط قيم VaultName و TenantId و Authority لاسترداد البيانات السرية من Vault. القيم الأخرى مطلوبة إذا اخترت إنشاء مخزن من MSTICPy. لمزيد من المعلومات، راجع تحديد البيانات السرية كبيانات سرية Key Vault .

يتم تحديد الخيار Use KeyRing افتراضياً، ويتيح لك تخزين بيانات اعتماد Key Vault مؤقتاً في KeyRing محلي. لمزيد من المعلومات، راجع وثائق KeyRing .

تنبيه

لا تستخدم الخيار Use KeyRing إذا كنت لا تثق تماماً في حساب المضيف الذي يعمل عليه الكمبيوتر الدفتري.

في حالتنا، الحوسبة هي خادم Jupyter hub، حيث يتم تشغيل نواة الكمبيوتر الدفتري، وليس بالضرورة الجهاز الذي يعمل عليه متصفحك. إذا كنت تستخدم التعلم الآلي من Microsoft Azure، فسيكون الحساب هو مثيل التعلم الآلي من Microsoft Azure Compute الذي حددته. تقوم Keyring بالتخزين المؤقت الخاص بها على المضيف حيث يتم تشغيل نواة الكمبيوتر الدفتري.

لإضافة إعدادات Key Vault في محرر إعدادات MSTICPy، أكمل الخطوات التالية.

  1. انتقل إلى الخلية التالية، مع الكود التالي، وقم بتشغيلها:

    mpedit.set_tab("Key Vault")
    mpedit
    
  2. أدخل تفاصيل Vault الخاصة بـ Key Vault. على سبيل المثال:

    لقطة شاشة لقسم إعداد Key Vault

  3. حدد Save ثم Save Settings.

اختبار Key Vault

لاختبار مخزن المفاتيح الخاصة بك، تحقق لمعرفة ما إذا كان بإمكانك الاتصال وعرض بيانات سرية. إذا لم تقم بإضافة سر، فلن ترى أي تفاصيل. إذا كنت بحاجة إلى ذلك، فأضف سر اختبار من مدخل Microsoft Azure Key Vault إلى المخزن، وتحقق من ظهوره في Microsoft Azure Sentinel.

على سبيل المثال:

mpconfig = MpConfigFile()
mpconfig.refresh_mp_config()
mpconfig.show_kv_secrets()

تنبيه

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

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

بعد تكوين Key Vault، يمكنك استخدام الزر Upload to KV في قسمي موفري البيانات وموفري TI لنقل الإعداد المحدد إلى Vault. ينشئ MSTICPy اسما افتراضيا للسر استنادا إلى مسار الإعداد، مثل TIProviders-VirusTotal-Args-AuthKey.

إذا تم تحميل القيمة بنجاح، فسيتم حذف محتويات الحقل القيمة في محرر الإعدادات واستبدال الإعداد الأساسي بقيمة عنصر نائب. يستخدم MSTICPy هذه القيمة للإشارة إلى أنه يجب أن ينشئ مسار Key Vault تلقائيا عند محاولة استرداد المفتاح.

إذا كان لديك بالفعل الأسرار المطلوبة المخزنة في Key Vault، يمكنك إدخال الاسم السري في حقل القيمة . إذا لم يتم تخزين السر في المخزن الافتراضي (القيم المحددة في قسم Key Vault )، يمكنك تحديد مسار VaultName /SecretName.

إحضار الإعدادات من Vault في مستأجر مختلف غير مدعوم حاليا. لمزيد من المعلومات، راجع تحديد البيانات السرية كبيانات سرية Key Vault .

حدد سحابة Azure وأساليب مصادقة Azure

إذا كنت تستخدم سحابة Azure ذات سيادة أو حكومية، بدلا من سحابة Azure العامة أو العمومية، فيجب عليك تحديد السحابة المناسبة في إعداداتك. بالنسبة لمعظم المؤسسات، تكون السحابة العمومية هي الافتراضية.

يمكنك أيضاً استخدام إعدادات Azure لتحديد التفضيلات الافتراضية لنوع مصادقة Azure.

لتحديد Azure cloud وأساليب مصادقة Azure، أكمل الخطوات التالية.

  1. انتقل إلى الخلية التالية، مع الكود التالي، وقم بتشغيلها:

    mpedit.set_tab("Azure")
    mpedit
    
  2. حدد السحابة التي تستخدمها مؤسستك، أو اترك الخيار الافتراضي المحدد عام .

  3. حدد طريقة أو أكثر من الطرق التالية:

    • env لتخزين بيانات اعتماد Azure في متغيرات البيئة.
    • msi لاستخدام هوية الخدمة المُدارة، وهي هوية يتم تعيينها للمضيف أو الجهاز الظاهري حيث يتم تشغيل لوحة Jupyter hub. MSI غير مدعوم حاليا في مثيلات حساب Azure التعلم الآلي.
    • cli لاستخدام معلومات تسجيل الدخول من جلسة Azure CLI مصادق عليها.
    • تفاعلي لاستخدام تدفق تخويل الجهاز التفاعلي باستخدام تعليمة برمجية الجهاز لمرة واحدة .

    في معظم الحالات، نوصي بتحديد طرق متعددة، مثل cli و التفاعلية . تحاول مصادقة Azure كل أسلوب من الأساليب المكونة بالترتيب المدرج حتى ينجح واحد.

  4. حدد Save ثم Save Settings.

    على سبيل المثال:

    لقطة شاشة للإعدادات المحددة لسحابة Azure Government.

الخطوات التالية

وصفت هذه المقالة أساسيات استخدام MSTICPy مع مفكرات Jupyter في Microsoft Azure Sentinel. لمزيد من المعلومات، راجع التكوينات المتقدمة لمفكرات Jupyter وMSTICPy في Microsoft Azure Sentinel .

يمكنك أيضاً تجربة مفكرات ملاحظات أخرى مخزنة في مستودع GitHub لأجهزة الكمبيوتر المحمول Microsoft Azure Sentinel ، مثل:

إذا كنت تستخدم دفتر الملاحظات الموضح في هذه المقالة في بيئة Jupyter أخرى، يمكنك استخدام أي نواة تدعم Python 3.6 أو أحدث.

لاستخدام دفاتر ملاحظات MSTICPy خارج Microsoft Sentinel وAzure التعلم الآلي (ML)، تحتاج أيضا إلى تكوين بيئة Python الخاصة بك. قم بتثبيت Python 3.6 أو ما بعده مع توزيع Anaconda، والذي يتضمن العديد من الحزم المطلوبة.

المزيد من القراءة على MSTICPy والمفكرات

يسرد الجدول التالي المزيد من المراجع للتعرف على مفكرات MSTICPy وMicrosoft Azure Sentinel وJupyter.

الموضوع مزيد من المراجع
MSTICPy - تكوين حزمة MSTICPy
- محرر إعدادات MSTICPy
- تكوين بيئة دفتر الملاحظات الخاص بك.
- MPSettingsEditor notebook.

ملاحظة : يحتوي مستودع Azure-Sentinel-Notebooks GitHub أيضاً على ملف قالبي msticpyconfig.yaالتعلم الآلي مع أقسام التعليق، والتي قد تساعدك على فهم الإعدادات.
دفاتر Microsoft Sentinel وJupyter - أنشئ أول دفتر ملاحظات Microsoft Sentinel (سلسلة المدونات)
- دفاتر ملاحظات Jupyter: مقدمة
- وثائق MSTICPy
- وثائق Microsoft Sentinel Notebooks
- كتاب Infosec Jupyterbook
- شرح Linux Host Explorer Notebook
- سبب استخدام Jupyter لتحقيقات الأمان
- تحقيقات الأمان مع دفاتر ملاحظات Microsoft Sentinel
- وثائق Pandas
- وثائق Bokeh