Audit Log: ตรวจว่าใครลบหรือส่งต่ออีเมลใน Microsoft 365

ค้น Audit Log ใน Microsoft Purview ว่าใครลบอีเมล ตั้งกฎส่งต่อ หรือเปิดกล่องจดหมาย ด้วย HardDelete, New-InboxRule, MailItemsAccessed พร้อม Export และระยะเก็บ

โดย ทีมงาน THAI DATA CLOUD อ่าน 12 นาที

แชร์FacebookXLINELinkedIn
Audit Log — Audit Log: ตรวจว่าใครลบหรือส่งต่ออีเมลใน Microsoft 365
Audit Log: ตรวจว่าใครลบหรือส่งต่ออีเมลใน Microsoft 365

คำตอบสั้น ๆ: ค้น Audit Log ใน Microsoft Purview ว่าใครลบอีเมล ตั้งกฎส่งต่อ หรือเปิดกล่องจดหมาย ด้วย HardDelete, New-InboxRule, MailItemsAccessed พร้อม Export และระยะเก็บ

คู่มือนี้อธิบาย Audit Log ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย

Audit Log ของ Microsoft 365 (unified audit log) คือบันทึกกิจกรรมของผู้ใช้และผู้ดูแลจาก Exchange Online, SharePoint, OneDrive และ Microsoft Entra ID ที่ค้นได้ใน Microsoft Purview Audit เมื่อมีคำถามว่าใครลบอีเมลสำคัญ ใครตั้งกฎส่งต่ออีเมลออกไปนอกบริษัท หรือใครเปิดกล่องจดหมายของคนอื่น Audit Log คือที่แรกที่ต้องดู เพราะ mailbox auditing เปิดอยู่แล้วเป็นค่าเริ่มต้นในทุกองค์กร

คู่มือนี้เหมาะกับผู้ดูแลที่ต้องสืบเหตุการณ์เกี่ยวกับอีเมล เมื่อทำครบ คุณจะตรวจว่าการบันทึกเปิดอยู่ เลือกชื่อกิจกรรมให้ตรงคำถาม ค้นใน Purview portal อ่านรายละเอียดของแต่ละรายการ export เป็น CSV ค้นด้วย PowerShell และรู้ว่าองค์กรค้นย้อนหลังได้กี่วันตามไลเซนส์

สิ่งที่ต้องเตรียม

  • บทบาท Audit Logs หรือ View-Only Audit Logs ใน Microsoft Purview portal ถ้าจะค้นด้วย PowerShell ต้องมีบทบาทเดียวกันใน Exchange admin center ด้วย
  • ระยะเก็บตามไลเซนส์: ผู้ใช้ที่มีไลเซนส์ทั่วไปที่ไม่ใช่ E5 (Audit Standard) เก็บ 180 วัน ผู้ใช้ที่มี Office 365 E5, Microsoft 365 E5, Microsoft Purview Suite หรือ add-on E5 eDiscovery and Audit (Audit Premium) เก็บกิจกรรมของ Exchange, SharePoint, OneDrive และ Entra ID หนึ่งปีเป็นค่าเริ่มต้น และขยายเป็น 10 ปีได้ด้วย add-on แยก
  • ข้อมูลตั้งต้น: กล่องจดหมายที่เกิดเหตุ ช่วงเวลาที่สงสัย และสิ่งที่หาย เช่น หัวเรื่องอีเมล
  • เข้าใจเรื่องเวลา: Audit Log แสดงเวลาเป็น UTC เวลาไทยเร็วกว่า 7 ชั่วโมง เช่น 09:00 น. ในไทยคือ 02:00 UTC
ลำดับการสืบเหตุการณ์ด้วย Audit Log ตั้งแต่ตั้งคำถาม เลือกชื่อกิจกรรม ค้นใน Purview อ่าน AuditData export จนแก้ไขและป้องกันซ้ำ
เริ่มจากคำถามที่ชัด แล้วค้นเฉพาะกิจกรรมที่ตอบคำถามนั้น

ขั้นตอนที่ 1: ตรวจว่า Audit Log และ mailbox auditing เปิดอยู่

เปิด Exchange Online PowerShell แล้วรันสามคำสั่งนี้ ต้องรันใน Exchange Online PowerShell เท่านั้น เพราะค่า UnifiedAuditLogIngestionEnabled ใน Security & Compliance PowerShell จะแสดงเป็น False เสมอ

