注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Palantirは、Secure Computing Mode(seccomp)を通じて、我々のインフラ内で実行される様々なシステムコール(syscalls)を制限します。Seccompは、システムコール(syscall)の制限をプロセスまたはコンテナに適用することを可能にするLinuxカーネルのセキュリティ機能です。
Seccompフィルターは、コンテナが行うことができるsyscallsを許可リストに登録する方法を提供し、LOG
、KILL
、および ERRNO
プロファイルを含む、許可リストに登録されていないsyscallsの取り扱い方法を複数提供します:
LOG
は許可リストに登録されていないsyscallsを実行しますが、それらをauditd/osqueryにログとして記録します。KILL
は許可リストに登録されていないsyscallを行う任意のプロセスを終了させます。ERRNO
はsyscallの実行を防ぎますが、ログイベントは生成しません。Seccompは、コンテナの攻撃面を減らし、安全と考えられないか、コンテナからの脱出に使用できるsyscallsを防止/ログ化することで、コンテナとホスト間、またコンテナ間の追加のセキュリティ層を提供します。以下に、Palantirプラットフォームで自動的にブロックするsyscallsのリストを掲載します。
ユーザーのアプリケーションが以下に列挙したsyscallを行うと、プロセスは終了し、我々のインシデント対応チームに通知されます。これらのsyscallsの使用が必要なユースケースの場合は、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 | スレッドの非一様メモリアクセス(NUMA)ポリシーを取得します。NUMAノードはメモリコントローラをNUMAごとに分けており、ノード間の移動は遅いです。 |
INIT_MODULE | ELFイメージをカーネルスペースにロードします。 |
IOPERM | ポート入出力のpermsを設定します。i386のみです。 |
IOPL | ioperm i386のみで廃止されました。I/O特権レベルを変更します。 |
KCMP | 二つのプロセスを比較して、カーネルリソース(例えば仮想メモリ)を共有しているかどうかを判断します。 |
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 | 廃止されました。システムパラメーターを読み書きします。 |