Process creation and launch
Starts payloads, replaces a process image, creates workers, or detaches from a parent session.
execveexecveatcloneclone3forksetsidLinux malware ultimately asks the kernel to execute processes, map memory, touch files, communicate, and change privileges. This guide organizes those system calls into behaviors defenders can investigate.
A syscall is not a verdict. Browsers, databases, backup agents, and malware often invoke the same calls. Detection comes from sequence, arguments, ancestry, identity, destination, and timing—not a syscall name in isolation.
Search by syscall, behavior, or telemetry idea. Names vary by architecture and kernel version; modern applications commonly use the *at variants.
Starts payloads, replaces a process image, creates workers, or detaches from a parent session.
execveexecveatcloneclone3forksetsidMaps executable regions, changes page permissions, creates anonymous file-backed payloads, or manipulates another process.
mmapmprotectmemfd_createptraceprocess_vm_writevWrites components, changes permissions, replaces configuration, removes evidence, or enumerates directories.
openatwriterenameat2fchmodatunlinkatgetdents64Creates outbound sessions, listeners, DNS or UDP exchanges, and long-lived channels.
socketconnectbindlistenaccept4sendtorecvfromChanges credentials, manipulates Linux capabilities, enters namespaces, or alters mount context.
setresuidsetresgidcapsetunsharesetnsmountProfiles kernel, CPU, filesystems, processes, interfaces, and execution context before choosing behavior.
unamesysinforeadlinkatgetdents64sched_getaffinitystatxMoves data between processes, redirects descriptors, coordinates workers, or terminates competing services.
pipe2dup2killtgkillshmgetfutexInspects execution conditions, changes process metadata, delays activity, or restricts observable behavior.
prctlptraceclock_gettimenanosleepseccompgetrandomTurn raw kernel events into a defensible finding by adding context at every stage.
Use auditd, eBPF sensors, EDR, or workload telemetry at an intentional scope.
Add process tree, container, user, hashes, path, arguments, and network identity.
Join events into behaviors such as drop → chmod → execute → connect.
Compare with baseline, preserve evidence, and validate intent before response.
Sequences generally provide stronger signal than isolated calls.
| Observed sequence | Possible behavior | Useful context |
|---|---|---|
openat → write → fchmodat → execve | Dropped executable launched from disk | Path ownership, mount options, signer/package provenance, parent process |
memfd_create → write → execveat | Anonymous in-memory execution | Creator identity, executable seals, command line, subsequent network events |
socket → connect → dup2 → execve | Network-connected command interpreter | Destination reputation, descriptor mapping, executed image, process ancestry |
unshare → mount → execve | Namespace-isolated execution | Container runtime relationship, capabilities, mount target, user namespace mapping |
ptrace/process_vm_writev → mprotect | Cross-process manipulation | Target relationship, debugger policy, memory permissions, loaded modules |