Aracılığıyla paylaş


ArcSight algılama kurallarını Microsoft Sentinel'e geçirme

Bu makalede ArcSight algılama kurallarınızı tanımlama, karşılaştırma ve Microsoft Sentinel analiz kurallarına geçirme işlemleri açıklanmaktadır.

Kuralları tanımlama ve geçirme

Microsoft Sentinel, yüksek kaliteli ve eyleme dönüştürülebilir olaylar oluşturmak için makine öğrenmesi analizini kullanır ve mevcut algılamalarınızdan bazıları Microsoft Sentinel'de yedekli olabilir. Bu nedenle tüm algılama ve analiz kurallarınızı körü körüne geçirmeyin. Mevcut algılama kurallarınızı tanımlarken bu noktaları gözden geçirin.

  • İş önceliğini ve verimliliğini göz önünde bulundurarak kural geçişine gerekçe gösteren kullanım örneklerini seçtiğinizden emin olun.
  • Microsoft Sentinel kural türlerini anlayıp anlamadığınızı denetleyin.
  • Kural terminolojisini anlayıp anlamadığınızı denetleyin.
  • Son 6-12 ay içinde uyarı tetiklemeyecek kuralları gözden geçirin ve hala uygun olup olmadığını belirleyin.
  • Düzenli olarak yoksaydığınız düşük düzeyli tehditleri veya uyarıları ortadan kaldırın.
  • Mevcut işlevleri kullanın ve Microsoft Sentinel'in yerleşik analiz kurallarının geçerli kullanım örneklerinize uygun olup olmadığını denetleyin. Microsoft Sentinel yüksek aslına uygun ve eyleme dönüştürülebilir olaylar üretmek için makine öğrenmesi analizini kullandığından, mevcut algılamalarınızdan bazılarının artık gerekli olmayacağından büyük olasılıkla.
  • Bağlı veri kaynaklarını onaylayın ve veri bağlantısı yöntemlerinizi gözden geçirin. Algılamayı planladığınız kullanım örnekleri arasında veri derinliği ve genişliği sağlamak için veri toplama konuşmalarını yeniden ziyaret edin.
  • Kurallarınızın kullanılabilir olup olmadığını denetlemek için SOC Prime Tehdit Algılama Marketi gibi topluluk kaynaklarını keşfedin.
  • Uncoder.io gibi bir çevrimiçi sorgu dönüştürücüsünüzün kurallarınız için çalışıp çalışmayacağını göz önünde bulundurun.
  • Kurallar kullanılamıyorsa veya dönüştürülemiyorsa, KQL sorgusu kullanılarak el ile oluşturulması gerekir. Yeni sorgular oluşturmak için kural eşlemesini gözden geçirin.

Algılama kurallarını geçirmek için en iyi yöntemler hakkında daha fazla bilgi edinin.

Analiz kurallarınızı Microsoft Sentinel'e geçirmek için:

  1. Geçirmek istediğiniz her kural için bir test sisteminiz olduğunu doğrulayın.

    1. Tam test senaryoları ve betikler de dahil olmak üzere geçirilen kurallarınız için bir doğrulama işlemi hazırlayın.

    2. Ekibinizin geçirilen kurallarınızı test etmek için yararlı kaynaklara sahip olduğundan emin olun.

    3. Gerekli veri kaynaklarının bağlı olduğunu onaylayın ve veri bağlantısı yöntemlerinizi gözden geçirin.

  2. Algılamalarınızın Microsoft Sentinel'de yerleşik şablonlar olarak kullanılabilir olup olmadığını doğrulayın:

    • Yerleşik kurallar yeterliyse, kendi çalışma alanınız için kurallar oluşturmak için yerleşik kural şablonlarını kullanın.

      Microsoft Sentinel'de Yapılandırma > Analizi > Kuralı şablonları sekmesine gidin ve ilgili analiz kurallarını oluşturup güncelleştirin.

      Daha fazla bilgi için bkz . Tehditleri kullanıma hazır olarak algılama.

    • Microsoft Sentinel'in yerleşik kuralları kapsamında olmayan algılamalarınız varsa sorgularınızı KQL'ye dönüştürmek için Uncoder.io gibi çevrimiçi bir sorgu dönüştürücü deneyin.

      Tetikleyici koşulu ve kural eylemini belirleyin ve ardından KQL sorgunuzu oluşturun ve gözden geçirin.

    • Yerleşik kurallar veya çevrimiçi kural dönüştürücü yeterli değilse, kuralı el ile oluşturmanız gerekir. Böyle durumlarda, kuralınızı oluşturmaya başlamak için aşağıdaki adımları kullanın:

      1. Kuralınızda kullanmak istediğiniz veri kaynaklarını belirleyin. Sorgulamak istediğiniz tabloları tanımlamak için Microsoft Sentinel'deki veri kaynakları ve veri tabloları arasında bir eşleme tablosu oluşturmak isteyeceksiniz.

      2. Verilerinizde kurallarınızda kullanmak istediğiniz öznitelikleri, alanları veya varlıkları tanımlayın.

      3. Kural ölçütlerinizi ve mantığınızı tanımlayın. Bu aşamada, KQL sorgularınızı oluşturmak için örnek olarak kural şablonlarını kullanmak isteyebilirsiniz.

        Filtreleri, bağıntı kurallarını, etkin listeleri, başvuru kümelerini, izleme listelerini, algılama anomalilerini, toplamaları vb. göz önünde bulundurun. Sorgu söz diziminizi en iyi şekilde eşlemeyi anlamak için eski SIEM'iniz tarafından sağlanan başvuruları kullanabilirsiniz.

      4. Tetikleyici koşulu ve kural eylemini belirleyin ve ardından KQL sorgunuzu oluşturun ve gözden geçirin. Sorgunuzu gözden geçirirken KQL iyileştirme kılavuzu kaynaklarını göz önünde bulundurun.

  3. Kuralı ilgili kullanım örneklerinizin her biriyle test edin. Beklenen sonuçları sağlamıyorsa KQL'yi gözden geçirip yeniden test etmek isteyebilirsiniz.

  4. Memnun olduğunuzda kuralın geçirildiğinden emin olabilirsiniz. Kural eyleminiz için gerektiğinde bir playbook oluşturun. Daha fazla bilgi için bkz . Microsoft Sentinel'de playbook'larla tehdit yanıtlarını otomatikleştirme.

