当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

作者:精品下载站 日期:2024-12-14 09:07:42 浏览:14 分类:玩电脑

如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3


在本文中,我们将回顾我为导出和查看存储在 Exchange Online 垃圾邮件日志文件中的信息而创建的 PowerShell 菜单脚本。

系列文章|使用 Get-MailDetailSpamReport |查看和导出垃圾邮件报告

  • 使用 PowerShell 报告 Office 365 垃圾邮件 |介绍
  • 使用 Get-MailDetailSpamReport PowerShell cmdlet |查看和导出垃圾邮件报告
  • 如何使用垃圾邮件报告PowerShell脚本(本文)

PowerShell 脚本的用途

当前的 PowerShell 脚本基于 PowerShell cmdlet Get-MailDetailSpamReport

PowerShell cmdlet Get-MailDetailSpamReport(仅在 Exchange Online 环境中可用)使我们能够查看(显示在 PowerShell 控制台上)有关“垃圾邮件事件”的信息并将其导出到文件。

当前 PowerShell 脚本的主要目的是简化和优化这个有用的 PowerShell cmdlet 的使用。

PowerShell 脚本菜单选项使您能够使用各种文件类型格式(TXT、CSV 和 HTML)导出各种类型的“垃圾邮件报告”,这将帮助您更深入地了解 Office 365 中的垃圾邮件事件( Exchange Online)环境。

例如:

  • 内部垃圾邮件 - 识别并处理由合法组织用户“生成”垃圾邮件的事件。
  • 欺骗事件 - 识别并处理敌对分子试图欺骗合法组织用户身份的事件(使用其身份发送垃圾邮件)。
  • 垃圾邮件攻击 - 识别并处理敌对分子通过向特定收件人发送大量垃圾邮件来针对特定收件人的事件。

Office 365 垃圾邮件报告 PowerShell 脚本的逻辑和概念

以下 PowerShell 脚本配置为根据预定义的“搜索查询”和过滤器(稍后将进行解释)自动导出许多不同的垃圾邮件报告。

不同类型的垃圾邮件报告的目的是提供有关我们组织环境中发生的“垃圾邮件事件”的洞察并得出结论的能力。

“电子邮件地址实体”的概念

垃圾邮件报告通过指定发送垃圾邮件或接收垃圾邮件的“实体”的电子邮件地址来识别该实体的身份。

“电子邮件地址”可分为组织收件人电子邮件地址,即包含我们组织域名后缀的电子邮件地址或非组织收件人电子邮件地址,指包含不包含我们组织域名的域名后缀的任何电子邮件地址。

当我们使用术语“组织电子邮件地址”时,其含义可以翻译为多种类型的 Exchange Online 收件人,例如通讯组、联系人、公共文件夹、共享邮箱、房间邮箱、用户邮箱等。

大多数时候,我们主要关心的是分析与我们组织收件人相关的信息(后缀包含我们组织域名的电子邮件地址)。

尽管我们希望获取涉及我们组织收件人电子邮件地址的每个垃圾邮件事件的信息,但在许多情况下,我们希望使用额外的“分类”,其中我们的主要目标是审查和调查垃圾邮件事件,与特定类型的 Exchange Online 收件人相关 - Exchange 用户(技术术语是用户邮箱)。

为了使您能够更“近距离地了解”与 Exchange Online 用户相关的垃圾邮件事件,每种类型的垃圾邮件报告(垃圾邮件摘要报告和垃圾邮件事件报告)都包含一个专门的部分,用于“揭示”垃圾邮件仅与“属于”Exchange Online 用户的电子邮件地址相关的邮件事件。

PowerShell 脚本将从 Exchange Online“获取”Exchange Online 用户及其电子邮件地址的列表,并在下一步中“扫描”Exchange Online 垃圾邮件日志文件,查找任何类型的垃圾邮件事件,其中包括出现在此列表中的“电子邮件地址”。

不存在的收件人的组织电子邮件地址

很多时候,当我们查看垃圾邮件报告的结果时,我们会发现电子邮件地址信息中包含“我们的域名后缀”,据称“看起来像”组织电子邮件地址,但实际上并没有这样的电子邮件地址!

大多数时候,这种现象是由于敌对分子试图“猜测”我们组织收件人的电子邮件地址,并试图将邮件发送给“不存在”的收件人(不存在的电子邮件地址)而实现的。

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

