openharmony 鸿蒙 seccomp-symbol

2026-08-25 浏览 (1)

Seccomp开放系统调用列表

概述

Seccomp(Secure Computing Mode)是Linux内核提供的轻量级系统调用过滤机制。该机制自Linux 2.6.12版本首次引入以来,已从仅支持严格模式(Strict)的极简形态,演进为以Seccomp‑BPF(Berkeley Packet Filter)为核心的主流形态。

OpenHarmony采用Seccomp‑BPF模式,可通过BPF程序自定义系统调用过滤规则,精确限制进程可调用的系统调用范围,降低恶意代码利用内核漏洞带来的风险,提升进程、容器与应用的安全隔离性。

本文档聚焦在OpenHarmony环境下,Seccomp针对不同设备类型开放的系统调用列表,旨在帮助开发者:

  1. 快速掌握不同设备在Seccomp下的系统调用管控差异。

  2. 基于业务场景选择合适的接口调用,避免因系统调用限制导致功能异常。

Seccomp机制简介

  • 基本机制

    Seccomp策略以策略文件的形式存在。在编译构建阶段,相关脚本会先解析策略文件,生成包含BPF指令策略的源文件,再将其编译成策略动态库。在用户态进程启动过程中,通过Seccomp系统调用将BPF指令策略加载至内核。

  • 基本特点

    • 子进程会继承父进程的Seccomp策略。
    • Seccomp策略在进程运行时加载到内核后,以单向链表形式存储于内存中,且内容不可修改。
    • 进程可多次设置Seccomp策略。进程执行系统调用时,内核会遍历单向链表中每个节点的策略并比较其返回值,最终取优先级最高的返回值。

Seccomp机制导致进程终止的判定方法

查看进程faultlog日志,如果报错原因是signal:SIGSYS,且栈顶在ld-musl-{架构}.so.1库里,则进程终止可能是由Seccomp机制引起的。

cat /data/log/faultlog/faultlogger/cppcrash-xxxx

错误示例:

Process name:com.example.myapplication
Reason:Signal:SIGSYS(UNKNOWN)
Fault thread Info:
Tid:13893, Name:e.myapplication
#00 pc 000a5d30 /system/lib/ld-musl-arm.so.1(sethostname+16)(584c9d0a0e9000497bb0d66799a9526a)
#01 pc 00002f68 /data/storage/el1/bundle/libs/arm/libentry.so(test()+64)

Seccomp符号列表