Analiz kuralları hakkında daha fazla bilgi edinin:

Kural terminolojisini karşılaştırma

Bu tablo, ArcSight ile karşılaştırıldığında Microsoft Sentinel'de kural kavramını netleştirmenize yardımcı olur.

ArcSight Microsoft Sentinel
Kural türü • Filtre kuralı
• Katılma kuralı
• Etkin liste kuralı
• Ve daha fazlası
• Zamanlanmış sorgu
•Füzyon
• Microsoft Güvenliği
• Machine Learning (ML) Davranış Analizi
Ölçütler Kural koşullarında tanımlama KQL'de tanımla
Tetikleyici koşulu • Uygulamada tanımlama
• Toplamada tanımlama (olay toplama için)
Eşik: Sorgu sonucu sayısı
Eylem • Olay alanını ayarlama
• Bildirim gönder
• Yeni servis talebi oluşturma
• Etkin listeye ekle
• Ve daha fazlası
• Uyarı veya olay oluşturma
• Logic Apps ile tümleşir

Kural örneklerini eşleme ve karşılaştırma

Çeşitli senaryolarda ArcSight'tan Microsoft Sentinel'e kuralları karşılaştırmak ve eşlemek için bu örnekleri kullanın.

Kural Açıklama Örnek algılama kuralı (ArcSight) Örnek KQL sorgusu Kaynaklar
Filtre (AND) Koşulları olan AND örnek bir kural. Olayın tüm koşullarla eşleşmesi gerekir. Filtre (AND) örneği Filtre (AND) örneği Dize filtresi:
Dize işleçleri

Sayısal filtre:
Sayısal işleçler

Tarih saat filtresi:
önce
Tarih saat

şimdi

Ayrıştı -rma:
ayrıştırma
ayıklama
parse_json
parse_csv
parse_path
parse_url
Filtre (OR) Koşulları olan OR örnek bir kural. Olay, koşulların herhangi biriyle eşleşebilir. Filtre (VEYA) örneği Filtre (VEYA) örneği Dize işleçleri
İç içe filtre İç içe filtreleme koşullarına sahip örnek kural. Kural, filtreleme koşullarını da içeren deyimini içerir MatchesFilter . İç içe filtre örneği İç içe filtre örneği Örnek KQL işlevi
Örnek parametre işlevi
birleştirme
nerede
Etkin liste (arama) deyimini InActiveList kullanan örnek arama kuralı. Etkin liste (arama) örneği Etkin liste (arama) örneği • İzleme listesi, etkin liste özelliğinin eşdeğeridir. İzleme listeleri hakkında daha fazla bilgi edinin.
Arama gerçekleştirmenin diğer yolları
Bağıntı (eşleşen) deyimini kullanarak Matching Event bir dizi temel olay için bir koşul tanımlayan örnek kural. Bağıntı (eşleşen) örneği Bağıntı (eşleşen) örneği join işleci:
birleştirme
zaman penceresiyle birleştirme
karıştırma
Yayın
Birleşim

define deyimi:
izin ver