Connect-ExchangeOnline -UserPrincipalName [email protected]
Get-AdminAuditLogConfig | Format-List UnifiedAuditLogIngestionEnabled
Get-OrganizationConfig | Format-List AuditDisabled
Get-MailboxAuditBypassAssociation -Identity [email protected] | Format-List AuditByPassEnabled

ผลที่ถูกต้องคือ UnifiedAuditLogIngestionEnabled : True, AuditDisabled : False (mailbox auditing เปิด) และ AuditByPassEnabled : False ถ้าบัญชีใดถูกตั้ง bypass กิจกรรมของบัญชีนั้นจะไม่ถูกบันทึกเลย ซึ่งเป็นสัญญาณที่ต้องสอบถามว่าใครตั้งและเพราะอะไร

ขั้นตอนที่ 2: เลือกชื่อกิจกรรมให้ตรงกับคำถาม

การค้น Audit Log ที่ได้ผลเร็วเริ่มจากชื่อกิจกรรม (operation) ที่ตรงคำถาม ไม่ใช่ค้นทุกอย่างของผู้ใช้คนนั้น

  • ใครลบอีเมล: MoveToDeletedItems (ย้ายไป Deleted Items), SoftDelete (ลบออกจาก Deleted Items หรือกด Shift+Delete) และ HardDelete (ล้างออกจาก Recoverable Items)
  • ใครตั้งกฎส่งต่อหรือลบอีเมลอัตโนมัติ: New-InboxRule และ Set-InboxRule (ตั้งจาก Outlook on the web หรือ PowerShell) กับ UpdateInboxRules (ตั้งจาก Outlook บนเครื่อง) และ Set-Mailbox สำหรับการตั้ง forwarding ระดับกล่องจดหมาย
  • ใครเปิดอ่านอีเมล: MailItemsAccessed ซึ่งบันทึกเป็นค่าเริ่มต้นทั้งเจ้าของ ผู้ได้รับมอบสิทธิ์ และผู้ดูแล
  • ใครส่งในนามคนอื่น: Send, SendAs และ SendOnBehalf
  • ใครได้สิทธิ์เข้ากล่องจดหมาย: Add-MailboxPermission และ UpdateFolderPermissions
ตารางจับคู่คำถามที่พบบ่อยกับชื่อกิจกรรมใน Audit Log เช่น HardDelete, New-InboxRule, Set-Mailbox, MailItemsAccessed และ SendAs
สะกดชื่อกิจกรรมให้ตรงทุกตัว ไม่เช่นนั้นการค้นจะไม่มีผลลัพธ์

ขั้นตอนที่ 3: ค้น Audit Log ใน Microsoft Purview portal

  1. เปิด https://purview.microsoft.com เลือกการ์ด Audit ถ้าไม่เห็น ให้คลิก View all solutions แล้วเลือก Audit ในส่วน Core
  2. ในหน้า Search ตั้ง Date and time range (UTC) ค่าเริ่มต้นคือ 7 วันล่าสุด เลือกได้ไกลสุด 180 วันต่อหนึ่งการค้น
  3. ใส่ชื่อกิจกรรมจากขั้นตอนที่ 2 ในช่อง Activities - operations names คั่นด้วยจุลภาค เช่น New-InboxRule,Set-InboxRule,UpdateInboxRules ต้องสะกดตรงทุกตัว ไม่เช่นนั้นจะไม่มีผลลัพธ์ หรือเลือกจาก Activities - friendly names แทน
  4. ที่ Users เลือกบัญชีที่เกี่ยวข้อง ถ้าไม่รู้ว่าใครทำ ให้ปล่อยว่างแล้วจำกัดช่วงเวลาให้แคบ
  5. ตั้ง Search name ให้จำได้ เช่น INC-2026-11 inbox rules somchai แล้วคลิก Search

การค้นทำงานเป็น job เบื้องหลัง ปิดเบราว์เซอร์ได้ ผู้ดูแลหนึ่งคนรันพร้อมกันได้ 10 job โดยเป็น job ที่ไม่มีตัวกรองได้เพียงหนึ่ง job และระบบเก็บ job ที่เสร็จแล้วไว้ 30 วัน

