Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心博客

提升 SharePoint 站点安全性的最佳实践建议

提升 SharePoint 站点安全性的最佳实践建议

Mar 24, 2023

使用组来管理用户权限。

授予对任何 IT 资源的访问权限的最佳实践是:管理员不要直接向用户分配权限,而是将权限分配给组,并让每个用户成为相应组的成员。此方法使“开通(provisioning)/重新开通(reprovisioning)/撤销(deprovisioning)”更简单,并有助于确保权限级别符合最小特权原则。对于 SharePoint,你可以将权限分配给 SharePoint 站点组,或Active Directory 安全组。

应当避免的一个组是臭名昭著的 “Everyone” 组——它包含所有当前网络用户,包括来宾以及来自其他域的用户,而且其成员资格无法更改。

根据您使用的 SharePoint 平台不同,可能存在一些还应避免的其他组,因为它们包含大量用户:

SharePoint Server:

  • NT AUTHORITY\Authenticated Users — 包括 AD 中森林里所有域的所有用户帐户,因此无法在域级别进行管理。
  • DOMAIN\Domain Users — 包括域中的所有用户帐户。

SharePoint Online:

  • 除外部用户以外的所有人  包括组织中的所有内部用户帐户。

尽量减少使用“项级权限”。

同样,您应优先将权限分配给更高级的容器(例如文档库或文件夹),而不是分配给特定文件或其他单独项。项级权限往往会导致继承关系被破坏,并且在进行权限审查时可能被忽视,从而使 SharePoint 的安全性面临风险。此外,项级权限还可能减慢搜索引擎速度,影响用户体验。诸如 Information Rights Management (IRM) 之类的 Microsoft 365 功能可以减少对项级权限的需求。

用于外部共享时,请使用单独的站点集合。

防止用户无意中将敏感内容与外部用户共享的一个好方法,是将所有允许外部共享的站点隔离到同一个站点集合中。这样,你就能更轻松地控制哪些内容可以以及不可以向外部共享,并且还能跟踪外部共享活动,从而准确了解已共享了什么内容以及哪些外部方获得了访问权限。

控制匿名共享。

如有可能,禁用匿名共享。

同样明智的做法是禁止通过 匿名链接 (也称为 Anyone 链接)进行内容共享。这些链接允许任何拥有该链接的人查看甚至编辑内容——无需进行身份验证。

如果允许匿名共享,请降低风险。

如果你决定不想彻底取消匿名链接的使用,你仍然可以通过谨慎管理来降低用户在不经意间使用这些链接的风险。

首先,将默认链接设置从 Anyone 更改为仅适用于你组织内部用户的链接。这样,任何希望与未经过身份验证的人共享内容的人,都必须明确选择 Anyone 选项。

此外,你还可以应用用于控制通过链接允许的访问类型并指定到期日期的设置。要指定这些设置,请打开 SharePoint Admin center,并在“Policies(策略)”部分中单击 Sharing

Image

对你在 SharePoint 中存储的数据进行分类。

大多数组织都理解,对数据进行分类是必要的,这样才能根据内部安全策略以及行业或政府的要求,控制敏感和机密内容的使用。 Data loss preventionDLP)技术能够识别敏感数据,然后根据你的策略对其访问进行阻止或允许。DLP 已集成到所有 Microsoft 365 服务中;特别是,SharePoint 使你能够检查数据的内容、元数据和位置,然后应用你已创建的安全策略来保护数据,如下所示。要识别并保护你本地(on-premises)SharePoint 中的敏感内容,你需要第三方 data classification solution

A software interface displaying privacy settings for U.S. Personally Identifiable Information (PII) Data, with its description and protected data types.

监控 SharePoint 的变更和访问事件。

SharePoint 是一个高度动态的环境,因此不能仅仅完成设置然后就放任不管。相反,至关重要的是要审计 SharePoint 中的活动,包括对服务、服务器硬件、虚拟硬件和安全设置的变更,这样你才能迅速发现可能导致数据泄露和业务中断的问题。为确保最佳的威胁检测、调查与响应,应当在内置功能的基础上补充一款可靠的第三方 SharePoint monitoring tool

