Show GN: Kubernetes 에서 eBPF 로 Copy Fail 이슈 회피하기
(github.com/iwanhae)K8s 운영하다가 이 이슈에 대해서 긴급 대응 요청이 들어왔길레 적당히 하나 만들었습니다.
Copy Fail 이라고 단순히 AF_ALG 를 사용하는 소켓을 여는 방식으로 K8s Pod 내부에서 호스트의 루트 권한을 탈취할 수 있는 취약점이 나왔습니다.
https://news.hada.io/topic?id=29031
커널 패치가 나오기는 했지만, 대부분 운영 상황에서 빠르게 적용하기 힘든 가운데 최근 커널의 경우는 해당 기능 활성화가 kernel built-in 으로 되어있어서 커널 모듈 비활성화도 불가능 하더라고요.
이 이슈를 좀 쉽게 해결하고자 간단하게 eBPF 에서 관련된 function call 이 확인되면
- (커널이 지원하면) 해당 function call 을 실패하도록 만들던가
- (지원 안하면) 해당 프로세스를 kill 해버리는
프로그램입니다.
단일 K8s DaemonSet 배포만으로 사용 가능하게 만들어뒀으니 필요하신 분 있으시면 가져다 쓰세요~