注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。
Palantir通过安全计算模式(seccomp)限制各种系统调用(syscalls)在我们的基础设施中运行。Seccomp是Linux内核中的一个安全功能,允许对进程或容器应用系统调用(syscall)限制。
Seccomp筛选提供了一种方法来允许列表中的系统调用,容器可以进行这些调用,并允许对非允许列表中的系统调用进行多种处理方法,包括LOG、KILL和ERRNO配置文件:
LOG允许非允许列表中的系统调用运行,但将其记录到auditd/osquery用于进程审计。KILL终止任何进行非允许列表中系统调用的进程。ERRNO阻止系统调用运行,但不会生成日志事件。Seccomp允许我们通过阻止/记录被认为不安全或可以用于逃逸容器的系统调用来减少容器的攻击面。这样做提供了容器与主机之间以及容器之间的额外安全层。以下是我们在Palantir平台中自动阻止的系统调用列表。
如果您的应用程序进行下面列出的系统调用,进程将被终止,我们的事件响应团队将收到通知。如果您的应用案例需要使用这些系统调用,请联系Palantir支持以获取帮助。
| Linux调用 | 描述 |
|---|---|
| ACCT ↗ | 启用或禁用Berkeley Software Distribution (BSD)风格的记账。 |
| ADD_KEY ↗ | 在内核中创建一个密钥。如果密钥已经存在,它将被更新。 |
| AFS_SYSCALL ↗ | 未实现 |
| BPF ↗ | 执行Berkeley Packet 筛选的操作。 |
| 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 ↗ | 比较两个进程以确定它们是否共享内核资源(例如虚拟内存)。 |
| 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 ↗ | 已弃用;读取和写入系统参数。 |