본문 바로가기

Project/핫식스 맛있다

[핫식스 맛있다 #0] 프로젝트 개요

이번 K-Sheild Jr. 2기에서 프로젝트를 진행하기 위해 토일반 교육생들로만 결성된 "핫식스 맛있다" 팀의 개요입니다. 포트폴리오 및 기록으로 남기기 위해 작성되었으며, 쿠버네티스와 컨테이너를 학습 및 연구하는 사람들에게 도움이 되고자 작성하게 되었습니다.


 

#1. 팀 소개 

   출처 : https://inreason.tistory.com/

 

 

#2. 연구 계획서

   출처 : https://inreason.tistory.com/ 

 

1. 연구 목표
   • 쿠버네티스의 원리를 이해하고 실제 환경 구축
   • 쿠버네티스 구현 언어를 이해하고 습득
   • CVE 취약점을 분석하여 취약점과 공격 종류 파악
   • 쿠버네티스 환경 개발 시 취약한 부분에 대한 경각심 고취

2. 연구목적 및 범위
   • GO언어를 이해하여 쿠버네티스의 취약한 코드를 세부적으로 분석
   • 취약점이 적용된 쿠버네티스 프로그램에 CVE 취약점을 적용하며 분석
   • 공격 종류와 원리를 파악하고 취약한 코드를 보완할 방법을 모색
   • CVE 취약점을 스캔하는 툴의 사용법과 개발자가 조치 할 가이드라인을 제시

3. 연구계획 주요내용
   • 쿠버네티스의 전체적인 알고리즘을 파악한 후 취약한 코드를 분석
   • 쿠버네티스 클러스터 환경을 구축하여 취약점을 정적, 동적 분석
   • 스캔 툴을 개발하여 오픈소스로 배포해 지속적으로 개발 및 보완

4. 연구산출물
   • 쿠버네티스 관련 CVE 취약점에 대한 분석 보고서
   • 쿠버네티스의 취약점을 자동으로 스캔하는 툴
   • 취약점 자동 스캔 툴의 사용을 돕는 시각 자료와 보안 메뉴얼

#3. CVE 취약점 분석

   출처 : https://inreason.tistory.com/ 

CVE Detail CVE ID CWE ID CVE Contents
1 CVE-2019-1002101 59

kubectl cp 명령을 사용하면 컨테이너와 사용자 시스템간에 파일을 복사 할 수 있습니다. 컨테이너에서 파일을 복사하기 위해 Kubernetes는 컨테이너 내부에 tar를 만들고, 네트워크를 통해 복사하고, kubectl은 사용자 컴퓨터에서 압축을 풉니 다. 컨테이너의 tar 바이너리가 악의적 인 경우 모든 코드를 실행하여 예상치 못한 악의적 인 결과를 출력 할 수 있습니다. 침입자는 kubectl cp가 호출 될 때 사용자 컴퓨터의 모든 경로에 파일을 쓰는 데이 파일을 사용할 수 있으며 로컬 사용자의 시스템 권한에 의해서만 제한됩니다. untar 함수는 기호 링크를 작성하고 따라갈 수 있습니다. 이 문제는 kubectl v1.11.9, v1.12.7, v1.13.5 및 v1.14.0에서 해결되었습니다.

2 CVE-2019-9946 254

v1.11.8, v1.12.6 및 v1.13.4 이전의 모든 Kubernetes 버전에서 Kubernetes API 서버에 패치 요청을 할 수있는 권한이있는 사용자는 특수하게 조작 된 "json-patch"패치 (예 :`kubectl patch --type json` 또는``Content-Type : application / json-patch + json '`)을 사용하여 처리하는 동안 과도한 자원을 소비하여 API 서버에서 서비스 거부를 유발합니다.

3

CVE-2018-1002105 388

클라우드 네이티브 컴퓨팅 Foundation (CNCF) CNI (Container Networking Interface) 0.7.4에는 Kubernetes에 영향을 미치는 네트워크 방화벽 구성 오류가 있습니다. CNI의 HostPort를 설정하는 데 사용되는 CNI 'portmap'플러그인은 iptables nat 체인 앞에 규칙을 삽입합니다. 이는 KUBE-SERVICES 체인보다 우선합니다. 이 때문에 HostPort / portmap 규칙은 노드 포 트 (NodePorts)와 같은보다 구체적인 맞춤형 서비스 정의 규칙이 나중에 체인에 있어도 들어오는 트래픽을 일치시킬 수 있습니다. 이 문제는 CNI 0.7.5 및 Kubernetes 1.11.9, 1.12.7, 1.13.5 및 1.14.0에서 수정되었습니다.