nmtysh.log

Tech系のネタや日々の独り言などを書いています。

macOSでESETのリアルタイムファイルシステム保護が動作しない問題(解決済み)

週末にmacOS MojaveからmacOS Catalina(10.15.7)にアップグレードしたのですが、アップグレード後以降から(ひょっとしたらもっと前から)ESETのリアルタイムファイルシステム保護が正しく動作していないため、その対処をしました。

環境

  • macOS Catalina 10.15.7
  • ESET Cyber Security Pro 6.9.60.0
    • ひょっとしたらmacOS Mojaveの時にESETを6.8.300.0から6.9.60.0に更新したタイミングで発生していたのかもしれません(未確認)

発生していた事象

「ツール」→「統計」→「リアルタイムファイルシステム保護」で「検査したオブジェクト」はどんどん変わっていくものの「感染したオブジェクトの数」や「駆除したオブジェクトの数」、「感染していないオブジェクトの数」、「合計」が0のままでした。 試しにテストファイルを使うとウィルスとして検出されませんでした。

原因と対策

原因

「詳細設定」→「リアルタイムファイルシステム保護」→「ThreatSenseエンジンの設定」→「除外」の「拡張子リストを除外する」に指定している拡張子リストの設定が間違っていました。
「*.vmdk」のように「*.(拡張子)」で登録していました。

対策

拡張子リストにはヘルプ通りに 拡張子のみ を指定したところ、「ツール」→「統計」→「リアルタイムファイルシステム保護」の各オブジェクト数がカウントアップされるようになりました。
また、テストファイルがウィルスとして正しく検出されるようになりました。

試したこと

  • 「詳細設定」→「一般」→「除外設定」→「ファイルシステム」の見直し
    • そもそもTimeMachineやVMディレクトリぐらいしか除外していませんでした。Catalinaにしてから追加した部分を削除してみたものの解決しませんでした。
  • 「詳細設定」→「リアルタイムファイルシステム保護」の設定見直し
    • この時点では「拡張子リストを除外する」の問題には気がつきませんでした。
  • ESETの上書きインストール
    • 効果なし。
    • 別で発生していたESETのヘルプが表示できない問題は解消されました。
  • ESETをアンインストールしてから、インストールし直す
    • インストール直後は統計値が増加するようになったものの、アンインストールする前の設定を復元したら、統計値の増加がとまりました。
  • 設定を一つずつ「既定」に戻しながら確認する
    • 絞り込んだ結果、「詳細設定」→「リアルタイムファイルシステム保護」→「ThreatSenseエンジンの設定」→「除外」の「拡張子リストを除外する」の設定が間違っていました。
      • 「*.(拡張子)」ではなく「(拡張子)」で登録する必要がありました(例: 「*.vmdk」ではなく「vmdk」)

まとめ

除外設定を行った時には特に問題が起きていなかった(と思います)ので、設定が間違っていることに気がつきませんでした。
設定が間違っているといったようなエラーメッセージもありませんでしたし。
「詳細設定」→「一般」→「除外設定」→「ファイルシステム」にはGUIから直接設定できず、トリッキーな方法で除外パスを加えたものもあるので、初期化は躊躇しちゃいますが、疑わしい時には設定の初期化も試す必要がありますね。

参考

ESETとMacの相性が悪い (3) ブラウザでサイトが開けなくなる(esets_proxyの暴走)

ブラウザでサイトがうまく閲覧できなくなったのでメモ

環境

  • ESET Cyber Security Pro 6.8.300.0
  • macOS 10.14.6

症状

読み込めないページ(サイト)が存在する。
Chromeは対策済みだったのですが、別のブラウザでも同様の症状が発生して、今度はCPU使用率が上がり、CPUファンが高速で回転する症状も発生しました。

対策

手元の環境だと、下記のいずれかの設定を変える必要がりました。

  • Webアクセス保護を無効化する
  • HTTPプロトコルのチェックを無効にする

ただ、すでに暴走したプロセス(esets_proxy)は設定変更後も暴走したままだったので、esets_proxyプロセスの強制終了も行いました。

参考

Mac環境で特定の通信が遮断される(「Webアクセス保護」に起因する場合) | ESETサポート情報
https://eset-support.canon-its.jp/faq/show/1579

