Santa は、macOS 用のバイナリおよびファイル アクセス認証システムです。これは、実行を監視するシステム拡張機能、ローカル データベースの内容に基づいて実行を決定するデーモン、ブロック決定の場合にユーザーに通知する GUI エージェント、およびシステムとシステムを管理するためのコマンド ライン ユーティリティで構成されます。データベースをサーバーと同期します。
これは、いたずらなバイナリまたは優れたバイナリを追跡するため、Santa と名付けられました。
Santa のドキュメントは Docs ディレクトリに保存され、https://santa.dev で公開されます。
ドキュメントには、展開オプション、Santa の各部分がどのように機能するかの詳細、Santa 自体の開発手順が含まれています。
質問がある場合、または開始する際にサポートが必要な場合は、santa-dev グループが最適です。
バグがあると思われる場合は、お気軽に問題を報告してください。できるだけ早く対応いたします。
脆弱性が見つかったと思われる場合は、開示報告に関するセキュリティ ポリシーをお読みください。
複数のモード: デフォルトの MONITOR モードでは、ブロックとしてマークされたバイナリを除くすべてのバイナリの実行が許可され、同時にイベント データベースにログが記録されます。 LOCKDOWN モードでは、リストされたバイナリのみが実行を許可されます。
イベント ログ: システム拡張機能がロードされると、すべてのバイナリ起動がログに記録されます。どちらのモードでも、不明なバイナリまたは拒否されたバイナリはすべてデータベースに保存され、後で集計できるようになります。
上書きレベルを備えた証明書ベースのルール: バイナリのハッシュ (または「フィンガープリント」) に依存する代わりに、署名証明書によって実行可能ファイルを許可/ブロックできます。したがって、バージョン更新全体にわたって、その証明書で署名された特定の発行者によるすべてのバイナリを許可またはブロックできます。バイナリは、その署名が正しく検証された場合にのみ証明書によって許可されますが、バイナリのフィンガープリントのルールは証明書の決定を上書きします。つまり、証明書をホワイトリストに登録しながら、その証明書で署名されたバイナリをブロックすることも、その逆も可能です。
パスベースのルール (NS RegularExpression/ICU 経由): これにより、管理対象クライアント (同じ実装メカニズムを使用した構成プロファイルの前身) にあるものと同様の機能、mcxalr バイナリを介したアプリケーション起動制限が可能になります。この実装には、LaunchServices に依存せず、正規表現を介して構成できるという追加の利点があります。 Wiki で詳しく説明されているように、ルールを評価する場合、これは最も低い優先順位を保持します。
フェールセーフ証明書ルール: launchd (別名 pid 1) の署名に使用される証明書、つまり macOS で使用されるすべてのコンポーネントをブロックする拒否ルールを追加することはできません。したがって、すべての OS アップデート (場合によっては新しいバージョン全体) のバイナリが自動的に許可されます。これは、一般的なアプリに対して定期的に変更されるさまざまな証明書を使用する Apple の App Store のバイナリには影響しません。同様に、Santa 自体をブロックすることはできず、Santa は他の Google アプリとは異なる別の証明書を使用します。
ユーザーランド コンポーネントは相互に検証します。各ユーザーランド コンポーネント (デーモン、GUI エージェント、コマンド ライン ユーティリティ) は XPC を使用して相互に通信し、通信が受け入れられる前に署名証明書が同一であることを確認します。
キャッシュ: 許可されたバイナリはキャッシュされるため、リクエストを行うために必要な処理は、バイナリがまだキャッシュされていない場合にのみ実行されます。
単一のシステムやプロセスですべての攻撃を阻止したり、100% のセキュリティを提供したりすることはできません。サンタは、ユーザーを自分自身から守ることを目的として作成されています。多くの場合、人々はマルウェアをダウンロードしてそれを信頼し、マルウェアに認証情報を与えたり、未知のソフトウェアがシステムに関するさらなるデータを漏洩させたりすることがあります。集中管理されるコンポーネントとして、Santa は大規模なマシン群へのマルウェアの拡散を阻止するのに役立ちます。サンタは、コンピュータ上で何が実行されているかの分析を独立して支援できます。
Santa は多層防御戦略の一部であり、適切と思われる他の方法でホストを保護し続ける必要があります。
Santa は実行 (execve とバリアント) のみをブロックします。 dlopen でロードされた動的ライブラリ、置き換えられたディスク上のライブラリ、またはDYLD_INSERT_LIBRARIES
使用してロードされたライブラリに対しては保護しません。
スクリプト: Santa は現在、バイナリではない実行を無視するように書かれています。これは、管理コストと利益を天秤にかけた結果、価値がないと判明したためです。さらに、多くのアプリケーションは一時的に生成されたスクリプトを利用していますが、これを許可リストに登録することはできず、許可リストに登録しないと問題が発生します。他の人にとって役立つ場合は、喜んでこれを再検討します (または少なくともオプションにします)。
santactl
コマンド ライン クライアントには、マシン上で発生したイベントをアップロードし、新しいルールをダウンロードする管理サーバーと同期するためのフラグが含まれています。同期できるオープンソース サーバーがいくつかあります。
あるいは、 santactl
ルールをローカルに (同期サーバーなしで) 構成できます。
Santa のようなツールはスクリーンショットには向いていないので、代わりにビデオを紹介します。
このプロジェクトへのパッチは大歓迎です。貢献ドキュメントを参照してください。
これは Google の公式製品ではありません。