注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Palantir は Secure Computing Mode(seccomp)を通じて、私たちのインフラストラクチャ内で実行されるさまざまなシステムコール(syscalls)を制限します。Seccomp は Linux カーネルのセキュリティ機能で、プロセスやコンテナに対してシステムコール(syscall)の制限を適用することを可能にします。
Seccomp フィルターは、コンテナが行うことができるシステムコールを許可リストに登録する方法を提供し、許可リストにないシステムコールを処理するための複数の方法を提供します。これには LOG、KILL、そして ERRNO プロファイルが含まれます:
LOG は許可リストにないシステムコールを実行するが、それらを監査d/osquery にログとして記録します。KILL は許可リストにないシステムコールを行う任意のプロセスを終了します。ERRNO はシステムコールの実行を防止しますが、ログイベントは生成しません。Seccomp を使用することで、安全でないと考えられるシステムコールや、コンテナから脱出するために使用できるシステムコールを防止/ログ化することにより、コンテナの攻撃面を減らすことができます。これにより、コンテナとホスト間、およびコンテナ間の追加のセキュリティレイヤーが提供されます。以下に、Palantir プラットフォームで自動的にブロックするシステムコールのリストを示します。
ユーザーのアプリケーションが以下にリストされているシステムコールを行う場合、そのプロセスは終了し、私たちのインシデント対応チームに通知されます。これらのシステムコールを使用する必要がある場合は、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 イメージをカーネルスペースにロードし、sym の再配置を実行します。 |
| GETPMSG ↗ | 未実装 |
| GET_KERNEL_SYMS ↗ | 2.6以降では廃止されています。カーネルの syms をテーブルにコピーします。 |
| GET_MEMPOLICY ↗ | スレッドの non-uniform memory access(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 ↗ | 廃止されました。システムパラメーターを読み取り、書き込みます。 |