Share via


Microsoft Sentinel'de Jupyter not defterlerini ve MSTICPy'i kullanmaya başlama

Bu makalede, Microsoft Sentinel'de Jupyter not defterlerini çalıştırmak ve basit veri sorguları çalıştırmak için temel yapılandırmaları ayarlayan Microsoft Sentinel ML Not Defterleri için Başlarken Kılavuzu'nun nasıl çalıştırıldığı açıklanır.

Microsoft Sentinel ML Not Defterleri için Başlangıç Kılavuzu not defteri, Microsoft tarafından oluşturulan ve tehdit avcılığı ve araştırma işlevselliği sağlayan Bir Python Siber Güvenlik araçları kitaplığı olan MSTICPy'yi kullanır.

MSTICPy, müşterilerin Microsoft Sentinel için yazması gereken kod miktarını azaltır ve şunları sağlar:

  • Microsoft Sentinel tabloları, Uç Nokta için Microsoft Defender, Splunk ve diğer veri kaynaklarına karşı veri sorgusu özellikleri.
  • VirusTotal ve AlienVault OTX gibi TI sağlayıcılarıyla tehdit bilgileri aramaları.
  • IP adreslerinin coğrafi konumu, Güvenliğin Aşılması Göstergesi (IoC) ayıklaması ve WhoIs aramaları gibi zenginleştirme işlevleri.
  • Olay zaman çizelgelerini, işlem ağaçlarını ve coğrafi eşlemeyi kullanan görselleştirme araçları.
  • Zaman serisi ayrıştırma, anomali algılama ve kümeleme gibi gelişmiş analizler.

Bu makaledeki adımlarda, Microsoft Sentinel aracılığıyla Azure Machine Learning çalışma alanınızda Microsoft Sentinel ML Not Defterleri için Başlarken Kılavuzu'nun nasıl çalıştırıldığı açıklanmaktadır. Bu makaleyi, not defterlerini yerel olarak da dahil olmak üzere diğer ortamlarda çalıştırmak için benzer adımları gerçekleştirmeye yönelik kılavuz olarak da kullanabilirsiniz.

Daha fazla bilgi için bkz. Araştırmalara güç vermek için not defterlerini kullanma ve Güvenlik tehditlerini avlamak için Jupyter not defterlerini kullanma.

Bazı Microsoft Sentinel not defterleri, Kimlik Bilgisi Tarayıcısı not defterleri veya PowerShell ve C# örnekleri gibi MSTICPy kullanmaz. MSTICpy kullanmayan not defterlerinin bu makalede açıklanan MSTICPy yapılandırmasına ihtiyacı yoktur.

Önemli

Microsoft Sentinel, Microsoft Defender portalında birleşik güvenlik işlemleri platformu için genel önizleme kapsamında kullanılabilir. Daha fazla bilgi için Bkz . Microsoft Defender portalında Microsoft Sentinel.

Önkoşullar

Başlamadan önce gerekli izinlere ve kaynaklara sahip olduğunuzdan emin olun.

  • Microsoft Sentinel'de not defterlerini kullanmak için gerekli izinlere sahip olduğunuzdan emin olun. Daha fazla bilgi için bkz . Microsoft Sentinel not defterlerine erişimi yönetme.

  • Bu makaledeki adımları gerçekleştirmek için Python 3.6 veya sonraki bir sürümü gerekir. Azure Machine Learning'de Python 3.8 çekirdeğini (önerilen) veya Python 3.6 çekirdeğini kullanabilirsiniz.

  • Bu not defteri IP adresleri için MaxMind GeoLite2 coğrafi konum arama hizmetini kullanır. MaxMind GeoLite2 hizmetini kullanmak için bir hesap anahtarı gerekir. Maxmind kayıt sayfasında ücretsiz bir hesap ve anahtar için kaydolabilirsiniz.

  • Bu not defteri, tehdit bilgileri kaynağı olarak VirusTotal (VT) kullanır. VirusTotal tehdit bilgileri aramasını kullanmak için bir VirusTotal hesabına ve API anahtarına ihtiyacınız vardır.

    VirusTotal kullanmaya başlama sayfasında ücretsiz bir VT hesabına kaydolabilirsiniz. Zaten bir VirusTotal kullanıcısıysanız mevcut anahtarınızı kullanabilirsiniz.

    Uyarı

    VT kurumsal anahtarı kullanıyorsanız, bunu msticpyconfig.yaml dosyası yerine Azure Key Vault'ta depolayın. Daha fazla bilgi için MSTICPY belgelerindeki Gizli dizileri Key Vault gizli dizileri olarak belirtme bölümüne bakın.

    Şu anda bir Azure Key Vault ayarlamak istemiyorsanız, Key Vault depolama alanı ayarlayana kadar ücretsiz bir hesap için kaydolun ve kullanın.

