본문 바로가기
Kubernetes (k8s)

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

by moveho 2023. 8. 19.

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를 사용해서 연습해보자

댓글