Memulai notebook Jupyter dan MSTICPy di Microsoft Sentinel

Artikel ini menjelaskan cara menjalankan buku catatan Panduan Memulai Untuk Notebooks ML Microsoft Sentinel, yang menyiapkan konfigurasi dasar untuk menjalankan notebook Jupyter di Microsoft Azure Sentinel dan menjalankan kueri data sederhana.

Panduan Memulai untuk Notebooks ML Microsoft Sentinel menggunakan MSTICPy, pustaka Python alat Keamanan cyber yang dibuat oleh Microsoft, yang memberikan fungsi investigasi dan pemburuan ancaman.

MSTICPy mengurangi jumlah kode yang perlu ditulis pelanggan untuk Microsoft Sentinel, dan menyediakan:

  • Kemampuan kueri data, terhadap tabel Microsoft Sentinel, Pertahanan Microsoft untuk Titik Akhir, Splunk, dan sumber data lainnya.
  • Pencarian inteligensi ancaman dengan penyedia TI, seperti VirusTotal dan AlienVault OTX.
  • Fungsi pengayaan seperti geolokasi alamat IP, ekstraksi Indikator Kompromi (IoC), dan pencarian WhoIs.
  • Alat visualisasi menggunakan garis waktu acara, pohon proses, dan pemetaan geografis.
  • Analisis lanjutan, seperti dekomposisi deret waktu, deteksi anomali, dan pengklusteran.

Langkah-langkah dalam artikel ini menjelaskan cara menjalankan buku catatan Panduan Memulai untuk Notebooks ML Microsoft Sentinel di ruang kerja Azure Pembelajaran Mesin Anda melalui Microsoft Azure Sentinel. Anda juga dapat menggunakan artikel ini sebagai panduan untuk melakukan langkah serupa untuk menjalankan buku catatan di lingkungan lain, termasuk secara lokal.

Untuk informasi selengkapnya, lihat Menggunakan notebook untuk mendukung investigasi dan Menggunakan Jupyter notebooks untuk berburu ancaman keamanan.

Beberapa notebook Microsoft Azure Sentinel tidak menggunakan MSTICPy, seperti notebook Credential Scanner , atau contoh PowerShell dan C#. Notebook yang tidak menggunakan MSTICpy tidak memerlukan konfigurasi MSTICPy yang dijelaskan dalam artikel ini.

Penting

Microsoft Azure Sentinel tersedia sebagai bagian dari pratinjau publik untuk platform operasi keamanan terpadu di portal Pertahanan Microsoft. Untuk informasi selengkapnya, lihat Microsoft Azure Sentinel di portal Pertahanan Microsoft.

Prasyarat

Sebelum memulai, pastikan Anda memiliki izin dan sumber daya yang diperlukan.

  • Untuk menggunakan notebook di Microsoft Sentinel, pastikan Anda memiliki izin yang diperlukan. Untuk mengetahui informasi selengkapnya, lihat Mengelola akses ke notebook Microsoft Sentinel.

  • Untuk melakukan langkah-langkah dalam artikel ini, Anda memerlukan Python 3.6 atau yang lebih baru. Di Azure Pembelajaran Mesin, Anda dapat menggunakan kernel Python 3.8 (disarankan) atau kernel Python 3.6.

  • Notebook ini menggunakan layanan pencarian geolokasi MaxMind GeoLite2 untuk alamat IP. Untuk menggunakan layanan MaxMind GeoLite2, Anda memerlukan kunci akun. Anda dapat mendaftar untuk akun gratis dan kunci di halaman pendaftaran Maxmind.

  • Notebook ini menggunakan VirusTotal (VT) sebagai sumber inteligensi ancaman. Untuk menggunakan pencarian inteligensi ancaman VirusTotal, Anda memerlukan akun VirusTotal dan kunci API.

    Anda dapat mendaftarkan akun VT gratis di halaman Memulaic VirusTotal. Jika Anda sudah menjadi pengguna VirusTotal, Anda dapat menggunakan kunci yang ada.

    Peringatan

    Jika Anda menggunakan kunci perusahaan VT, simpan di Azure Key Vault alih-alih file msticpyconfig.yaml. Untuk informasi selengkapnya, lihat Menentukan rahasia sebagai rahasia Key Vault dalam dokumentasi MSTICPY.

    Jika Anda tidak ingin menyiapkan Azure Key Vault sekarang, daftar dan gunakan akun gratis hingga Anda dapat mengatur penyimpanan Key Vault.

