攻撃インジケーターの「不明」アラート

場合によっては、次の画像に示すように、攻撃インジケーター (IoA) アラートに「不明」エントリが表示されることがあります。

これらのエントリは通常、主に次のシナリオが原因で発生します。

  1. Active Directory (AD) 外の外部 DNS

    所属組織で Active Directory (AD) ドメイン外にある DNS サーバーを使用している場合、この製品は非 AD DNS 環境をサポートしていないことに留意してください。特定の DNS クエリやリクエストが AD の一部ではない外部 DNS サーバーを介してルーティングされると、Tenable Identity Exposureがそれらを識別できないため、IoA アラートリストに「不明」エントリとして表示されます。

    これらの「不明」エントリは、このようなケースにおいては想定されているものであり、Tenable Identity Exposure内の誤動作や不具合を示すものではありません。これは Active Directory との統合の性質に起因するもので、完全な可視性と追跡機能を得るために DNS レコードは AD 環境内で管理される必要があるためです。

    解決策

    • これらの「不明」エントリを最小限に抑えるために、ID エクスポージャーの監視に重要なドメインとリソースの AD に DNS インフラが完全に統合されるようにしてください。

    • DNS クエリを AD の外部に送信される必要がある場合、Tenable Identity Exposure はそれらを解決することができないため、「不明」として引き続き表示されることになります。

  1. Tenable Identity Exposure アカウントに対する不十分なアクセス許可

    IoA アラートに「不明」エントリが存在するもう 1 つの理由は、Tenable Identity Exposure が使用するアカウントに、DNS エントリを読み取るための十分なアクセス許可がないことです。Tenable Identity Exposure サービスは、Active Directory 内の DNS レコードに適切にアクセスして分析するため、読み取りアクセス許可を必要とします。

    解決策

    この問題を解決するには、Tenable Identity Exposure が使用するアカウントに、AD 内の必要な DNS エントリに対する読み取りアクセスがあることを確認してください。具体的には、DNS サーバーにクエリを実行して ID エクスポージャー分析を実行するために必要なレコードにアクセスするためのアクセス許可が、このアカウントに必要です。

    Tenable Identity Exposure アカウントに適切な読み取りアクセス許可がない場合は、次の手順を使用して付与できます。

    ヒント: スクリプトでは、Tenable Identity Exposure が使用するアカウントの名前を変更するだけです。読み取りアクセス許可は、次の属性に含まれています。
    • distinguishedName

    • dnsRecord (IP を含む)

    • name

    • ntSecurityDescriptor

    • objectCategory

    • objectClass

    • objectGUID

    PowerShell スクリプトを使用する場合は、次の 2 つ のオプションがあります。

    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 エントリを保存したりすることはありません。