Office 365 调查工具箱终极指南快速实现安全审计与合规检查【免费下载链接】O365-InvestigationTooling项目地址: https://gitcode.com/gh_mirrors/o3/O365-InvestigationToolingOffice 365 调查工具箱O365-InvestigationTooling是一个专注于 Office 365 环境安全审计和数据采集的 PowerShell 脚本集合。这个强大的工具集让管理员能够从 Office 365 管理活动 API 中提取关键安全数据进行内部合规性审查和安全事件调查。无论是应对数据泄露事件还是进行日常安全监控这套 Office 365 调查工具都能提供专业级的 PowerShell 安全审计能力。 项目核心价值与定位Office 365 调查工具箱的核心价值在于简化复杂的安全审计流程。传统上从 Office 365 环境中收集活动数据需要手动操作多个接口而这个项目通过 PowerShell 自动化脚本将繁琐的数据采集过程简化为几个简单的命令。这套工具特别适合需要进行 Office 365 安全事件响应的团队能够快速定位可疑活动并采取相应措施。项目的设计理念是低量级、高效率——它不需要复杂的部署环境只需基本的 PowerShell 环境即可运行。这对于中小型企业或资源有限的安全团队来说尤其有价值他们可以在不投入大量基础设施的情况下获得企业级的安全审计能力。 三步快速部署指南第一步环境准备与配置首先克隆项目仓库到本地git clone https://gitcode.com/gh_mirrors/o3/O365-InvestigationTooling进入项目目录后最重要的配置步骤是编辑ConfigForO365Investigations.json文件。这个配置文件是整个工具集的核心你需要配置以下关键信息Azure AD 应用注册信息在 Azure 门户注册一个新应用获取 Application ID 和 Secret填入InvestigationAppID和InvestigationAppSecret字段数据存储配置支持本地文件存储、MySQL、Azure SQL 和 Azure Blob根据需求启用相应的存储选项配置数据库连接信息或存储账户凭证实用小贴士建议初次使用时先启用本地文件存储这样可以在本地查看收集到的 JSON 数据便于调试和理解数据格式。第二步权限配置与连接测试运行主数据采集脚本前需要确保 PowerShell 环境已正确配置。项目中的 PowerShell 脚本依赖于 Azure PowerShell 模块可以通过以下命令安装# 安装 Azure PowerShell 模块 Install-Module -Name Az -AllowClobber -Force # 连接到 Azure AD Connect-AzureAD接下来测试 Office 365 管理活动 API 的连接# 导入项目脚本模块 . .\O365InvestigationDataAcquisition.ps1 # 测试配置 Test-Configuration -ConfigFile ConfigForO365Investigations.json实用小贴士如果遇到权限错误请确保使用的账户具有 Office 365 全局管理员权限并且 Azure AD 应用已获得必要的 API 权限。第三步数据采集与查询配置完成后就可以开始数据采集了。主要的数据采集脚本是O365InvestigationDataAcquisition.ps1# 启动数据采集 .\O365InvestigationDataAcquisition.ps1 -ConfigFile ConfigForO365Investigations.json # 或者指定采集天数 .\O365InvestigationDataAcquisition.ps1 -ConfigFile ConfigForO365Investigations.json -Days 30数据采集完成后可以使用配套的 SQL 查询文件进行数据分析。ActivityAPI-InvestigationQueries.sql包含了多种实用的查询模板-- 查询特定用户的所有活动 SELECT * FROM auditaad WHERE UserId usercompany.com ORDER BY CreationTime; -- 查询特定时间段的活动 SELECT * FROM auditexchange WHERE CreationTime BETWEEN 2024-01-01 AND 2024-01-31; 实战应用场景解析场景一安全事件应急响应当发生疑似账户泄露事件时使用RemediateBreachedAccount.ps1脚本可以快速执行标准化响应流程# 对疑似泄露账户执行完整修复流程 .\RemediateBreachedAccount.ps1 -upn compromisedcompany.com这个脚本会自动执行以下操作重置账户密码立即终止所有活动会话移除邮箱委托权限删除外部域邮件转发规则启用多重身份验证设置高强度密码策略启用邮箱审计日志记录实用小贴士建议定期运行AzureAppEnumeration.ps1来审计所有 Azure AD 应用的权限分配情况及时发现过度授权的应用。场景二员工离职管理员工离职时的账户管理是安全审计的重要环节。RemediateEmployeeLeaving.ps1脚本提供了标准化的离职处理流程# 处理离职员工账户 .\RemediateEmployeeLeaving.ps1 -upn leavingcompany.com -Action Disable该脚本支持多种操作模式Disable禁用账户但保留数据Archive归档邮箱并禁用登录FullRemoval完全移除账户和相关数据场景三合规性审计对于需要满足合规性要求的组织项目提供了完整的数据采集与合规检查方案。通过定期运行数据采集脚本可以建立完整的安全审计记录# 设置定期数据采集任务Windows 任务计划 $action New-ScheduledTaskAction -Execute PowerShell.exe -Argument -File C:\Tools\O365InvestigationTooling\O365InvestigationDataAcquisition.ps1 $trigger New-ScheduledTaskTrigger -Daily -At 2AM Register-ScheduledTask -TaskName O365-Audit-Data-Collection -Action $action -Trigger $trigger -Description 每日 Office 365 审计数据采集 高级配置技巧自定义数据存储策略项目支持多种数据存储后端可以根据需求灵活配置MySQL 存储适合需要复杂查询分析的场景{ StoreDatainMySql: True, MySqlUserName: audit_user, MySqlPass: secure_password, MySqlDb: o365investigations, MySqlHostname: localhost }Azure Blob 存储适合大规模数据长期存储{ StoreDataInAzureBlob: True, AzureBlobStorageAccountName: yourstorageaccount, AzureBlobContainerName: audit-logs }混合存储策略可以同时启用多种存储方式实现数据冗余性能优化配置对于大型 Office 365 租户建议进行以下性能优化分批处理修改NumberOfDaysToPull参数避免一次性拉取过多数据并行处理对于多租户环境可以并行运行多个实例增量采集利用DateToPull参数实现增量数据采集# 增量采集示例仅采集最近24小时的数据 $config Get-Content ConfigForO365Investigations.json | ConvertFrom-Json $config.DateToPull (Get-Date).AddDays(-1).ToString(yyyy-MM-dd) $config | ConvertTo-Json | Set-Content ConfigForO365Investigations.json 数据查询与分析最佳实践高效查询模式利用项目提供的 SQL 查询模板可以快速构建复杂的审计查询-- 查找异常登录活动 SELECT UserId, ClientIP, COUNT(*) as LoginCount FROM auditaad WHERE Operation UserLoggedIn AND CreationTime DATE_SUB(NOW(), INTERVAL 7 DAY) GROUP BY UserId, ClientIP HAVING COUNT(*) 10 ORDER BY LoginCount DESC; -- 检测外部文件共享活动 SELECT UserId, SourceFileName, COUNT(*) as ShareCount FROM auditsharepoint WHERE Operation LIKE %Share% AND CreationTime DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY UserId, SourceFileName ORDER BY ShareCount DESC;自定义查询扩展可以根据业务需求扩展查询模板-- 创建常用查询视图 CREATE VIEW vw_daily_audit_summary AS SELECT DATE(CreationTime) as AuditDate, COUNT(*) as TotalEvents, COUNT(DISTINCT UserId) as UniqueUsers, COUNT(CASE WHEN Operation LIKE %Failed% THEN 1 END) as FailedEvents FROM auditaad GROUP BY DATE(CreationTime) ORDER BY AuditDate DESC; 与其他安全工具集成与 SIEM 系统集成可以将采集的数据导出到 SIEM安全信息与事件管理系统# 导出数据为通用格式 .\Export-AuditData.ps1 -Format CEF -OutputPath C:\SIEM\import\ .\Export-AuditData.ps1 -Format JSON -OutputPath C:\SIEM\import\自动化工作流集成通过 PowerShell 工作流实现自动化响应# 定义自动化响应工作流 workflow Security-Incident-Response { param($CompromisedAccount) # 步骤1执行账户修复 .\RemediateBreachedAccount.ps1 -upn $CompromisedAccount # 步骤2收集相关审计日志 $query SELECT * FROM auditaad WHERE UserId $CompromisedAccount $auditData Invoke-MySqlQuery -Query $query # 步骤3发送警报通知 Send-AlertNotification -Account $CompromisedAccount -AuditData $auditData # 步骤4生成调查报告 Generate-IncidentReport -Account $CompromisedAccount }️ 安全最佳实践凭证管理安全使用安全字符串存储密码# 创建安全字符串 $secureString Read-Host Enter password -AsSecureString $encryptedString ConvertFrom-SecureString $secureString # 将 $encryptedString 存入配置文件定期轮换应用密钥定期更新 Azure AD 应用的 AppSecret最小权限原则仅为审计应用分配必要的 API 权限数据保护措施加密存储确保数据库连接使用 SSL/TLS访问控制限制对审计数据的访问权限数据保留策略根据合规要求设置数据保留期限 监控与报告创建自定义监控仪表板利用收集的数据创建 Power BI 或 Grafana 仪表板-- 创建监控数据视图 CREATE VIEW vw_security_metrics AS SELECT DATE(CreationTime) as MetricDate, COUNT(*) as TotalEvents, COUNT(DISTINCT CASE WHEN ClientIP NOT LIKE 10.% THEN ClientIP END) as ExternalIPs, COUNT(CASE WHEN Operation LIKE %FailedLogin% THEN 1 END) as FailedLogins, COUNT(CASE WHEN Operation LIKE %Suspicious% THEN 1 END) as SuspiciousActivities FROM auditaad GROUP BY DATE(CreationTime);定期报告生成设置自动化报告生成流程# 每周安全报告生成脚本 $reportDate Get-Date -Format yyyy-MM-dd $reportData Invoke-MySqlQuery -Query SELECT * FROM vw_security_metrics WHERE MetricDate DATE_SUB(NOW(), INTERVAL 7 DAY) # 生成 HTML 报告 $htmlReport ConvertTo-Html -InputObject $reportData -Title Office 365 安全审计周报 $htmlReport | Out-File C:\Reports\Security-Report-$reportDate.html # 发送邮件通知 Send-MailMessage -To security-teamcompany.com -Subject Office 365 安全审计周报 - $reportDate -BodyAsHtml $htmlReport 故障排除与常见问题常见问题解决方案连接失败检查 Azure AD 应用权限和网络连接数据采集缓慢调整NumberOfDaysToPull参数减少单次采集天数存储空间不足定期清理旧数据或启用自动归档调试技巧启用详细日志记录# 运行脚本时启用详细输出 .\O365InvestigationDataAcquisition.ps1 -ConfigFile config.json -Verbose # 查看详细错误信息 $Error[0] | Format-List * -Force 未来扩展建议虽然项目已归档但仍可根据需求进行扩展添加更多数据源扩展支持 Teams、OneDrive 等服务的审计日志增强分析功能集成机器学习算法检测异常行为云原生部署容器化部署支持 KubernetesAPI 接口提供 REST API 供其他系统集成Office 365 调查工具箱作为一个成熟的安全审计解决方案为组织提供了强大的 Office 365 环境监控能力。通过合理配置和扩展它可以成为企业安全架构中不可或缺的一部分帮助实现持续的安全监控和合规性管理。【免费下载链接】O365-InvestigationTooling项目地址: https://gitcode.com/gh_mirrors/o3/O365-InvestigationTooling创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考