
Santa は、macOS 向けのバイナリおよびファイルアクセス認可システムです。 これは、実行とファイルアクセスを監視し、ローカルデータベースの内容に 基づいて判断を下すシステム拡張機能、ブロック判断時にユーザーへ通知する GUI エージェント、リモートサーバーと構成を同期するバックグラウンド サービス、そしてシステムを管理するコマンドラインユーティリティで構成 されています。
いたずらなバイナリか良い子のバイナリかを記録することから、Santa と名付けられました。
Santa のドキュメントは、 Docs ディレクトリに格納され、 https://northpole.dev で公開されています。
ドキュメントには、導入オプション、Santa の各コンポーネントの動作詳細、および Santa 自体を開発するための手順が含まれています。
質問がある場合や、始めるにあたって支援が必要な場合は、 macadmins Slack の #santa チャンネル が最適な場所です。
バグだと思われる場合は、遠慮なく 問題を報告 してください。できるだけ早く 対応します。
脆弱性を発見したと思われる場合は、開示報告について セキュリティポリシー を お読みください。
複数のモード: デフォルトの MONITOR モードでは、ブロック対象としてマークされた ものを除くすべてのバイナリの実行が許可され、イベントデータベースに 記録されます。LOCKDOWN モードでは、リストされたバイナリのみが実行を 許可されます。
イベントログ: システム拡張機能が読み込まれると、すべてのバイナリの起動が 記録されます。どちらのモードでも、未知のバイナリまたは拒否されたバイナリは すべてデータベースに保存され、後で集計できるようになります。
コード署名ベースのルールと上書きレベル: バイナリのハッシュ(または 「フィンガープリント」)に依存する代わりに、実行ファイルはコード署名 (CDHash、Certificate、TeamID、SigningID ルール)によって許可/ブロックできます。 つまり、特定の発行元が署名したすべてのバイナリや、署名済みバイナリのすべての バージョンを許可/ブロックできます。ルールは最も具体的な順序で適用されるため、 特定の発行元のすべてのバイナリを許可しつつ、特定の署名 ID やバイナリを ブロックする(またはその逆)ことができます。
パスベースのルール(NSRegularExpression/ICU 経由): これは、Managed Client (構成プロファイルの前身で、同じ実装メカニズムを使用)に見られる機能、 すなわち mcxalr バイナリによるアプリケーション起動制限と同様の機能を提供します。 この実装には、正規表現で構成可能で、LaunchServices に依存しないという 追加の利点があります。wiki に詳述されているように、ルールの評価時には 最も低い優先順位となります。
フェイルセーフ証明書ルール: launchd(別名 pid 1)、ひいては macOS で使用される すべてのコンポーネントの署名に使用される証明書をブロックする拒否ルールを 設定することはできません。そのため、すべての OS アップデートに含まれるバイナリ (場合によっては新しいバージョン全体)は自動的に許可されます。これは Apple の App Store のバイナリには影響しません。App Store の一般的なアプリは定期的に 変更されるさまざまな証明書を使用しているためです。同様に、Santa 自体を ブロックすることもできません。
ユーザーランドコンポーネントの相互検証: 各ユーザーランドコンポーネント (デーモン、GUI エージェント、コマンドラインユーティリティ)は XPC を使用して 相互に通信し、通信が受け入れられる前に署名証明書が同一であることを 確認します。
キャッシュ: 許可されたバイナリはキャッシュされるため、リクエストに必要な 処理はバイナリがまだキャッシュされていない場合にのみ実行されます。
単一のシステムやプロセスですべての攻撃を防いだり、100% のセキュリティを 提供したりすることはできません。Santa は、ユーザーを自分自身から守るのに 役立つことを意図して書かれています。人々はマルウェアをダウンロードしてそれを 信頼し、マルウェアに認証情報を与えたり、未知のソフトウェアにシステムに関する より多くのデータを外部送信させたりすることがよくあります。中央管理された コンポーネントとして、Santa は多数のマシンで構成されるフリート全体における マルウェアの拡散を防ぐのに役立ちます。単独でも、Santa はコンピュータ上で 実行されているものを分析するのに役立ちます。
Santa は多層防御戦略の一部です。適切と思われる他のあらゆる方法でホストを 保護し続けることをお勧めします。
Santa は実行(execve およびその亜種)のみをブロックし、dlopen で読み込まれる
動的ライブラリ、ディスク上で置き換えられたライブラリ、DYLD_INSERT_LIBRARIES
を使用して読み込まれるライブラリは保護しません。SIP が有効になっている限り、
macOS の他の部分が通常これらの経路から保護します。
スクリプト: Santa は現在、バイナリではない実行をすべて無視するように書かれて います。これは、管理コストと利点を比較検討した結果、価値がないと判断したため です。さらに、多くのアプリケーションが一時的に生成されたスクリプトを使用して おり、それらを許可リストに登録することは不可能であり、登録しないと問題が 発生するからです。他の人にとって有用であれば、この件を再検討(少なくとも オプション化)したいと考えています。
Santa は設定とポリシーを管理サーバーと同期でき、非常に迅速な構成変更が 可能です。
利用可能な商用およびオープンソースのサーバーがいくつかあります:
あるいは、ルールは StaticRules 構成
キーまたは santactl rule コマンドを使用して、ローカルに構成できます。
Santa のようなツールはスクリーンショットに適していないので、代わりにビデオを 用意しました。
このプロジェクトへのパッチは大歓迎です。 CONTRIBUTING ドキュメントをご覧ください。
North Pole Security および North Pole Security Santa は Google とは提携関係にありません。