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:
Geçirmek istediğiniz her kural için bir test sisteminiz olduğunu doğrulayın.
Tam test senaryoları ve betikler de dahil olmak üzere geçirilen kurallarınız için bir doğrulama işlemi hazırlayın.
Ekibinizin geçirilen kurallarınızı test etmek için yararlı kaynaklara sahip olduğundan emin olun.
Gerekli veri kaynaklarının bağlı olduğunu onaylayın ve veri bağlantısı yöntemlerinizi gözden geçirin.
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:
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.
Verilerinizde kurallarınızda kullanmak istediğiniz öznitelikleri, alanları veya varlıkları tanımlayın.
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.
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.
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.
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:
- Tehditleri algılamak için özel analiz kuralları oluşturun. Belirli bir zaman çerçevesi içinde oluşan uyarıları gruplandırarak uyarı yorgunluğunu azaltmak için uyarı gruplandırma özelliğini kullanın.
- SOC mühendislerinin araştırma sırasında izlemesi gereken kanıtların bir parçası olarak varlıkları tanımlamasını sağlamak için veri alanlarını Microsoft Sentinel'deki varlıklarla eşleyin. Varlık eşlemesi, SOC analistlerinin zaman ve çabayı azaltmaya yardımcı olabilecek sezgisel bir araştırma grafiğinden yararlanmasını da mümkün kılar.
- Olay önizleme bölmesindeki belirli bir olayla ilişkili olayları, uyarıları ve yer işaretlerini ortaya çıkarmada kanıt kullanma örneği olarak UEBA verileriyle olayları araştırın.
- Kusto Sorgu Dili (KQL), verileri işlemek ve sonuçları döndürmek için Log Analytics veritabanınıza salt okunur istekler göndermek için kullanabilirsiniz. KQL, Uç Nokta için Microsoft Defender ve Application Insights gibi diğer Microsoft hizmetleri de kullanılır.
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.
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.
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.
Filtre için bir kural aşağıdadır /All Filters/Soc Filters/Exclude Valid Users
.
İç 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:
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
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:
Ad ve diğer ad olarak ile
ExcludeValidUsers
bir parametre işlevi oluşturun.İşlevin parametrelerini tanımlayın. Örneğin:
Tbl: (TimeGenerated:datatime, Computer:string, EventID:string, SubjectDomainName:string, TargetDomainName:string, SubjectUserName:string)
parameter
İşlev aşağıdaki sorguya sahiptir:Tbl | where SubjectUserName !~ "AutoMatedService"
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 kullanmaktanjoin
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.
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
.
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
.
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.
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.