Jalankan dan inisialisasi notebook{b>

Prosedur ini menjelaskan cara meluncurkan notebook Anda dan menginisialisasi MSTICpy.

  1. Untuk Microsoft Azure Sentinel di portal Azure, di bawah Manajemen ancaman, pilih Buku Catatan.
    Untuk Microsoft Azure Sentinel di portal Defender, pilih Notebook manajemen>Ancaman Microsoft Sentinel>.

  2. Dari tab Templat , pilih Panduan Memulai Untuk Notebook ML Microsoft Sentinel .

  3. Pilih Buat dari kerangka.

  4. Edit nama dan pilih ruang kerja Azure Pembelajaran Mesin yang sesuai.

  5. Pilih Simpan untuk menyimpannya ke ruang kerja Azure Pembelajaran Mesin Anda.

  6. Pilih Luncurkan notebook untuk menjalankan notebook. Notebook berisi serangkaian sel:

    • Markdown sel berisi teks dan grafik dengan petunjuk untuk menggunakan notebook
    • Sel kode berisi kode yang dapat dieksekusi yang melakukan fungsi buku catatan
  7. Baca dan jalankan sel kode secara berurutan. Melompati sel atau menjalankannya di luar urutan dapat menyebabkan kesalahan nanti di buku catatan.

    Jalankan setiap sel dengan memilih tombol putar di sebelah kiri setiap sel. Bergantung pada fungsi yang sedang dilakukan, kode dalam sel mungkin berjalan dengan cepat, atau mungkin perlu beberapa detik untuk diselesaikan.

    Saat sel berjalan, tombol putar berubah menjadi spinner pemuatan, dan status Executing ditampilkan di bagian bawah sel, bersama dengan waktu yang berlalu.

    Jika notebook Anda tampaknya tidak berfungsi seperti yang dijelaskan, mulai ulang kernel dan jalankan notebook dari awal. Misalnya, jika ada sel di notebook Panduan Memulai membutuhkan waktu lebih dari satu menit untuk dijalankan, coba mulai ulang kernel dan jalankan kembali notebook.

    Notebook Panduan Memulai mencakup petunjuk untuk penggunaan dasar Jupyter notebooks, termasuk memulai ulang kernel Jupyter.

    Setelah Anda selesai membaca dan menjalankan sel di bagian Apa itu Jupyter Notebook , Anda siap untuk memulai tugas konfigurasi, dimulai di bagian Menyiapkan lingkungan buku catatan.

  8. Jalankan sel kode pertama di bagian Menyiapkan lingkungan notebook di notebook Anda, yang mencakup kode berikut:

    # 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)
    

    Status inisialisasi ditunjukkan dalam output. Peringatan konfigurasi tentang pengaturan yang Missing msticpyconfig.yaml hilang dalam file diharapkan karena Anda belum mengonfigurasi apa pun.

Membuat file konfigurasi

Setelah inisialisasi dasar, Anda siap untuk membuat file konfigurasi dengan pengaturan dasar untuk bekerja dengan MSTICPy.

Banyak notebook Microsoft Sentinel terhubung ke layanan eksternal seperti VirusTotal (VT) untuk mengumpulkan dan memperkaya data. Untuk tersambung ke layanan ini, Anda perlu mengatur dan menyimpan detail konfigurasi, seperti token autentikasi. Memiliki data ini di file konfigurasi menghindari kewajiban untuk mengetikkan token autentikasi dan detail ruang kerja setiap kali Anda menggunakan notebook.

MSTICPy menggunakan msticpyconfig.yaml untuk menyimpan berbagai rincian konfigurasi. Secara default, file msticpyconfig.yaml dihasilkan oleh fungsi inisialisasi notebook. Jika Anda mengkloning notebook ini dari portal Microsoft Azure Sentinel, file konfigurasi diisi dengan data ruang kerja Microsoft Azure Sentinel. Data ini dibaca dari file config.json, dibuat di ruang kerja Azure Pembelajaran Mesin saat Anda meluncurkan buku catatan Anda. Untuk informasi selengkapnya, lihat dokumentasi Konfigurasi Paket MSTICPy.

Bagian berikut menjelaskan cara menambahkan lebih banyak detail konfigurasi ke file msticpyconfig.yaml .

Jika Anda menjalankan buku catatan Panduan Memulai lagi, dan sudah memiliki file msticpyconfig.yaml yang dikonfigurasi secara minimal, init_notebook fungsi tidak menimpa atau mengubah file yang sudah ada.

Kapan saja, pilih menu drop-down -Bantuan di alat konfigurasi MSTICPy untuk mendapatkan lebih banyak petunjuk dan tautan ke dokumentasi terperinci.

Menampilkan editor pengaturan MSTICPy

  1. Dalam sel kode, jalankan kode berikut untuk mengimpor alat MpConfigEdit dan menampilkan editor pengaturan untuk file msticpyconfig.yaml Anda:

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

    Contohnya:

    Cuplikan layar editor pengaturan MSTICPy.

    File msticpyconfig.yaml yang dibuat secara otomatis, yang ditampilkan di editor pengaturan, berisi dua entri di bagian Microsoft Sentinel. Keduanya diisi dengan rincian ruang kerja Microsoft Sentinel tempat notebook dikloning. Satu entri memiliki nama ruang kerja Anda dan yang lainnya bernama Default.

    MSTICPy memungkinkan Anda menyimpan konfigurasi untuk beberapa ruang kerja Microsoft Sentinel dan beralih antar ruang kerja. Entri Default memungkinkan Anda mengautentikasi ke ruang kerja "rumah" secara default, tanpa harus menyebutkannya secara eksplisit. Jika Anda menambahkan ruang kerja lain, Anda dapat mengonfigurasi salah satunya menjadi entri Default .

    Di lingkungan Azure Pembelajaran Mesin, editor pengaturan mungkin membutuhkan waktu 10-20 detik untuk muncul.

  2. Verifikasi pengaturan Anda saat ini dan pilih Simpan Pengaturan.

Menambahkan pengaturan penyedia inteligensi ancaman

Prosedur ini menjelaskan cara menyimpan kunci VirusTotal API Anda di file msticpyconfig.yaml. Anda dapat memilih untuk mengunggah kunci API ke Azure Key Vault, tetapi Anda harus mengonfigurasi pengaturan Key Vault terlebih dahulu. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi pengaturan Key Vault.

Untuk menambahkan detail VirusTotal di editor pengaturan MSTICPy, selesaikan langkah-langkah berikut.

  1. Masukkan kode berikut dalam sel kode dan jalankan:

    mpedit.set_tab("TI Providers")
    mpedit
    
  2. Di tab Penyedia TI, pilih Tambahkan penyedia>VirusTotal>Tambahkan.

  3. Di Kunci Auth, pilih Teks di samping opsi Penyimpanan.

  4. Di bidang Nilai, tempelkan tombol API Anda.

  5. Pilih Perbarui, lalu pilih Simpan Pengaturan di bagian bawah editor pengaturan.

Untuk mengetahui informasi selengkapnya tentang penyedia inteligensi ancaman lain yang didukung, lihat Penyedia inteligensi ancaman dalam dokumentasi MSTICPy dan Integrasi inteligensi ancaman di Microsoft Sentinel.

Menambahkan pengaturan penyedia GeoIP

Prosedur ini menjelaskan cara menyimpan kunci akun MaxMind GeoLite2 di file msticpyconfig.yaml, yang memungkinkan notebook menggunakan layanan pencarian geolokasi untuk alamat IP.

Untuk menambahkan pengaturan penyedia GeoIP di editor pengaturan MSTICPy, selesaikan langkah-langkah berikut.

  1. Masukkan kode berikut dalam sel kode kosong dan jalankan:

    mpedit.set_tab("GeoIP Providers")
    mpedit
    
  2. Di tab Penyedia GeoIP, pilih Tambahkan penyedia>GeoIPLite>Tambahkan.

  3. Di bidang Nilai, masukkan kunci akun MaxMind Anda.

  4. Jika diperlukan, perbarui folder ~/.msticpy default untuk menyimpan database GeoIP yang diunduh.

    • Pada Windows, folder ini dipetakan ke %USERPROFILE%/.msticpy.
    • Di Linux atau macOS, jalur ini dipetakan ke folder .msticpy di folder rumah Anda.

Untuk informasi selengkapnya tentang layanan pencarian geolokasi yang didukung lainnya, lihat dokumentasi Penyedia GeoIP MSTICPy.

Mengonfigurasi pengaturan Azure Cloud

Jika organisasi Anda tidak menggunakan cloud publik Azure, Anda harus menentukannya di pengaturan agar berhasil mengautentikasi dan menggunakan data dari Microsoft Sentinel dan Azure. Untuk informasi selengkapnya, lihat Menentukan Azure Cloud dan metode Azure Authentication default.

Memvalidasi pengaturan

  1. Pilih Validasi pengaturan di editor pengaturan.

    Pesan peringatan tentang konfigurasi yang hilang diharapkan akan muncul, tetapi seharusnya Anda tidak menerimanya untuk penyedia inteligensi ancaman atau pengaturan penyedia GeoIP.

  2. Bergantung pada lingkungan Anda, Anda mungkin juga perlu Mengonfigurasi pengaturan Key Vault atau Menentukan cloud Azure.

  3. Jika Anda perlu membuat perubahan apa pun karena validasi, buat perubahan tersebut lalu pilih Simpan Pengaturan.

  4. Setelah selesai, pilih tombol Tutup untuk menyembunyikan output validasi.

Untuk mengetahui informasi selengkapnya, lihat: Konfigurasi tingkat lanjut untuk notebook Jupyter dan MSTICPy di Microsoft Sentinel

Memuat setelan MSTICPy yang disimpan

Dalam prosedur Buat file konfigurasi, Anda menyimpan pengaturan Anda ke file msticpyconfig.yaml lokal.

Namun, MSTICPy tidak secara otomatis memuat ulang pengaturan ini sampai Anda menghidupkan ulang kernel atau menjalankan notebook lain. Untuk memaksa MSTICPy memuat ulang dari file konfigurasi baru, lanjutkan ke sel kode berikutnya, dengan kode berikut, dan jalankan:

import msticpy
msticpy.settings.refresh_config()

Menguji notebook Anda

Sekarang setelah Anda menginisialisasi lingkungan Anda dan mengonfigurasi pengaturan dasar untuk ruang kerja Anda, gunakan kelas MSTICPy QueryProvider untuk menguji buku catatan. QueryProvider mengkueri sumber data, dalam hal ini, ruang kerja Microsoft Azure Sentinel Anda, dan membuat data yang dikueri tersedia untuk ditampilkan dan dianalisis di buku catatan Anda.

Gunakan prosedur berikut untuk membuat instans QueryProvider kelas, mengautentikasi ke Microsoft Sentinel dari buku catatan Anda, dan menampilkan dan menjalankan kueri dengan berbagai opsi parameter yang berbeda.

Anda dapat membuat beberapa instans QueryProvider dimuat untuk digunakan dengan beberapa ruang kerja Microsoft Sentinel atau penyedia data lainnya seperti Pertahanan Microsoft untuk Titik Akhir.

Memuat QueryProvider

Untuk memuat QueryProvider untuk AzureSentinel, lanjutkan ke sel dengan kode berikut dan jalankan:

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

Jika Anda melihat peringatan Runtime dependency of PyGObject is missing saat memuat driver Microsoft Sentinel, lihat Kesalahan: Dependensi runtime PyGObject hilang. Peringatan ini tidak memengaruhi fungsionalitas notebook.

Mengautentikasi ke ruang kerja Microsoft Sentinel dari notebook Anda

Di Azure Pembelajaran Mesin notebook, autentikasi default menggunakan kredensial yang Anda gunakan untuk mengautentikasi ke ruang kerja Azure Pembelajaran Mesin.

Autentikasi dengan menggunakan identitas terkelola dengan menyelesaikan langkah-langkah berikut.

  1. Jalankan kode berikut untuk mengautentikasi ke ruang kerja Sentinel Anda.

    # 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. Tinjau output. Output yang ditampilkan mirip dengan gambar berikut.

    Cuplikan layar yang memperlihatkan autentikasi ke Azure yang diakhir dengan pesan tersambung.

Cache token masuk Anda menggunakan Azure CLI

Untuk menghindari kewajiban untuk mengautentikasi ulang jika Anda menghidupkan ulang kernel atau menjalankan notebook lain, Anda dapat melakukan proses caching token masuk menggunakan Azure CLI.

Komponen Azure CLI pada instans Compute menyimpan token refresh yang dapat digunakan kembali sampai waktu token habis. MSTICPy secara otomatis menggunakan info masuk Azure CLI, jika tersedia.

Untuk mengautentikasi menggunakan Azure CLI, masukkan perintah berikut ke dalam sel kosong dan jalankan:

!az login

Anda perlu mengautentikasi ulang jika memulai ulang instans Komputasi atau beralih ke instans yang berbeda. Untuk mengetahui informasi selengkapnya, lihat bagian Info masuk penembolokan dengan Azure CLI di wiki repositori GitHub Notebooks Microsoft Sentinel.

Melihat skema data ruang kerja Microsoft Sentinel dan kueri MSTICPy bawaan

Setelah tersambung ke Microsoft Sentinel QueryProvider, Anda dapat memahami jenis data yang tersedia untuk kueri dengan mengkueri skema data ruang kerja Microsoft Sentinel.

Microsoft Sentinel QueryProvider memiliki properti schema_tables, yang memberi Anda daftar tabel skema, dan properti schema, yang juga mencakup nama kolom dan jenis data untuk setiap tabel.

Untuk melihat 10 tabel pertama dalam skema Microsoft Sentinel:

Lanjutkan ke sel berikutnya, dengan kode berikut, dan jalankan. Anda dapat menghilangkan [:10] untuk mendaftar semua tabel di ruang kerja Anda.

# 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

Output berikut muncul:

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

MSTICPy juga mencakup banyak kueri bawaan yang tersedia untuk Anda jalankan. Daftar kueri yang tersedia dengan .list_queries(), dan dapatkan rincian spesifik tentang kueri dengan memanggilnya dengan tanda tanya (?) disertakan sebagai parameter. Atau, Anda dapat melihat daftar kueri dan bantuan terkait di browser kueri.

Untuk melihat sampel kueri yang tersedia:

  1. Lanjutkan ke sel berikutnya, dengan kode berikut, dan jalankan. Anda dapat menghilangkan [::5] untuk mendaftar semua kueri.

    # Get a sample of available queries
    print(qry_prov.list_queries()[::5])  # showing a sample - remove "[::5]" for whole list
    
  2. Tinjau output.

    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. Untuk mendapatkan bantuan tentang kueri dengan meneruskan ? sebagai parameter:

    # Get help about a query by passing "?" as a parameter
    qry_prov.Azure.list_all_signins_geo("?")
    
  4. Tinjau output.

    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. Untuk menampilkan tabel dan kueri dalam daftar yang dapat digulir dan dapat difilter, lanjutkan ke sel berikutnya, dengan kode berikut, dan jalankan.

    qry_prov.browse_queries()
    
  6. Untuk kueri yang dipilih, semua parameter yang diperlukan dan opsional ditampilkan, bersama dengan teks lengkap kueri. Contohnya:

    Cuplikan layar tabel dan kueri yang ditampilkan dalam daftar yang dapat difilter dan dapat difilter.

Meskipun Anda tidak dapat menjalankan kueri dari browser, Anda dapat menyalin dan menempelkan contoh di akhir setiap kueri untuk dijalankan di tempat lain di notebook.

Untuk informasi selengkapnya, lihat Menjalankan kueri yang telah ditentukan sebelumnya dalam dokumentasi MSTICPy.

Menjalankan kueri dengan parameter waktu

Sebagian besar kueri memerlukan parameter waktu. String tanggal/waktu membosankan untuk diketik, dan memodifikasinya di beberapa tempat dapat rawan kesalahan.

Setiap penyedia kueri memiliki parameter waktu mulai dan akhir default untuk kueri. Parameter waktu ini digunakan secara default, setiap kali parameter waktu dipanggil. Anda dapat mengubah rentang waktu default dengan membuka kontrol query_time. Perubahan tetap berlaku hingga Anda mengubahnya lagi.

  1. Lanjutkan ke sel berikutnya, dengan kode berikut, dan jalankan:

    # Open the query time control for your query provider
    qry_prov.query_time
    
  2. Atur waktu start dan end sesuai kebutuhan. Contohnya:

    Cuplikan layar pengaturan parameter waktu default untuk kueri.

Menjalankan kueri menggunakan rentang waktu bawaan

Hasil kueri kembali sebagai Pandas DataFrame, yang merupakan struktur data tabular, seperti spreadsheet atau tabel database. Gunakan fungsi panda untuk melakukan pemfilteran dan analisis ekstra pada hasil kueri.

  1. Jalankan sel kode berikut. Ini menjalankan kueri menggunakan pengaturan waktu default penyedia kueri. Anda dapat mengubah rentang ini, dan menjalankan sel kode lagi untuk melakukan kueri untuk rentang waktu baru.

    # 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. Tinjau output. Ini menampilkan lima baris pertama hasil. Contohnya:

    Cuplikan layar kueri yang dijalankan dengan rentang waktu bawaan.

    Jika tidak ada data, hanya judul kolom yang ditampilkan.

Menjalankan kueri menggunakan rentang waktu kustom

Anda juga dapat membuat objek waktu kueri baru dan meneruskannya ke kueri sebagai parameter. Hal ini memungkinkan Anda menjalankan kueri satu kali untuk rentang waktu yang berbeda, tanpa memengaruhi default penyedia kueri.

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

Setelah Anda mengatur rentang waktu yang diinginkan, Anda dapat meneruskan rentang waktu ke fungsi kueri, menjalankan kode berikut dalam sel terpisah dari kode sebelumnya:

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

Anda juga dapat melewati nilai tanggalwaktu sebagai tanggal Python atau string tanggal-waktu menggunakan parameter start dan 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)