垃圾邮件报告与垃圾邮件事件报告摘要

当前的PowerShell脚本将生成两种类型的垃圾邮件报告:

“垃圾邮件摘要报告”和“垃圾邮件事件报告”。

这些术语不是正式术语,而是我用来描述由 PowerShell 脚本自动生成的不同类型垃圾邮件报告的术语。

垃圾邮件报告摘要

摘要垃圾邮件报告是通过对“原始”Exchange Online 垃圾邮件日志文件中显示的数据进行操作来创建的。摘要垃圾邮件报告是使用计数垃圾邮件事件的公式创建的,这些事件与特定时间段内的特定电子邮件地址相关(30 天是报告中使用的默认时间段)。当前的 PowerShell 脚本)。

“垃圾邮件摘要报告”的目的是快速了解与特定电子邮件地址相关的垃圾邮件事件的“数量”。

例如,如果我们在报告中发现有许多垃圾邮件事件与从我们组织用户之一的电子邮件地址发送的电子邮件相关,这可能是一个场景的标志,其中用户该帐户已被攻击,敌对分子利用该帐户以组织收件人的合法身份分发垃圾邮件。

垃圾邮件事件报告

我将这份报告描述为“垃圾邮件事件报告”,该报告包含每个特定“垃圾邮件事件”的详细描述。

例如,“垃圾邮件事件”将包括以下信息:发件人的电子邮件地址、收件人的电子邮件地址、具体日期、电子邮件主题、方向(入站或出站) ) 等等。

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

使用菜单 2 自动生成垃圾邮件报告

当前的 PowerShell 脚本包括两种类型的菜单:

  • 全自动菜单(菜单 2)。
  • 通过用作特定搜索查询来生成垃圾邮件报告

创建 2 号菜单是为了实现以下任务的自动化:

  1. 获取 Exchange Online 垃圾邮件日志的内容
  2. 自动生成各类垃圾邮件报告。这些报告中的每一个都将帮助您从不同的“角度”了解垃圾邮件日志中的信息。

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

当您“点击”菜单选项号“2”时,PowerShell 脚本将启动一个自动进程,其中包括以下步骤序列:

1. 创建文件夹层次结构

PowerShell 脚本首先创建一个自定义文件夹层次结构,该层次结构将用于存储各种垃圾邮件报告。

例如,将使用以下文件夹路径在 C: 驱动器中创建存储主要垃圾邮件报告的文件夹:C:\INFO\Spam mail Reports -

2. 从 Exchange Online 垃圾邮件日志文件中获取信息

接下来,PowerShell 脚本连接 Exchange Online 并获取在 30 天内存储在 Exchange Online 垃圾邮件日志文件中的所有信息。

获取的信息将保存在“主要垃圾邮件报告”中。

我们可以将此垃圾邮件报告定义为“行”数据,因为信息按原样显示,无需任何“过滤”特定类型数据的自定义或搜索查询。

3. 创建各种类型的垃圾邮件报告。

各种垃圾邮件报告的“基石”是 - “主要垃圾邮件报告”。
此主要垃圾邮件报告包括所有可用信息 - Exchange Online 垃圾邮件日志文件中出现的每个垃圾邮件事件,过去 30 天的时间段。

PowerShell 脚本使用存储在“主要垃圾邮件报告文件”中的信息来创建其他自定义垃圾邮件报告。我们可以将附加垃圾邮件报告作为主要垃圾邮件报告的派生物。

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

垃圾邮件报告结构和文件夹层次结构

垃圾邮件报告文件夹层次结构是使用类似于俄罗斯套娃概念的结构构建的。

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

第一级文件夹层次结构

在下图中,我们可以看到垃圾邮件 PowerShell 脚本将自动创建的文件夹层次结构的“第一级”:

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

A.所有垃圾邮件事件 - 过去 30 天

该文件夹将存储“主要垃圾邮件报告文件”。

B.摘要垃圾邮件报告 - 已接收和已发送垃圾邮件的计数(总和)

此文件夹将存储垃圾邮件报告,我将其描述为“摘要垃圾邮件报告”。
该术语不是正式的技术术语,而是用于描述计数的自定义类型的垃圾邮件报告的术语(总和)与特定电子邮件地址相关的垃圾邮件事件。

C.每个电子邮件地址的专用垃圾邮件报告。