Başlarken Kılavuzu not defterini çalıştırma ve başlatma

Bu yordamda not defterinizin nasıl başlatıldığı ve MSTICpy'nin nasıl başlatıldığı açıklanır.

  1. Azure portalında Microsoft Sentinel için Tehdit yönetimi'nin altında Not Defterleri'ni seçin.
    Defender portalında Microsoft Sentinel için Microsoft Sentinel>Tehdit yönetimi>Not Defterleri'ni seçin.

  2. Şablonlar sekmesinden Microsoft Sentinel ML Not Defterleri için Başlangıç Kılavuzu'nu seçin.

  3. Şablondan oluştur'u seçin.

  4. Adı düzenleyin ve Azure Machine Learning çalışma alanını uygun şekilde seçin.

  5. Azure Machine Learning çalışma alanınıza kaydetmek için Kaydet'i seçin.

  6. Not defterini çalıştırmak için Not defterini başlat'ı seçin. Not defteri bir dizi hücre içerir:

    • Markdown hücreleri, not defterini kullanma yönergelerini içeren metin ve grafikler içerir
    • Kod hücreleri, not defteri işlevlerini gerçekleştiren yürütülebilir kod içerir
  7. Kod hücrelerini sırayla okuyun ve çalıştırın. Hücrelerin atlanması veya sıranın dışında çalıştırılması, not defterinde daha sonra hatalara neden olabilir.

    Her hücrenin solundaki yürüt düğmesini seçerek her hücreyi çalıştırın. Gerçekleştirilen işleve bağlı olarak, hücredeki kod hızla çalışabilir veya tamamlanması birkaç saniye sürebilir.

    Hücre çalışırken, yürütme düğmesi yükleme değiştiricisine dönüşür ve hücrenin en altında geçen süreyle birlikte durumu Executing görüntülenir.

    Not defteriniz açıklandığı gibi çalışmıyor gibi görünüyorsa çekirdeği yeniden başlatın ve not defterini baştan çalıştırın. Örneğin, Başlangıç Kılavuzu not defterindeki herhangi bir hücrenin çalıştırılması bir dakikadan uzun sürüyorsa çekirdeği yeniden başlatmayı ve not defterini yeniden çalıştırmayı deneyin.

    Başlarken Kılavuzu not defteri, Jupyter çekirdeğini yeniden başlatma dahil olmak üzere Jupyter not defterlerinin temel kullanımına yönelik yönergeler içerir.

    Jupyter Not Defteri Nedir bölümündeki hücreleri okumayı ve çalıştırmayı tamamladıktan sonra, not defteri ortamını ayarlama bölümünden başlayarak yapılandırma görevlerini başlatmaya hazır olursunuz.

  8. Not defterinizin Not defteri ortamını ayarlama bölümünde aşağıdaki kodu içeren ilk kod hücresini çalıştırın:

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

    Başlatma durumu çıktıda gösterilir. Henüz hiçbir şey yapılandırmadığınız için dosyadaki Missing msticpyconfig.yaml eksik ayarlarla ilgili yapılandırma uyarıları beklenir.

Yapılandırma dosyanızı oluşturma

Temel başlatmadan sonra, MSTICPy ile çalışmaya yönelik temel ayarlarla yapılandırma dosyanızı oluşturmaya hazırsınız.

Birçok Microsoft Sentinel not defteri, verileri toplamak ve zenginleştirmek için VirusTotal (VT) gibi dış hizmetlere bağlanır. Bu hizmetlere bağlanmak için kimlik doğrulama belirteçleri gibi yapılandırma ayrıntılarını ayarlamanız ve depolamanız gerekir. Bu verilerin yapılandırma dosyanızda olması, her not defteri kullandığınızda kimlik doğrulama belirteçlerini ve çalışma alanı ayrıntılarını yazmanızı önler.

MSTICPy, çok çeşitli yapılandırma ayrıntılarını depolamak için msticpyconfig.yaml kullanır. Varsayılan olarak, not defteri başlatma işlevi tarafından bir msticpyconfig.yaml dosyası oluşturulur. Bu not defterini Microsoft Sentinel portalından kopyaladıysanız, yapılandırma dosyası Microsoft Sentinel çalışma alanı verileriyle doldurulur. Bu veriler, not defterinizi başlattığınızda Azure Machine Learning çalışma alanında oluşturulan bir config.json dosyasından okunur. Daha fazla bilgi için MSTICPy Paket Yapılandırması belgelerine bakın.