Toplama:
make_set
make_list
make_bag
paket
Bağıntı (zaman penceresi) deyimini kullanarak Matching Event bir dizi temel olay için bir koşul tanımlayan ve filtre koşulunu Wait time kullanan örnek kural. Bağıntı (zaman penceresi) örneği Bağıntı (zaman penceresi) örneği birleştirme
Microsoft Sentinel kuralları ve join deyimi

Filtre (AND) örneği: ArcSight

ArcSight'ta koşulları içeren AND örnek bir filtre kuralı aşağıda verilmiştir.

Örnek filtre kuralını gösteren diyagram.

Filtre (AND) örneği: KQL

KQL'deki koşulları içeren AND filtre kuralı aşağıdadır.

SecurityEvent
| where EventID == 4728
| where SubjectUserName =~ "AutoMatedService"
| where isnotempty(SubjectDomainName)

Bu kural, Azure İzleme Aracısı'nın (AMA) Windows Güvenliği Olaylarını topladığını varsayar. Bu nedenle, kural Microsoft Sentinel SecurityEvent tablosunu kullanır.

Şu en iyi yöntemleri göz önünde bulundurun:

  • Sorgularınızı iyileştirmek için mümkün olduğunda büyük/küçük harfe duyarlı olmayan işleçlerden kaçının: =~.
  • Değer büyük/küçük harfe duyarlı değilse kullanın == .
  • En çok veriyi filtreleyen deyimiyle where başlayarak filtreleri sıralar.

Filtre (VEYA) örneği: ArcSight

ArcSight'ta koşulları içeren OR örnek bir filtre kuralı aşağıda verilmiştir.

Örnek filtre kuralını (veya) gösteren diyagram.

Filtre (VEYA) örneği: KQL

KQL'de koşulları içeren OR filtre kuralını yazmanın birkaç yolu aşağıdadır.

İlk seçenek olarak deyimini in kullanın:

SecurityEvent
| where SubjectUserName in
 ("Adm1","ServiceAccount1","AutomationServices")

İkinci seçenek olarak deyimini or kullanın:

SecurityEvent
| where SubjectUserName == "Adm1" or 
SubjectUserName == "ServiceAccount1" or 
SubjectUserName == "AutomationServices"

Her iki seçenek de performans açısından aynı olsa da, okuması daha kolay olan ilk seçeneği öneririz.

İç içe filtre örneği: ArcSight

ArcSight'ta örnek bir iç içe filtre kuralı aşağıda verilmiştir.

Örnek iç içe filtre kuralını gösteren diyagram.

Filtre için bir kural aşağıdadır /All Filters/Soc Filters/Exclude Valid Users .

Geçerli Kullanıcıları Dışla filtresini gösteren diyagram.

İç içe filtre örneği: KQL

KQL'de koşulları içeren OR filtre kuralını yazmanın birkaç yolu aşağıdadır.

İlk seçenek olarak, deyimiyle where doğrudan filtre kullanın:

SecurityEvent
| where EventID == 4728 
| where isnotempty(SubjectDomainName) or 
isnotempty(TargetDomainName) 
| where SubjectUserName !~ "AutoMatedService"

İkinci seçenek olarak bir KQL işlevi kullanın:

  1. Aşağıdaki sorguyu diğer adla ExcludeValidUsers KQL işlevi olarak kaydedin.

        SecurityEvent
        | where EventID == 4728
        | where isnotempty(SubjectDomainName)
        | where SubjectUserName =~ "AutoMatedService"
        | project SubjectUserName
    
  2. Diğer adı filtrelemek için aşağıdaki sorguyu ExcludeValidUsers kullanın.

        SecurityEvent    
        | where EventID == 4728
        | where isnotempty(SubjectDomainName) or 
        isnotempty(TargetDomainName)
        | where SubjectUserName !in (ExcludeValidUsers)
    

Üçüncü seçenek olarak bir parametre işlevi kullanın:

  1. Ad ve diğer ad olarak ile ExcludeValidUsers bir parametre işlevi oluşturun.

  2. İşlevin parametrelerini tanımlayın. Örneğin:

        Tbl: (TimeGenerated:datatime, Computer:string, 
        EventID:string, SubjectDomainName:string, 
        TargetDomainName:string, SubjectUserName:string)
    
  3. parameter İşlev aşağıdaki sorguya sahiptir:

        Tbl
        | where SubjectUserName !~ "AutoMatedService"
    
  4. parametre işlevini çağırmak için aşağıdaki sorguyu çalıştırın:

        let Events = (
        SecurityEvent 
        | where EventID == 4728
        );
        ExcludeValidUsers(Events)
    

Dördüncü seçenek olarak işlevini kullanın join :

