在本博客中,我将说明这些策略仅适用于客户端,因此可以很容易地绕过。
Microsoft Office 365和Azure AD中使用策略来保护对服务和数据的访问。除了通用的身份和设备访问策略外,Microsoft还提供了一组特定于团队的策略:
例如,管理员可以配置团队,使外部用户无法编辑或删除他们发送的任何邮件。或者,团队站点的所有者可以禁用对特定频道成员的消息编辑。
当我使用AADInternals team函数的前一个版本(v0.4.4)时,我注意到一件有趣的事情:我可以使用AADInternals作为猜测来编辑和删除聊天消息,而这是不允许的。
这就产生了一个问题,如果这些策略只应用于客户端怎么办?在实践中,这将意味着团队服务告诉您的团队客户“虽然不能编辑消息!”但客户仍然可以这样做。
当团队客户端启动时,我从观察客户端和云之间发生的事情开始。第一个观察结果是,客户端向云发出了大约120个http请求。在浏览这些请求时,我发现了一个我感兴趣的请求(标题被剥离):
发布https://teams.microsoft.com/api/mt/part/emea-02/beta/users/useraggregatesettings Http/1{";tenantSettingsV2";:TRUE,";userResourcesSettings";:TRUE,";messagingPolicy";:TRUE,";clientSettings";:TRUE,";targetingPolicy";:TRUE,";tenantSiteUrl";:TRUE,";用户属性设置";:TRUE,";CallingPolicy";:TRUE,&34;MeetingPolicy";:TRUE,&34;Education AssignmentsAppPolicy";:TRUE}。
响应包含允许团队客户端以登录用户身份执行的所有设置和策略。下面可以看到messagingPolicy部分:";messagingPolicy";:{";value";:{";allowUserEditMessage";:true,";allowUserDeleteMessage";:true,";allowUserChat";:true,";allowGiphy";:true,";giphyRatingType";:";Medium";,";AllowGiphyDisplay";:true,";allowPasteInternetImage";:true,";allowMemes";:true,";allowStickers";:true,";allowUserTranslate";:true,";allowUrlPreviews";:true,";readReceiptsEnabledType";:";UserPreference";,";ImmersiveReader";:true,";AllowPriorityMessages";:true,";audioMessageEnabledType";:";ChatsAndChannels";,";channel elsInChatListEnabledType";:";DisabledUserOverride";,";allowRemoveUser";:true,";allowSmartReply";:true}}
我们在这里可以了解到的是,团队客户端会从云中询问当前用户被允许做什么,这是预期的行为。
我创建了一个新的邮件策略,以禁止编辑和删除已发送的邮件。我将该策略应用于单个演示用户:现在我有两个策略,默认组织范围内的策略和针对演示用户的受限策略:
我重新启动了团队客户端,并注意到编辑和删除被正确禁用(不存在)。
我比较了从用户聚合设置请求返回的策略,如我们所见,请求缺少两行:
我关闭了客户端,并将Fiddler配置为使用上面保存的http响应执行自动响应:现在,当客户端请求设置文件时,将为其提供允许编辑和删除的文件。
我们可以在这里学到的是,我们可以对团队客户端😂撒谎。此外,我们了解到团队策略仅应用于客户端🤦♂。
下面的视频实际展示了这也适用于云文件存储限制:
据我所知,“不合规”的团队客户行为是无法检测到的。
对保护的判决是一样的。嗯,人们可以尝试使用具有设备所有权和合规性限制的条件访问(CA),但这并不涵盖所有场景。
如果用户(或访客)直接使用Teams API,例如使用AADInternals Teams功能,他或她可以绕过策略设置的限制。
⚠️团队策略不是安全措施,组织不应依赖它们!⚠️