요약

- runC: 가볍고 이동 가능하게 설계된 런타임으로 Docker, cri-o, containerd, Kubernetes 등의 다양한 컨테이너 플랫폼의 베이스 런타임으로 활용되고 있음.

- 취약점 : 악성 컨테이너가 호스트 runC 바이너리 내용을 덮어써, 컨테이너의 호스트 시스템에서 root 레벨의 임의 코드를 실행 할 수 있음. 

- 대응방안 : runC 패치

(1) 컨테이너 프로세서가 container_runtim_t로 실행되기 때문에, AppArmor(리눅스 커널 보안모듈)와 SELinux(Fedora moby엔진만 해당) 

    정책으로 해당 취약점에 대한 방어 불가능.

*예외 : Fedora moby엔진 패키지 이외 : 컨테이너는 container_t로 실행되기 때문에 docker패키지와 podman(docker와 같은 기능제공)은 

         해당 취약점으로부터 안전함. 

(2) 호스트 root가 컨테이너의 사용자 네임스페이스로 맵핑되지 않게 설정되어 있을 시 취약하지 않음.

- 영향받는 제품 : 모든 runC 컨테이너

*runC외에도 대부분의 컨테이너 런타임들이 해당 취약점을 가지고 있음

(1) 현재까지 검증된 미취약 컨테이너 : 리눅스 컨테이스(LXC, LinuX Containers)

(2) 조사 중인 컨테이너 : Apache Mesos (해당 관계자에 따르면 취약하다고 하나, 취약여부를 조사 중)

(3) 취약 컨테이너 : 

Redhat

Debian

Amazon Linux

Amazon Elastic Container Service(Amazon ECS), 

Amazon Elastic Container Service for Kubernetes(Amazon EKS), 

AWS Fargate, 

AWS IoT Greengrass, 

AWS Batch

AWS Elastic Beanstalk

AWS Cloud9

AWS SageMaker

AWS RoboMaker

AWS Deep Learning AMI


관련 CVE정보

- CVE-2019-5736

- CVSS 3.0 Score : 7.7

- PoC : 2/18일에 공개 예정

  https://github.com/feexd/pocs/blob/master/CVE-2019-5736/exploit.c


탐지룰 존재유무

TrendMicro

- Rule 1002770 - Unix - File Attributes Change In /usr/bin AND /usr/sbin Locations

- Rule 1008271 - Application - Docker

(https://success.trendmicro.com/solution/1122066)


참고자료

runC패치: https://github.com/opencontainers/runc/commit/0a8e4117e7f715d5fbeef398405813ce8e88558b

Redhat : https://access.redhat.com/security/cve/cve-2019-5736

Debian : https://security-tracker.debian.org/tracker/CVE-2019-5736

Amazon : https://aws.amazon.com/security/security-bulletins/AWS-2019-002/

Kubernetes : https://kubernetes.io/blog/2019/02/11/runc-and-cve-2019-5736/

출처 : https://seclists.org/oss-sec/2019/q1/119

+ Recent posts