let events = (
SecurityEvent
| where EventID == 4728
| where isnotempty(SubjectDomainName) 
or isnotempty(TargetDomainName)
);
let ExcludeValidUsers = (
SecurityEvent
| where EventID == 4728
| where isnotempty(SubjectDomainName)
| where SubjectUserName =~ "AutoMatedService"
);
events
| join kind=leftanti ExcludeValidUsers on 
$left.SubjectUserName == $right.SubjectUserName

Dikkat edilmesi gerekenler:

  • Basitliği nedeniyle deyimiyle where (ilk seçenek) doğrudan filtre kullanmanızı öneririz. İyileştirilmiş performans için kullanmaktan join kaçının (dördüncü seçenek).
  • Sorgularınızı iyileştirmek için mümkün olduğunda büyük!~/küçük harfe duyarlı olmayan işleçlerden kaçının=~. Değer büyük/küçük harfe == duyarlı değilse ve != işleçlerini kullanın.

Etkin liste (arama) örneği: ArcSight

ArcSight'ta etkin bir liste (arama) kuralı aşağıdadır.

Örnek etkin liste kuralını gösteren diyagram (arama).

Etkin liste (arama) örneği: KQL

Bu kural, Microsoft Sentinel'de Cyber-Ark Özel Durum Hesapları izleme listesinin bir Hesap alanıyla mevcut olduğunu varsayar.

let Activelist=(
_GetWatchlist('Cyber-Ark Exception Accounts')
| project Account );
CommonSecurityLog
| where DestinationUserName in (Activelist)
| where DeviceVendor == "Cyber-Ark"
| where DeviceAction == "Get File Request"
| where DeviceCustomNumber1 != ""
| project DeviceAction, DestinationUserName, 
TimeGenerated,SourceHostName, 
SourceUserName, DeviceEventClassID

En çok veriyi filtreleyen deyimiyle where başlayarak filtreleri sıralar.

Bağıntı (eşleşen) örneği: ArcSight

Aşağıda deyimini kullanarak bir dizi temel olay için bir koşul tanımlayan örnek bir ArcSight kuralı verilmiştir Matching Event .

Örnek bağıntı kuralını gösteren diyagram (eşleştirme).

Bağıntı (eşleşen) örneği: KQL

let event1 =(
SecurityEvent
| where EventID == 4728
);
let event2 =(
SecurityEvent
| where EventID == 4729
);
event1
| join kind=inner event2 
on $left.TargetUserName==$right.TargetUserName

En iyi yöntemler:

  • Sorgunuzu iyileştirmek için, küçük tablonun işlevin sol tarafında join olduğundan emin olun.
  • Tablonun sol tarafı görece küçükse (en fazla 100 K kayıt), daha iyi performans için ekleyin hint.strategy=broadcast .

Bağıntı (zaman penceresi) örneği: ArcSight

Aşağıda, deyimini kullanarak temel olaylar kümesine karşı bir koşul tanımlayan ve filtre koşulunu Matching Event kullanan örnek bir ArcSight kuralı verilmiştir Wait time .

Örnek bağıntı kuralını gösteren diyagram (zaman penceresi).

Bağıntı (zaman penceresi) örneği: KQL

let waittime = 10m;
let lookback = 1d;
let event1 = (
SecurityEvent
| where TimeGenerated > ago(waittime+lookback)
| where EventID == 4728
| project event1_time = TimeGenerated, 
event1_ID = EventID, event1_Activity= Activity, 
event1_Host = Computer, TargetUserName, 
event1_UPN=UserPrincipalName, 
AccountUsedToAdd = SubjectUserName 
);
let event2 = (
SecurityEvent
| where TimeGenerated > ago(waittime)
| where EventID == 4729
| project event2_time = TimeGenerated, 
event2_ID = EventID, event2_Activity= Activity, 
event2_Host= Computer, TargetUserName, 
event2_UPN=UserPrincipalName,
 AccountUsedToRemove = SubjectUserName 
);
 event1
| join kind=inner event2 on TargetUserName
| where event2_time - event1_time < lookback
| where tolong(event2_time - event1_time ) >=0
| project delta_time = event2_time - event1_time,
 event1_time, event2_time,
 event1_ID,event2_ID,event1_Activity,
 event2_Activity, TargetUserName, AccountUsedToAdd,
 AccountUsedToRemove,event1_Host,event2_Host, 
 event1_UPN,event2_UPN

Toplama örneği: ArcSight

Aşağıda toplama ayarlarına sahip örnek bir ArcSight kuralı verilmiştir: 10 dakika içinde üç eşleşme.

Örnek toplama kuralını gösteren diyagram.

Toplama örneği: KQL

SecurityEvent
| summarize Count = count() by SubjectUserName, 
SubjectDomainName
| where Count >3

Sonraki adımlar

Bu makalede ArcSight'tan Microsoft Sentinel'e geçiş kurallarınızı eşlemeyi öğrendiniz.