Aşağıdaki bölümlerde msticpyconfig.yaml dosyasına daha fazla yapılandırma ayrıntılarının nasıl ekleneceği açıklanmaktadır.

Başlarken Kılavuzu not defterini yeniden çalıştırırsanız ve zaten minimum düzeyde yapılandırılmış bir msticpyconfig.yaml dosyanız varsa, init_notebook işlev var olan dosyanızın üzerine yazmaz veya dosyayı değiştirmez.

Herhangi bir zamanda, daha fazla yönerge ve ayrıntılı belgelere bağlantılar için MSTICPy yapılandırma aracında -Yardım açılan menüsünü seçin.

MSTICPy ayarları düzenleyicisini görüntüleme

  1. Bir kod hücresinde aşağıdaki kodu çalıştırarak aracı içeri aktarın MpConfigEdit ve msticpyconfig.yaml dosyanız için bir ayar düzenleyicisi görüntüleyin:

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

    Örneğin:

    MSTICPy ayarları düzenleyicisinin ekran görüntüsü.

    Ayarlar düzenleyicisinde gösterilen otomatik olarak oluşturulan msticpyconfig.yaml dosyası, Microsoft Sentinel bölümünde iki girdi içerir. Bunların her ikisi de not defterinin kopyalandığı Microsoft Sentinel çalışma alanının ayrıntılarıyla doldurulur. Girdilerden biri çalışma alanınızın adına, diğeri varsayılan olarak adlandırılır.

    MSTICPy, birden çok Microsoft Sentinel çalışma alanının yapılandırmalarını depolamanıza ve bunlar arasında geçiş yapmanıza olanak tanır. Varsayılan girdi, "home" çalışma alanınızı açıkça adlandırmak zorunda kalmadan varsayılan olarak kimlik doğrulaması yapmanıza olanak tanır. Başka bir çalışma alanı eklerseniz, bunlardan herhangi birini Varsayılan girdi olacak şekilde yapılandırabilirsiniz.

    Azure Machine Learning ortamında ayarlar düzenleyicisinin görünmesi 10-20 saniye sürebilir.

  2. Geçerli ayarlarınızı doğrulayın ve Ayarlar kaydet'i seçin.

Tehdit bilgileri sağlayıcısı ayarları ekleme

Bu yordam, VirusTotal API anahtarınızı msticpyconfig.yaml dosyasında depolamayı açıklar. API anahtarını Azure Key Vault'a yüklemeyi tercih edebilirsiniz, ancak önce Key Vault ayarlarını yapılandırmanız gerekir. Daha fazla bilgi için bkz . Key Vault ayarlarını yapılandırma.

MSTICPy ayarları düzenleyicisine VirusTotal ayrıntılarını eklemek için aşağıdaki adımları tamamlayın.

  1. Bir kod hücresine aşağıdaki kodu girin ve çalıştırın:

    mpedit.set_tab("TI Providers")
    mpedit
    
  2. TI Sağlayıcıları sekmesinde Prov>VirüsToplam>Ekle'yi seçin.

  3. Kimlik Doğrulama Anahtarı'nın altında, Depolama seçeneğinin yanındaki Metin'i seçin.

  4. Değer alanına API anahtarınızı yapıştırın.

  5. Güncelleştir'i ve ardından ayarlar düzenleyicisinin alt kısmındaki Ayarlar kaydet'i seçin.

Desteklenen diğer tehdit bilgileri sağlayıcıları hakkında daha fazla bilgi için MSTICPy belgelerindeki tehdit bilgileri sağlayıcılarına ve Microsoft Sentinel'de tehdit bilgileri tümleştirmesine bakın.

GeoIP sağlayıcı ayarları ekleme

Bu yordamda, not defterinizin IP adresleri için coğrafi konum arama hizmetlerini kullanmasına olanak tanıyan msticpyconfig.yaml dosyasında MaxMind GeoLite2 hesap anahtarının nasıl depolandığı açıklanır.

