Skip to content

Commit

Permalink
fix: clone sig metadata properties
Browse files Browse the repository at this point in the history
  • Loading branch information
rscampos committed Sep 20, 2024
1 parent 66e1ae5 commit 0b164b1
Show file tree
Hide file tree
Showing 34 changed files with 42 additions and 2 deletions.
2 changes: 2 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ require (
sigs.k8s.io/controller-runtime v0.18.2
)

replace github.com/aquasecurity/tracee/signatures/helpers => ./signatures/helpers

require (
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect
github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20231105174938-2b5cbb29f3e2 // indirect
Expand Down
2 changes: 0 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -408,8 +408,6 @@ github.com/aquasecurity/libbpfgo v0.7.0-libbpf-1.4.0.20240729111821-61d531acf4ca
github.com/aquasecurity/libbpfgo v0.7.0-libbpf-1.4.0.20240729111821-61d531acf4ca/go.mod h1:UpO6kTehEgAGGKR2twztBxvzjTiLiV/cb2xmlYb+TfE=
github.com/aquasecurity/tracee/api v0.0.0-20240905132323-d1eaeef6a19f h1:O4UmMQViaaP1wKL1eXe7C6VylwrUmUB5mYM+roqnUZg=
github.com/aquasecurity/tracee/api v0.0.0-20240905132323-d1eaeef6a19f/go.mod h1:Gn6xVkaBkVe1pOQ0++uuHl+lMMClv0TPY8mCQ6j88aA=
github.com/aquasecurity/tracee/signatures/helpers v0.0.0-20240607205742-90c301111aee h1:1KJy6Z2bSpmKQVPShU7hhbXgGVOgMwvzf9rjoWMTYEg=
github.com/aquasecurity/tracee/signatures/helpers v0.0.0-20240607205742-90c301111aee/go.mod h1:SX08YRCsPFh8CvCvzkV8FSn1sqWAarNVEJq9RSZoF/8=
github.com/aquasecurity/tracee/types v0.0.0-20240607205742-90c301111aee h1:PDQn0NcQnF/O8wX2zDak0TteAR89IMUTcCm1IwVmo0M=
github.com/aquasecurity/tracee/types v0.0.0-20240607205742-90c301111aee/go.mod h1:Jwh9OOuiMHXDoGQY12N9ls5YB+j1FlRcXvFMvh1CmIU=
github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=
Expand Down
1 change: 1 addition & 0 deletions signatures/golang/anti_debugging_ptraceme.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ func (sig *AntiDebuggingPtraceme) Init(ctx detect.SignatureContext) error {
}

func (sig *AntiDebuggingPtraceme) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&antiDebuggingPtracemeMetada)
return antiDebuggingPtracemeMetada, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/aslr_inspection.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ func (sig *AslrInspection) Init(ctx detect.SignatureContext) error {
}

func (sig *AslrInspection) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&aslrInspectionMetadata)
return aslrInspectionMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/cgroup_notify_on_release_modification.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ func (sig *CgroupNotifyOnReleaseModification) Init(ctx detect.SignatureContext)
}

func (sig *CgroupNotifyOnReleaseModification) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&cgroupNotifyOnReleaseModificationMetadata)
return cgroupNotifyOnReleaseModificationMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/cgroup_release_agent_modification.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ func (sig *CgroupReleaseAgentModification) Init(ctx detect.SignatureContext) err
}

func (sig *CgroupReleaseAgentModification) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&cgroupReleaseAgentModificationMetadata)
return cgroupReleaseAgentModificationMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/core_pattern_modification.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ func (sig *CorePatternModification) Init(ctx detect.SignatureContext) error {
}

func (sig *CorePatternModification) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&corePatternModificationMetadata)
return corePatternModificationMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/default_loader_modification.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ func (sig *DefaultLoaderModification) Init(ctx detect.SignatureContext) error {
}

func (sig *DefaultLoaderModification) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&defaultLoaderModificationMetadata)
return defaultLoaderModificationMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/disk_mount.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ func (sig *DiskMount) Init(ctx detect.SignatureContext) error {
}

func (sig *DiskMount) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&diskMountMetadata)
return diskMountMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/docker_abuse.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ func (sig *DockerAbuse) Init(ctx detect.SignatureContext) error {
}

func (sig *DockerAbuse) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&dockerAbuseMetadata)
return dockerAbuseMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/dropped_executable.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func (sig *DroppedExecutable) Init(ctx detect.SignatureContext) error {
}

func (sig *DroppedExecutable) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&droppedExecutableMetadata)
return droppedExecutableMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/dynamic_code_loading.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ func (sig *DynamicCodeLoading) Init(ctx detect.SignatureContext) error {
}

func (sig *DynamicCodeLoading) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&dynamicCodeLoadingMetadata)
return dynamicCodeLoadingMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/fileless_execution.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func (sig *FilelessExecution) Init(ctx detect.SignatureContext) error {
}

func (sig *FilelessExecution) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&filelessExecutionMetadata)
return filelessExecutionMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/hidden_file_created.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ func (sig *HiddenFileCreated) Init(ctx detect.SignatureContext) error {
}

func (sig *HiddenFileCreated) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&hiddenFileCreatedMetadata)
return hiddenFileCreatedMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/illegitimate_shell.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ func (sig *IllegitimateShell) Init(ctx detect.SignatureContext) error {
}

func (sig *IllegitimateShell) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&illegitimateShellMetadata)
return illegitimateShellMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/k8s_service_account_token.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ func (sig *K8SServiceAccountToken) Init(ctx detect.SignatureContext) error {
}

