特権ユーザー以外のユーザーとして、macOS で Nessus を実行する

制限

  • ローカルホストをスキャンする場合、Nessus プラグインは root として実行されていると想定します。したがって、特定タイプのスキャンは失敗する場合があります。たとえば、特権ユーザー以外で Nessus が実行される場合、プラグインがすべてのディレクトリにアクセスできないため、ファイルコンテンツのコンプライアンス監査は失敗するか、間違った結果を返すことがあります。
  • nessuscli には --no-root モードはありません。root として nessuscli を使用するコマンドを実行すると、root が所有する Nessus インストールディレクトリにファイルが作成され、Nessus がこれらのファイルに適切にアクセスできなくなる可能性があります。nessuscli を実行する場合は注意が必要です。使用後に chown でアクセス許可を修正することもできます。

手順

  1. まだ行っていない場合は Nessus を MacOSX にインストールします。
  2. Nessus のサービスが root で実行されているので、アンロードする必要があります。

    次のコマンドを使用して、Nessus のサービスをアンロードします。

    sudo launchctl unload /Library/LaunchDaemons/com.tenablesecurity.nessusd.plist

  3. Mac で、[System Preferences] (システム環境設定) > [Users & Groups] (ユーザーとグループ) の順に移動し、新しいグループを作成します。
  4. 次に、System Preferences] (システム環境設定) > [Users & Groups] (ユーザーとグループ) の順に移動し、新しい標準ユーザーを作成します。権限のない Nessus アカウントとして実行するようにこのユーザーを設定します。


  5. ステップ 1 で作成したグループにこの新しいユーザーを追加します。


  6. /sbin ディレクトリの Nessus バイナリで「world」アクセス許可を削除します。

    sudo chmod 750 /Library/Nessus/run/sbin/*

  7. /Library/Nessus/run ディレクトリの所有者を、ステップ 2 で作成した root 以外 (標準) のユーザーに変更します。

    sudo chown -R nonprivuser:nonprivuser /Library/Nessus/run

  8. そのユーザーに /dev/bpf* デバイスへの読み取り/書き込み許可を付与します。これを簡単に実行する方法は、Wireshark のインストールです。これにより、access_bpf と呼ばれるグループと対応する起動デーモンが作成され、/dev/bpf* に適切なアクセス許可が開始時に設定されます。このケースでは、nonpriv ユーザーを access_bpf グループのメンバーに単純に割り当てることができます。この方法以外の場合、起動デーモンを作成して、「nonpriv」ユーザー (またはその一部であるグループ) にすべての /dev/bpf* への読み取り / 書き込み許可を付与する必要があります。

  9. ステップ 8 の変更を有効にするために、システムを再起動します。
  10. テキストエディターを使用して、Nessus の /Library/LaunchDaemons/com.tenablesecurity.nessusd.plist ファイルを変更し、次のラインを追加します。既存ラインは変更しないでください。

    <string>--no-root</string>

    <key>UserName</key>

    <string>nonprivuser</string>

  11. sysctl を使用して、次のパラメーターが最小値を持つことを確認します。

    $ sysctl debug.bpf_maxdevices

    debug.bpf_maxdevices:16384

    $ sysctl kern.maxfiles

    kern.maxfiles:12288

    $ sysctl kern.maxfilesperproc

    kern.maxfilesperproc:12288

    $ sysctl kern.maxproc

    kern.maxproc:1064

    $ sysctl kern.maxprocperuid

    kern.maxprocperuid:1064

  12. ステップ 9 の値が最小要件を満たさない場合、次のステップに沿って値を変更します。

    /etc/sysctl.conf ファイルを作成します。
    テキストエディターを使用して、ステップ 9 で見つかった適切な値で systctl.conf ファイルを編集します。

    例:

    $ cat /etc/sysctl.conf

    kern.maxfilesperproc=12288

    kern.maxproc=1064

    kern.maxprocperuid=1064

  13. 次に、launchctl limit コマンドを使用して、お使いの OS のデフォルト値を確認します。

    例: MacOSX 10.10 と 10.11 の値。

    $ launchctl limit

    cpu unlimited unlimited

    filesize unlimited unlimited

    data unlimited unlimited

    stack 8388608 67104768

    core 0 unlimited

    rss unlimited unlimited

    memlock unlimited unlimited

    maxproc 709 1064

    maxfiles 256 unlimited

  14. 手順 11 の値を上記の OSX デフォルト値に設定していない場合は、次の手順で値を変更します。

    テキストエディターを使用して、手順 11 に示している適切なデフォルト値を指定して launchd.conf ファイルを編集します。

    例:

    $ cat /etc/launchd.conf

    limit maxproc 709 1064

    注意: OSX の古いバージョンの中には maxproc の制限が小さいものがあります。お使いの OSX バージョンで /etc/launchctl.conf から制限を引き上げることができる場合、値を増加してください。

  15. すべての変更を有効にするために、システムを再起動するか、起動デーモンをリロードします。

    sudo launchctl load /Library/LaunchDaemons/com.tenablesecurity.nessusd.plist