Skip to content

New protect rules don't have effect when 38 protect rules are already applied #22

@holyspectral

Description

@holyspectral

Upstream reference: cilium/tetragon#4244


Is there an existing issue for this?

  • I have searched the existing issues

Environment

- OS: Ubuntu
- Architecture: amd64
- Cluster: kind

Issue Description

  • Expected behavior: the max limit we can support is to be defined, but 38 policies is way too low.
  • Current behavior: when more than 38 protect policies are assigned, tetragon would return below errors:
[tetragon] level=warn msg="adding tracing policy failed" error="sensor generic_kprobe from collection deploy-ubuntu-deployment-86 failed to load: failed prog /var/lib/tetragon/bpf_generic_kprobe_v612.o kern_version 396811 loadInstance: attaching 'generic_fmodret_override' failed: create raw tracepoint: argument list too long"

When LSM is enabled, it returns a different error:

[tetragon] level=warn msg="adding tracing policy failed" error="sensor generic_lsm from collection deploy-ubuntu-deployment-26 failed to load: failed prog /var/lib/tetragon/bpf_generic_lsm_output_v612.o kern_version 396811 loadInstance: attaching 'generic_lsm_output' failed: create tracing link: argument list too long"
  • Steps to reproduce:

ubuntu-policy.yaml:

apiVersion: security.rancher.io/v1alpha1
kind: WorkloadSecurityPolicy
metadata:
  name: deploy-ubuntu-deployment
  namespace: default
spec:
  mode: protect
  rules:
    executables:
      allowed:
      - /usr/bin/sleep
  selector:
    matchLabels:
      app: ubuntu
for i in {1..200}
do
    cat ~/events/ubuntu-policy.yaml | sed "s/deploy-ubuntu-deployment/deploy-ubuntu-deployment-$i/g" | sed "s/app: ubuntu/app: ubuntu-$i/g" | kubectl apply -f -
done

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions