[Monitoring, Logging and Runtime Security] Falco 구성 파일 변경

IMKUNYOUNG·2024년 6월 28일
0

CKS

목록 보기
67/70

이전 글에서 Falco의 간단한 규칙 작성 방법을 배웠다면, 이번 글에서는 Falco를 사용하여 구성 파일을 살펴보고 기존 규칙을 업데이트하고 직접 규칙을 추가하는 방법에 대해 알아보겠습니다.

Falco 구성 파일의 위치와 역할

주요 Falco 구성 파일은 /etc/falco/falco.yaml에 위치한 YAML 파일입니다. 이 파일은 Falco가 시작할 때 사용하는 주요 구성 파일로, 서비스 유닛 파일을 검사하거나 노드에서 CTO 명령을 사용하여 Falco 로그를 확인함으로써 이를 확인할 수 있습니다.

실제로 Falco가 사용하는 서비스 유닛 파일을 검사하면 기본적으로 -c 플래그와 함께 Falco 명령을 실행하여 이 구성 파일을 사용함을 알 수 있습니다. 이 YAML 파일에는 Falco에서 사용하는 규칙의 위치, 로그 및 출력 메시지 형식 옵션, 출력 채널 설정 등 다양한 구성 옵션이 포함되어 있습니다.

Falco 규칙 로드 방법

Falco가 규칙을 로드하는 방법을 이해하기 위해, Falco 구성 파일은 규칙 파일 목록을 허용하는 rule_file 필드를 사용합니다. 기본 규칙은 /etc/falco/falco_rules.yaml 파일에 저장되며, 이 파일이 목록의 첫 번째에 위치합니다. 목록에서 규칙 파일이 선언된 순서는 중요합니다. 동일한 규칙이 여러 파일에 존재하는 경우, 마지막 파일의 규칙이 이전 파일의 규칙을 덮어씁니다.

규칙 파일 예시

구성 옵션

JSON 출력 설정

json_output 필드는 활성화되면 이벤트를 JSON 형식으로 기록합니다. 기본적으로 이 필드는 false로 설정되어 있으며, 이벤트는 텍스트 형식으로 기록됩니다.

json_output: false

로그 설정

Falco 자체와 관련된 구성 옵션도 있습니다. 예를 들어, Falco 프로세스의 로그 옵션, 표준 오류 또는 syslog에 로그를 기록할지 여부, Falco 로그에 사용되는 로그 레벨 등이 있습니다. 이 로그 레벨은 Falco 자체에서 생성된 로그에 대한 것이며, 기본 값은 debug로 설정되어 있습니다.

# /etc/falco/falco.yaml
log_level: debug

출력 채널 설정

기본적으로 Falco는 표준 출력에 이벤트를 기록합니다. 그러나 여러 출력 채널을 활성화할 수 있습니다. 특정 파일에 이벤트를 기록하려면 file_output 필드를 사용하고 enabledtrue로 설정할 수 있습니다. 또한, program_output을 활성화아여 Falco 이벤트를 외부 프로그램에 보낼 수도 있습니다. 대안으로 http_output 필드를 사용하여 이벤트를 HTTP 엔드포인트로 보낼 수도 있습니다.

규칙 파일 업데이트 및 추가

기본 규칙, 목록 및 매크로가 포함된 기본 파일은 /etc/falco/falco_rules.yaml입니다. Falco에는 다양한 상황을 다루는 많은 기본 규칙이 포함되어 있지만, 자체 규칙을 추가하거나 기존 기본 규칙을 덮어쓸 수도 있습니다. 기본 규칙 파일을 직접 수정하는 대신, falco_rules.local.yaml 파일을 사용하여 변경 사항을 추가하는 것이 좋습니다.

규칙 추가 예시

변경 사항 적용

구성 파일을 변경하면 변경 사항이 적용되기 위해 Falco 구성을 다시 로드하고 엔진을 재시작해야 합니다. 이를 위해 핫 리로드 방법을 사용할 수 있습니다. 먼저 Falco 프로세스의 PID를 찾아야 합니다. Falco가 SystemD에 의해 서비스로 시작될 때, 이 프로세스의 PID는 /var/run/falco.pid 파일에 저장됩니다. 다음으로, Falco 프로세스의 PID에 대해 kill -l 명령을 실행하여 SIGNUP 신호를 보낼 수 있습니다.

$ cat /var/run/falco.pid
7183

$ sudo kill -1 $(cat /var/run/falco.pid)

이렇게 하면 Falco 구성이 다시 로드되고 Falco 엔진이 재시작되어 새로운 규칙과 업데이트된 규칙이 적용됩니다.

마무리

이번 글에서는 Falco 구성 파일을 살펴보고 규칙을 업데이트하고 추가하는 방법에 대해 알아보았습니다. Falco의 강력한 규칙 엔진을 활용하여 시스템 보안을 강화하고, 필요에 따라 규칙을 유연하게 조정할 수 있습니다. 추가적인 탐색을 원한다면 Falco의 공식 문서를 참고하여 더 많은 기능과 옵션을 알아보세요.

0개의 댓글