コード署名でわかること
Mac アプリのコード署名には2つの役割があります。Apple が開発者に発行した証明書によって、誰がそのアプリを作ったかを示し、アプリの中身を封印するので、署名後に変更されたファイルがあれば封印が破れます。公証(notarization)はそこに3つ目を加えます。開発者がその特定のビルドを Apple に送り、Apple がリリース前にマルウェアをスキャンしたということです。
Gatekeeper は、ダウンロードしたアプリを初めて開くときに、これらすべてを使います。ブラウザがダウンロードに付ける隔離マークで、ダウンロードしたものだと判断します。ディスクからコピーしたアプリや、マークを落とすツールで展開したアプリは、このチェックをまったく受けていない可能性があります。
アプリのコード署名を自分で確認する方法
ターミナルで、次のコマンドを使うと1つのアプリを確認できます。
codesign --verify --verbose=2 /Applications/Example.appは、署名が有効で、アプリが変更されていないことを確認します。codesign -dvv /Applications/Example.appは、開発者の Team ID を含め、署名者を表示します。spctl --assess --type execute -vv /Applications/Example.appは、Gatekeeper がそのアプリを許可するかどうかとその理由を尋ねます。source=Notarized Developer IDという行があれば、そのアプリは公証されています。
これは1つのアプリの場合です。App Signatures なら、すべてのアプリでそれを行います。
App Signatures がチェックする項目
Check Apps をクリックすると、Tidy My Mac は /Applications とご自身の ~/Applications フォルダ内のすべてのアプリを読み込みます。ユーティリティのように1階層下にあるアプリも対象です。署名後に変更されたアプリを見つけるために、すべてのアーキテクチャとすべてのリソースファイルについて、各署名を完全に検証します。所要時間は約1分です。
Safari のように macOS の一部であるアプリは対象外です。封印されたシステムボリュームによって、変更されていないことがすでに保証されているからです。
各アプリは1つのカテゴリーに入ります。注意すべきものは次のとおりです。
| 検出内容 | 意味 |
|---|---|
| Broken signature | 開発者が署名した後にアプリが変更されたか、署名の形式が正しくありません。アプリに仕込まれたマルウェアはこのように見え、クラック版も同様です。自分自身の内部にファイルを書き込む一部のアプリも、無害ながらこうなります。その場合は、開発者から再インストールすれば解決します。 |
| Not signed | 誰が作ったのか、変更されていないのかを示すものが何もありません。 |
| No developer identity | 開発者証明書なしの ad hoc 署名なので、誰が作ったのかを示すものがありません。オープンソースのビルドや、有料アプリのクラック版でよく見られます。 |
| Not notarized | Developer ID で署名されているので、開発者は Apple に知られていますが、Apple はこのビルドのマルウェアチェックをしていません。 |
| Unusual signature | 開発用証明書など、Apple がアプリの配布に使わない証明書で署名されています。 |
それ以外はすべて、Apple 製のもの、Mac App Store のもの、Apple が公証したビルドの開発者のものとして、まとめの行に集計されます。注意が必要なものがなければ、カードにその旨が表示されます。
これら5つのカテゴリーのいずれかに入り、かつ隔離マークもないアプリには、Never checked by Gatekeeper のタグが付きます。Gatekeeper の目に触れない経路で Mac に届いたということだからです。署名が壊れている場合は、その行に、何が問題かについての macOS 自身の説明も表示されます。
検出されたときの対処
検出は、調べるきっかけであって、マルウェアの証拠ではありません。見覚えのないアプリや、開発者以外から入手したアプリなら、Scan with Antivirus で、その行からそのアプリに対してアンチウイルスを直接実行でき、虫眼鏡で Finder に表示できます。信頼しているアプリの署名が壊れている場合は、開発者から再度ダウンロードしてください。削除したいときは、Uninstallerが残りのファイルもまとめて削除します。
Gatekeeper 自体の設定は、Security Settingsのスコアの一部です。
App Signaturesに関するよくある質問
ターミナルで spctl --assess --type execute -vv に続けてアプリのパスを入力して実行し、source=Notarized Developer ID があるかを確認します。App Signatures は、Mac 上のすべての Developer ID アプリに同じチェックを行い、公証されていないものを一覧にします。
必ずしもそうではありません。署名後にアプリが変更されたという意味です。仕込まれたマルウェアやクラック版はそのように見えますが、自身のファイルを変更する正規のアプリもあります。開発者から入手して信頼できるアプリなら再インストールし、そうでなければアンチウイルスでスキャンしてください。
codesign -s - などで、証明書なしで作られる署名です。アプリの中身は封印されますが、誰が作ったかについては何も示しません。多くのオープンソースアプリや自作アプリがこの方法で署名されており、元の署名を取り除かれた有料アプリのクラック版も同様です。
macOS の一部であるアプリは、macOS 自身が検証する封印されたシステムボリュームにあるため、対象外です。App Store などから「アプリケーション」にインストールした Apple 製アプリは、チェックされて集計されます。
More in 権限
Security Settings
SIP、Gatekeeper、FileVaultなどを100点満点でスコア化します。
詳しく見る →Privacy Access
カメラ、マイク、画面、ファイルを許可したアプリを確認します。
詳しく見る →Privacy Cleanup
ブラウザの履歴、Cookie、キャッシュ、最近使った項目を1つの一覧に。
詳しく見る →Browser Extensions
各ブラウザの拡張機能を、持っているアクセス権限で評価します。
詳しく見る →Wi-Fi Security
接続中のネットワークの暗号化方式と、DNSが暗号化されているかどうか。
詳しく見る →Sudo Activity
過去30日間にsudoで実行されたコマンド。
詳しく見る →すべてのセクションを7日間無料でお試しください。
必要なのはメールアドレスだけで、クレジットカードは不要です。その後は、最初の1年間が$19.99、2年目以降は年間$59.99です。
無料トライアルを始める