MSTICPy ayarları düzenleyicisine GeoIP sağlayıcı ayarlarını eklemek için aşağıdaki adımları tamamlayın.

  1. Boş bir kod hücresine aşağıdaki kodu girin ve çalıştırın:

    mpedit.set_tab("GeoIP Providers")
    mpedit
    
  2. GeoIP Sağlayıcıları sekmesinde Prov>GeoIPLite>Ekle'yi seçin.

  3. Değer alanına MaxMind hesap anahtarınızı girin.

  4. Gerekirse, indirilen GeoIP veritabanını depolamak için varsayılan ~/.msticpy klasörünü güncelleştirin.

    • Windows'da, bu klasör %USERPROFILE%/.msticpy ile eşlenir.
    • Linux veya macOS'ta bu yol, giriş klasörünüzdeki .msticpy klasörüne eşlenir.

Desteklenen diğer coğrafi konum arama hizmetleri hakkında daha fazla bilgi için MSTICPy GeoIP Sağlayıcıları belgelerine bakın.

Azure Bulut ayarlarını yapılandırma

Kuruluşunuz Azure genel bulutunu kullanmıyorsa, Microsoft Sentinel ve Azure'daki verilerin kimliğini başarıyla doğrulamak ve kullanmak için ayarlarınızda bunu belirtmeniz gerekir. Daha fazla bilgi için bkz . Azure Bulutu ve varsayılan Azure Kimlik Doğrulaması yöntemlerini belirtme.

Ayarları doğrulama

  1. Ayarlar düzenleyicisinde Ayarları doğrula'yı seçin.

    Eksik yapılandırmalarla ilgili uyarı iletileri beklenir, ancak tehdit bilgileri sağlayıcısı veya GeoIP sağlayıcı ayarları için hiçbir uyarınız olmamalıdır.

  2. Ortamınıza bağlı olarak Key Vault ayarlarını yapılandırmanız veya Azure bulutunu belirtmeniz de gerekebilir.

  3. Doğrulama nedeniyle herhangi bir değişiklik yapmanız gerekiyorsa, bu değişiklikleri yapın ve ardından Ayarlar kaydet'i seçin.

  4. İşiniz bittiğinde, doğrulama çıkışını gizlemek için Kapat düğmesini seçin.

Daha fazla bilgi için bkz. Microsoft Sentinel'de Jupyter not defterleri ve MSTICPy için gelişmiş yapılandırmalar

Kaydedilen MSTICPy ayarlarını yükleme

Yapılandırma dosyanızı oluşturma yordamında, ayarlarınızı yerel msticpyconfig.yaml dosyanıza kaydettiniz.

Ancak, siz çekirdeği yeniden başlatana veya başka bir not defteri çalıştırana kadar MSTICPy bu ayarları otomatik olarak yeniden yüklemez. MSTICPy'yi yeni yapılandırma dosyasından yeniden yüklemeye zorlamak için aşağıdaki kodla sonraki kod hücresine geçin ve çalıştırın:

import msticpy
msticpy.settings.refresh_config()

Not defterinizi test edin

Ortamınızı başlatıp çalışma alanınız için temel ayarları yapılandırdığınıza göre, not defterini test etmek için MSTICPy QueryProvider sınıfını kullanın. QueryProvider bu durumda Microsoft Sentinel çalışma alanınızı sorgular ve sorgulanan verileri not defterinizde görüntülemek ve analiz etmek için kullanılabilir hale getirir.

Sınıfının bir örneğini QueryProvider oluşturmak, not defterinizden Microsoft Sentinel'de kimlik doğrulaması yapmak ve çeşitli parametre seçenekleriyle sorguları görüntülemek ve çalıştırmak için aşağıdaki yordamları kullanın.

Birden çok Microsoft Sentinel çalışma alanıyla veya Uç Nokta için Microsoft Defender gibi diğer veri sağlayıcılarıyla kullanmak üzere birden çok örneğinin QueryProvider yüklenmesini sağlayabilirsiniz.

QueryProvider'i yükleme

için öğesini yüklemek QueryProvider için AzureSentinelaşağıdaki kodla hücreye geçin ve çalıştırın:

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

Microsoft Sentinel sürücüsünü yüklerken bir uyarı Runtime dependency of PyGObject is missing görürseniz Bkz . Hata: PyGObject'in çalışma zamanı bağımlılığı eksik. Bu uyarı not defteri işlevselliğini etkilemez.

Not defterinizden Microsoft Sentinel çalışma alanınızda kimlik doğrulaması yapın

Azure Machine Learning not defterlerinde kimlik doğrulaması varsayılan olarak Azure Machine Learning çalışma alanında kimlik doğrulaması için kullandığınız kimlik bilgilerini kullanır.

