ส่งออกรายงานประวัติการเข้าสู่ระบบของผู้ใช้ Office 365 เป็น CSV โดยใช้ PowerShell
การเข้าสู่ระบบเป็นกิจกรรมหนึ่งที่พบบ่อยในรูปแบบการโจมตีส่วนใหญ่ การติดตามกิจกรรมการเข้าสู่ระบบของผู้ใช้ Office 365 เป็นสิ่งสำคัญในการตรวจจับการละเมิดความปลอดภัยและพฤติกรรมที่น่าสงสัย
หากต้องการรับประวัติการเข้าสู่ระบบของผู้ใช้ Office 365 คุณสามารถใช้ Office 365 Security and Compliance หรือ PowerShell แต่ในศูนย์ความปลอดภัยและการปฏิบัติตามกฎระเบียบ คุณสามารถดูประวัติการพยายามเข้าสู่ระบบที่สำเร็จได้เพียงอย่างเดียว จะไม่ติดตามความพยายามเข้าสู่ระบบของผู้ใช้ Office 365 ที่ล้มเหลว แม้ว่าคุณจะใช้ตัวกรองเพื่อพยายามเข้าสู่ระบบที่ล้มเหลว คุณจะไม่สามารถส่งออกความพยายามเข้าสู่ระบบที่ล้มเหลวเหล่านั้นเพียงอย่างเดียวได้
ในการตรวจสอบความพยายามเข้าสู่ระบบที่สำเร็จและล้มเหลวทั้งหมดของผู้ใช้ Office 365 PowerShell คือทางออกที่ดีที่สุด PowerShell cmdlet Search-UnifiedAuditLog ใช้เพื่อติดตามเหตุการณ์ทั้งหมดในช่วงที่ระบุ คุณต้องประมวลผลเหตุการณ์ทั้งหมดเพื่อกรองความพยายามเข้าสู่ระบบที่สำเร็จและความพยายามเข้าสู่ระบบที่ล้มเหลวออก การรับบันทึกการตรวจสอบโดยใช้ ค้นหา-UnifiedAuditLog ไม่ใช่เรื่องง่าย มันมีความท้าทายดังต่อไปนี้
หมายเหตุ: หากคุณใช้รายงานประวัติการเข้าสู่ระบบเพื่อตรวจสอบการไม่ใช้งานของผู้ใช้ เราขอแนะนำให้ใช้สคริปต์เฉพาะของเราในการสร้างรายงานผู้ใช้ที่ไม่ได้ใช้งาน สคริปต์นี้ให้รายละเอียดที่ครอบคลุมเกี่ยวกับการลงชื่อเข้าใช้ทั้งแบบโต้ตอบและแบบไม่โต้ตอบ เพื่อให้มั่นใจว่ามีการวิเคราะห์กิจกรรมของผู้ใช้ที่ครอบคลุมมากขึ้น
ความท้าทายในการใช้ Search-UnifiedAuditLog:
- คุณสามารถรับบันทึกได้สูงสุด 5,000 รายการสำหรับการโทร ค้นหา-UnifiedAuditLog แต่ละครั้ง ซึ่งสามารถทำได้โดยใช้พารามิเตอร์ ResultSize แม้ว่าคุณจะใช้ ResultSize คุณก็รับประกันไม่ได้ แต่ช่วงที่ระบุจะมีจำนวนระเบียน คุณต้องเรียก Search-UnifiedAuditLog ซ้ำแล้วซ้ำอีกด้วย SessionId จนกว่าคุณจะได้รับบันทึกทั้งหมด
- แม้ว่าคุณจะใช้ SessionId คุณก็สามารถรับบันทึกได้ 50,000 รายการในช่วงเวลาที่กำหนด หากเกินขีดจำกัด คุณจะไม่สามารถเรียกคืนบันทึกทั้งหมดได้
- หลังจากได้ผลลัพธ์แล้ว คุณจะต้องกรองความพยายามในการเข้าสู่ระบบของผู้ใช้ (ทั้งความพยายามในการเข้าสู่ระบบสำเร็จและล้มเหลว) ออกจากรายการตรวจสอบจำนวนมาก
ไม่ต้องกังวล! เราได้ทำงานให้กับคุณและสร้างสคริปต์ PowerShell ที่ใช้งานง่าย - รายงานประวัติการเข้าสู่ระบบของผู้ใช้ Office 365 ซึ่งมีการพยายามเข้าสู่ระบบทั้งสำเร็จและล้มเหลว นอกจากนี้ สคริปต์ยังมีตัวเลือกการกรองขั้นสูงเพิ่มเติมเพื่อให้พยายามเข้าสู่ระบบได้สำเร็จ ความพยายามเข้าสู่ระบบล้มเหลว ประวัติการเข้าสู่ระบบของผู้ใช้เฉพาะหรือรายชื่อผู้ใช้ ประวัติการเข้าสู่ระบบภายในระยะเวลาที่กำหนด เป็นต้น
ดาวน์โหลดสคริปต์: O365UserLoginHistory.ps1
จุดเด่นของสคริปต์:
- สคริปต์ใช้การรับรองความถูกต้องที่ทันสมัยเพื่อเชื่อมต่อกับ Exchange Online
- ช่วยให้คุณสามารถกรองผลลัพธ์ตามการพยายามเข้าสู่ระบบที่สำเร็จและล้มเหลว
- รายงานที่ส่งออกมี ที่อยู่ IP ที่ผู้ใช้ office 365 ของคุณเข้าสู่ระบบ
- สคริปต์นี้สามารถดำเนินการได้ด้วยบัญชีที่เปิดใช้งาน MFA
- คุณสามารถส่งออกรายงานเพื่อเลือก “ความพยายามเข้าสู่ระบบของผู้ใช้ Office 365 ทั้งหมด ” หรือ “ความพยายามเข้าสู่ระบบของผู้ใช้ Office เฉพาะ ”
- ด้วยการใช้ตัวเลือกการกรองขั้นสูง คุณสามารถส่งออก “รายงานการลงชื่อเข้าใช้ของผู้ใช้ Office 365 ” และ “รายงานการเข้าสู่ระบบที่น่าสงสัย ”
- ส่งออกผลลัพธ์ของรายงานเป็น CSV
- ติดตั้งโมดูล EXO V2 โดยอัตโนมัติ(หากยังไม่ได้ติดตั้ง) เมื่อคุณยืนยัน
- สคริปต์นี้ เป็นมิตรกับตัวกำหนดเวลา กล่าวคือ สามารถส่งข้อมูลรับรองเป็นพารามิเตอร์ แทนที่จะบันทึกภายในสคริปต์
- รายงานประวัติการเข้าสู่ระบบของเราจะติดตามเหตุการณ์การเข้าสู่ระบบใน AzureActiveDirectory (UserLoggedIn, UserLoginFailed), ExchangeOnline (MailboxLogin) และ MicrosoftTeams (TeamsSessionStarted)
ผลลัพธ์ตัวอย่าง:
รายงานประวัติการเข้าสู่ระบบที่ส่งออกมีลักษณะคล้ายกันด้านล่างภาพหน้าจอ
หมายเหตุ: เนื่องจากการเข้าสู่ระบบ 'Microsoft Teams' ไม่มีที่อยู่ IP และคอลัมน์สถานะผลลัพธ์ จึงแสดงเป็นว่างเปล่า เฉพาะการเข้าสู่ระบบ Teams ที่สำเร็จเท่านั้นที่จะบันทึกใน Search-UnifiedAuditLog ดังนั้น หากการเข้าสู่ระบบ 'Microsoft Teams' มีอยู่ในรายงานที่ส่งออก ให้พิจารณาว่าเป็นการพยายามเข้าสู่ระบบที่สำเร็จ
วิธีการ: ดำเนินการสคริปต์ PowerShell ประวัติการเข้าสู่ระบบของผู้ใช้ Office 365:
วิธีที่ 1: ดำเนินการสคริปต์ด้วยบัญชี MFA หรือที่ไม่ใช่ MFA
./O365UserLoginHistory.ps1วิธีที่ 2: รันสคริปต์โดยระบุข้อมูลรับรองอย่างชัดเจน (เป็นมิตรกับตัวกำหนดเวลา)
./O365UserLoginHistory.ps1 -AdminName admin@contoso.com -Password XXXปลดล็อกศักยภาพเต็มรูปแบบของสคริปต์ “ส่งออกรายงานประวัติการเข้าสู่ระบบผู้ใช้ O365”:
- ส่งออกประวัติการเข้าสู่ระบบของผู้ใช้ Office 365 ในช่วง 90 วันที่ผ่านมา
- รับประวัติการเข้าสู่ระบบของผู้ใช้ Office 365 ภายในระยะเวลาที่กำหนด
- ส่งออกประวัติการเข้าสู่ระบบของผู้ใช้ Office 365 เฉพาะ
- แสดงรายการประวัติการเข้าสู่ระบบ Office 365 สำหรับผู้ใช้เฉพาะ
- ส่งออกรายงานความพยายามเข้าสู่ระบบของผู้ใช้ Office 365 ที่ล้มเหลว
- ส่งออกรายงานการลงชื่อเข้าใช้ของผู้ใช้ Office 365 (ความพยายามเข้าสู่ระบบสำเร็จ)
- ด้วยการใช้พารามิเตอร์การกรองหลายรายการ จึงสามารถส่งออกรายงานที่ละเอียดยิ่งขึ้นได้
- กำหนดเวลาสคริปต์ PowerShell ประวัติการเข้าสู่ระบบของผู้ใช้ Office 365
ส่งออกประวัติการเข้าสู่ระบบของผู้ใช้ Office 365 ในช่วง 90 วันที่ผ่านมา:
เนื่องจาก ค้นหา-UnifiedAuditLog มีข้อมูลในช่วง 90 วันที่ผ่านมา เราจึงสามารถพยายามเข้าสู่ระบบได้สูงสุด 90 วันล่าสุดโดยใช้สคริปต์ของเรา หากต้องการส่งออกผู้ใช้ Office 365 ที่พยายามเข้าสู่ระบบในช่วง 90 วันที่ผ่านมา ให้เรียกใช้สคริปต์ตามที่กล่าวไว้ด้านล่าง
./O365UserLoginHistory.ps1ส่งออกประวัติการเข้าสู่ระบบของผู้ใช้ Office 365 ภายในระยะเวลาที่กำหนด:
หากต้องการให้ผู้ใช้พยายามเข้าสู่ระบบภายในระยะเวลาที่กำหนด คุณต้องระบุเวลาเริ่มต้นและสิ้นสุดในระหว่างการเรียกใช้สคริปต์ ซึ่งทำได้โดยผ่านพารามิเตอร์ -StartDate และ -EndDate
./O365UserLoginHistory.ps1 -StartDate 11/20/19 -EndDate 11/25/19รูปแบบวันที่ควรเป็นไปตามรูปแบบ ดด/วว/ปป สคริปต์ด้านบนจะส่งออกความพยายามเข้าสู่ระบบของผู้ใช้ Office 365 ทั้งหมดตั้งแต่วันที่ 20 พฤศจิกายน 2019 ถึง 25 พฤศจิกายน 2019
ส่งออกรายงานประวัติการเข้าสู่ระบบของผู้ใช้คนเดียว:
หากต้องการส่งออกประวัติการเข้าสู่ระบบของผู้ใช้รายใดรายหนึ่ง ให้รันสคริปต์ด้วยพารามิเตอร์ -ชื่อผู้ใช้
./O365UserLoginHistory.ps1 -UserName john@contoso.comรายงานที่ส่งออกประกอบด้วยประวัติการเข้าสู่ระบบของ john@contoso.com
ส่งออกประวัติการเข้าสู่ระบบ Office 365 สำหรับผู้ใช้เฉพาะ:
หากต้องการรับประวัติการเข้าสู่ระบบ Office 365 สำหรับผู้ใช้หลายราย คุณสามารถส่งชื่อผู้ใช้โดยใช้ -UserName param เป็นค่าที่คั่นด้วยเครื่องหมายจุลภาค
./O365UserLoginHistory.ps1 -UserName "admin@contoso.com,hr@contoso.com"รายงานที่ส่งออกประกอบด้วยประวัติการเข้าสู่ระบบของผู้ดูแลระบบและผู้ใช้ชั่วโมง
รายงานความพยายามเข้าสู่ระบบของผู้ใช้ Office 365 ล้มเหลว:
รายงานความพยายามเข้าสู่ระบบที่ล้มเหลวของผู้ใช้ Office 365 มีประโยชน์มากที่สุดในการวิเคราะห์กิจกรรมที่น่าสงสัย หากต้องการส่งออกความพยายามเข้าสู่ระบบที่ล้มเหลว ให้รันสคริปต์ด้วย -Failed switch param
./O365UserLoginHistory.ps1 -Failedตามค่าเริ่มต้น ระบบจะส่งคืนบันทึกการตรวจสอบในช่วง 90 วันที่ผ่านมา หากต้องการจำกัดรายงานให้แคบลง คุณระบุช่วงเวลาได้โดยใช้พารามิเตอร์ -StartDate และ -EndDate
การใช้ที่อยู่ IP สำหรับเข้าสู่ระบบ Office 365 ทำให้คุณสามารถติดตามได้ว่าผู้ใช้/ผู้โจมตีพยายามเข้าสู่ระบบ Office 365 จากที่ใด
ส่งออกรายงานการลงชื่อเข้าใช้ของผู้ใช้ Office 365:
รายงานการลงชื่อเข้าใช้ของผู้ใช้ Office 365 ประกอบด้วยการเข้าสู่ระบบ Office 365 ของผู้ใช้ที่สำเร็จ หากต้องการส่งออกรายงานการลงชื่อเข้าใช้ของผู้ใช้ Office 365 คุณจะต้องเรียกใช้สคริปต์ด้วยพารามิเตอร์สวิตช์ -Success
./O365UserLoginHistory.ps1 -Successส่งออกรายงานประวัติการเข้าสู่ระบบของผู้ใช้ Office 365 พร้อมตัวกรองหลายตัว:
ตามค่าเริ่มต้น สคริปต์ PowerShell นี้รองรับตัวเลือกการกรองขั้นสูงหลายตัวเลือก คุณสามารถใช้ตัวกรองตั้งแต่หนึ่งรายการขึ้นไปในระหว่างเวลาดำเนินการ ฉันได้ระบุกรณีการใช้งานบางส่วนไว้ที่นี่
- หากต้องการส่งออกความพยายามเข้าสู่ระบบที่สำเร็จและล้มเหลวทั้งหมดของผู้ใช้ O365 เฉพาะซึ่งดำเนินการเมื่อสัปดาห์ที่แล้ว คุณสามารถรันสคริปต์ได้ดังต่อไปนี้
./O365UserLoginHistory.ps1 -UserName Admin@Contoso.com -StartDate 11/21/19 -EndDate 11/28/19- หากต้องการส่งออกความพยายามเข้าสู่ระบบที่ล้มเหลวของผู้ใช้ Office 365 ทั้งหมดที่ดำเนินการในเวลาที่กำหนด
./O365UserLoginHistory.ps1 -Failed -StartDate “11/28/19 12 AM" -EndDate “11/28/19 6 PM"กำหนดเวลาสคริปต์ PowerShell ประวัติการเข้าสู่ระบบของผู้ใช้ Office 365:
เนื่องจาก การค้นหา-UnifiedAuditLogมีข้อมูลในช่วง 90 วันที่ผ่านมา คุณจึงอาจต้องใช้บันทึกการตรวจสอบเก่าเพื่อการวิเคราะห์ ในกรณีนั้น การจัดกำหนดการมีบทบาทสำคัญ
คุณสามารถใช้ Task Scheduler เพื่อ 'สคริปต์ PowerShell ประวัติการเข้าสู่ระบบของผู้ใช้ O365 โดยอัตโนมัติ' หากคุณกำหนดเวลาให้สคริปต์ทำงานหนึ่งครั้งใน 90 วัน คุณสามารถเข้าถึงรายงานที่ส่งออกได้ตลอดเวลาที่ต้องการ ดังนั้นคุณจึงสามารถจัดเก็บบันทึกการตรวจสอบเพื่อการวิเคราะห์เพิ่มเติมได้หลายปี
ขณะกำหนดเวลา คุณจะส่งข้อมูลรับรองได้โดยใช้พารามิเตอร์ -AdminName และ -Password
./O365UserLoginHistory.ps1 -AdminName Admin@contoso.com -Password XXXXXXX
หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดเวลาสคริปต์ Powershell โปรดดูบล็อกของเรา: กำหนดเวลาสคริปต์ PowerShell โดยใช้ Task Scheduler
รับรายงานการเข้าสู่ระบบ Office 365 แบบละเอียดเพิ่มเติม:
หากต้องการรับรายงานการเข้าสู่ระบบ Office 365 ที่ละเอียดยิ่งขึ้น
การเข้าสู่ระบบของผู้ใช้
- การเข้าสู่ระบบของผู้ใช้ทั้งหมด
- การเข้าสู่ระบบของผู้ใช้ล้มเหลว
- เข้าสู่ระบบผู้ใช้สำเร็จ
- เวลาเข้าสู่ระบบครั้งล่าสุดของผู้ใช้
- เวลาเข้าสู่ระบบครั้งแรกของผู้ใช้ในหนึ่งวัน
- สรุปจำนวนการเข้าสู่ระบบรายเดือนของผู้ใช้
ความปลอดภัย
- การเข้าสู่ระบบของผู้ดูแลระบบ
การเข้าสู่ระบบตามบริการ Office 365
- ประวัติการเข้าสู่ระบบ Outlook
คุณสามารถดูเครื่องมือการรายงานและตรวจสอบ AdminDroid Microsoft 365
นอกจากนี้ AdminDroid ยังมีรายงานที่สร้างไว้ล่วงหน้า 1,500+ รายการ และแดชบอร์ดที่ดึงดูดสายตาอย่างชาญฉลาด 20 รายการเพื่อให้ทราบเกี่ยวกับสภาพแวดล้อม Office 365 ของคุณได้อย่างรวดเร็ว เครื่องมือนี้จัดทำรายงานเกี่ยวกับการรายงาน Office 365 การตรวจสอบ การวิเคราะห์ สถิติการใช้งาน ความปลอดภัยและการปฏิบัติตามข้อกำหนด ฯลฯ
นอกจากนี้ AdminDroid ยังมีรายงานมากกว่า 100+ รายการและแดชบอร์ดจำนวนหนึ่งฟรี ประกอบด้วยรายงานเกี่ยวกับผู้ใช้ ใบอนุญาต กลุ่ม สมาชิกกลุ่ม อุปกรณ์ กิจกรรมการเข้าสู่ระบบ การเปลี่ยนแปลงรหัสผ่าน การเปลี่ยนแปลงใบอนุญาต และอื่นๆ รุ่นใช้งานฟรีไม่มีข้อจำกัดใดๆ ในฟังก์ชันการรายงาน เช่น การปรับแต่ง การกำหนดเวลา และการส่งออก สำหรับความต้องการการรายงานและการตรวจสอบ Azure AD คุณสามารถดาวน์โหลดเครื่องมือการรายงาน Office 365 ฟรีโดย AdminDroid และดูว่าเครื่องมือดังกล่าวจะช่วยคุณได้อย่างไร
ฉันหวังว่าบล็อกนี้จะเป็นประโยชน์ในการวิเคราะห์ความพยายามเข้าสู่ระบบที่สำเร็จและน่าสงสัย หากคุณมีข้อสงสัยหรือข้อกำหนดใด ๆ แบ่งปันกับเราผ่านทางส่วนความคิดเห็น