หน้าจอจำลองการค้น Audit Log ใน Microsoft Purview ด้วยชื่อกิจกรรม New-InboxRule และผู้ใช้ somchai@example.com
ใส่ชื่อกิจกรรมให้ตรงทุกตัวอักษร และตั้งช่วงเวลาเป็น UTC (ภาพจำลอง)

ขั้นตอนที่ 4: อ่านรายละเอียดของแต่ละรายการ

เมื่อสถานะเป็น Completed คลิกชื่อ job เพื่อดูตาราง Date (UTC), IP Address, User, Record type, Activity และ Item คลิกแต่ละแถวเพื่อเปิดรายละเอียด ค่าที่ต้องดูใน AuditData

  • ClientIP: IP ที่ทำรายการ เทียบกับ IP ของสำนักงาน ถ้าเป็น IP ต่างประเทศที่ไม่มีพนักงานอยู่ ให้สงสัยว่าบัญชีถูกเจาะ
  • Parameters ของกฎ: ดู ForwardTo, RedirectTo, DeleteMessage และ MoveToFolder กฎที่ส่งต่อไปที่อยู่ภายนอกแล้วย้ายอีเมลไปโฟลเดอร์ที่ไม่มีใครเปิด เป็นรูปแบบที่พบบ่อยในเหตุอีเมลหลอกโอนเงิน
  • LogonType: 0 คือเจ้าของกล่องจดหมาย 1 คือผู้ดูแล 2 คือผู้ได้รับมอบสิทธิ์ (delegate)
  • AffectedItems ของรายการลบ: มีหัวเรื่องและโฟลเดอร์ของอีเมลที่ถูกลบ

Microsoft ระบุว่าบันทึกของบริการหลักอย่าง Exchange ปกติจะค้นเจอหลังเกิดเหตุ 60 ถึง 90 นาที และไม่รับประกันเวลาที่แน่นอน ถ้าเหตุเพิ่งเกิด ให้ค้นซ้ำภายหลัง

ขั้นตอนที่ 5: Export ผลเป็น CSV

ในหน้ารายละเอียดของ job คลิก Export เพื่อได้ไฟล์ CSV Audit Standard export ได้สูงสุด 50,000 แถวต่อ job ส่วน Audit Premium ได้ถึง 1,000,000 แถว ถ้าเกิน ให้แบ่งช่วงวันที่ เปิดไฟล์ใน Excel แล้วใช้ Power Query แยกคอลัมน์ AuditData ที่เป็น JSON ออกเป็นคอลัมน์ย่อย เก็บไฟล์ต้นฉบับไว้ไม่แก้ไข เผื่อต้องใช้เป็นหลักฐาน และจำกัดคนเข้าถึง เพราะไฟล์มีหัวเรื่องอีเมลและ IP ซึ่งเป็นข้อมูลส่วนบุคคล

ขั้นตอนที่ 6: ค้น Audit Log ด้วย PowerShell และตรวจสถานะปัจจุบัน

คำสั่ง Search-UnifiedAuditLog คือคำสั่งเดียวกับที่หน้า Audit ใช้ เหมาะกับการค้นซ้ำหรือทำรายงาน -ResultSize รับสูงสุด 5000 แถวต่อครั้ง

