Kubernetes 클러스터에서 보안은 매우 중요한 요소입니다. 이번 글에서는 Kubernetes 클러스터에 Falco를 설치하고 이를 통해 위협을 탐지하고 분석하는 방법에 대해 다룰 것입니다. Falco를 설치하고 사용하기 전에, Falco가 어떻게 작동하는지에 대한 높은 수준의 개요를 먼저 살펴보겠습니다.
Falco는 사용자 공간의 애플리케이션에서 Linux 커널로 들어오는 시스템 호출을 모니터링합니다. 이를 위해 Falco는 커널에 삽입되어 시스템 호출을 가로채서 분석합니다. Falco가 이를 수행하는 방법에는 두 가지가 있습니다:
감지된 이벤트는 CIS 로그 파일, 표준 출력, Slack 채널 경고, 이메일 경고 등 다양한 출력 채널을 통해 경고될 수 있습니다.
Falco를 설치하는방법에는 몇 가지가 있습니다. 먼저, Linux 운영 체제에서 정규 소프트웨어 패키지로 설치하는 방법을 살펴보겠습니다.
이 방법을 통해 Falco를 설치하면 Falco 커널 모듈도 함께 설치됩니다. 설치 단계는 다음과 같습니다:
1. 공식 문서 참고: Falco 설치 문서에서 제공된 단계를 따릅니다.
2. 서비스 활성화 및 시작: 설치가 완료되면 Falco 서비스를 활성화하고 시작합니다.
노드에 직접 Falco 서비스로 사용하는 주요 장점 중 하나는 침해가 발생하는 경우 Falco가 Kubernetes와 격리되어 여전히 의심스러운 동작을 탐지하고 경고할 수 있다는 점입니다.
노드에 직접 설치하는 것이 불가능한 경우, 클러스터의 노드에서 Falco를 DaemonSet으로 실행할 수도 있습니다. 이 DaemonSet을 배포하는 가장 쉬운 방법은 헬름 차트를 사용하는 것입니다.
$ helm repo add falcosecurity https://falcosecurity.github.io/charts
$ helm install falco falcosecurity/falco
NAME: falco
LAST DEPLOYED: Wed Mar 7 20:19:25 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Falco agents are spinning up on each node in your cluster. After a few
seconds, they are going to start monitoring your containers looking for
security issues.
No further action should be required.
Falco가 설치되면 이제 우리는 Falco 규칙을 사용하여 이상 행동을 탐지하고 경고할 준비가 되었습니다. Falco는 다양한 사전 정의된 규칙 세트를 제공하며, 이를 통해 일반적인 보안 위협을 탐지할 수 있습니다. 필요에 따라 사용자 정의 규칙을 추가하여 특정 환경에 맞는 보안 정책을 구현할 수도 있습니다.
다음은 기본 제공되는 몇 가지 규칙 예제입니다:
- rule: Terminal shell in container
desc: Detect terminal shell activity within a container
condition: container and proc.name in (bash, zsh, sh)
output: "Terminal shell activity detected in container (user=%user.name user_loginuid=%user.loginuid container_id=%container.id image=%container.image.repository)"
priority: NOTICE
tags: [container, shell, process]
- rule: Access to /etc/shadow
desc: Detect attempts to read the /etc/shadow file, which stores password hashes
condition: open_read and fd.name=/etc/shadow
output: "Attempt to read /etc/shadow file (user=%user.name user_loginuid=%user.loginuid)"
priority: WARNING
tags: [filesystem, file_access, user]
이번 글에서는 Kubernetes 클러스터에 Falco를 설치하고 이를 통해 위협을 탐지하는 방법에 대해 알아보았습니다. Falco는 커널 수준에서 시스템 호출을 모니터링하여 실시간으로 위협을 감지하고 경고할 수 있는 강력한 도구입니다. 이를 통해 Kubernetes 클러스터의 보안을 한층 더 강화할 수 있습니다.