此文件夹将存储垃圾邮件报告,我将其描述为“专用垃圾邮件报告”。
PowerShell 脚本将为垃圾邮件报告中出现的每个电子邮件地址自动创建一个专用文件夹。

第二级文件夹层次结构

每个“第一级文件夹”都包括一个附加子文件夹(第二级文件夹),用于存储垃圾邮件报告,该报告基于“行”垃圾邮件数据的特定分类(过滤视图)。

为了演示第二级文件夹层次结构,让我们回顾一下名为“B.”的“第一级”文件夹的层次结构。垃圾邮件报告摘要 - 统计已接收和已发送的垃圾邮件数量

在此文件夹中,我们将找到“二级文件夹层次结构”,其中包括以下两个文件夹:

1. Exchange Online 用户

此文件夹包含仅与特定类型的电子邮件地址相关的垃圾邮件报告:描述为“邮箱用户”的 Exchange Online 收件人的电子邮件地址。
此分类的目的是使我们能够重点关注与我们的组织用户相关的“垃圾邮件事件”(从技术上讲,Exchange Online 还包括除“用户收件人”之外的多种类型的收件人)。

2. 所有电子邮件地址

此文件夹包含垃圾邮件报告,该报告涉及 - 垃圾邮件报告中出现的所有电子邮件地址。
在这种情况下,该报告不会涉及特定类型的电子邮件地址,而是涉及,与垃圾邮件日志中出现的每个电子邮件地址相关(组织收件人电子邮件地址和非组织电子邮件地址)。

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

第三级文件夹层次结构

这是“最后一个文件夹层次结构”。例如,“1. Exchange Online users”文件夹将包含另外两个文件夹:

1.1 统计收到的垃圾邮件

此文件夹包含一个垃圾邮件报告,该报告使用以下两个条件过滤主要垃圾邮件报告中的信息:

  • 与 Exchange Online 用户的电子邮件地址相关的垃圾邮件事件。
  • 垃圾邮件事件描述为 - 收到垃圾邮件。其含义是 - 发送给(由 Exchange Online 用户接收)的垃圾邮件。

1.2 统计已发送的垃圾邮件

此文件夹包含一个垃圾邮件报告,该报告使用以下两个条件过滤主要垃圾邮件报告中的信息:

  • 与 Exchange Online 用户的电子邮件地址相关的垃圾邮件事件。
  • 垃圾邮件事件描述为 - 发送垃圾邮件。含义是 - 发送的垃圾邮件 Exchange Online 用户的电子邮件地址。

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

垃圾邮件报告类型

当前的 PowerShell 脚本配置为将各种垃圾邮件报告导出为三种不同的文件格式:文本文件、SCV(逗号分隔值)文件和 HTML 文件。

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

每种文件格式都有其优点和缺点。

例如,HTML垃圾邮件报告就非常“友好”且易于阅读。 HTML 文件格式的“弱点”是没有“操作”或编辑数据的选项。

关于CSV文件格式,大多数时候我们使用Microsoft Excel等应用程序来查看和编辑CSV文件的内容。

这是创建的 CSV 垃圾邮件摘要报告的示例。

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

快速提示 - 为了优化我们查看“数据”的方式,我们可以使用选项 - 表格视图

  • 选择包含数据的单元格之一(数字 1)
  • 选择菜单插入和子菜单 - 表格(数字2)

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

在下面的屏幕截图中,我们可以看到 Excel 以“表格样式”格式化该数据。

此外,Excel 在每个列标题中添加了一个“小箭头”,使我们能够操作数据。例如,过滤特定值、对信息进行排序等。

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

Excel“问题”具有长路径和文件名

在某些情况下,当您尝试打开 CSV 文件时,会出现以下错误:

抱歉,我们找不到 XYZ 文件。它有可能被移动、重命名或删除吗?“。
此错误与 Excel“问题”有关,该问题与存储在深层文件夹层次结构中或文件名很长的文件有关。

在这种情况下,解决方案是缩短 CSV 文件名或将文件移动到“顶级文件夹”

简要回顾——两种类型的垃圾邮件报告

如前所述,垃圾邮件报告 PowerShell 脚本将生成两种类型的报告:

垃圾邮件报告摘要

在下面的屏幕截图中,我们可以看到垃圾邮件报告摘要的示例。
信息表仅包含两列:

垃圾邮件日志文件中显示的电子邮件地址 + 与特定电子邮件地址“相关”的垃圾邮件事件的总和。