$r = Search-UnifiedAuditLog -StartDate "2026-11-01" -EndDate "2026-11-13" `
  -UserIds [email protected] -Operations New-InboxRule,Set-InboxRule,UpdateInboxRules -ResultSize 5000
$r | Select-Object CreationDate,UserIds,Operations | Format-Table
$r | ForEach-Object { $_.AuditData | ConvertFrom-Json } |
  Select-Object CreationTime,ClientIP,Operation | Export-Csv C:\Temp\inboxrules.csv -NoTypeInformation -Encoding UTF8

Audit Log บอกสิ่งที่เคยเกิด ส่วนสถานะปัจจุบันให้ตรวจด้วยคำสั่งด้านล่าง ถ้าพบกฎหรือ forwarding ที่ผู้ใช้ไม่ได้ตั้งเอง อย่าเพิ่งลบ ให้บันทึกผลไว้เป็นหลักฐานก่อน แล้วปิดกฎด้วย Disable-InboxRule และทำตามขั้นตอนใน Compromised Account

Get-InboxRule -Mailbox [email protected] | Format-List Name,Enabled,ForwardTo,RedirectTo,DeleteMessage
Get-Mailbox [email protected] | Format-List ForwardingSmtpAddress,DeliverToMailboxAndForward
ผลคำสั่ง Search-UnifiedAuditLog พบการสร้างกฎ New-InboxRule และ Get-InboxRule แสดงกฎที่ส่งต่ออีเมลไปที่อยู่ภายนอก
Audit Log บอกว่ากฎถูกสร้างเมื่อไร Get-InboxRule บอกว่ากฎยังทำงานอยู่หรือไม่

วางแผนระยะเก็บ Audit Log

180 วันของ Audit Standard อาจไม่พอ ถ้าองค์กรมักพบเหตุช้า หรือมีข้อกำหนดภายในให้เก็บนานกว่านั้น ทางเลือกคือซื้อไลเซนส์ที่มี Audit Premium ให้ผู้ใช้ที่ต้องเก็บนาน หรือ export เป็นรอบแล้วเก็บไว้ในที่ที่ปลอดภัย ระยะเก็บที่เหมาะกับข้อกำหนดทางกฎหมายของบริษัท เช่น ตาม PDPA ให้ปรึกษาที่ปรึกษากฎหมาย การเก็บตัวอีเมลเองเป็นคนละเรื่องกับการเก็บ Audit Log ดู Retention Policy รายละเอียดทั้งหมดของการค้นอยู่ในเอกสาร Search the audit log ของ Microsoft

ปัญหาที่พบบ่อยเกี่ยวกับ Audit Log

เหตุเกิดเมื่อชั่วโมงก่อน ทำไมค้นใน Audit Log ไม่เจอ?

บันทึกของ Exchange ปกติปรากฏหลังเกิดเหตุ 60 ถึง 90 นาที และบางครั้งนานกว่านั้น ตรวจด้วยว่าช่วงเวลาที่ตั้งเป็น UTC ไม่ใช่เวลาไทย เพราะถ้าตั้งเป็นเวลาไทยตรง ๆ ช่วงค้นจะเลื่อนไป 7 ชั่วโมง

ค้นย้อนหลังได้กี่วัน?

ผู้ใช้ที่มีไลเซนส์ทั่วไปค้นได้ 180 วัน บันทึกที่เกิดก่อน 17 ตุลาคม 2023 เก็บเพียง 90 วัน ผู้ใช้ที่มีไลเซนส์ระดับ E5 หรือ add-on ที่มี Audit Premium ค้นกิจกรรมของ Exchange, SharePoint, OneDrive และ Entra ID ได้หนึ่งปี

ทำไมไม่เห็น MailItemsAccessed หรือการลบของบางกล่องจดหมาย?

ตรวจว่ากล่องจดหมายนั้นไม่ได้ตั้ง audit bypass และรายการกิจกรรมไม่ได้ถูกแก้จากค่าเริ่มต้น ด้วย Get-Mailbox -Identity [email protected] | Format-List DefaultAuditSet ค่าที่ถูกต้องคือ Admin, Delegate, Owner ถ้าไม่ใช่ คืนค่าเริ่มต้นได้ด้วย Set-Mailbox -Identity [email protected] -DefaultAuditSet Admin,Delegate,Owner

Audit Log ใช้กู้อีเมลที่ถูกลบได้หรือไม่?

ไม่ได้ Audit Log บอกว่าใครลบอะไรเมื่อไร แต่ไม่ได้เก็บตัวอีเมล การกู้ต้องทำจาก Recoverable Items ของกล่องจดหมายภายในระยะที่ระบบยังเก็บอยู่ ถ้าตั้ง Retention Policy หรือ Litigation Hold ไว้ จะกู้ได้นานกว่า

ถ้าต้องการให้ช่วยสืบเหตุการณ์จาก Audit Log ตรวจกฎส่งต่ออีเมลที่น่าสงสัย หรือวางแผนเก็บบันทึกให้ครบตามข้อกำหนดของบริษัท ติดต่อทีมงาน THAI DATA CLOUD ได้ องค์กรที่ต้องการให้ทีมงานเฝ้าระวังและตอบสนองเหตุด้านความปลอดภัยอย่างต่อเนื่อง ดูรายละเอียดได้ที่ Managed Security Services

อ่านเพิ่มเติมเกี่ยวกับ Audit Log

แชร์FacebookXLINELinkedIn

มีคำถามเรื่องบริการ? ติดต่อทีมงาน