系统调用支持架构支持设备备注
mbindallPC-
mmaparm64全平台设备-
mmapriscv64全平台设备-
mmap2arm全平台设备-
munmapall全平台设备-
mremapall全平台设备-
mprotectall全平台设备-
msyncall全平台设备-
mlockall全平台设备-
munlockall全平台设备-
mlockallall全平台设备-
munlockallall全平台设备-
mincoreall全平台设备-
madviseall全平台设备-
mlock2all全平台设备-
membarrierall全平台设备-
brkall全平台设备-
remap_file_pagesarm全平台设备-
forkarm全平台设备-
vforkarm全平台设备-
exitall全平台设备-
exit_groupall全平台设备-
waitidall全平台设备-
wait4all全平台设备-
set_tid_addressall全平台设备-
setpgidall全平台设备-
getpgidall全平台设备-
getsidall全平台设备-
setsidall全平台设备-
getpidall全平台设备-
getppidall全平台设备-
gettidall全平台设备-
unameall全平台设备-
personalityall全平台设备-
execveall全平台设备-
execveatall全平台设备-
cloneall全平台设备仅允许不包含以下命名空间标志的调用:
CLONE_NEWNS、
CLONE_NEWPID、
CLONE_NEWNETCLONE_NEWCGROUP、
CLONE_NEWUTS、
CLONE_NEWIPC、
CLONE_NEWUSER
符合条件返回ALLOW,否则返回TRAP。
io_setupall全平台设备-
io_destroyall全平台设备-
io_submitall全平台设备-
io_cancelall全平台设备-
io_geteventsall全平台设备-
openatall全平台设备-
openarm全平台设备-
closeall全平台设备-
creatarm全平台设备-
readall全平台设备-
writeall全平台设备-
readvall全平台设备-
writevall全平台设备-
pread64all全平台设备-
pwrite64all全平台设备-
preadvall全平台设备-
pwritevall全平台设备-
preadv2all全平台设备-
pwritev2all全平台设备-
lseekall全平台设备-
_llseekarm全平台设备-
truncateall全平台设备-
ftruncatearm64全平台设备-
ftruncateriscv64全平台设备-
truncate64arm全平台设备-
ftruncate64arm全平台设备-
fallocateall全平台设备-
fcntlall全平台设备-
fcntl64arm全平台设备-
flockall全平台设备-
mknodatall全平台设备-
mkdiratall全平台设备-
mkdirarm全平台设备-
rmdirarm全平台设备-
unlinkatall全平台设备-
unlinkarm全平台设备-
symlinkatall全平台设备-
symlinkarm全平台设备-
linkatall全平台设备-
linkarm全平台设备-
renameatarm全平台设备-
renameatarm64全平台设备-
renamearm全平台设备-
renameat2all全平台设备-
chdirall全平台设备-
fchdirall全平台设备-
faccessatall全平台设备-
accessarm全平台设备-
faccessat2all全平台设备-
getcwdall全平台设备-
getdents64all全平台设备-
getdentsarm全平台设备-
readlinkatall全平台设备-
readlinkarm全平台设备-
newfstatatarm64全平台设备-
newfstatatriscv64全平台设备-
fstatat64arm全平台设备-
fstatarm64全平台设备-
fstatriscv64全平台设备-
stat64arm全平台设备-
lstat64arm全平台设备-
fstat64arm全平台设备-
statfsarm64全平台设备-
statfsriscv64全平台设备-
statfs64arm全平台设备-
fstatfsarm64全平台设备-
fstatfsriscv64全平台设备-
fstatfs64arm全平台设备-
syncall全平台设备-
fsyncall全平台设备-
fdatasyncall全平台设备-
syncfsall全平台设备-
sync_file_rangearm64全平台设备-
sync_file_rangeriscv64全平台设备-
sync_file_range2arm全平台设备-
utimensatall全平台设备-
utimensat_time64arm全平台设备-
pipe2all全平台设备-
pipearm全平台设备-
dupall全平台设备-
dup3all全平台设备-
dup2arm全平台设备-
sendfileall全平台设备-
sendfile64arm全平台设备-
copy_file_rangeall全平台设备-
vmspliceall全平台设备-
spliceall全平台设备-
teeall全平台设备-
readaheadall全平台设备-
fadvise64arm64全平台设备-
fadvise64riscv64全平台设备-
fadvise64_64arm全平台设备-
quotactlall全平台设备-
pivot_rootriscv64全平台设备-
statxall全平台设备-
setxattrall全平台设备-
lsetxattrall全平台设备-
fsetxattrall全平台设备-
getxattrall全平台设备-
lgetxattrall全平台设备-
fgetxattrall全平台设备-
listxattrall全平台设备-
llistxattrall全平台设备-
flistxattrall全平台设备-
removexattrall全平台设备-
lremovexattrall全平台设备-
fremovexattrall全平台设备-
fchownatall全平台设备-
fchownarm64全平台设备-
fchownriscv64全平台设备-
fchown32arm全平台设备-
lchown32arm全平台设备-
chown32arm全平台设备-
getuidall全平台设备-
getuid32arm全平台设备-
geteuidarm64全平台设备-
geteuidriscv64全平台设备-
geteuid32arm全平台设备-
getgidarm64全平台设备-
getgidriscv64全平台设备-
getgid32arm全平台设备-
getegidarm64全平台设备-
getegidriscv64全平台设备-
getegid32arm全平台设备-
setresuidarm64全平台设备-
setresuidriscv64全平台设备-
setresuid32arm全平台设备-
getresuidarm64全平台设备-
getresuidriscv64全平台设备-
getresuid32arm全平台设备-
getresgidarm64全平台设备-
getresgidriscv64全平台设备-
getresgid32arm全平台设备-
getgroupsarm64全平台设备-
getgroupsriscv64全平台设备-
getgroups32arm全平台设备-
setpriorityall全平台设备-
getpriorityall全平台设备-
capgetall全平台设备-
capsetall全平台设备-
umaskall全平台设备-
getrlimitarm64全平台设备-
getrlimitriscv64全平台设备-
ugetrlimitarm全平台设备-
setrlimitall全平台设备-
prlimit64all全平台设备-
fchmodall全平台设备-
fchmodatall全平台设备-
chmodarm全平台设备-
killall全平台设备-
tkillall全平台设备-
tgkillall全平台设备-
sigaltstackall全平台设备-
rt_sigsuspendall全平台设备-
rt_sigactionall全平台设备-
sigactionarm全平台设备-
rt_sigprocmaskall全平台设备-
rt_sigpendingall全平台设备-
rt_sigtimedwaitall全平台设备-
rt_sigtimedwait_time64arm全平台设备-
rt_sigqueueinfoall全平台设备-
rt_sigreturnall全平台设备-
sigreturnarm全平台设备-
signalfd4all全平台设备-
timerfd_createall全平台设备-
timerfd_settimeall全平台设备-
timerfd_gettimeall全平台设备-
timerfd_gettime64arm全平台设备-
timerfd_settime64arm全平台设备-
timer_createall全平台设备-
timer_gettimeall全平台设备-
timer_gettime64arm全平台设备-
timer_getoverrunall全平台设备-
timer_settimeall全平台设备-
timer_settime64arm全平台设备-
timer_deleteall全平台设备-
clock_gettimeall全平台设备-
clock_gettime64arm全平台设备-
clock_settime64arm全平台设备-
clock_getresall全平台设备-
clock_getres_time64arm全平台设备-
clock_nanosleepall全平台设备-
clock_nanosleep_time64arm全平台设备-
clock_adjtime64arm全平台设备-
getitimerall全平台设备-
setitimerall全平台设备-
nanosleepall全平台设备-
futexall全平台设备-
futex_time64arm全平台设备-
rt_tgsigqueueinfoall全平台设备-
semtimedop_time64arm全平台设备-
pidfd_send_signalall全平台设备-
shmgetallPC-
socketall全平台设备-
socketpairall全平台设备-
bindall全平台设备-
listenall全平台设备-
acceptall全平台设备-
accept4all全平台设备-
connectall全平台设备-
getsocknameall全平台设备-
getpeernameall全平台设备-
sendtoall全平台设备-
recvfromall全平台设备-
setsockoptall全平台设备-
getsockoptall全平台设备-
shutdownall全平台设备-
sendmsgall全平台设备-
recvmsgall全平台设备-
recvmmsgall全平台设备-
recvmmsg_time64arm全平台设备-
sendmmsgall全平台设备-
sched_setparamall全平台设备-
sched_setschedulerall全平台设备-
sched_getschedulerall全平台设备-
sched_getparamall全平台设备-
sched_setaffinityall全平台设备-
sched_getaffinityall全平台设备-
sched_yieldall全平台设备-
sched_get_priority_maxall全平台设备-
sched_get_priority_minall全平台设备-
sched_rr_get_intervalall全平台设备-
sched_rr_get_interval_time64arm全平台设备-
sched_setattrall全平台设备-
sched_getattrall全平台设备-
ioprio_setarm64全平台设备-
ioprio_setriscv64全平台设备-
ioprio_getarm64全平台设备-
ioprio_getriscv64全平台设备-
perf_event_openall全平台设备-
getcpuall全平台设备-
getrusageall全平台设备-
timesall全平台设备-
process_vm_readvall全平台设备-
process_vm_writevall全平台设备-
process_madviseall全平台设备-
ioctlall全平台设备-
inotify_init1all全平台设备-
inotify_initarm全平台设备-
inotify_add_watchall全平台设备-
inotify_rm_watchall全平台设备-
eventfd2all全平台设备-
eventfdarm全平台设备-
epoll_create1all全平台设备-
epoll_createarm全平台设备-
epoll_ctlall全平台设备-
epoll_pwaitall全平台设备-
epoll_waitarm全平台设备-
pselect6all全平台设备-
pselect6_time64arm全平台设备-
_newselectarm全平台设备-
ppollall全平台设备-
ppoll_time64arm全平台设备-
pollarm全平台设备-
ptraceall全平台设备-
restart_syscallall全平台设备-
prctlall全平台设备-
seccompall全平台设备-
getrandomall全平台设备-
memfd_createall全平台设备-
userfaultfdall全平台设备-
gettimeofdayall全平台设备-
sysinfoall全平台设备-
pidfd_openall全平台设备-
pidfd_getfdall全平台设备-
set_robust_listall全平台设备-
cacheflusharm全平台设备-
set_tlsarm全平台设备-

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 guidance-on-ndk-libc-interfaces-affected-by-permissions

openharmony 鸿蒙 capi-vulkan-ohbufferhandle

openharmony 鸿蒙 vulkan-overview

openharmony 鸿蒙 zlib

openharmony 鸿蒙 icu4c-symbol

openharmony 鸿蒙 musl

openharmony 鸿蒙 capi-vulkan-vkimportnativebufferinfoohos

openharmony 鸿蒙 opengl-symbol

openharmony 鸿蒙 opengl

openharmony 鸿蒙 vulkan

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/kiNpg1Ab