Mac のアドウェアやマルウェアをチェックする方法
本当の Mac のウイルスはまれです。実際によく出会うのはアドウェアです:ブラウザが見慣れない検索ページを何度も開く、ポップアップが出る、誰もインストールしていない「クリーナー」がある。たいていは何かのダウンロードと一緒に入り込み、ログインするたびに起動し直します。
結論:自動的に起動するものを確認します。システム設定 ›「一般」›「ログイン項目と機能拡張」を確認し、次に ~/Library/LaunchAgents、/Library/LaunchAgents、/Library/LaunchDaemons の各フォルダを確認します。アドウェアは、ランダムな名前や Apple に似せた名前でそこに隠れています。さらに、ブラウザの機能拡張と構成プロファイルも確認してください。既知のマルウェアのファイルは、macOS 自身の XProtect がすでにブロックしています。
Mac のアドウェアはどこに隠れている?
- LaunchAgent と LaunchDaemon:ログイン時や起動時にプログラムを開始するよう macOS に指示する、小さな
.plistファイルです。自分用のものは~/Library/LaunchAgentsに、Mac 全体用のものは/Library/LaunchAgentsと/Library/LaunchDaemonsにあります。 - アプリケーション:インストールした覚えのないアプリ。ありふれた名前のことがよくあります。
- ブラウザの機能拡張:「Safari」›「設定」›「機能拡張」と、ほかの各ブラウザの機能拡張のページ。
- 構成プロファイル:システム設定 ›「一般」›「デバイス管理」。誰にも管理されていない Mac では、この一覧はたいてい空です。
ターミナルで LaunchAgent を一覧にするには?
ls -la ~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons
見覚えのないファイルがあれば、それがどのプログラムを起動するのか、そしてそのプログラムに誰が署名したのかを確認します:
plutil -p ~/Library/LaunchAgents/com.example.helper.plist
codesign -dv --verbose=2 "/path/to/the/program"
Program または ProgramArguments の行がプログラムです。codesign の出力では、Authority の行が開発元を示します。「code object is not signed at all」は、誰も署名していないという意味です。
どんなものが不審?
- 既知の開発元が署名しておらず、インストール済みのどのアプリのものでもないプログラム。
- 隠しフォルダ、
/tmp、またはすべてのユーザが書き込める/Users/Sharedにあるプログラム。 com.xkqzt.plistのような、ランダムに見える名前。- Apple が署名していないプログラムに付いた
com.appleの名前。
どれも詳しく調べる理由にはなりますが、証拠ではありません。小規模な開発元のヘルパーも同じように見えることがあります。削除する前に、その名前を検索してください。
Mac からアドウェアを削除するには?
- 関係するアプリがあれば終了し、そのアプリをゴミ箱に入れます。
- LaunchAgents または LaunchDaemons にあるその
.plistをゴミ箱に入れます。/Library内のものは管理者パスワードを求められます。 .plistが指していたプログラムもゴミ箱に入れます。- 再起動するか、ログアウトしてログインし直し、動作を止めます。それが追加したブラウザの機能拡張やプロファイルも削除してください。
XProtect だけで十分?ウイルス対策ソフトは必要?
macOS は Gatekeeper と公証でダウンロードを確認し、XProtect は Apple が自動で更新するシグネチャを使って既知のマルウェアをブロックし、削除します。ほとんどの人にはこれで十分です。XProtect のバージョンを確認するには:
defaults read /Library/Apple/System/Library/CoreServices/XProtect.bundle/Contents/Info.plist CFBundleShortVersionString
アドウェアは、ほかのものの一部として、あなたの許可を得てインストールされることがよくあります。そのため、自動的に起動するものをときどき確認する価値はやはりあります。