Aşağıdaki adımları tamamlayarak yönetilen kimliği kullanarak kimlik doğrulaması yapın.

  1. Sentinel çalışma alanınızda kimlik doğrulaması yapmak için aşağıdaki kodu çalıştırın.

    # 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. Çıktıyı gözden geçirin. Görüntülenen çıkış aşağıdaki görüntüye benzer.

    Bağlı bir iletiyle biten Azure kimlik doğrulamasını gösteren ekran görüntüsü.

Azure CLI kullanarak oturum açma belirtecinizi önbelleğe alma

Çekirdeği yeniden başlatırsanız veya başka bir not defteri çalıştırırsanız yeniden kimlik doğrulaması yapmak zorunda kalmamak için Azure CLI kullanarak oturum açma belirtecinizi önbelleğe alabilirsiniz.

İşlem örneğindeki Azure CLI bileşeni, belirteç zaman aşımına gelene kadar yeniden kullanabileceği bir yenileme belirtecini önbelleğe alır. MSTICPy, varsa Azure CLI kimlik bilgilerini otomatik olarak kullanır.

Azure CLI kullanarak kimlik doğrulaması yapmak için aşağıdaki komutu boş bir hücreye girin ve çalıştırın:

!az login

İşlem örneğinizi yeniden başlatırsanız veya farklı bir örneğe geçerseniz yeniden kimlik doğrulaması yapmanız gerekir. Daha fazla bilgi için Microsoft Sentinel Notebooks GitHub deposu wiki'sindeki Azure CLI ile kimlik bilgilerini Önbelleğe Alma bölümüne bakın.

Microsoft Sentinel çalışma alanı veri şemasını ve yerleşik MSTICPy sorgularını görüntüleme

Bir Microsoft Sentinel QueryProvider'a bağlandıktan sonra, Microsoft Sentinel çalışma alanı veri şemasını sorgulayarak sorgulanabilir veri türlerini anlayabilirsiniz.

Microsoft Sentinel QueryProvider,şema tablolarının listesini ve her tablo için sütun adlarını ve veri türlerini de içeren bir schema özelliğe sahiptirschema_tables.

Microsoft Sentinel şemasındaki ilk 10 tabloyu görüntülemek için:

