Cihazlar, e-postalar, uygulamalar ve kimlikler arasında tehditleri avlama
Şunlar için geçerlidir:
- Microsoft Defender XDR
Microsoft Defender XDR'da gelişmiş avcılık, aşağıdakiler arasında tehditleri proaktif olarak avlamanıza olanak tanır:
- Uç Nokta için Microsoft Defender tarafından yönetilen cihazlar
- Microsoft 365 tarafından işlenen e-postalar
- Microsoft Defender for Cloud Apps ve Kimlik için Microsoft Defender tarafından izlenen bulut uygulaması etkinlikleri, kimlik doğrulama olayları ve etki alanı denetleyicisi etkinlikleri
Bu görünürlük düzeyiyle, e-postaya veya web'e ulaşan karmaşık yetkisiz erişimler, yerel ayrıcalıkları yükseltme, ayrıcalıklı etki alanı kimlik bilgilerini alma ve cihazlarınız arasında yanlamasına geçiş yapma gibi ağınızın bölümlerini kapsayan tehditleri hızla avlayabilirsiniz.
Burada, bu tür gelişmiş tehditleri avlarken nasıl sorgular oluşturabilirsiniz keşfetmenize yardımcı olabilecek çeşitli tehdit avcılığı senaryolarına dayalı genel teknikler ve örnek sorgular verilmiştir.
Varlık bilgilerini alma
Kullanıcı hesapları, cihazlar ve dosyalar hakkında nasıl hızlı bir şekilde bilgi alabileceğinizi öğrenmek için bu sorguları kullanın.
E-posta adreslerinden kullanıcı hesaplarını alma
Cihazlar ve e-postaları kapsayan tablolar arasında sorgu oluştururken, büyük olasılıkla gönderen veya alıcı e-posta adreslerinden kullanıcı hesabı adları almanız gerekir. Bunu genellikle e-posta adresinden yerel ana bilgisayarı kullanarak alıcı veya gönderen adresi için yapabilirsiniz.
Aşağıdaki kod parçacığında tostring() Kusto işlevini kullanarak yerel konağı sütunundaki @
RecipientEmailAddress
alıcı e-posta adreslerinden hemen önce ayıklarız.
//Query snippet showing how to extract the account name from an email address
AccountName = tostring(split(RecipientEmailAddress, "@")[0])
Aşağıdaki sorguda bu kod parçacığının nasıl kullanılabileceğini gösterilmektedir:
EmailEvents
| where Timestamp > ago(7d)
| project RecipientEmailAddress, AccountName = tostring(split(RecipientEmailAddress, "@")[0]);
IdentityInfo tablosunu birleştirme
IdentityInfo tablosunu birleştirerek veya birleştirerek hesap adlarını ve diğer hesap bilgilerini alabilirsiniz. Aşağıdaki sorgu EmailEvents tablosundan kimlik avı ve kötü amaçlı yazılım algılamalarının listesini alır ve her alıcı hakkında ayrıntılı bilgi almak için bu bilgileri tabloyla IdentityInfo
birleştirir.
EmailEvents
| where Timestamp > ago(7d)
//Get email processing events where the messages were identified as either phishing or malware
| where ThreatTypes has "Malware" or ThreatTypes has "Phish"
//Merge email events with identity info to get recipient details
| join (IdentityInfo | distinct AccountUpn, AccountDisplayName, JobTitle,
Department, City, Country) on $left.RecipientEmailAddress == $right.AccountUpn
//Show important message and recipient details
| project Timestamp, NetworkMessageId, Subject, ThreatTypes,
SenderFromAddress, RecipientEmailAddress, AccountDisplayName, JobTitle,
Department, City, Country
Tabloları birleştirmek için Kusto Sorgu Dili nasıl kullanabileceğinizi öğrenmek için bu kısa videoyu izleyin.
Cihaz bilgilerini alma
Gelişmiş tehdit avcılığı şeması, çeşitli tablolarda kapsamlı cihaz bilgileri sağlar. Örneğin , DeviceInfo tablosu düzenli olarak toplanan olay verilerini temel alan kapsamlı cihaz bilgileri sağlar. Bu sorgu, DeviceInfo
güvenliği aşılmış olabilecek bir kullanıcının (<account-name>
) herhangi bir cihazda oturum açıp açmadığını denetlemek için tabloyu kullanır ve ardından bu cihazlarda tetiklenen uyarıları listeler.
İpucu
Bu sorgu, için sol taraftaki değerlerin yinelenenleri kaldırmasını önleyen bir iç birleşim belirtmek için DeviceId
kullanırkind=inner
.
DeviceInfo
//Query for devices that the potentially compromised account has logged onto
| where LoggedOnUsers contains '<account-name>'
| distinct DeviceId
//Crosscheck devices against alert records in AlertEvidence and AlertInfo tables
| join kind=inner AlertEvidence on DeviceId
| project AlertId
//List all alerts on devices that user has logged on to
| join AlertInfo on AlertId
| project AlertId, Timestamp, Title, Severity, Category
Dosya olay bilgilerini alma
Dosyayla ilgili olaylar hakkında bilgi almak için aşağıdaki sorguyu kullanın.
DeviceInfo
| where Timestamp > ago(1d)
| where ClientVersion startswith "20.1"
| summarize by DeviceId
| join kind=inner (
DeviceFileEvents
| where Timestamp > ago(1d)
) on DeviceId
| take 10
Ağ olayı bilgilerini alma
Ağ ile ilgili olaylar hakkında bilgi almak için aşağıdaki sorguyu kullanın.
DeviceInfo
| where Timestamp > ago(1d)
| where ClientVersion startswith "20.1"
| summarize by DeviceId
| join kind=inner (
DeviceNetworkEvents
| where Timestamp > ago(1d)
) on DeviceId
| take 10
Cihaz aracısı sürüm bilgilerini alma
Bir cihazda çalışan aracının sürümünü almak için aşağıdaki sorguyu kullanın.
DeviceInfo
| where Timestamp > ago(1d)
| where ClientVersion startswith "20.1"
| summarize by DeviceId
| join kind=inner (
DeviceNetworkEvents
| where Timestamp > ago(1d)
) on DeviceId
| take 10
macOS cihazları için örnek sorgu
Catalina'dan eski bir sürüme sahip macOS çalıştıran tüm cihazları görmek için aşağıdaki örnek sorguyu kullanın.
DeviceInfo
| where Timestamp > ago(1d)
| where OSPlatform == "macOS" and OSVersion !contains "10.15" and OSVersion !contains "11."
| summarize by DeviceId
| join kind=inner (
DeviceInfo
| where Timestamp > ago(1d)
) on DeviceId
| take 10
Cihaz durumu bilgilerini alma
Bir cihazın durumunu almak için aşağıdaki sorguyu kullanın. Aşağıdaki örnekte, sorgu cihazın eklenip eklenmediğini denetler.
DeviceInfo
| where Timestamp > ago(1d)
| where OnboardingStatus != "Onboarded"
| summarize by DeviceId
| join kind=inner (
DeviceInfo
| where Timestamp > ago(1d)
) on DeviceId
| take 10
Tehdit avcılığı senaryoları
Başarıyla eşlenmemiş e-postalar alan kullanıcıların oturum açma etkinliklerini listeleme
Sıfır saatlik otomatik temizleme (ZAP), alındıktan sonra kötü amaçlı e-postaları giderir. ZAP başarısız olursa, kötü amaçlı kod sonunda cihazda çalışabilir ve hesapları tehlikeye atabilir. Bu sorgu, ZAP tarafından başarıyla ele alınmayan e-postaların alıcıları tarafından yapılan oturum açma etkinliğini denetler.
EmailPostDeliveryEvents
| where Timestamp > ago(7d)
//List malicious emails that were not zapped successfully
| where ActionType has "ZAP" and ActionResult == "Error"
| project ZapTime = Timestamp, ActionType, NetworkMessageId , RecipientEmailAddress
//Get logon activity of recipients using RecipientEmailAddress and AccountUpn
| join kind=inner IdentityLogonEvents on $left.RecipientEmailAddress == $right.AccountUpn
| where Timestamp between ((ZapTime-24h) .. (ZapTime+24h))
//Show only pertinent info, such as account name, the app or service, protocol, the target device, and type of logon
| project ZapTime, ActionType, NetworkMessageId , RecipientEmailAddress, AccountUpn,
LogonTime = Timestamp, AccountDisplayName, Application, Protocol, DeviceName, LogonType
Kimlik bilgisi hırsızlığı tarafından hedeflenen etki alanı hesapları tarafından oturum açma girişimlerini alma
Bu sorgu önce tablodaki AlertInfo
tüm kimlik bilgileri erişim uyarılarını tanımlar. Ardından tabloyu birleştirir veya birleştirir AlertEvidence
; bu tablo hedeflenen hesapların adları için ayrıştırılır ve yalnızca etki alanına katılmış hesaplar için filtreler. Son olarak, etki alanına katılmış hedeflenen hesaplar tarafından tüm oturum açma etkinliklerini almak için tabloyu denetler IdentityLogonEvents
.
AlertInfo
| where Timestamp > ago(30d)
//Get all credential access alerts
| where Category == "CredentialAccess"
//Get more info from AlertEvidence table to get the SID of the target accounts
| join AlertEvidence on AlertId
| extend IsJoined=(parse_json(AdditionalFields).Account.IsDomainJoined)
| extend TargetAccountSid=tostring(parse_json(AdditionalFields).Account.Sid)
//Filter for domain-joined accounts only
| where IsJoined has "true"
//Merge with IdentityLogonEvents to get all logon attempts by the potentially compromised target accounts
| join kind=inner IdentityLogonEvents on $left.TargetAccountSid == $right.AccountSid
//Show only pertinent info, such as account name, the app or service, protocol, the accessed device, and type of logon
| project AccountDisplayName, TargetAccountSid, Application, Protocol, DeviceName, LogonType
Bilinen bir kötü amaçlı gönderenden gelen dosyaların cihazlarınızda olup olmadığını denetleyin
Kötü amaçlı dosyalarMaliciousSender@example.com
gönderen bir e-posta adresi ( ) bildiğinizi varsayarsak, bu gönderenden gelen dosyaların cihazlarınızda mevcut olup olmadığını belirlemek için bu sorguyu çalıştırabilirsiniz. Örneğin, bir kötü amaçlı yazılım dağıtım kampanyasından etkilenen cihazları tanımlamak için bu sorguyu kullanabilirsiniz.
EmailAttachmentInfo
| where SenderFromAddress =~ "MaliciousSender@example.com"
//Get emails with attachments identified by a SHA-256
| where isnotempty(SHA256)
| join (
//Check devices for any activity involving the attachments
DeviceFileEvents
| project FileName, SHA256, DeviceName, DeviceId
) on SHA256
| project Timestamp, FileName , SHA256, DeviceName, DeviceId, NetworkMessageId, SenderFromAddress, RecipientEmailAddress
Kötü amaçlı e-posta alındıktan sonra oturum açma girişimlerini gözden geçirme
Bu sorgu, bilinen kötü amaçlı e-postaları aldıktan sonra 30 dakika içinde e-posta alıcıları tarafından gerçekleştirilen en son 10 oturum açmayı bulur. E-posta alıcılarının hesaplarının gizliliğinin ihlal edilip edilmediğini denetlemek için bu sorguyu kullanabilirsiniz.
//Define new table for malicious emails
let MaliciousEmails=EmailEvents
//List emails detected as malware, getting only pertinent columns
| where ThreatTypes has "Malware"
| project TimeEmail = Timestamp, Subject, SenderFromAddress, AccountName = tostring(split(RecipientEmailAddress, "@")[0]);
MaliciousEmails
| join (
//Merge malicious emails with logon events to find logons by recipients
IdentityLogonEvents
| project LogonTime = Timestamp, AccountName, DeviceName
) on AccountName
//Check only logons within 30 minutes of receipt of an email
| where (LogonTime - TimeEmail) between (0min.. 30min)
| take 10
Bilinen kötü amaçlı gönderenden gelen e-postalar alındıktan sonra PowerShell etkinliklerini gözden geçirin
Kötü amaçlı e-postalar genellikle ek yükleri teslim etmek için PowerShell komutlarını çalıştıran belgeler ve diğer özel hazırlanmış ekleri içerir. Bilinen bir kötü amaçlı gönderenden (MaliciousSender@example.com
) gelen e-postaları biliyorsanız, gönderenden bir e-posta alındıktan sonra 30 dakika içinde gerçekleşen PowerShell etkinliklerini listelemek ve gözden geçirmek için bu sorguyu kullanabilirsiniz.
//Define new table for emails from specific sender
let EmailsFromBadSender=EmailEvents
| where SenderFromAddress =~ "MaliciousSender@example.com"
| project TimeEmail = Timestamp, Subject, SenderFromAddress, AccountName = tostring(split(RecipientEmailAddress, "@")[0]);
//Merge emails from sender with process-related events on devices
EmailsFromBadSender
| join (
DeviceProcessEvents
//Look for PowerShell activity
| where FileName =~ "powershell.exe"
//Add line below to check only events initiated by Outlook
//| where InitiatingProcessParentFileName =~ "outlook.exe"
| project TimeProc = Timestamp, AccountName, DeviceName, InitiatingProcessParentFileName, InitiatingProcessFileName, FileName, ProcessCommandLine
) on AccountName
//Check only PowerShell activities within 30 minutes of receipt of an email
| where (TimeProc - TimeEmail) between (0min.. 30min)
İlgili konular
- Gelişmiş avcılığa genel bakış
- Sorgu dilini öğrenin
- Sorgu sonuçlarıyla çalışın
- Paylaşılan sorguları kullanın
- Şemayı anlayın
- Sorgu en iyi yöntemlerini uygulayın
İpucu
Daha fazla bilgi edinmek mi istiyorsunuz? Teknoloji Topluluğumuzdaki Microsoft Güvenlik topluluğuyla etkileşime geçin: Microsoft Defender XDR Teknoloji Topluluğu.