func (sig *K8SServiceAccountToken) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&k8SServiceAccountTokenMetadata)
return k8SServiceAccountTokenMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/kernel_module_loading.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func (sig *KernelModuleLoading) Init(ctx detect.SignatureContext) error {
}

func (sig *KernelModuleLoading) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&kernelModuleLoadingMetadata)
return kernelModuleLoadingMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/kubernetes_api_connection.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ func (sig *K8sApiConnection) Init(ctx detect.SignatureContext) error {
}

func (sig *K8sApiConnection) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&k8sApiConnectionMetadata)
return k8sApiConnectionMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/kubernetes_certificate_theft_attempt.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ func (sig *KubernetesCertificateTheftAttempt) Init(ctx detect.SignatureContext)
}

func (sig *KubernetesCertificateTheftAttempt) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&kubernetesCertificateTheftAttemptMetadata)
return kubernetesCertificateTheftAttemptMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/ld_preload.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ func (sig *LdPreload) Init(ctx detect.SignatureContext) error {
}

func (sig *LdPreload) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&ldPreloadMetadata)
return ldPreloadMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/proc_fops_hooking.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func (sig *ProcFopsHooking) Init(ctx detect.SignatureContext) error {
}

func (sig *ProcFopsHooking) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&procFopsHookingMetadata)
return procFopsHookingMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/proc_kcore_read.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ func (sig *ProcKcoreRead) Init(ctx detect.SignatureContext) error {
}

func (sig *ProcKcoreRead) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&procKcoreReadMetadata)
return procKcoreReadMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/proc_mem_access.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ func (sig *ProcMemAccess) Init(ctx detect.SignatureContext) error {
}

func (sig *ProcMemAccess) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&procMemAccessMetadata)
return procMemAccessMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/proc_mem_code_injection.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ func (sig *ProcMemCodeInjection) Init(ctx detect.SignatureContext) error {
}

func (sig *ProcMemCodeInjection) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&procMemCodeInjectionMetadata)
return procMemCodeInjectionMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/process_vm_write_code_injection.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ func (sig *ProcessVmWriteCodeInjection) Init(ctx detect.SignatureContext) error
}

func (sig *ProcessVmWriteCodeInjection) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&processVmWriteCodeInjectionMetadata)
return processVmWriteCodeInjectionMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/ptrace_code_injection.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ func (sig *PtraceCodeInjection) Init(ctx detect.SignatureContext) error {
}

func (sig *PtraceCodeInjection) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&ptraceCodeInjectionMetadata)
return ptraceCodeInjectionMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/rcd_modification.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ func (sig *RcdModification) Init(ctx detect.SignatureContext) error {
}

func (sig *RcdModification) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&rcdModificationMetadata)
return rcdModificationMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/sched_debug_recon.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ func (sig *SchedDebugRecon) Init(ctx detect.SignatureContext) error {
}

func (sig *SchedDebugRecon) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&schedDebugReconMetadata)
return schedDebugReconMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/scheduled_task_modification.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ func (sig *ScheduledTaskModification) Init(ctx detect.SignatureContext) error {
}

func (sig *ScheduledTaskModification) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&scheduledTaskModificationMetadata)
return scheduledTaskModificationMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/stdio_over_socket.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ func (sig *StdioOverSocket) Init(ctx detect.SignatureContext) error {
}

func (sig *StdioOverSocket) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&stdioOverSocketMetadata)
return stdioOverSocketMetadata, nil
}

Expand Down
1 change: 1 addition & 0 deletions signatures/golang/sudoers_modification.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ func (sig *SudoersModification) Init(ctx detect.SignatureContext) error {
}

func (sig *SudoersModification) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&sudoersModificationMetadata)
return sudoersModificationMetadata, nil
}

Expand Down
2 changes: 2 additions & 0 deletions signatures/golang/syscall_table_hooking.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package main
import (
"fmt"

"github.com/aquasecurity/tracee/signatures/helpers"
"github.com/aquasecurity/tracee/types/detect"
"github.com/aquasecurity/tracee/types/protocol"
"github.com/aquasecurity/tracee/types/trace"
Expand Down Expand Up @@ -34,6 +35,7 @@ func (sig *SyscallTableHooking) Init(ctx detect.SignatureContext) error {
}

func (sig *SyscallTableHooking) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&syscallTableHookingMetadata)
return syscallTableHookingMetadata, nil
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ func (sig *SystemRequestKeyConfigModification) Init(ctx detect.SignatureContext)
}

func (sig *SystemRequestKeyConfigModification) GetMetadata() (detect.SignatureMetadata, error) {
helpers.CloneProperties(&systemRequestKeyConfigModificationMetadata)
return systemRequestKeyConfigModificationMetadata, nil
}

Expand Down
8 changes: 8 additions & 0 deletions signatures/helpers/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ package helpers

import (
"fmt"
"maps"
"strings"

"github.com/aquasecurity/tracee/types/detect"
"github.com/aquasecurity/tracee/types/trace"
)

Expand Down Expand Up @@ -435,3 +437,9 @@ func GetProtoHTTPByName(

return trace.ProtoHTTP{}, fmt.Errorf("protocol HTTP: type error (should be trace.ProtoHTTP, is %T)", arg.Value)
}

func CloneProperties(m *detect.SignatureMetadata) {
// do a shallow clone of Properties map getting a new reference
// avoiding leaking the original pointer
m.Properties = maps.Clone(m.Properties)
}

0 comments on commit 0b164b1

Please sign in to comment.