Aşağıdaki kodla sonraki hücreye geçin ve çalıştırın. Çalışma alanınızdaki tüm tabloları listelemek için öğesini atlayabilirsiniz [: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

Aşağıdaki çıkış görüntülenir:

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

MSTICPy ayrıca çalıştırabileceğiniz birçok yerleşik sorgu içerir. ile .list_queries()kullanılabilir sorguları listeleyin ve sorguyu parametre olarak eklenmiş bir soru işareti (?) ile çağırarak belirli ayrıntıları alın. Alternatif olarak sorgu listesini ve ilişkili yardımı sorgu tarayıcısında görüntüleyebilirsiniz.

Kullanılabilir sorguların bir örneğini görüntülemek için:

  1. Aşağıdaki kodla sonraki hücreye geçin ve çalıştırın. Tüm sorguları listelemek için öğesini atlayabilirsiniz [::5] .

    # Get a sample of available queries
    print(qry_prov.list_queries()[::5])  # showing a sample - remove "[::5]" for whole list
    
  2. Çıktıyı gözden geçirin.

    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. Parametre olarak geçirerek ? sorgu hakkında yardım almak için:

    # Get help about a query by passing "?" as a parameter
    qry_prov.Azure.list_all_signins_geo("?")
    
  4. Çıktıyı gözden geçirin.

    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. Hem tabloları hem de sorguları kaydırılabilir, filtrelenebilir bir listede görüntülemek için aşağıdaki kodla sonraki hücreye geçin ve çalıştırın.

    qry_prov.browse_queries()
    
  6. Seçili sorgu için tüm gerekli ve isteğe bağlı parametreler, sorgunun tam metniyle birlikte görüntülenir. Örneğin:

    Kaydırılabilir, filtrelenebilir bir listede görüntülenen tablo ve sorguların ekran görüntüsü.

Tarayıcıdan sorgu çalıştıramazsınız ancak her sorgunun sonundaki örneği kopyalayıp yapıştırarak not defterinin başka bir yerinde çalıştırabilirsiniz.

Daha fazla bilgi için MSTICPy belgelerinde Önceden tanımlanmış sorgu çalıştırma bölümüne bakın.

Zaman parametreleriyle sorgu çalıştırma

Sorguların çoğu zaman parametreleri gerektirir. Tarih/saat dizelerinin yazılması yorucudur ve bunları birden çok yerde değiştirmek hataya açık olabilir.

Her sorgu sağlayıcısı, sorgular için varsayılan başlangıç ve bitiş saati parametrelerine sahiptir. Zaman parametreleri çağrıldığında bu zaman parametreleri varsayılan olarak kullanılır. Denetimi açarak query_time varsayılan zaman aralığını değiştirebilirsiniz. Siz yeniden değiştirene kadar değişiklikler geçerli kalır.

  1. Aşağıdaki kodla sonraki hücreye geçin ve çalıştırın:

    # Open the query time control for your query provider
    qry_prov.query_time
    
  2. ve end zamanlarını start gerektiği gibi ayarlayın. Örneğin:

    Sorgular için varsayılan zaman parametrelerini ayarlama ekran görüntüsü.

Yerleşik zaman aralığını kullanarak sorgu çalıştırma

Sorgu sonuçları, elektronik tablo veya veritabanı tablosu gibi tablosal bir veri yapısı olan Pandas DataFrame olarak döndürülmektedir. Sorgu sonuçları üzerinde ek filtreleme ve analiz gerçekleştirmek için pandas işlevlerini kullanın.

  1. Aşağıdaki kod hücresini çalıştırın. Sorgu sağlayıcısı varsayılan saat ayarlarını kullanarak bir sorgu çalıştırır. Bu aralığı değiştirebilir ve yeni zaman aralığını sorgulamak için kod hücresini yeniden çalıştırabilirsiniz.

    # 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. Çıktıyı gözden geçirin. Sonuçların ilk beş satırını görüntüler. Örneğin:

    Yerleşik zaman aralığına sahip bir sorgu çalıştırmasının ekran görüntüsü.

    Veri yoksa yalnızca sütun başlıkları görüntülenir.

Özel zaman aralığı kullanarak sorgu çalıştırma

Ayrıca yeni bir sorgu zamanı nesnesi oluşturabilir ve bunu parametre olarak sorguya geçirebilirsiniz. Bu, sorgu sağlayıcısı varsayılanlarını etkilemeden farklı bir zaman aralığı için tek seferlik sorgu çalıştırmanızı sağlar.

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

İstediğiniz zaman aralığını ayarladıktan sonra, aşağıdaki kodu önceki koddan ayrı bir hücrede çalıştırarak zaman aralığını sorgu işlevine geçirebilirsiniz:

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

ayrıca ve end parametrelerini kullanarak start datetime değerlerini Python tarih saatleri veya tarih-saat dizeleri olarak geçirebilirsiniz:

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)

Sorgularınızı özelleştirme

Daha fazla sorgu mantığı ekleyerek yerleşik sorguları özelleştirebilir veya işlevini kullanarak exec_query eksiksiz sorgular çalıştırabilirsiniz.

Örneğin, çoğu yerleşik sorgu, filtreleri veya diğer işlemleri sorgulara eklemek için kullanabileceğiniz parametresini destekler add_query_items .

  1. Uyarı adına göre uyarı sayısını özetleyen bir veri çerçevesi eklemek için aşağıdaki kod hücresini çalıştırın:

    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. Sorgu sağlayıcısına tam bir Kusto Sorgu Dili (KQL) sorgu dizesi geçirin. Sorgu bağlı çalışma alanında çalışır ve veriler panda DataFrame olarak döndürülür. Çalıştır:

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

Daha fazla bilgi için bkz.

Test VirusTotal

  1. VirusTotal verilerinde bir IP adresinin görünüp görünmediğini görmek için tehdit bilgilerini kullanmak için hücreyi aşağıdaki kodla çalıştırın:

    # 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. Çıktıyı gözden geçirin. Örneğin:

    VirusTotal verilerinde görünen bir IP adresinin ekran görüntüsü.

  3. Tam sonuçları görüntülemek için ekranı aşağı kaydırın.

Daha fazla bilgi için bkz . MSTICPy'de Tehdit Intel Aramaları.

Coğrafi konum IP arama sınaması

  1. MaxMind hizmetini kullanarak bir IP adresinin coğrafi konum ayrıntılarını almak için hücreyi aşağıdaki kodla çalıştırın:

    # 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. Çıktıyı gözden geçirin. Örneğin:

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

Bu kodu ilk kez çalıştırdığınızda GeoLite sürücüsünün veritabanını indirdiğini görmeniz gerekir.

Daha fazla bilgi için bkz . MSTICPy GeoIP Sağlayıcıları.

Key Vault ayarlarını yapılandırma

