Kubernetes (k8s)

[k8s] how to use falco secure verification on k8s -- CKS

moveho 2023. 8. 19. 17:43

Falco 클라우드 환경에서 발생할 있는 보안 이슈를 탐지하고 알리는 오픈소스 보안 도구입니다. k8s 기반 환경에서 Falco 사용하여 시스템에서 발생하는 Event 모니터링 하고, Event 발생 조치를 취할 있습니다.

 

1.Falco - docker container 실행

[참조]

https://falco.org/blog/intro-k8s-security-monitoring/

 

https://falco.org/docs/getting-started/running/#docker-privileged

 

https://github.com/falcosecurity/falco/issues/2469

 

l  커널 모듈과 함께 falco latest 실행

docker pull falcosecurity/falco:latest
docker run -i -t \
    --privileged \
    -v /var/run/docker.sock:/host/var/run/docker.sock \
    -v /dev:/host/dev \
    -v /proc:/host/proc:ro \
    -v /boot:/host/boot:ro \
    -v /lib/modules:/host/lib/modules:ro \
    -v /usr:/host/usr:ro \
    -v /etc:/host/etc:ro \
    falcosecurity/falco:latest

host 특정 directory volume 설정해서 호스트에서도 falco 사용 가능하게 만듭니다.

l 

작동 확인

kevin@k8s-master:~$ docker ps -a

kevin@k8s-master:~$ sudo falco

falco host에서 실행시킵니다.

kevin@k8s-master:~$ docker exec -it f3daf8edc49e bash  // falco container로 들어간다

컨테이너로 들어가는 순간 작동 시켜 뒀던 falco 의해서 알림을 받을 있습니다.

2.falco 기본적인 Rule 확인

kevin@k8s-master:~$ cd /etc/falco
kevin@k8s-master:/etc/falco$ ls
aws_cloudtrail_rules.yaml  falco_rules.yaml  k8s_audit_rules.yaml
falco_rules.local.yaml     falco.yaml        rules.d

기본적인 falco 룰을 다음의 경로에서 확인 가능합니다.

kevin@k8s-master:/etc/falco$ vi falco_rules.yaml

rule 내용을 확인해 보면 다음과 같은 민감한 mount경로에 대한 rule들이 있습니다.

3.테스트 sensitive path volume mount container 실행 falco 로그 확인

민감한 경로를 -v 옵션으로 볼륨 마운트 하여 falco 동작을 확인해 봅니다.

kevin@k8s-master:~$ docker run --name pyweb -v /proc/:/proc -d python:3.8-alpine python -m http.server
5069954d50e3f3a80d




38c781c7bbf16cc3b707ef56792ec36c6def3ade2b03d3

명령어를 통해서 sensitive directory /proc mount 됨에 따라서 다음과 같은 메시지를 출력합니다.

 

4. CKS  - Example

Using the runtime detection tool "Falco", Analyse the container behavior for at least 20 seconds, using filters that detect newly spawning and executing processes in a single container of Nginx.

 

(A). store the incident file art /opt/falco-incident.txt, containing the detected incidents. one per line, in the format

 

다음과 같이 문제가 출제된다. 본인의 k8s 클러스터에서 다음과 같이 falco를 사용해서 연습해보자