注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

コンテナの制限

Palantirは、Secure Computing Mode(seccomp)を通じて、我々のインフラ内で実行される様々なシステムコール(syscalls)を制限します。Seccompは、システムコール(syscall)の制限をプロセスまたはコンテナに適用することを可能にするLinuxカーネルのセキュリティ機能です。

Seccompフィルターは、コンテナが行うことができるsyscallsを許可リストに登録する方法を提供し、LOGKILL、および ERRNOプロファイルを含む、許可リストに登録されていないsyscallsの取り扱い方法を複数提供します:

  • LOGは許可リストに登録されていないsyscallsを実行しますが、それらをauditd/osqueryにログとして記録します。
  • KILLは許可リストに登録されていないsyscallを行う任意のプロセスを終了させます。
  • ERRNOはsyscallの実行を防ぎますが、ログイベントは生成しません。

Seccompは、コンテナの攻撃面を減らし、安全と考えられないか、コンテナからの脱出に使用できるsyscallsを防止/ログ化することで、コンテナとホスト間、またコンテナ間の追加のセキュリティ層を提供します。以下に、Palantirプラットフォームで自動的にブロックするsyscallsのリストを掲載します。

ユーザーのアプリケーションが以下に列挙したsyscallを行うと、プロセスは終了し、我々のインシデント対応チームに通知されます。これらのsyscallsの使用が必要なユースケースの場合は、Palantirサポートに連絡してください。

Linuxコール説明
ACCTBerkeley Software Distribution(BSD)スタイルの会計を有効または無効にします。
ADD_KEYカーネルにキーを作成します。すでにキーが存在する場合は更新されます。
AFS_SYSCALL実装されていません
BPFBerkeley Packet Filtersの操作を実行します。
CLOCK_SETTIME指定されたクロック(clockid)の時間を設定します。
CREATE_MODULE2.6以降廃止されました。カーネルがロード可能モジュールエントリーを作成します。
DELETE_MODULE未使用のロード可能モジュールを名前で削除しようとします。
FANOTIFY_INITCAP_SYS_ADMINが必要です。fanotifyグループを作成し、イベントキューのディスクリプタを返します。
FINIT_MODULEELFイメージをカーネルスペースにロードし、symの再配置を行います。
GETPMSG実装されていません
GET_KERNEL_SYMS2.6以降廃止されました。カーネルsymsをテーブルにコピーします。
GET_MEMPOLICYスレッドの非一様メモリアクセス(NUMA)ポリシーを取得します。NUMAノードはメモリコントローラをNUMAごとに分けており、ノード間の移動は遅いです。
INIT_MODULEELFイメージをカーネルスペースにロードします。
IOPERMポート入出力のpermsを設定します。i386のみです。
IOPLioperm i386のみで廃止されました。I/O特権レベルを変更します。
KCMP二つのプロセスを比較して、カーネルリソース(例えば仮想メモリ)を共有しているかどうかを判断します。
KEXEC_FILE_LOADリブートにより実行可能な新しいカーネルをロードします。
KEXEC_LOAD後でリブートにより実行可能になる新しいカーネルをロードします。
KEYCTLユーザースペースからカーネルのキー管理施設を操作します。
LOOKUP_DCOOKIEディレクトリエントリのパスを返します。
MBINDメモリ範囲のメモリポリシーを設定します。Numaノードと共に使用されます。
MIGRATE_PAGESプロセスのすべてのページを別のノードセットに移動します。CAP_SYS_NICEが必要です。
MSGRCVSystem Vメッセージキュー操作
MOUNTファイルシステムをマウントします。CAP_SYS_ADMINが必要です。
MOVE_PAGESプロセスの個々のページを別のノードに移動します。
NAME_TO_HANDLE_ATパス名のハンドルを取得し、ハンドルを介してファイルを開きます。
NFSSERVCTLLinux 3.1以降は廃止されました。カーネルNFSデーモンへのインターフェース。
OPEN_BY_HANDLE_ATNAME_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_MODULE2.6で廃止されました。モジュールに関連する様々な情報をカーネルに問い合わせます。
QUOTACTLディスククォートを操作します。CAP_SYS_ADMINが必要です。
REBOOTリブートを行うか、リブートキーストローク(CTRL-ALT-DEL)を有効にします。
REQUEST_KEYカーネルのキー管理施設からキーを要求します。
SECURITY実装されていません
SETDOMAINNAMENISドメイン名を取得または設定します。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廃止されました。システムパラメーターを読み書きします。