Bu bölüm yalnızca Azure Key Vault'ta gizli dizileri depolarken geçerlidir.

Azure Key Vault'ta gizli dizileri depoladığınızda, önce Azure genel KeyVault yönetim portalında Key Vault'u oluşturmanız gerekir.

Gerekli ayarlar, Kasa özelliklerinden elde ettiğiniz tüm değerlerdir, ancak bazılarında farklı adlar olabilir. Örneğin:

  • VaultName , Azure Key Vault Özellikleri ekranının sol üst kısmında gösterilir
  • TenantId , Dizin Kimliği olarak gösterilir
  • AzureRegion Konum olarak gösterilir
  • Yetkili , Azure hizmetinizin bulutudur.

Kasadan gizli dizileri almak için yalnızca VaultName, TenantId ve Authority değerleri gereklidir. MSTICPy'den kasa oluşturmayı tercih ederseniz diğer değerler gereklidir. Daha fazla bilgi için bkz . Gizli dizileri Key Vault gizli dizileri olarak belirtme.

Anahtarlık Kullan seçeneği varsayılan olarak seçilidir ve Key Vault kimlik bilgilerini yerel bir KeyRing'de önbelleğe almanızı sağlar. Daha fazla bilgi için KeyRing belgelerine bakın.

Dikkat

Not defterinin üzerinde çalıştığı konak İşlem'e tam olarak güvenmiyorsanız KeyRing Kullan seçeneğini kullanmayın.

Bizim örneğimizde işlem, not defteri çekirdeğinin çalıştığı Jupyter hub sunucusudur ve tarayıcınızın üzerinde çalıştığı makine olması gerekmez. Azure ML kullanıyorsanız işlem, seçtiğiniz Azure ML İşlem örneği olacaktır. Anahtarlık, önbelleğe alma işlemini not defteri çekirdeğinin çalıştığı konakta yapar.

MSTICPy ayarları düzenleyicisine Key Vault ayarları eklemek için aşağıdaki adımları tamamlayın.

  1. Aşağıdaki kodla sonraki hücreye geçin ve çalıştırın:

    mpedit.set_tab("Key Vault")
    mpedit
    
  2. Key Vault'unuz için Kasa ayrıntılarını girin. Örneğin:

    Key Vault Kurulumu bölümünün ekran görüntüsü

  3. Kaydet'i ve ardından Ayarlar Kaydet'i seçin.

Key Vault'un testi

Anahtar kasanızı test etmek için gizli dizilerinize bağlanıp bağlanıp bağlanamadığını denetleyin. Gizli dizi eklemediyseniz hiçbir ayrıntı görmezsiniz. Gerekirse Azure Key Vault portalından kasaya bir test gizli dizisi ekleyin ve Bunun Microsoft Sentinel'de gösterilip gösterilmediğini denetleyin.

Örneğin:

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

Dikkat

Kaydedilen not defterinizde görüntülenen çıkışı bırakmayın. Çıktıda gerçek gizli diziler varsa, not defterini kaydetmeden önce not defterinin Çıktıyı temizle komutunu kullanın.

Ayrıca, not defterinin önbelleğe alınmış kopyalarını silin. Örneğin, not defteri dizininizin .ipynb_checkpoints alt klasörüne bakın ve bulunan bu not defterinin kopyalarını silin. Not defterini temizlenmiş bir çıkışla kaydetmek denetim noktası kopyasının üzerine yazmalıdır.

Key Vault yapılandırıldıktan sonra, seçilen ayarı Kasaya taşımak için Veri Sağlayıcısı ve TI Sağlayıcıları bölümlerindeki KV'ye Yükle düğmesini kullanabilirsiniz. MSTICPy, ayarın yoluna göre gizli dizi için varsayılan bir ad oluşturur, örneğin TIProviders-VirusTotal-Args-AuthKey.

Değer başarıyla karşıya yüklenirse, ayarlar düzenleyicisindeki Değer alanının içeriği silinir ve temel ayar bir yer tutucu değerle değiştirilir. MSTICPy, anahtarı almaya çalışırken Key Vault yolunu otomatik olarak oluşturması gerektiğini belirtmek için bu değeri kullanır.

Gerekli gizli diziler zaten bir Key Vault'ta depolanmışsa, gizli dizi adını Değer alanına girebilirsiniz. Gizli dizi varsayılan Kasanızda depolanmazsa (Key Vault bölümünde belirtilen değerler), VaultName/SecretName yolunu belirtebilirsiniz.

