管理と有効化エンロールメント設定コンテナの制限

注: 以下の翻訳の正確性は検証されていません。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 ↗非推奨です。システムパラメーターを読み書きします。