Mengkustomisasi kueri Anda

Anda dapat mengkustomisasi kueri bawaan dengan menambahkan lebih banyak logika kueri, atau menjalankan kueri lengkap menggunakan fungsi .exec_query

Misalnya, sebagian besar kueri bawaan mendukung parameter add_query_items, yang dapat Anda gunakan untuk menambahkan filter atau operasi lain ke kueri.

  1. Jalankan sel kode berikut untuk menambahkan bingkai data yang merangkum jumlah pemberitahuan berdasarkan nama pemberitahuan:

    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. Teruskan string kueri Bahasa Kueri Kusto lengkap (KQL) ke penyedia kueri. Kueri berjalan terhadap ruang kerja yang tersambung, dan data kembali sebagai panda DataFrame. Jalankan:

    # 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())
    
    

Untuk informasi selengkapnya, lihat:

Uji VirusTotal

  1. Guna menggunakan inteligensi ancaman untuk melihat jika alamat IP muncul dalam data VirusTotal, jalankan sel dengan kode berikut:

    # 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. Tinjau output. Contohnya:

    Cuplikan layar alamat IP yang muncul di data VirusTotal.

  3. Gulir ke bawah untuk melihat hasil lengkap.

Untuk informasi selengkapnya, lihat Pencarian Inteligensi Ancaman di MSTICPy.