Farklı bir kiracıdaki kasadan ayarları getirme işlemi şu anda desteklenmiyor. Daha fazla bilgi için bkz . Gizli dizileri Key Vault gizli dizileri olarak belirtme.

Azure bulutu ve Azure kimlik doğrulama yöntemlerini belirtme

Genel veya genel Azure bulutu yerine bağımsız veya kamu azure bulutu kullanıyorsanız ayarlarınızda uygun bulutu seçmeniz gerekir. Çoğu kuruluş için genel bulut varsayılandır.

Azure kimlik doğrulama türü için varsayılan tercihleri tanımlamak için bu Azure ayarlarını da kullanabilirsiniz.

Azure bulutu ve Azure kimlik doğrulama yöntemlerini belirtmek için aşağıdaki adımları tamamlayın.

  1. Aşağıdaki kodla sonraki hücreye geçin ve çalıştırın:

    mpedit.set_tab("Azure")
    mpedit
    
  2. Kuruluşunuz tarafından kullanılan bulutu seçin veya varsayılan olarak seçilen genel seçeneği değiştirmeyin.

  3. Aşağıdaki yöntemlerden birini veya daha fazlasını seçin:

    • Azure Kimlik Bilgilerinizi ortam değişkenlerinde depolamak için env .
    • msi , Jupyter hub'ın çalıştığı konak veya sanal makineye atanmış bir kimlik olan Yönetilen Hizmet Kimliği'ni kullanmak için kullanılır. MSI şu anda Azure Machine Learning İşlem örneklerinde desteklenmemektedir.
    • cli kullanarak kimliği doğrulanmış bir Azure CLI oturumundaki kimlik bilgilerini kullanabilirsiniz.
    • tek seferlik bir cihaz kodu kullanarak etkileşimli cihaz yetkilendirme akışını kullanmak için etkileşimlidir.

    Çoğu durumda, hem clihem de etkileşimli gibi birden çok yöntem seçmenizi öneririz. Azure kimlik doğrulaması, yapılandırılan yöntemlerin her birini başarılı olana kadar listelenen sırayla dener.

  4. Kaydet'i ve ardından Ayarlar Kaydet'i seçin.

    Örneğin:

    Azure Kamu bulutu için tanımlanan ayarların ekran görüntüsü.

Sonraki adımlar

Bu makalede, Microsoft Sentinel'de Jupyter not defterleriyle MSTICPy kullanmanın temelleri açıklanmıştır. Daha fazla bilgi için bkz . Microsoft Sentinel'de Jupyter not defterleri ve MSTICPy için gelişmiş yapılandırmalar.

Microsoft Sentinel Notebooks GitHub deposunda depolanan diğer not defterlerini de deneyebilirsiniz, örneğin:

Bu makalede açıklanan not defterini başka bir Jupyter ortamında kullanıyorsanız Python 3.6 veya sonraki sürümleri destekleyen herhangi bir çekirdeği kullanabilirsiniz.

MSTICPy not defterlerini Microsoft Sentinel ve Azure Machine Learning (ML) dışında kullanmak için Python ortamınızı da yapılandırmanız gerekir. Python 3.6 veya üzerini gerekli paketlerin çoğunu içeren Anaconda dağıtımıyla yükleyin.

MSTICPy ve not defterleri hakkında daha fazla bilgi

Aşağıdaki tabloda MSTICPy, Microsoft Sentinel ve Jupyter not defterleri hakkında daha fazla bilgi edinmek için daha fazla başvuru listelenmiştir.

Konu Diğer başvurular
MSTICPy - MSTICPy Paket Yapılandırması
- MSTICPy Ayarlar Düzenleyicisi
- Not Defteri ortamınızı yapılandırma.
- MP Ayarlar Editor not defteri.

Not: Azure-Sentinel-Notebooks GitHub deposu, açıklama satırı bölümleri içeren ve ayarları anlamanıza yardımcı olabilecek bir şablon msticpyconfig.yaml dosyası da içerir.
Microsoft Sentinel ve Jupyter not defterleri - İlk Microsoft Sentinel not defterinizi oluşturma (Blog serisi)
- Jupyter Notebooks: Giriş
- MSTICPy belgeleri
- Microsoft Sentinel Not Defterleri belgeleri
- The Infosec Jupyterbook
- Linux Ana Bilgisayar Gezgini Not Defteri kılavuzu
- Güvenlik Araştırmaları için Jupyter neden kullanılır?
- Microsoft Sentinel ve Not Defterleri ile Güvenlik Araştırmaları
- Pandas Belgeleri
- Bokeh Belgeleri