Формирование продукции Falco
Я использую инструмент обнаружения времени выполнения Falco для анализа поведения контейнера в течение не менее 40 секунд, используя фильтры, которые обнаруживают новые запускаемые и выполняемые процессы, сохраняют файл инцидента art /opt/falco-incident.txt, содержащий обнаруженные инциденты. Я пытаюсь отформатировать результат вывода по одному в строке в формате [timestamp], [uid], [user-name],[processName]
Я создал файл yaml audit.yaml
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: Metadata
namespace: ""
verb: ""
resources:
- group: ""
resource: ""
- name: audit
hostPath:
path: /etc/kubernetes/audit.yaml
type: File
- name: audit-log
hostPath:
path: /var/log/all-resources.log
type: FileOrCreate
- mountPath: /etc/kubernetes/audit.yaml
name: audit
readOnly: true
- mountPath: /var/log/all-resources.log
name: audit-log
readOnly: false
Я отредактировал kube-apiserver, добавив эти 3 строки
- --audit-policy-file=/etc/kubernetes/audit.yaml
- --audit-log-path=/var/log/all-resources.log
- --audit-log-maxage=1
Главный вопрос: как и где определить желаемый результат, который должен выглядеть так?
[отметка времени], [uid], [имя пользователя], [имя процесса]
[отметка времени], [uid], [имя пользователя], [имя процесса]
....
2 ответа
Я думаю, вы идете в неправильном направлении. В вопросе указано использование инструмента Falco, поэтому вам необходимо отредактировать файл falco_rules.local.yaml. Это не имеет ничего общего с политикой аудита. Это может быть что-то вроде этого:
- rule: spawned_process_in_container
desc: A process was spawned in the container.
condition: container.name = "pod" and evt.type = execve
output: "%evt.time,%user.uid,%user.name,%proc.name"
priority: ERROR
И когда вы пытаетесь запустить, вы можете использовать приведенную ниже команду для запуска 40 секунд.
falco -M 40 -r /etc/falco/falco_rules.local.yaml > log.txt
Это запустит falco на 40 секунд с заданными вами условиями и поместит результат в желаемом формате в файл log.txt.
PS: я знаю, что уже поздно отвечать, но кому-то это может быть полезно.
Пользовательское правило должно быть определено в файле etc / falco / falco_rules_local.yaml. Пожалуйста, проверьте правила, уже присутствующие в etc / falco / falco_rules.yaml, и используйте тот же формат для определения новых правил.