팔코는 무엇입니까?
팔코 프로젝트는 Sysdig, Inc가 개발한 오픈 소스 런타임 보안 도구이다. 팔코는 CNCF에 기부되었고 현재 CNCF 인큐베이팅 프로젝트이다.
팔코는 어떤 일을 합니까?
팔코는 런타임에 커널의 리눅스 시스템 호출을 분석하고, 강력한 규칙 엔진에 대한 스트림을 어서션(assertion)한다. 규칙이 위반될 경우, 팔코 알림이 실행된다. 상세한 내용은 팔코 규칙을 참고한다.
- Parse
- Assert
- Alert
팔코는 무엇을 찾습니까?
기본적으로 팔코는 커널에서 비정상적인 동작을 확인하는 규칙을 제공한다. 예를 들면,
- 특권을 가진(Privileged) 컨테이너를 이용한 권한 에스컬레이션(Privilege escalation)
setns
와 같은 도구를 이용한 네임스페이스를 변경- 잘 알려진 디렉토리(
/etc
,/usr/bin
,/usr/sbin
등)에 읽기/쓰기 - 심볼릭링크를 생성
- 소유권(Ownership)과 권한(Mode)을 변경
- 예상치 못한 네트워크 연결 또는 소켓 변형
execve
를 이용한 프로세스 생성- 쉘 바이너리(
sh
,bash
,csh
,zsh
등) 실행 - SSH 바이너리(
ssh
,scp
,sftp
등) 실행 - 리눅스
coreutils
실행 파일 변형 - 로그인 바이너리 변형
shadowutil
또는passwd
실행 파일 변형shadowconfig
pwck
chpasswd
getpasswd
change
useradd
- 기타
…이밖에도 많다.
팔코 규칙은 무엇입니까?
팔코가 어서션할 항목이다. 팔코 설정에 정의되어 있고, 시스템에서 찾고자 하는 것을 나타낸다.
팔코 규칙 작성, 관리, 배포에 대한 자세한 정보는 규칙을 참고한다.
팔코 알림은 무엇입니까?
STDOUT
로깅을 남기는 것처럼 간단한 것부터 gRPC 호출을 클라이언트에 전달하는 것처럼 복잡한 것까지 설정할 수 있는 후속 조치이다.
팔코 알림 설정, 이해, 개발에 대한 자세한 정보는 알림을 참고한다.
팔코 구성 요소
팔코는 3가지 주요 구성 요소로 이루어져 있다.
팔코 사용자 공간 프로그램
CLI 도구인 falco
다. 이는 사용자와 상호 작용하는 프로그램이다. 사용자 공간 프로그램은 신호를 처리하고, 팔코 드라이버에서 오는 정보를 분석하고, 알림을 담당한다.
팔코 드라이버
팔코 드라이버 스펙을 준수하고 시스템 호출 스트림을 보낼 수 있는 하나의 소프트웨어이다.
팔코는 드라이버 설치 없이는 실행할 수 없다.
현재 팔코 프로젝트는 다음 드라이버를 지원한다.
- (기본값)
libscap
와libsinsp
C++ 라이브러리로 빌드된 커널 모듈 - 동일한 모듈로 빌드된 BPF probe
- 사용자 공간 계측(Userspace instrumentation)
드라이버에 대한 자세한 정보는 해당 페이지를 참고한다.
팔코 설정
팔코가 어떻게 실행되는지, 어떤 규칙을 어서션하는지, 경고를 어떻게 실행할 것인지를 정의한다. 팔코를 설정하는 자세한 정보는 설정을 참고한다.
Table of contents