ESETとMacの相性が悪い (2) Time Machineバックアップに時間がかかる

環境

  • ESET Cyber Security Pro 6.8.300.0
  • macOS 10.14.6

症状

デフォルトだとTimeMachineの関連フォルダもリアルタイムスキャン対象になっているため、バックアップの作成に時間がかかる。破損するということがありました。
破損は本当にESETが原因なのかどうかは調査していませんが、ESETにしてから短期間に2回壊れたので高い確率で疑ってます。

対策

除外設定を追加しました。
ただ、ESETのGUI設定画面では除外設定画面で特殊フォルダを選択できないため(自由入力でも指定できない)、ひと手間必要でした。

  1. /Volumes/com.apple.TimeMachine.TimeMachine-* というディレクトリを作成する

    sudo mkdir -p "/Volumes/com.apple.TimeMachine.TimeMachine-*"
    
  2. ESETの設定画面で /Volumes/com.apple.TimeMachine.TimeMachine-* を選択して除外設定に加える

  3. 1.で作成したディレクトリを削除

この設定画面ではアスタリスクエスケープされていないようです。
この除外設定で意図したとおりに除外されるようになりました。

Time Machine関連で設定した除外設定

  • /Volumes/com.apple.TimeMachine.localsnapshots/*.*
  • /Volumes/Time Machineバックアップ/Backups.Backupdb/*.*
  • /private/var/db/com.apple.backupd.backupVerification/*.*
  • /Volumes/com.apple.TimeMachine.TimeMachine-*/*.*

参考

Mac環境にて、特定のファイルやフォルダーを検査対象から除外する | ESETサポート情報
https://eset-support.canon-its.jp/faq/show/3208

ESETとMacの相性が悪い (1) ブラウザでサイトが開けなくなる

Chromeでサイトがうまく閲覧できなくなったのでメモ

環境

  • ESET Cyber Security Pro 6.8.300.0
  • macOS 10.14.6

症状

読み込めないページ(サイト)が存在する

対策

手元の環境だと、下記のいずれかの設定を変える必要がりました。

  • Webアクセス保護を無効化する
  • HTTPプロトコルのチェックを無効にする
  • HTTPプロトコルで使用するポートのリストから"80"を外す
  • アプリケーションを除外する(この場合はChromeを除外する)

参考

Mac環境で特定の通信が遮断される(「Webアクセス保護」に起因する場合) | ESETサポート情報
https://eset-support.canon-its.jp/faq/show/1579

inputフォーム要素が配列の場合にブラウザバックするとデータが壊れた

nameが配列になっている("data[]"など)inputフォームはpost後にブラウザバックすると、ブラウザが余計な気を効かせて(autocomplete?)、データが壊れることありました。

サーバー側で空欄の要素を除外して配列に入れ直している場合に、サーバー側のレスポンスでは入れ直した後のデータになっているのに、ブラウザ側がフォーム内容を上書きしてしまい意図しない状態になりました。

<!-- POST内容 -->
<input type="text" name="data[1]" value="1" />
<input type="text" name="data[2]" value="" />
<input type="text" name="data[3]" value="3" />

↓ ブラウザバック(ページキャッシュ無効なのでサーバーから再取得

<!-- サーバーからのレスポンス内容 -->
<input type="text" name="data[1]" value="1" />
<input type="text" name="data[2]" value="3" />
<input type="text" name="data[3]" value="" />

↓ ブラウザのレンダリング

<!-- 表示内容 -->
<input type="text" name="data[1]" value="1" />
<input type="text" name="data[2]" value="" /> <!-- 2番目が空欄になる -->
<input type="text" name="data[3]" value="3" /> <!-- 空欄であるべき3番目に古いデータが表示される -->

この状態でページをリロードすると正しいデータで表示されますが、POSTしてしまうとおかしい状態でサーバーに送信されてしまいます。

Cache-Controlでno-cache,no-store,must-revalidateを設定しているのにこのような挙動だったので、ブラウザのCache?を疑いつつ、試しにdata[(連番)]からdata[(ランダムな値)]にしてみたら(今回のフォームではkeyの値自体は重要じゃなかったので)、意図した挙動になりました。