البرنامج التعليمي: بدء استخدام دفاتر ملاحظات Jupyter و MSTICPy في Microsoft Sentinel
ملاحظة
يسمى Azure Sentinel الآن Microsoft Sentinel، وسنقوم بتحديث هذه الصفحات في الأسابيع القادمة. تعرف على المزيد حول التحسينات الأمنية الأخيرة لـ Microsoft.
يصف هذا البرنامج التعليمي كيفية تشغيل دليل البدء لدفتر ملاحظات Microsoft Sentinel ML Notebooks ، الذي يقوم بإعداد التكوينات الأساسية لتشغيل دفاتر ملاحظات Jupyter في Microsoft Sentinel وتشغيل استعلامات البيانات البسيطة.
يستخدم دليل بدء الاستخدام لدفتر ملاحظات Microsoft Sentinel ML Notebooks MSTICPy ، وهي مكتبة بايثون لأدوات الأمن السيبراني التي أنشأتها Microsoft ، والتي توفر وظائف البحث عن التهديدات والتحقيق فيها.
يقلل MSTICPy من كمية التعليمات البرمجية التي يحتاجها العملاء لكتابتها ل Microsoft Sentinel ويوفر:
- إمكانات استعلام البيانات، مقابل جداول Microsoft Sentinel Microsoft Defender لنقطة النهاية وSplunk ومصادر البيانات الأخرى.
- عمليات البحث عن معلومات التهديدات مع موفري TI ، مثل VirusTotal و AlienVault OTX.
- وظائف الإثراء مثل تحديد الموقع الجغرافي لعناوين IP واستخراج مؤشر التسوية (IoC) وعمليات البحث عن WhoIs.
- أدوات التصور باستخدام الجداول الزمنية للأحداث وأشجار المعالجة والتعيين الجغرافي.
- التحليلات المتقدمة، مثل تحلل السلاسل الزمنية، والكشف عن الحالات الشاذة، والتجميع.
توضح الخطوات الواردة في هذا البرنامج التعليمي كيفية تشغيل دليل بدء الاستخدام لدفتر ملاحظات Microsoft Sentinel ML Notebooks في مساحة عمل Azure ML عبر Microsoft Sentinel. يمكنك أيضا استخدام هذا البرنامج التعليمي كدليل لتنفيذ خطوات مماثلة لتشغيل دفاتر الملاحظات في بيئات أخرى، بما في ذلك محليا.
لمزيد من المعلومات، راجع استخدام دفاتر الملاحظات لتشغيل التحقيقاتواستخدام دفاتر ملاحظات Jupyter للبحث عن تهديدات الأمان.
ملاحظة
لا تستخدم العديد من دفاتر ملاحظات Microsoft Sentinel MSTICPy، مثل دفاتر ملاحظات " الماسح الضوئي لبيانات الاعتماد" أو مثالي PowerShell و C#. لا تحتاج دفاتر الملاحظات التي لا تستخدم MSTICpy إلى تكوين MSTICPy الموضح في هذه المقالة.
المتطلبات الأساسية
لاستخدام دفاتر الملاحظات في Microsoft Sentinel، تأكد من أن لديك الأذونات المطلوبة. لمزيد من المعلومات، راجع إدارة الوصول إلى دفاتر ملاحظات Microsoft Sentinel.
لتنفيذ الخطوات الواردة في هذا البرنامج التعليمي ، ستحتاج إلى Python 3.6 أو إصدار أحدث. في Azure ML ، يمكنك استخدام إما نواة Python 3.8 (مستحسن) أو نواة Python 3.6.
يستخدم دفتر الملاحظات هذا خدمة البحث عن تحديد الموقع الجغرافي MaxMind GeoLite2 لعناوين IP. لاستخدام خدمة MaxMind GeoLite2 ، ستحتاج إلى مفتاح حساب. يمكنك التسجيل للحصول على حساب مجاني ومفتاح في صفحة الاشتراك في Maxmind.
يستخدم دفتر الملاحظات هذا VirusTotal (VT) كمصدر استخبارات للتهديدات. لاستخدام البحث عن معلومات التهديدات في VirusTotal، ستحتاج إلى حساب VirusTotal ومفتاح واجهة برمجة التطبيقات.
يمكنك الاشتراك للحصول على حساب VT مجاني في صفحة بدء تشغيل VirusTotal. إذا كنت بالفعل من مستخدمي VirusTotal ، فيمكنك استخدام مفتاحك الحالي.
تحذير
إذا كنت تستخدم مفتاح مؤسسة VT، فقم بتخزينه في Azure Key Vault بدلا من ملف msticpyconfig.yaml. لمزيد من المعلومات، راجع تحديد الأسرار كما Key Vault الأسرار في وثائق MSTICPY.
إذا كنت لا ترغب في إعداد Azure Key Vault في الوقت الحالي، فقم بالتسجيل في حساب مجاني واستخدامه حتى تتمكن من إعداد مساحة تخزين Key Vault.
تشغيل دفتر ملاحظات دليل بدء الاستخدام وتهيئته
يوضح هذا الإجراء كيفية تشغيل دفتر الملاحظات وتهيئة MSTICpy.
في Microsoft Sentinel، حدد دفاتر الملاحظات من اليمين.
من علامة التبويب قوالب، حدد دليل بدء الاستخدام لدفاتر ملاحظات> Microsoft Sentinel ML حفظ دفتر الملاحظات لحفظه في مساحة عمل Azure ML.
حدد تشغيل دفتر الملاحظات لتشغيل دفتر الملاحظات. يحتوي دفتر الملاحظات على سلسلة من الخلايا:
- تحتوي خلايا Markdown على نص ورسومات مع إرشادات لاستخدام دفتر الملاحظات
- تحتوي خلايا التعليمات البرمجية على تعليمات برمجية قابلة للتنفيذ تؤدي وظائف دفتر الملاحظات
قراءة خلايا التعليمات البرمجية وتشغيلها
قراءة وتشغيل خلايا التعليمات البرمجية بالترتيب. قد يؤدي تخطي الخلايا أو نفادها من الترتيب إلى حدوث أخطاء لاحقا في دفتر الملاحظات.
قم بتشغيل كل خلية عن طريق تحديد زر التشغيل على يسار كل خلية. اعتمادا على الوظيفة التي يتم تنفيذها، قد يتم تشغيل التعليمة البرمجية الموجودة في الخلية بسرعة كبيرة، أو قد يستغرق الأمر بضع ثوان لإكمالها.
عند التشغيل، يتغير زر التشغيل إلى دوار تحميل، ويتم عرض حالة
Executingفي أسفل الخلية، بالإضافة إلى الوقت المنقضي.تلميح
إذا كان دفتر الملاحظات لا يبدو أنه يعمل كما هو موضح، فأعد تشغيل kernel وقم بتشغيل دفتر الملاحظات من البداية. على سبيل المثال، إذا استغرقت أي خلية في دفتر ملاحظات دليل بدء الاستخدام وقتا أطول من دقيقة لتشغيلها، فحاول إعادة تشغيل kernel وإعادة تشغيل دفتر الملاحظات.
يتضمن دفتر ملاحظات دليل بدء الاستخدام إرشادات للاستخدام الأساسي لدفاتر ملاحظات Jupyter، بما في ذلك إعادة تشغيل نواة Jupyter.
بعد الانتهاء من قراءة الخلايا وتشغيلها في القسم ما هو دفتر ملاحظات Jupyter، تصبح جاهزا لبدء مهام التكوين، بدءا من القسم إعداد بيئة دفتر الملاحظات .
قم بتشغيل خلية التعليمات البرمجية الأولى في القسم إعداد بيئة دفتر الملاحظات في دفتر الملاحظات، والذي يتضمن التعليمة البرمجية التالية:
# 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في الملف لأنك لم تقم بتكوين أي شيء بعد.
ملاحظة
تبدأ معظم دفاتر ملاحظات Microsoft Sentinel بخلية تهيئة MSTICpy التي:
- يحدد الحد الأدنى من إصدارات Python وMSTICPy التي يتطلبها دفتر الملاحظات.
- يضمن تثبيت أحدث إصدار من MSTICPy.
- استيراد الدالة وتشغيلها
init_notebook.
إنشاء ملف التكوين الخاص بك
بعد التهيئة الأساسية ، تكون جاهزا لإنشاء ملف التكوين الخاص بك باستخدام الإعدادات الأساسية للعمل مع MSTICPy.
تتصل العديد من دفاتر ملاحظات Microsoft Sentinel بخدمات خارجية مثل VirusTotal (VT) لجمع البيانات وإثرائها. للاتصال بهذه الخدمات، تحتاج إلى تعيين تفاصيل التكوين وتخزينها، مثل رموز المصادقة. إن وجود هذه البيانات في ملف التكوين الخاص بك يجنبك الاضطرار إلى كتابة رموز المصادقة وتفاصيل مساحة العمل في كل مرة تستخدم فيها دفتر ملاحظات.
يستخدم MSTICPy msticpyconfig.yaml لتخزين مجموعة واسعة من تفاصيل التكوين. بشكل افتراضي، يتم إنشاء ملف msticpyconfig.yaml بواسطة وظيفة تهيئة دفتر الملاحظات. إذا قمت باستنساخ دفتر الملاحظات هذا من مدخل Microsoft Sentinel، تعبئة ملف التكوين ببيانات مساحة عمل Microsoft Sentinel. تتم قراءة هذه البيانات من ملف config.json ، الذي تم إنشاؤه في مساحة عمل Azure ML عند تشغيل دفتر الملاحظات. لمزيد من المعلومات، راجع وثائق تكوين حزمة MSTICPy.
توضح الأقسام التالية كيفية إضافة تفاصيل تكوين إضافية إلى ملف msticpyconfig.yaml.
ملاحظة
إذا قمت بتشغيل دفتر ملاحظات " دليل البدء" مرة أخرى، وكان لديك بالفعل ملف msticpyconfig.yaml تم تكوينه بالحد الأدنى، فلن تقوم الدالة init_notebook بالكتابة فوق الملف الموجود أو تعديله.
تلميح
في أي وقت من الأوقات، حدد القائمة المنسدلة -Help في أداة تكوين MSTICPy لمزيد من الإرشادات والارتباطات إلى الوثائق التفصيلية.
عرض محرر إعدادات MSTICPy
في خلية تعليمات برمجية، قم بتشغيل التعليمة البرمجية التالية لاستيراد
MpConfigEditالأداة وعرض محرر إعدادات لملف msticpyconfig.yaml :from msticpy.config import MpConfigEdit mpedit = MpConfigEdit( "msticpyconfig.yaml") mpedit.set_tab("AzureSentinel") display(mpedit)على سبيل المثال:
يحتوي ملف msticpyconfig.yaml الذي تم إنشاؤه تلقائيا، والموضح في محرر الإعدادات، على إدخالين في قسم Microsoft Sentinel. يتم ملء كل منهما بتفاصيل مساحة عمل Microsoft Sentinel التي تم استنساخ دفتر الملاحظات منها. يحتوي أحد الإدخالين على اسم مساحة العمل الخاصة بك والآخر يسمى افتراضي.
يتيح لك MSTICPy تخزين التكوينات لمساحات عمل Microsoft Sentinel متعددة والتبديل بينها. يسمح لك الإدخال الافتراضي بالمصادقة على مساحة العمل "المنزلية" بشكل افتراضي ، دون الحاجة إلى تسميتها صراحة. إذا قمت بإضافة مساحات عمل إضافية، يمكنك تكوين أي منها ليكون الإدخال الافتراضي .
ملاحظة
في بيئة Azure ML، قد يستغرق محرر الإعدادات من 10 إلى 20 ثانية للظهور.
تحقق من إعداداتك الحالية وحدد حفظ الإعدادات.
إضافة إعدادات موفر معلومات التهديدات
يوضح هذا الإجراء كيفية تخزين مفتاح واجهة برمجة تطبيقات VirusTotal في الملفmsticpyconfig.yaml. يمكنك اختيار تحميل مفتاح واجهة برمجة التطبيقات إلى Azure Key Vault، ولكن يجب عليك تكوين إعدادات Key Vault أولا. لمزيد من المعلومات، راجع تكوين إعدادات Key Vault.
لإضافة تفاصيل VirusTotal في محرر إعدادات MSTICPy:
أدخل التعليمة البرمجية التالية في خلية تعليمات برمجية وقم بتشغيلها:
mpedit.set_tab("TI Providers") mpeditفي علامة التبويب موفرو TI، حدد إضافةprovVirusTotalAdd>>.
ضمن مفتاح المصادقة، حدد نص بجوار خيار التخزين .
في الحقل "القيمة "، الصق مفتاح واجهة برمجة التطبيقات.
حدد تحديث، ثم حدد حفظ الإعدادات في أسفل محرر الإعدادات.
تلميح
لمزيد من المعلومات حول موفري معلومات التهديدات المعتمدين الآخرين، راجع موفري معلومات التهديدات في وثائق MSTICPy وتكامل استخبارات التهديدات في Microsoft Sentinel.
إضافة إعدادات موفر GeoIP
يوضح هذا الإجراء كيفية تخزين مفتاح حساب MaxMind GeoLite2 في الملف msticpyconfig.yaml ، مما يسمح لدفتر الملاحظات باستخدام خدمات البحث عن الموقع الجغرافي لعناوين IP.
لإضافة إعدادات موفر GeoIP في محرر إعدادات MSTICPy:
أدخل التعليمة البرمجية التالية في خلية تعليمات برمجية فارغة وقم بتشغيلها:
mpedit.set_tab("GeoIP Providers") mpeditفي علامة التبويب موفرو GeoIP، حدد إضافةprovGeoIPLiteAdd>>.
في حقل القيمة ، أدخل مفتاح حساب MaxMind.
إذا لزم الأمر، قم بتحديث المجلد الافتراضي ~/.msticpy لتخزين قاعدة بيانات GeoIP التي تم تنزيلها.
- في Windows، يتم تعيين هذا المجلد إلى ٪USERPROFILE٪/.msticpy.
- على Linux أو macOS، يتم تعيين هذا المسار إلى المجلد . msticpy في المجلد الرئيسي.
تلميح
لمزيد من المعلومات حول خدمات البحث عن تحديد الموقع الجغرافي الأخرى المدعومة، راجع وثائق MSTICPy GeoIP Providers.
تكوين إعدادات Azure Cloud
إذا كانت مؤسستك لا تستخدم سحابة Azure العامة، فيجب عليك تحديد ذلك في إعداداتك لمصادقة البيانات واستخدامها بنجاح من Microsoft Sentinel وAzure. لمزيد من المعلومات، راجع تحديد Azure Cloud وطرق مصادقة Azure الافتراضية.
التحقق من صحة الإعدادات
حدد التحقق من صحة الإعدادات في محرر الإعدادات.
من المتوقع إرسال رسائل تحذير حول التكوينات المفقودة، ولكن يجب ألا يكون لديك أي منها لموفر معلومات التهديدات أو إعدادات موفر GeoIP.
استنادا إلى بيئتك، قد تحتاج أيضا إلى تكوين إعدادات Key Vault أو تحديد سحابة Azure.
إذا كنت بحاجة إلى إجراء أية تغييرات بسبب التحقق من الصحة، فقم بإجراء هذه التغييرات ثم حدد حفظ الإعدادات.
عند الانتهاء، حدد الزر إغلاق لإخفاء مخرجات التحقق من الصحة.
لمزيد من المعلومات، راجع: التكوينات المتقدمة لدفاتر ملاحظات Jupyter و MSTICPy في Microsoft Sentinel
تحميل إعدادات MSTICPy المحفوظة
في الإجراء إنشاء ملف التكوين، قمت بحفظ إعداداتك في ملف msticpyconfig.yaml المحلي.
ومع ذلك، لا يقوم MSTICPy تلقائيا بإعادة تحميل هذه الإعدادات حتى تقوم بإعادة تشغيل kernel أو تشغيل دفتر ملاحظات آخر. لإجبار MSTICPy على إعادة التحميل من ملف التكوين الجديد، انتقل إلى خلية التعليمات البرمجية التالية، باستخدام التعليمة البرمجية التالية، وقم بتشغيلها:
import msticpy
msticpy.settings.refresh_config()
اختبار دفتر الملاحظات
الآن بعد أن قمت بتهيئة البيئة الخاصة بك وتكوين الإعدادات الأساسية لمساحة العمل الخاصة بك، استخدم فئة MSTICPy QueryProvider لاختبار دفتر الملاحظات. QueryProvider الاستعلام عن مصدر بيانات، وفي هذه الحالة مساحة عمل Microsoft Sentinel، وإتاحة البيانات التي تم الاستعلام عنها لعرضها وتحليلها في دفتر ملاحظاتك.
استخدم الإجراءات التالية لإنشاء مثيل للفصل الدراسي QueryProvider ، والمصادقة على Microsoft Sentinel من دفتر الملاحظات، وعرض الاستعلامات وتشغيلها باستخدام مجموعة متنوعة من خيارات المعلمات المختلفة.
تلميح
يمكنك الحصول على مثيلات متعددة من التحميل QueryProvider للاستخدام مع مساحات عمل Microsoft Sentinel متعددة أو موفري بيانات آخرين مثل Microsoft Defender لنقطة النهاية.
تحميل موفر الاستعلام
لتحميل QueryProvider ل AzureSentinel، انتقل إلى الخلية باستخدام التعليمة البرمجية التالية وقم بتشغيلها:
# Initialize a QueryProvider for Microsoft Sentinel
qry_prov = QueryProvider("AzureSentinel")
ملاحظة
إذا رأيت تحذيرا Runtime dependency of PyGObject is missing عند تحميل برنامج تشغيل Microsoft Sentinel، فراجع الخطأ: تبعية وقت التشغيل ل PyGObject مفقودة.
لا يؤثر هذا التحذير على وظائف دفتر الملاحظات.
المصادقة إلى مساحة عمل Microsoft Sentinel من دفتر الملاحظات
في دفاتر ملاحظات Azure ML، يتم تعيين المصادقة افتراضيا لاستخدام بيانات الاعتماد التي استخدمتها للمصادقة في مساحة عمل Azure ML.
المصادقة باستخدام الهوية المدارة
قم بتشغيل التعليمة البرمجية التالية للمصادقة على مساحة عمل 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)
يتم عرض إخراج مشابه لما يلي في دفتر ملاحظاتك:
التخزين المؤقت للرمز المميز لتسجيل الدخول باستخدام Azure CLI
لتجنب الاضطرار إلى إعادة المصادقة إذا قمت بإعادة تشغيل kernel أو تشغيل دفاتر ملاحظات أخرى، يمكنك تخزين الرمز المميز لتسجيل الدخول مؤقتا باستخدام Azure CLI.
يقوم مكون Azure CLI الموجود على مثيل Compute بتخزين رمز مميز للتحديث مؤقتا يمكنه إعادة استخدامه حتى انتهاء مهلة الرمز المميز. يستخدم MSTICPy بيانات اعتماد Azure CLI تلقائيا، إذا كانت متوفرة.
للمصادقة باستخدام Azure CLI أدخل ما يلي في خلية فارغة وقم بتشغيلها:
!az login
ملاحظة
ستحتاج إلى إعادة المصادقة إذا قمت بإعادة تشغيل مثيل الحوسبة أو التبديل إلى مثيل مختلف. لمزيد من المعلومات، راجع قسم التخزين المؤقت لبيانات الاعتماد باستخدام Azure CLI في GitHub مستودع Microsoft Sentinel wiki.
عرض مخطط بيانات مساحة عمل Microsoft Sentinel واستعلامات MSTICPy المضمنة
بعد الاتصال بموفر استعلام Microsoft Sentinel، يمكنك فهم أنواع البيانات المتوفرة للاستعلام عن طريق الاستعلام عن مخطط بيانات مساحة عمل Microsoft Sentinel.
يحتوي Microsoft Sentinel QueryProvider على خاصية schema_tables ، تمنحك قائمة بجداول المخططات، وخاصية، تتضمن أيضا أسماء الأعمدة وأنواع schema البيانات لكل جدول.
لعرض أول 10 جداول في مخطط Microsoft 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()علامة استفهام (?) مضمنة كمعلمة. بدلا من ذلك، يمكنك عرض قائمة الاستعلامات والتعليمات المرتبطة بها في مستعرض الاستعلام.
لعرض عينة من الاستعلامات المتوفرة:
انتقل إلى الخلية التالية، باستخدام التعليمة البرمجية التالية، وقم بتشغيلها. يمكنك حذف [::5] قائمة بجميع الاستعلامات.
# Get a sample of available queries
print(qry_prov.list_queries()[::5]) # showing a sample - remove "[::5]" for whole list
يظهر الإخراج التالي:
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']
للحصول على مساعدة حول استعلام عن طريق المرور ? كمعلمة:
# Get help about a query by passing "?" as a parameter
qry_prov.Azure.list_all_signins_geo("?")
يظهر الإخراج التالي:
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)
لعرض كل من الجداول والاستعلامات في قائمة قابلة للتمرير والتصفية:
انتقل إلى الخلية التالية، باستخدام التعليمة البرمجية التالية، وقم بتشغيلها:
qry_prov.browse_queries()
بالنسبة للاستعلام المحدد، يتم عرض جميع المعلمات المطلوبة والاختيارية، بالإضافة إلى النص الكامل للاستعلام. على سبيل المثال:
لمزيد من المعلومات، راجع تشغيل استعلام محدد مسبقا في وثائق MSTICPy.
ملاحظة
على الرغم من أنه لا يمكنك تشغيل الاستعلامات من المستعرض، يمكنك نسخ المثال الموجود في نهاية كل استعلام ولصقه لتشغيله في مكان آخر في دفتر الملاحظات.
تشغيل الاستعلامات باستخدام معلمات الوقت
تتطلب معظم الاستعلامات معلمات زمنية. سلاسل التاريخ / الوقت مملة للكتابة ، ويمكن أن يكون تعديلها في أماكن متعددة عرضة للخطأ.
يحتوي كل موفر استعلام على معلمات وقت البدء والانتهاء الافتراضية للاستعلامات. يتم استخدام معلمات الوقت هذه بشكل افتراضي ، كلما دعت معلمات الوقت إلى ذلك. يمكنك تغيير النطاق الزمني الافتراضي عن طريق فتح query_time عنصر التحكم. تظل التغييرات سارية المفعول حتى تقوم بتغييرها مرة أخرى.
انتقل إلى الخلية التالية، باستخدام التعليمة البرمجية التالية، وقم بتشغيلها:
# Open the query time control for your query provider
qry_prov.query_time
start تعيين والأوقات end حسب الحاجة. على سبيل المثال:
تشغيل استعلام باستخدام النطاق الزمني المضمن
ترجع نتائج الاستعلام كإطار بيانات Pandas، وهو عبارة عن بنية بيانات جدولية، مثل جدول بيانات أو جدول قاعدة بيانات. يمكنك استخدام وظائف الباندا لإجراء تصفية وتحليل إضافيين لنتائج الاستعلام.
تقوم خلية التعليمات البرمجية التالية بتشغيل استعلام باستخدام إعدادات الوقت الافتراضية لموفر الاستعلام. يمكنك تغيير هذا النطاق، وتشغيل خلية التعليمات البرمجية مرة أخرى للاستعلام عن النطاق الزمني الجديد.
# 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()
يعرض الإخراج الصفوف الخمسة الأولى من النتائج. على سبيل المثال:
إذا لم تكن هناك بيانات، عرض عناوين الأعمدة فقط.
تشغيل استعلام باستخدام نطاق زمني مخصص
يمكنك أيضا إنشاء كائن وقت استعلام جديد وتمريره إلى استعلام كمعلمة، مما يسمح لك بتشغيل استعلام لمرة واحدة لنطاق زمني مختلف، دون التأثير على الإعدادات الافتراضية لموفر الاستعلام.
# 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()
يمكنك أيضا تمرير قيم datetime كتواريخ 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 أو العمليات الأخرى بالاستعلامات.
قم بتشغيل خلية التعليمات البرمجية التالية لإضافة إطار بيانات يلخص عدد التنبيهات حسب اسم التنبيه:
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" )تمرير سلسلة استعلام KQL كاملة إلى موفر الاستعلام. يعمل الاستعلام مقابل مساحة العمل المتصلة، وترجع البيانات كإطار بيانات باندا. قم بتشغيل:
# 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())
لمزيد من المعلومات، انظر:
اختبار فيروسات توتال وجيولايت2
للتحقق من وجود عنوان IP في بيانات VirusTotal:
لاستخدام معلومات التهديدات لمعرفة ما إذا كان عنوان 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")
يعرض الإخراج تفاصيل حول النتائج. على سبيل المثال:
تأكد من التمرير لأسفل لعرض النتائج الكاملة. لمزيد من المعلومات، راجع عمليات بحث Intel للتهديدات في MSTICPy.
لاختبار البحث عن عنوان IP لتحديد الموقع الجغرافي:
للحصول على تفاصيل تحديد الموقع الجغرافي لعنوان 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])
يعرض الإخراج معلومات تحديد الموقع الجغرافي لعنوان IP. على سبيل المثال:
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 أولا، في مدخل إدارة KeyVault العمومي في Azure.
الإعدادات المطلوبة هي جميع القيم التي تحصل عليها من مواقع Vault، على الرغم من أن بعضها قد يكون له أسماء مختلفة. على سبيل المثال:
- يظهر VaultName في أعلى يمين شاشة خصائص Azure Key Vault
- يظهر معرف المستأجركمعرف الدليل
- يظهر AzureRegionكموقع
- السلطة هي السحابة لخدمة Azure الخاصة بك.
مطلوب فقط قيم VaultName و TenantID و Authority لاسترداد الأسرار من Vault. هناك حاجة إلى القيم الأخرى إذا اخترت إنشاء مخزن من MSTICPy. لمزيد من المعلومات، راجع تحديد الأسرار كأسرار Key Vault.
يتم تحديد الخيار استخدام KeyRing بشكل افتراضي، ويتيح لك تخزين بيانات اعتماد Key Vault مؤقتا في KeyRing محلي. لمزيد من المعلومات، راجع وثائق KeyRing.
تنبيه
لا تستخدم الخيار استخدام KeyRing إذا كنت لا تثق تماما في حساب المضيف الذي يعمل عليه دفتر الملاحظات.
في حالتنا ، يكون الحساب هو خادم Jupyter hub ، حيث يتم تشغيل نواة الكمبيوتر المحمول ، وليس بالضرورة الجهاز الذي يعمل عليه متصفحك. إذا كنت تستخدم Azure ML، فستكون الحوسبة هي مثيل Azure ML Compute الذي حددته. يقوم Keyring بالتخزين المؤقت على المضيف حيث يتم تشغيل نواة الكمبيوتر المحمول.
لإضافة إعدادات Key Vault في محرر إعدادات MSTICPy:
انتقل إلى الخلية التالية، باستخدام التعليمة البرمجية التالية، وقم بتشغيلها:
mpedit.set_tab("Key Vault") mpeditأدخل تفاصيل Vault الخاصة Key Vault. على سبيل المثال:
حدد حفظ ثم حفظ الإعدادات.
Key Vault الاختبار
لاختبار مخزن المفاتيح الخاص بك، تحقق لمعرفة ما إذا كان يمكنك الاتصال وعرض أسرارك. إذا لم تكن قد أضفت سرا، فلن ترى أي تفاصيل. إذا كنت بحاجة إلى ذلك، فأضف سر اختبار من مدخل Azure Key Vault إلى الخزانة، وتحقق من ظهوره في Microsoft Sentinel.
على سبيل المثال:
mpconfig = MpConfigFile()
mpconfig.refresh_mp_config()
mpconfig.show_kv_secrets()
تنبيه
لا تترك الإخراج معروضا في دفتر الملاحظات المحفوظ. إذا كانت هناك أسرار حقيقية في الإخراج، فاستخدم أمر مسح الإخراج في دفتر الملاحظات قبل حفظ دفتر الملاحظات.
أيضا، احذف النسخ المخزنة مؤقتا من دفتر الملاحظات. على سبيل المثال، ابحث في المجلد الفرعي .ipynb_checkpoints من دليل دفتر الملاحظات، واحذف أي نسخ من دفتر الملاحظات هذا تم العثور عليها. يجب أن يؤدي حفظ دفتر الملاحظات بإخراج تم مسحه إلى الكتابة فوق نسخة نقطة التفتيش.
بعد تهيئة Key Vault، يمكنك استخدام الزر Upload إلى KV في قسمي موفري البيانات وموفري TI لنقل الإعداد المحدد إلى Vault. سيقوم MSTICPy بإنشاء اسم افتراضي للسر استنادا إلى مسار الإعداد، مثل TIProviders-VirusTotal-Args-AuthKey.
إذا تم تحميل القيمة بنجاح، حذف محتويات حقل القيمة في محرر الإعدادات ويتم استبدال الإعداد الأساسي بقيمة عنصر نائب. سيستخدم MSTICPy هذا للإشارة إلى أنه يجب عليه إنشاء مسار Key Vault تلقائيا عند محاولة استرداد المفتاح.
إذا كان لديك بالفعل الأسرار المطلوبة المخزنة في Key Vault فيمكنك إدخال الاسم السري في حقل القيمة. إذا لم يتم تخزين السر في Vault الافتراضي (القيم المحددة في قسم Key Vault)، يمكنك تحديد مسار VaultName/SecretName.
لا يتم حاليا دعم جلب الإعدادات من Vault في مستأجر مختلف. لمزيد من المعلومات، راجع تحديد الأسرار كأسرار Key Vault.
تحديد أساليب مصادقة Azure cloud وAzure
إذا كنت تستخدم سحابة Azure سيادية أو حكومية، بدلا من سحابة Azure العامة أو العالمية، فيجب عليك تحديد السحابة المناسبة في إعداداتك. بالنسبة لمعظم المؤسسات ، تكون السحابة العالمية هي الافتراضية.
يمكنك أيضا استخدام إعدادات Azure هذه لتحديد التفضيلات الافتراضية لنوع مصادقة Azure.
لتحديد أساليب مصادقة Azure cloud وAzure:
انتقل إلى الخلية التالية، باستخدام التعليمة البرمجية التالية، وقم بتشغيلها:
mpedit.set_tab("Azure") mpeditحدد السحابة التي تستخدمها مؤسستك، أو اترك الخيار العمومي الافتراضي المحدد.
حدد طريقة واحدة أو أكثر من الطرق التالية:
- env لتخزين بيانات اعتماد Azure في متغيرات البيئة.
- msi لاستخدام هوية الخدمة المدارة، وهي هوية تم تعيينها للمضيف أو الجهاز الظاهري حيث يتم تشغيل مركز Jupyter. MSI غير معتمد حاليا في مثيلات Azure ML Compute.
- cli لاستخدام بيانات الاعتماد من جلسة عمل Azure CLI مصادق عليها.
- تفاعلي لاستخدام تدفق تخويل الجهاز التفاعلي باستخدام رمز جهاز لمرة واحدة.
تلميح
في معظم الحالات، نوصي باختيار طرق متعددة، مثل كل من cliوالتفاعلية. ستجرب مصادقة Azure كل طريقة من الطرق التي تم تكوينها بالترتيب المذكور أعلاه حتى تنجح إحداها.
حدد حفظ ثم حفظ الإعدادات.
على سبيل المثال:
الخطوات التالية
توضح هذه المقالة أساسيات استخدام MSTICPy مع دفاتر ملاحظات Jupyter في Microsoft Sentinel. لمزيد من المعلومات، راجع التكوينات المتقدمة لدفاتر ملاحظات Jupyter وMSTICPy في Microsoft Sentinel.
يمكنك أيضا تجربة دفاتر الملاحظات الأخرى المخزنة في مستودع GitHub دفاتر ملاحظات Microsoft Sentinel، مثل:
- جولة في ميزات Cybersec
- أمثلة التعلم الآلي
- سلسلة "مستكشف الكيانات" من دفاتر الملاحظات، والتي تسمح بالتنقل العميق في التفاصيل حول المضيف والحساب وعنوان IP والكيانات الأخرى.
تلميح
إذا كنت تستخدم دفتر الملاحظات الموضح في هذا البرنامج التعليمي في بيئة Jupyter أخرى، فيمكنك استخدام أي نواة تدعم Python 3.6 أو إصدار أحدث.
لاستخدام دفاتر ملاحظات MSTICPy خارج Microsoft Sentinel وAzure التعلم الآلي (ML)، ستحتاج أيضا إلى تكوين بيئة Python الخاصة بك. قم بتثبيت Python 3.6 أو إصدار أحدث باستخدام توزيع Anaconda ، والذي يتضمن العديد من الحزم المطلوبة.
مزيد من القراءة على MSTICPy وأجهزة الكمبيوتر المحمولة
يسرد الجدول التالي المزيد من المراجع للتعرف على دفاتر ملاحظات MSTICPy و Microsoft Sentinel و Jupyter.
| الموضوع | المزيد من المراجع |
|---|---|
| MSTICPy | - تكوين حزمة MSTICPy - MSTICPy محرر الإعدادات - تكوين بيئة دفتر الملاحظات. - MPSettingsEditor دفتر الملاحظات. ملاحظة: يحتوي مستودع Azure-Sentinel-Notebooks GitHub أيضا على قالب msticpyconfig.yaml مع أقسام معلقة، مما قد يساعدك على فهم الإعدادات. |
| أجهزة الكمبيوتر المحمولة Microsoft Sentinel و Jupyter | - إنشاء أول دفتر ملاحظات Microsoft Sentinel (سلسلة مدونات) - دفاتر ملاحظات Jupyter: مقدمة - وثائق MSTICPy - وثائق دفاتر ملاحظات Microsoft Sentinel - The Infosec Jupyterbook - لينكس المضيف مستكشف دفتر الملاحظات التجول - لماذا تستخدم Jupyter للتحقيقات الأمنية - تحقيقات الأمان مع دفاتر ملاحظات Microsoft Sentinel & - وثائق الباندا - وثائق بوكيه |