У нас были проблемы с отправкой скомпрометированных учетных записей Exchange большого количества нежелательных сообщений электронной почты. Мы смягчили это, используя облачный шлюз электронной почты, который лучше справляется с обнаружением этих исходящих сообщений, чтобы не навредить нашей репутации электронной почты.
Тем не менее, мы все равно хотели бы обнаруживать любые ненормальные действия по электронной почте. Одна идея - это отчет об учетных записях Exchange с наибольшим исходящим сообщением.
Есть идеи, как это сделать? Или аналогичная статистика, которая может указывать на взлом учетной записи?
Сегодня я придумал этот сценарий PS, который выполняет свою работу:
add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
$output = Get-TransportServer | Get-MessageTrackingLog -Start (get-date).AddDays(-1) -EventID "SEND" -ResultSize Unlimited | Group-Object -Property Sender | %{ New-Object psobject -Property @{Sender=$_.Name;Recipients=($_.Group | Measure-Object RecipientCount -Sum).Sum}} | Where-Object {$_.Recipients -gt 100} | Sort-Object -Descending Recipients | Format-Table -AutoSize Sender,Recipients | Out-String
Send-MailMessage -From sysadmins@example.com -Subject "Exchange senders report: $(Get-Date -UFormat '%a, %D')" -To sysadmins@example.com -Body $output -SMTP mail.example.com
По сути, он отправляет нам отчет обо всех, кто отправил электронное письмо более чем 100 пользователям за последние 24 часа.
Затем я сделал это ежедневной задачей по расписанию. Кажется, это помогает.