Uji pencarian IP geolokasi

  1. Untuk mendapatkan detail geolokasi untuk alamat IP menggunakan layanan MaxMind, jalankan sel dengan kode berikut:

    # 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. Tinjau output. Contohnya:

    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()}
    

Pertama kali Anda menjalankan kode ini, Anda akan melihat driver GeoLite mengunduh database-nya.

Untuk informasi selengkapnya, lihat Penyedia GeoIP MSTICPy.

Mengonfigurasikan pengaturan Key Vault

Bagian ini hanya relevan saat menyimpan rahasia di Azure Key Vault.

Saat menyimpan rahasia di Azure Key Vault, Anda perlu membuat Key Vault terlebih dahulu di portal manajemen KeyVault global Azure.

Pengaturan yang diperlukan adalah semua nilai yang Anda dapatkan dari properti Vault, meskipun beberapa mungkin memiliki nama yang berbeda. Contohnya:

  • VaultName ditampilkan di kiri atas layar Properti Azure Key Vault
  • TenantId ditampilkan sebagai ID Direktori
  • AzureRegion ditampilkan sebagai Lokasi
  • Authority adalah cloud untuk layanan Azure Anda.

Hanya nilai VaultName, TenantId, dan Authority yang diperlukan untuk mengambil rahasia dari Vault. Nilai-nilai lain diperlukan jika Anda memilih untuk membuat vault dari MSTICPy. Untuk informasi selengkapnya, lihat Menentukan rahasia sebagai rahasia Key Vault.