在当前示例中,报告仅包含有关接收垃圾邮件的 Exchange Online 用户收件人的信息。

使用此“收到的垃圾邮件摘要报告”,可以帮助我们识别敌对分子试图“淹没”特定 Exchange Online 用户\用户的场景,识别谁是遭受垃圾邮件攻击最严重的组织用户等。

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

“专用垃圾邮件报告”

我使用术语“专用垃圾邮件报告”来强调当前 PowerShell 脚本用于生成垃圾邮件报告的特殊方式。

垃圾邮件报告 PowerShell 脚本配置为创建 Exchange Online 用户电子邮件地址列表。
在下一步中,PowerShell 脚本将扫描“主要垃圾邮件报告”,查找有关每个垃圾邮件的信息。列表中的电子邮件地址(与每个电子邮件地址相关的垃圾邮件事件)。

鉴于存在与特定电子邮件地址相关的垃圾邮件事件,PowerShell 脚本将自动为每个 Exchange Online 用户创建一个专用文件夹,并使用 Exchange Online 用户显示名称来命名该文件夹。

在下面的屏幕截图中,我们可以看到“专用垃圾邮件报告”的结果示例。将为每个(在这种情况下)收到垃圾邮件的 Exchange Online 用户创建一个专用文件夹。

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

专用用户文件夹”将包含使用以下文件格式的三封垃圾邮件报告:文本、CSV 和 HTML。

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

[玩转系统] 如何使用PowerShell脚本报告垃圾邮件|第 3 部分#3

2.2 - PowerShell 脚本菜单 |描述

PowerShell 脚本包括以下部分:

使用远程 PowerShell 连接到 Exchange Online

一般信息 - 为了能够管理 Exchange Online 基础结构,您必须首先创建远程 PowerShell 会话。

菜单 1 - 使用远程 PowerShell 登录 Exchange Online

要创建所需的远程 PowerShell 会话,请选择菜单“1”。
将出现用户凭据窗口。
您需要提供 Office 365 全局管理员凭据。

A 部分:导出各种类型的垃圾邮件报告

菜单 2 - 导出垃圾邮件报告 |过去 30 天

这是主菜单选项。
为了能够生成前面部分中描述的所有各种垃圾邮件报告,您所需要做的就是点击数字“2”,PowerShell 脚本将完成所有操作为你工作。

垃圾邮件报告将使用以下文件夹层次结构进行存储:

  1. 所有垃圾邮件事件 - 过去 30 天
  2. 摘要垃圾邮件报告 - 统计已接收和已发送的垃圾邮件
  3. 交换在线用户

1.1 统计收到的垃圾邮件

1.2 统计已发送的垃圾邮件

  1. 所有电子邮件地址

2.1 统计收到的垃圾邮件 - 所有电子邮件地址

2.2 统计发送的垃圾邮件 - 所有电子邮件地址

  1. 每个电子邮件地址的专用垃圾邮件报告
  2. 交换在线用户

1.1 - 收到垃圾邮件报告

1.2 - SENT 垃圾邮件报告

  1. 所有电子邮件地址

2.1 - 收到垃圾邮件报告

2.2 - SENT 垃圾邮件报告

B 部分:显示并导出超过特定阈值的垃圾邮件发件人或收件人

菜单 3 - 显示 + 导出垃圾邮件报告 |通过特定垃圾邮件阈值的电子邮件地址

以下菜单的目的是,使您能够找到涉及超过特定阈值的垃圾邮件活动的“电子邮件地址”。
根据您提供的指定阈值,PowerShell 脚本将扫描所有事件出现在 Exchange Online 垃圾邮件中的邮件(使用 30 天期限的日期范围)查找以下电子邮件地址:

  • 收到垃圾邮件数量等于或高于指定阈值的电子邮件地址。
  • 发送的垃圾邮件数量等于或高于指定阈值的电子邮件地址。

C 部分:垃圾邮件报告 |排名前 10 位的垃圾邮件收件人和发件人

菜单 4 - 导出垃圾邮件报告 |针对十大垃圾邮件接收方和发件人的专用垃圾邮件事件报告

以下菜单的目的是为垃圾邮件日志文件中的每个电子邮件地址自动创建专用的垃圾邮件事件报告,该报告满足以下条件:

  • 排名前 10 位的垃圾邮件发件人。
  • 排名前 10 位的垃圾邮件接收器。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