mirror of
https://github.com/criyle/go-sandbox.git
synced 2025-09-26 23:19:11 +08:00
fix(config): fix syscall check on arm64
This commit is contained in:
parent
2d0d63be76
commit
5f66dc11f5
@ -32,7 +32,6 @@ var (
|
||||
"fstat",
|
||||
"lseek",
|
||||
"dup",
|
||||
"dup2",
|
||||
"dup3",
|
||||
"ioctl",
|
||||
"fcntl",
|
||||
@ -65,13 +64,10 @@ var (
|
||||
"exit_group",
|
||||
|
||||
// others
|
||||
"arch_prctl",
|
||||
|
||||
"gettimeofday",
|
||||
"getrlimit",
|
||||
"getrusage",
|
||||
"times",
|
||||
"time",
|
||||
"clock_gettime",
|
||||
|
||||
"restart_syscall",
|
||||
@ -84,21 +80,15 @@ var (
|
||||
"execveat",
|
||||
|
||||
// file open
|
||||
"open",
|
||||
"openat",
|
||||
|
||||
// file delete
|
||||
"unlink",
|
||||
"unlinkat",
|
||||
|
||||
// soft link
|
||||
"readlink",
|
||||
"readlinkat",
|
||||
|
||||
// permission check
|
||||
"lstat",
|
||||
"stat",
|
||||
"access",
|
||||
"faccessat",
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,19 @@ var (
|
||||
"/usr/lib/x86_64-linux-gnu/",
|
||||
}
|
||||
|
||||
archSyscallAllows = []string{}
|
||||
archSyscallAllows = []string{
|
||||
"dup2",
|
||||
"time",
|
||||
"arch_prctl",
|
||||
}
|
||||
|
||||
archSyscallTraces = []string{}
|
||||
archSyscallTraces = []string{
|
||||
"open",
|
||||
"unlink",
|
||||
"readlink",
|
||||
"lstat",
|
||||
"stat",
|
||||
"access",
|
||||
"newfstatat",
|
||||
}
|
||||
)
|
||||
|
@ -17,10 +17,19 @@ var (
|
||||
"uname",
|
||||
"set_tls",
|
||||
"arm_fadvise64_64",
|
||||
"dup2",
|
||||
}
|
||||
|
||||
archSyscallTraces = []string{
|
||||
"lstat64", // 32-bit
|
||||
"stat64", // 32-bit
|
||||
"open",
|
||||
"unlink",
|
||||
"readlink",
|
||||
"lstat",
|
||||
"stat",
|
||||
"access",
|
||||
"fstatat",
|
||||
"fstatat64",
|
||||
}
|
||||
)
|
||||
|
@ -8,9 +8,9 @@ var (
|
||||
"/usr/lib/aarch64-linux-gnu/",
|
||||
}
|
||||
|
||||
archSyscallAllows = []string{
|
||||
"newfstatat",
|
||||
}
|
||||
archSyscallAllows = []string{}
|
||||
|
||||
archSyscallTraces = []string{}
|
||||
archSyscallTraces = []string{
|
||||
"fstatat",
|
||||
}
|
||||
)
|
||||
|
4
go.mod
4
go.mod
@ -4,6 +4,6 @@ go 1.24
|
||||
|
||||
require (
|
||||
github.com/elastic/go-seccomp-bpf v1.6.0
|
||||
golang.org/x/net v0.41.0
|
||||
golang.org/x/sys v0.33.0
|
||||
golang.org/x/net v0.43.0
|
||||
golang.org/x/sys v0.35.0
|
||||
)
|
||||
|
8
go.sum
8
go.sum
@ -6,9 +6,9 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
|
||||
golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
|
||||
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
|
||||
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
|
||||
golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
|
||||
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
|
||||
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
|
@ -66,11 +66,12 @@ func (h *tracerHandler) Handle(ctx *ptracer.Context) ptracer.TraceAction {
|
||||
return ptracer.TraceKill
|
||||
}
|
||||
|
||||
// not checking dirfd for now (maybe unsafe)
|
||||
action := ptracer.TraceKill
|
||||
switch syscallName {
|
||||
case "open":
|
||||
action = h.checkOpen(ctx, ctx.Arg0(), ctx.Arg1())
|
||||
case "openat":
|
||||
case "openat", "openat2":
|
||||
action = h.checkOpen(ctx, ctx.Arg1(), ctx.Arg2())
|
||||
|
||||
case "readlink":
|
||||
@ -85,13 +86,15 @@ func (h *tracerHandler) Handle(ctx *ptracer.Context) ptracer.TraceAction {
|
||||
|
||||
case "access":
|
||||
action = h.checkStat(ctx, ctx.Arg0())
|
||||
case "faccessat", "newfstatat":
|
||||
case "faccessat", "faccessat2":
|
||||
action = h.checkStat(ctx, ctx.Arg1())
|
||||
|
||||
case "stat", "stat64":
|
||||
action = h.checkStat(ctx, ctx.Arg0())
|
||||
case "lstat", "lstat64":
|
||||
action = h.checkStat(ctx, ctx.Arg0())
|
||||
case "statx", "fstatat", "fstatat64", "newfstatat":
|
||||
action = h.checkStat(ctx, ctx.Arg1())
|
||||
|
||||
case "execve":
|
||||
action = h.checkRead(ctx, ctx.Arg0())
|
||||
|
Loading…
Reference in New Issue
Block a user