Opsi Gunakan KeyRing dipilih secara default dan memungkinkan Anda menyimpan info masuk Key Vault di KeyRing lokal. Untuk informasi selengkapnya, lihat dokumentasi KeyRing.

Perhatian

Jangan gunakan opsi Gunakan KeyRing jika Anda tidak sepenuhnya memercayai host Compute tempat notebook dijalankan.

Dalam kasus kami, compute adalah server hub Jupyter, tempat kernel notebook berjalan, dan belum tentu merupakan mesin tempat browser Anda berjalan. Jika Anda menggunakan Azure ML, compute akan menjadi instans Azure ML Compute yang telah Anda pilih. Keyring melakukan penembolokan pada host tempat kernel notebook berjalan.

Untuk menambahkan pengaturan Key Vault di editor pengaturan MSTICPy, selesaikan langkah-langkah berikut.

  1. Lanjutkan ke sel berikutnya, dengan kode berikut, dan jalankan:

    mpedit.set_tab("Key Vault")
    mpedit
    
  2. Masukkan detail Vault untuk Key Vault Anda. Contohnya:

    Cuplikan layar bagian Penyetelan Key Vault

  3. Pilih Simpan lalu Simpan Pengaturan.

Menguji Key Vault

Untuk menguji brankas kunci Anda, periksa untuk melihat jika Anda dapat tersambung dan melihat rahasia Anda. Jika Anda tidak menambahkan rahasia, Anda tidak melihat detail apa pun. Jika perlu, tambahkan rahasia uji dari portal Azure Key Vault ke vault, dan periksa jika rahasia ditampilkan di Microsoft Sentinel.

