devAlice
← Mac

macOS セキュリティ基礎 — FileVault・ファイアウォール・Gatekeeper・XProtect

Mac を開封した直後に有効化すべき 4 つのセキュリティ機能。ディスク暗号化、ファイアウォール、アプリ検証、マルウェア隔離の仕組みとセットアップ方法。

macOS のデフォルト設定は悪くないが、開発者マシンにはいくつかスイッチを追加で入れる必要がある。FileVault(ディスク暗号化)、ファイアウォールGatekeeper(署名チェック)、XProtect(マルウェア隔離)が 4 つのコア機能だ。セキュリティの本質は機能の数ではなく、ベースラインの確実な確立にあると考える — 4 つのコア機能を最初に固めれば、それ以降のセキュリティ強化は盤石な土台の上に積み上げられるからだ。

このガイドは Mac 初期セットアップ の後 30 分でセキュリティのベースラインを完成させる。仕事用ラップトップ、個人用ラップトップ、ソースコードを持つすべてのマシンで必須だ。

TL;DR

  1. FileVault をオン — デバイス紛失・盗難時にデータを保護(最重要)
  2. ファイアウォール をオン — 着信接続をブロック+ステルスモードを有効化
  3. Gatekeeper はデフォルトのまま — App Store+確認済み開発者のみ
  4. XProtect は自動 — 自動アップデートをオンに保つだけ
  5. 会社のラップトップ: (1)+(2) は必須、(3) は絶対に無効化しない

前提条件

  • macOS 14 以降(Sonoma 以降)
  • 管理者アカウント
  • Apple ID でサインイン済み(FileVault 復旧キーのバックアップ用)

1. FileVault — ディスク暗号化(必須)

1.1 必須の理由

  • 紛失・盗難時にデータが漏洩しない — 復号キーなしではディスクの内容は読めない
  • macOS はデフォルトで OFF — Apple Silicon はハードウェア暗号化を持つが、FileVault なしでは起動時にキーがアンロックされた状態になる
  • ほぼすべての企業セキュリティポリシーで必須

1.2 有効化

System Settings → Privacy & Security → FileVault → 「Turn On」

復旧オプションを選ぶ:

  • iCloud 復旧を許可(簡単。Apple ID を失うと永遠にデータが消える)
  • 復旧キーを生成(28 文字 — 安全な場所に保管、例: 1Password)

推奨: 復旧キーを生成してパスワードマネージャーに保存する。iCloud を単一障害点にしないこと。

有効化後、ディスク暗号化がバックグラウンドで進む。マシンは使い続けられるが、1〜2 時間ほど軽い速度低下がある。同じ設定ページで進捗を確認できる。

1.3 確認

fdesetup status
# FileVault is On.

または:

diskutil apfs list | grep -i encrypted
# Encrypted:                  Yes (Unlocked)

