攻擊指標警示中的「未知」

在某些情況下,您可能會在攻擊指標 (IoA) 警示中遇到「未知」項目,如以下影像所示:

這些項目通常是因為下列主要情境所引起:

  1. Active Directory (AD) 之外的外部 DNS

    如果您的組織使用 Active Directory (AD) 網域之外的 DNS 伺服器,請務必注意該產品不支援非 AD DNS 環境。這表示透過不屬於 AD 的外部 DNS 伺服器路由特定 DNS 查詢或要求時,Tenable Identity Exposure 無法識別它們,進而導致攻擊指標 (IoA) 警示清單中出現「未知」項目。

    在這些情況下預期會出現這類「未知」,並不表示 Tenable Identity Exposure 內有任何功能失常或錯誤。這是因為與 Active Directory 整合的本質所導致,其需要在 AD 環境中管理 DNS 記錄,才能完整掌握並追蹤。

    解決方案

    • 若要將這些「未知」項目減到最少,請確認您的 DNS 基礎架構已針對身分識別曝險監控至關重要的網域和資源完全整合到 AD 中。

    • 如果 DNS 查詢必須在 AD 之外執行,請瞭解這些「未知」將會繼續出現,因為 Tenable Identity Exposure 無法解決這些問題。

  1. Tenable Identity Exposure 帳戶的權限不足

    攻擊指標 (IoA) 警示中出現「未知」項目的另一個原因可能是 Tenable Identity Exposure 使用的帳戶缺少讀取 DNS 項目的足夠權限。Tenable Identity Exposure 服務需要讀取權限,才能正確存取和分析 Active Directory 中的 DNS 記錄。

    解決方案

    若要解決此問題,請確認 Tenable Identity Exposure 使用的帳戶對 AD 內必要的 DNS 項目具有讀取存取權。具體而言,此帳戶必須具有查詢 DNS 伺服器和存取其執行識別身分曝險分析所需記錄的權限。

    如果 Tenable Identity Exposure 帳戶沒有適當的讀取權限,您可以使用下列程序授予這些權限。

    提示:在指令碼中,您只需要變更 Tenable Identity Exposure 使用的帳戶的名稱即可。讀取權限包含在下列屬性中:
    • distinguishedName

    • dnsRecord (包含 IP)

    • name

    • ntSecurityDescriptor

    • objectCategory

    • objectClass

    • objectGUID

    您有以下兩個使用 PowerShell 指令碼的選項:

    1. 在 Active Directory 管理員中,對容器 (dnsZone) 設定讀取權限,並將其傳播到所有子 dnsNode (建議的解決方案 (若適用)):

      複製
      Import-Module ActiveDirectory

      $identity = New-Object System.Security.Principal.NTAccount('EXAMPLE\user2') # Service account used by TIE for collect/listening
      $dnsZonePartition = (Get-ADRootDSE).namingContexts | Where-Object { $_ -match "DomainDnsZones" }

      # dnsRecord attribute GUID
      # and Public-Information property set GUID
      $guids = @('e0fa1e69-9b45-11d0-afdd-00c04fd930c9', 'e48d0154-bcf8-11d1-8702-00c04fb96050')

      $dnsZones = Get-ADObject -LDAPFilter "(objectClass=dnsZone)" -SearchBase $dnsZonePartition

      ForEach ($dnsZone in $dnsZones) {
          $acl = Get-Acl -Path "AD:\$dnsZone"

          ForEach ($guid in $guids) {
            $ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule(
              $identity,
              [System.DirectoryServices.ActiveDirectoryRights]::ReadProperty,
              [System.Security.AccessControl.AccessControlType]::Allow,
              [guid]$guid,
              [System.DirectoryServices.ActiveDirectorySecurityInheritance]::All,
              [guid]'e0fa1e8c-9b45-11d0-afdd-00c04fd930c9' # dnsZone GUID
              )

            $acl.AddAccessRule($ace)
          }

          # ntSecurityDescriptor
          $ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule(
              $identity,
              [System.DirectoryServices.ActiveDirectoryRights]::ReadControl,
              [System.Security.AccessControl.AccessControlType]::Allow,
              [System.DirectoryServices.ActiveDirectorySecurityInheritance]::All,
              [guid]'e0fa1e8c-9b45-11d0-afdd-00c04fd930c9' # dnsZone GUID
              )

          $acl.AddAccessRule($ace)
          Set-Acl -Path "AD:\$dnsZone" -AclObject $acl
      }
    2. 對所有現有 dnsNode 物件設定讀取權限 (在影響所有子 dnsNode 的 dnsZone 上):

      複製
      Import-Module ActiveDirectory

      $identity = New-Object System.Security.Principal.NTAccount('EXAMPLE\user2') # Service account used by TIE for collect/listening
      $dnsZonePartition = (Get-ADRootDSE).namingContexts | Where-Object { $_ -match "DomainDnsZones" }

      # dnsRecord attribute GUID
      # and Public-Information property set GUID
      $guids = @('e0fa1e69-9b45-11d0-afdd-00c04fd930c9', 'e48d0154-bcf8-11d1-8702-00c04fb96050')

      $dnsNodes = Get-ADObject -LDAPFilter "(objectClass=dnsNode)" -SearchBase $dnsZonePartition

      ForEach ($dnsNode in $dnsNodes) {
          $acl = Get-Acl -Path "AD:\$dnsNode"

          ForEach ($guid in $guids) {
            $ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule(
              $identity,
              [System.DirectoryServices.ActiveDirectoryRights]::ReadProperty,
              [System.Security.AccessControl.AccessControlType]::Allow,
              [guid]$guid
              )

            $acl.AddAccessRule($ace)
          }

          # ntSecurityDescriptor
          $ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule(
              $identity,
              [System.DirectoryServices.ActiveDirectoryRights]::ReadControl,
              [System.Security.AccessControl.AccessControlType]::Allow
              )

          $acl.AddAccessRule($ace)
          Set-Acl -Path "AD:\$dnsNode" -AclObject $acl
      }
  2. 支援的 DNS 磁碟分割

    Tenable Identity Exposure 不會執行主動式 DNS 解析。而是依賴從 ForestDnsZonesDomainDnsZones 磁碟分割擷取的 DNS 項目。如果您使用自訂 DNS 磁碟分割,Tenable Identity Exposure 將不會對其進行抓取或儲存其 DNS 項目。