Contohnya:

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

Perhatian

Jangan tinggalkan output yang ditampilkan di notebook tersimpan. Jika ada rahasia nyata dalam output, gunakan perintah Clear output notebook sebelum menyimpan notebook.

Selain itu, hapus salinan cache dari notebook. Misalnya, lihat di subfolder .ipynb_checkpoints direktori notebook dan hapus salinan notebook yang ditemukan. Menyimpan notebook dengan output yang dibersihkan akan menimpa salinan titik pemeriksaan.

Setelah Anda mengonfigurasi Key Vault, Anda dapat menggunakan tombol Upload ke KV di bagian Penyedia Data dan Penyedia TI untuk memindahkan pengaturan yang dipilih ke Vault. MSTICPy menghasilkan nama default untuk rahasia berdasarkan jalur pengaturan, seperti TIProviders-VirusTotal-Args-AuthKey.

Jika nilai berhasil diunggah, isi bidang Nilai di editor pengaturan dihapus dan pengaturan yang mendasarinya diganti dengan nilai tempat penampung. MSTICPy menggunakan nilai ini untuk menunjukkan bahwa ia harus secara otomatis menghasilkan jalur Key Vault saat mencoba mengambil kunci.

Jika Anda sudah memiliki rahasia yang diperlukan yang disimpan di Key Vault, Anda dapat memasukkan nama rahasia di bidang Nilai . Jika rahasia tidak disimpan di Vault default Anda (nilai yang ditentukan di bagian Key Vault ), Anda dapat menentukan jalur VaultName/SecretName.