定期审查访问权限。

维护 MS SharePoint 安全性的另一个关键步骤,是定期审查你内容的访问权限,尤其要重点检查前面详细说明的大型组所获得的权限。

如果你使用的是 SharePoint Server,你可以按照下例手动查看某个组被授予的权限级别:

A 'Check Permissions' dialog box for 'Everyone' shows 'Limited Access' and 'Given directly' permissions, highlighted, with an arrow asking 'To where?'.

不过,这并不能告诉你该组可以访问哪些 IT 资源。要了解情况,你必须逐一检查每个库、列表和文件——这是一个繁琐的过程,而且极易发生人为错误;忙碌的 IT 团队通常也没有时间去完成这些操作。

要自动化该流程,你可以使用来自类似于以下网站的 PowerShell 脚本:http://sharepointchips.com 例如,下面所示的脚本将为给定的网站集合提供所有用户和组的完整列表:

      $sites = Get-SPWebApplication http://WebApplicationURL | Get-SPSite -limit all
"Site Collection`t Group`t User Name`t User Login" | out-file groupmembersreport.csv
foreach($site in $sites)
{
	foreach($sitegroup in $site.RootWeb.SiteGroups)
        {
	  foreach($user in $sitegroup.Users)
	 	{	
		"$($site.url) `t $($sitegroup.Name) `t $($user.displayname) `t $($user) " | out-file groupmembersreport.csv -append
		}
          }
$site.Dispose()
}
      

输出结果会导出到运行该命令的目录中的一个 CSV 文件。下面的示例报告重点展示了一些可能会发现拥有访问你的网站集合权限的开放访问组:

SharePoint Management Shell running a script to generate a group members report, displayed in Notepad with highlighted user groups.

你也可以为 SharePoint Online 运行 PowerShell 脚本,例如下面来自 http://www.sharepointdiary.com

      #Admin Center & Site collection URL, replace admin-URL and path to a location where the CSV report can be written to.
$AdminCenterURL = "https://HOSTNAME-admin.sharepoint.com"
$CSVPath = "C:\Users\UserName\Documents\GroupReport.csv"
#Connect to SharePoint Online
Connect-SPOService -url $AdminCenterURL -Credential (Get-Credential)
$GroupsData = @()
#Get all Site collections
Get-SPOSite -Limit ALL | ForEach-Object {
    Write-Host -f Yellow "Processing Site Collection:"$_.URL
    #Get all Site Groups
    $SiteGroups = Get-SPOSiteGroup -Site $_.URL
    Write-host "Total Number of Groups Found:"$SiteGroups.Count
    ForEach($Group in $SiteGroups)
    {
        $GroupsData += New-Object PSObject -Property @{
            'Site URL' = $_.URL
            'Group Name' = $Group.Title
            'Permissions' = $Group.Roles -join ","
            'Users' =  $Group.Users -join ","
        }
    }
}
#Export the data to CSV
$GroupsData | Export-Csv $CSVPath -NoTypeInformation
 
Write-host -f Green "Groups Report Generated Successfully!"
      
Image

Netwrix 如何提供帮助

Netwrix StealthAUDIT for SharePoint 提供所需的强大 SharePoint 安全功能,用于 防止数据泄露,避免业务中断并满足现代合规要求。它可深入洞察 SharePoint 权限 在每个层级都可见,同时覆盖本地 SharePoint 和 SharePoint Online。

分享到

了解更多

关于作者

Asset Not Found

Farrah Gamboa

产品管理高级总监

Netwrix 产品管理高级总监。Farrah 负责制定并推进与 Data Security 以及 Audit & Compliance 相关的 Netwrix 产品与解决方案路线图。她拥有超过 10 年在企业级数据安全解决方案领域的经验,曾从 Stealthbits Technologies 加入 Netwrix。在加入 Netwrix 之前,她担任技术产品经理以及质量控制(QC)经理。Farrah 拥有 Rutgers University 的工业工程学士学位(BS)。