注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Palantir は、Secure Computing Mode(seccomp)を使用して、Palantir のインフラストラクチャ内でさまざまなシステムコール(syscall)が実行されることを制限しています。Seccomp は、プロセスやコンテナにシステムコール(syscall)の制限を適用できる Linux カーネルのセキュリティ機能です。
Seccomp フィルターを使用すると、コンテナが実行できる syscall を許可リストに登録できます。また、許可リストに登録されていない syscall を処理する方法として、LOG、KILL、ERRNO プロファイルなどを使用できます。
LOG は、許可リストに登録されていない syscall の実行を許可しますが、プロセス監査のために auditd/osquery に記録します。KILL は、許可リストに登録されていない syscall を実行するプロセスを終了します。ERRNO は、syscall の実行を防ぎますが、ログイベントは生成しません。Seccomp を使用すると、安全でないと見なされる syscall や、コンテナからの脱出に使用できる syscall の実行を防止したり、ログに記録したりすることで、コンテナの攻撃対象領域を削減できます。これにより、コンテナとホストの間、およびコンテナ間にセキュリティ層が追加されます。以下に、Palantir プラットフォームで自動的にブロックされる syscall の一覧を示します。
アプリケーションが以下に示す syscall を実行すると、プロセスが終了し、Palantir のインシデントレスポンスチームに通知されます。ユースケースでこれらの syscall の使用が必要な場合は、Palantir サポートにお問い合わせください。
| Linux コール | 説明 |
|---|---|
| ACCT ↗ | Berkeley Software Distribution (BSD) 形式のアカウンティングを有効または無効にします。 |
| ADD_KEY ↗ | カーネル内にキーを作成します。キーがすでに存在する場合は更新します。 |
| AFS_SYSCALL ↗ | 未実装 |
| BPF ↗ | Berkeley Packet Filters に対する操作を実行します。 |
| CLOCK_SETTIME ↗ | 指定されたクロック (clockid) の時刻を設定します。 |
| CREATE_MODULE ↗ | 2.6以降は非推奨です。カーネルがロード可能なモジュールのエントリを作成します。 |
| DELETE_MODULE ↗ | 名前を指定して、未使用のロード可能なモジュールの削除を試みます。 |
| FANOTIFY_INIT ↗ | CAP_SYS_ADMIN が必要です。fanotify グループを作成し、イベントキューのディスクリプターを返します。 |
| FINIT_MODULE ↗ | ELF イメージをカーネル空間に読み込み、シンボルの再配置を実行します。 |
| GETPMSG ↗ | 未実装 |
| GET_KERNEL_SYMS ↗ | 2.6以降は非推奨です。カーネルのシンボルをテーブルにコピーします。 |
| GET_MEMPOLICY ↗ | スレッドの非均一メモリーアクセス (NUMA) ポリシーを取得します。NUMA ノードは NUMA ごとに独立したメモリーコントローラーを持ち、ノード間のアクセスは低速です。 |
| INIT_MODULE ↗ | ELF イメージをカーネル空間に読み込みます。 |
| IOPERM ↗ | ポートの入力/出力権限を設定します。i386 のみです。 |
| IOPL ↗ | ioperm の使用が推奨されるため非推奨です。i386 のみです。I/O 特権レベルを変更します。 |
| KCMP ↗ | 2つのプロセスを比較して、カーネルリソース(仮想メモリーなど)を共有しているかどうかを判定します。 |
| KEXEC_FILE_LOAD ↗ | 再起動によって実行できる新しいカーネルを読み込みます。 |
| KEXEC_LOAD ↗ | 後で再起動によって実行できる新しいカーネルを読み込みます。 |
| KEYCTL ↗ | ユーザー空間からカーネルのキー管理機能を操作します。 |
| LOOKUP_DCOOKIE ↗ | ディレクトリエントリのパスを返します。 |
| MBIND ↗ | メモリー範囲のメモリーポリシーを設定します。NUMA ノードで使用します。 |
| MIGRATE_PAGES ↗ | プロセス内のすべてのページを別のノード群に移動します。CAP_SYS_NICE が必要です。 |
| MSGRCV ↗ | System V メッセージキューの操作です。 |
| MOUNT ↗ | ファイルシステムをマウントします。CAP_SYS_ADMIN が必要です。 |
| MOVE_PAGES ↗ | プロセスの個々のページを別のノードに移動します。 |
| NAME_TO_HANDLE_AT ↗ | パス名のハンドルを取得し、ハンドルを介してファイルを開きます。 |
| NFSSERVCTL ↗ | Linux 3.1以降は非推奨です。カーネル NFS デーモンへのインターフェースです。 |
| OPEN_BY_HANDLE_AT ↗ | NAME_TO_HANDLE_AT と似ていますが、ハンドルを返す代わりに、ハンドルを使用してファイルを開きます。 |
| PERF_EVENT_OPEN ↗ | パフォーマンスの監視を設定します。 |
| PIVOT_ROOT ↗ | ルートマウントを変更します。CAP_SYS_ADMIN が必要です。 |
| PKEY_ALLOC ↗ | 保護キーを割り当てるか解放します。 |
| PKEY_FREE ↗ | 保護キーを割り当てるか解放します。 |
| PKEY_MPROTECT ↗ | メモリー領域の保護を設定します。 |
| PROCESS_VM_READV ↗ | プロセスのアドレス空間間でデータを転送します。 |
| PROCESS_VM_WRITEV ↗ | プロセスのアドレス空間間でデータを転送します。 |
| PUTPMSG ↗ | 未実装 |
| QUERY_MODULE ↗ | 2.6で非推奨になりました。モジュールに関するさまざまな情報をカーネルに問い合わせます。 |
| QUOTACTL ↗ | ディスククォータを操作します。CAP_SYS_ADMIN が必要です。 |
| REBOOT ↗ | 再起動するか、再起動のキー操作 (CTRL-ALT-DEL) を有効にします。 |
| REQUEST_KEY ↗ | カーネルのキー管理機能にキーを要求します。 |
| SECURITY ↗ | 未実装 |
| SETDOMAINNAME ↗ | NIS ドメイン名を取得または設定します。CAP_SYS_ADMIN が必要です。 |
| SETHOSTNAME ↗ | ホスト名を取得または設定します。CAP_SYS_ADMIN が必要です。 |
| SETNS ↗ | スレッドを名前空間に再割り当てします。目的の名前空間で CAP_SYS_ADMIN を持っている必要があります。 |
| SETSID ↗ | セッションを作成し、プロセスグループIDを設定します。 |
| SETTIMEOFDAY ↗ | 時刻とタイムゾーンを設定します。CAP_SYS_TIME が必要です。 |
| SET_MEMPOLICY ↗ | デフォルトの NUMA メモリーポリシーを設定します。 |
| SWAPOFF ↗ | ファイル/デバイス上のスワップを無効にします。CAP_SYS_ADMIN が必要です。 |
| SWAPON ↗ | ファイル/デバイス上のスワップを有効にします。CAP_SYS_ADMIN が必要です。 |
| SYSFS ↗ | ファイルシステムの種類に関する情報を取得します。 |
| SYSLOG ↗ | カーネルメッセージのリングバッファーを読み取り、またはクリアします。 |
| TUXCALL ↗ | 未実装 |
| UMOUNT2 ↗ | ファイルシステムをアンマウントします。CAP_SYS_ADMIN が必要です。 |
| UNSHARE ↗ | プロセスの実行コンテキストの一部を切り離します。一部のオプションでは CAP_SYS_ADMIN が必要ですが、すべてのオプションで必要なわけではありません。 |
| USELIB ↗ | 非推奨です。呼び出し元のプロセスが使用する共有ライブラリを読み込みます。 |
| USERFAULTFD ↗ | ユーザー空間でページフォールトを処理するためのファイルディスクリプターを作成します。 |
| USTAT ↗ | 非推奨です。ファイルシステムの統計情報を提供します。 |
| VHANGUP ↗ | 端末を仮想的に切断します。CAP_SYS_TTY_CONFIG が必要です。 |
| VSERVER ↗ | 未実装 |
| _SYSCTL ↗ | 非推奨です。システムパラメーターを読み書きします。 |