Mengambil pengaturan dari Vault di penyewa lain saat ini tidak didukung. Untuk informasi selengkapnya, lihat Menentukan rahasia sebagai rahasia Key Vault.

Menentukan metode autentikasi Azure cloud dan Azure

Jika Anda menggunakan cloud Azure berdaulat atau pemerintah, bukan cloud Azure publik atau global, Anda harus memilih cloud yang sesuai di pengaturan Anda. Untuk sebagian besar organisasi, cloud global adalah default.

Anda juga dapat menggunakan pengaturan Azure ini untuk menentukan preferensi default untuk jenis autentikasi Azure.

Untuk menentukan metode autentikasi Azure cloud dan Azure, selesaikan langkah-langkah berikut.

  1. Lanjutkan ke sel berikutnya, dengan kode berikut, dan jalankan:

    mpedit.set_tab("Azure")
    mpedit
    
  2. Pilih cloud yang digunakan oleh organisasi Anda, atau tinggalkan opsi global yang dipilih default.

  3. Coba satu atau beberapa hal berikut ini:

    • env untuk menyimpan Info Masuk Azure dalam variabel lingkungan.
    • msi menggunakan Identitas Layanan Terkelola, yang merupakan identitas yang ditugaskan ke host atau mesin virtual tempat hub Jupyter berjalan. MSI saat ini tidak didukung di instans Azure Pembelajaran Mesin Compute.
    • cli untuk menggunakan info masuk dari sesi Azure CLI yang diautentikasi.
    • interaktif untuk menggunakan aliran otorisasi perangkat interaktif menggunakan kode perangkat satu kali.

    Dalam kebanyakan kasus, kami sarankan memilih beberapa metode, seperti cli dan interaktif. Autentikasi Azure mencoba setiap metode yang dikonfigurasi dalam urutan yang tercantum hingga berhasil.

  4. Pilih Simpan lalu Simpan Pengaturan.

    Contohnya:

    Cuplikan layar pengaturan yang ditentukan untuk cloud Azure Government.