1.4 注意事項

  • 復旧キーを失う+Apple ID を失う = データは永久に消える。2 か所にバックアップする
  • 法人ラップトップ: 雇用主が復旧キーをエスクローしている場合がある — IT ポリシーを確認
  • 外付け SSD も暗号化できる(diskutil apfs encryptVolume

2. ファイアウォール(必須)

2.1 有効化

System Settings → Network → Firewall → 「Turn On」

オプション:

  • すべての着信接続をブロック — ほぼすべてをドロップ(共有サービスは不可)
  • 署名済みソフトウェアを自動的に許可 — 署名済みアプリを許可(推奨デフォルト)
  • ステルスモードを有効化 — ping/プローブに応答しない(公衆 Wi-Fi で有効)

2.2 推奨プロファイル

環境プロファイル
自宅 / 信頼できるネットワークファイアウォール ON+署名済み自動許可
オフィスファイアウォール ON+署名済み自動許可
カフェ / 空港 / ホテル Wi-Fiステルスモード ON+可能ならすべての着信をブロック

2.3 特定のアプリの着信を許可

アプリが着信を必要とする場合(開発サーバー、ゲームホストなど):

Firewall → Options → + → アプリを追加 → 「着信接続を許可」

またはアプリが初めて要求したときの macOS プロンプトで承認。

2.4 確認

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
# Firewall is enabled. (State = 1)
 
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmode
# Stealth mode enabled

3. Gatekeeper — アプリの検証

3.1 何をするか

macOS が初めてアプリを起動するとき:

  1. コード署名を検証(Apple Developer ID または App Store)
  2. 公証を検証(Apple のマルウェアスキャナーが通過した証明)
  3. 両方が成功した場合のみ実行

3.2 デフォルトのまま維持

System Settings → Privacy & Security → Security

  • App Store — 最も厳格
  • App Store と確認済みの開発元デフォルト(推奨)
  • 「すべての場所」オプションは macOS 14 で削除された(コマンドラインでのみバイパス可能)

3.3 未署名アプリの一時的な許可(開発ビルドなど)

未署名のアプリを一度実行する場合:

# A. 右クリック → 開く
# Finder でアプリを右クリック → 「開く」→ 警告ダイアログで「開く」をクリック → 以降は起動できる
 
# B. 隔離属性を削除(リスクあり — 信頼できるアプリのみ)
xattr -d com.apple.quarantine /path/to/MyApp.app

3.4 Gatekeeper の無効化(してはいけない)

# ❌ これを実行しないこと
sudo spctl --master-disable

これですべてのアプリの署名チェックが無効になる。開発者であっても無効化しない — 単発で動かしたい場合は §3.3 の方法を使う。

3.5 確認

spctl --status
# assessments enabled    ← 正常
 
# 特定のアプリを確認
spctl --assess --verbose /Applications/SomeApp.app

4. XProtect — マルウェア隔離

4.1 何をするか

macOS に組み込まれたバックグラウンドのマルウェアスキャナー。セットアップ不要。

  • 既知のマルウェアシグネチャに対して自動スキャン
  • ダウンロードされたファイルとアプリを実行直前にスキャン
  • Apple が定義の更新をサイレントにプッシュ(システムアップデートとは別)

4.2 自動アップデートを確認

System Settings → General → Software Update → 自動アップデート

  • 「セキュリティ対応とシステムファイルをインストール」 — XProtect の定義を含む。必ず ON

4.3 確認

# 最後の XProtect アップデートタイムスタンプ
defaults read /Library/Apple/System/Library/CoreServices/XProtect.bundle/Contents/Info CFBundleShortVersionString
 
# または
sudo /usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" /Library/Apple/System/Library/CoreServices/XProtect.bundle/Contents/Info.plist

最近の 2026-xx-xx 形式の日付が表示されれば正常。

4.4 追加 AV(任意)

XProtect は既知のマルウェアのみを検出する。ゼロデイや高度な攻撃はすり抜ける。任意:

  • Malwarebytes — Mac、無料プランあり
  • CrowdStrike / SentinelOne — エンタープライズ EDR

個人開発者には XProtect+Malwarebytes で通常十分。アンチウイルスツールを重ねるとパフォーマンスが落ちる。


5. SIP(System Integrity Protection)

5.1 何をするか

root でもシステムフォルダの変更を防ぐ。macOS 自身の自己保護。

  • /System/usr を保護
  • カーネル拡張の読み込みをブロック
  • システムプロセスのデバッグをブロック

5.2 ステータスの確認

csrutil status
# System Integrity Protection status: enabled.

enabled が正常。絶対に無効化しない — 非常に危険だ。

無効化は macOS Recovery からのみ可能で、一般的な開発者が必要になることは事実上ない。


6. 推奨追加設定 — ロック+自動ロック

6.1 画面ロックショートカット

System Settings → Lock Screen「画面オフまでの時間: 5 分」

クイックロック:

  • Ctrl + Cmd + Q — 即座にロック

6.2 自動ログインを無効化

System Settings → Users & Groups → Login Options

  • 自動ログイン: オフ

6.3 ロック画面の通知内容を非表示

System Settings → Notifications → プレビューを表示 → 「ロック解除時」

ロック画面からメッセージ内容を表示しない。業務メッセージや SMS 認証コードの漏洩を防ぐ。


7. SSH キーのセキュリティ

デフォルトでは macOS は SSH キーをディスクに平文で保存する。次の強化策を適用すること:

7.1 パスフレーズを使う

# 生成時にパスフレーズを入力
ssh-keygen -t ed25519 -C "you@example.com"

空のパスフレーズは便利だが、漏洩した場合に即座に使用可能 — 推奨しない。

7.2 macOS キーチェーンを使う

~/.ssh/config

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

パスフレーズが macOS Keychain に保存される → 一度入力すれば以降は自動でロードされる。

7.3 1Password SSH エージェント(任意)

最も安全なセットアップ。SSH キーが 1Password Vault に格納され、すべての認証に Touch ID が必要。

詳細: /multi-os/password-manager


8. 確認 — ワンショットベースラインチェック

echo "=== FileVault ==="
fdesetup status
 
echo "=== ファイアウォール ==="
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmode
 
echo "=== Gatekeeper ==="
spctl --status
 
echo "=== SIP ==="
csrutil status
 
echo "=== 自動ログイン ==="
defaults read /Library/Preferences/com.apple.loginwindow autoLoginUser 2>/dev/null && echo "AUTO LOGIN ON — 無効化すること" || echo "自動ログイン OFF"

期待される出力:

FileVault is On.
Firewall is enabled. (State = 1)
Stealth mode enabled
assessments enabled
System Integrity Protection status: enabled.
自動ログイン OFF

5 つすべて = 安全なベースライン。


9. トラブルシューティング

FileVault を有効化後、ブート時にパスワードを 2 回求められる

  • 正常 — EFI ステージで 1 回、ログインウィンドウで 1 回
  • 1 回にしたい場合: System Settings → Users & Groups → Login Options → 「ファストユーザースイッチメニューを表示」を無効化

ファイアウォールのせいでアプリが動かなくなった

  • 着信が必要なアプリ(開発サーバー、ゲームホストなど)
  • Firewall → Options → + で明示的に許可
  • またはアプリが初めて要求したときのプロンプトで承認

Gatekeeper が信頼する開発者のアプリをブロックする

  • ときどき起きる — Apple の公証サービスの一時的な遅延
  • 5〜30 分後に再試行、または右クリック → 「開く」

XProtect の定義が古く見える

  • Software Update の自動アップデートが ON であることを確認
  • 手動トリガー: 再起動

M1/M2/M3 で未署名の kext が必要

  • macOS Recovery から Reduced Security への切り替えが必要(起動セキュリティユーティリティ)
  • できる限り避ける — kext を必要としないソフトウェアを探す

「このアプリは壊れている」(起動しない)

  • Apple Silicon で ARM 非互換なバイナリ
  • またはユーザービルドで quarantine 属性が欠けている — xattr -cr /path/to/App.app を試す(信頼できるソースのみ)

10. 次のステップ


参考リンク

更新履歴

  • 2026-05-16: 初稿。FileVault+ファイアウォール+Gatekeeper+XProtect+SIP+SSH セキュリティ+ワンショット確認スクリプト+6 つのトラブルシューティングケース。