Langkah berikutnya

Artikel ini menjelaskan dasar-dasar penggunaan MSTICPy dengan notebook Jupyter di Microsoft Sentinel. Untuk mengetahui informasi selengkapnya, lihat: Konfigurasi tingkat lanjut untuk notebook Jupyter dan MSTICPy di Microsoft Sentinel.

Anda juga dapat mencoba notebook lain yang disimpan di repositori GitHub Notebooks Microsoft Sentinel, seperti:

Jika Anda menggunakan buku catatan yang dijelaskan dalam artikel ini di lingkungan Jupyter lain, Anda bisa menggunakan kernel apa pun yang mendukung Python 3.6 atau yang lebih baru.

Untuk menggunakan notebook MSTICPy di luar Microsoft Sentinel dan Azure Pembelajaran Mesin (ML), Anda juga perlu mengonfigurasi lingkungan Python Anda. Pasang Python 3.6 atau yang lebih baru dengan distribusi Anaconda, yang mencakup banyak paket yang diperlukan.

Bacaan selengkapnya tentang MSTICPy dan notebook

Tabel berikut mencantumkan lebih banyak referensi untuk mempelajari tentang MSTICPy, Microsoft Sentinel, dan notebook Jupyter.

Subjek Referensi lainnya
MSTICPy - Konfigurasi Paket MSTICPy
- Editor Pengaturan MSTICPy
- Mengonfigurasi Lingkungan Notebook Anda.
- Notebook MPSettingsEditor.

Catatan:Repositori GitHub Azure-Sentinel-Notebooks juga berisi file msticpyconfig.yaml templat dengan bagian yang dikomentari, yang mungkin membantu Anda memahami pengaturan.
Microsoft Azure Sentinel dan notebook Jupyter - Membuat notebook Microsoft Sentinel pertama Anda (Seri blog)
- Jupyter Notebook: Pengantar
- Dokumentasi MSTICPy
- Dokumentasi Notebooks Microsoft Azure Sentinel
- Infosec Jupyterbook
- Panduan Linux Host Explorer Notebook
- Mengapa menggunakan Jupyter untuk Investigasi Keamanan
- Investigasi Keamanan dengan Microsoft Azure Sentinel & Notebooks
- Dokumentasi Pandas
- Dokumentasi Bokeh