카테고리 없음

1/19

진태현 2024. 1. 19. 12:52

하이퍼바이저

- 부대설비 > 하드웨어 > 호스트 서버 > 하이퍼바이저 >

- 하이퍼바이저의 영역은 IaaS 보안 운영영역 private 클라우드 내에서만 보안 가능

- 하이퍼바이저 구성 : vcp, vmemory, 저장소, vnetwork,vswitch

- 하이퍼바이저 위에 VMI(Virtual Network Instructure) 위에 VS(Virtual Server) 위에 OS 위에 server 관리 위에 Runtime 위에 빌드(binary code)  > 위 구성을 통해서 SaaS형 애플리케이션이 만들어짐 

 

- IaaS 구성 체계를 알아야 보안 자문, CSC관점에서 보안 자문 컨설팅 구분을 할 수 있음 

 

하이퍼바이저 2가지 종류

*하이퍼바이저는 운영체제 없이 동작하지 않음

- 베어메탈 기반: 가장많이 사용, 안전한 방법, 빠른속도, 자체 운영체제, 비쌈

- 호스트 기반 : 별도의 운영체제가 들어감(Host Server), 비용측면 쌈

*성능적인 측면에서 베어메탈 기반이 우수함 

 

클라우드 컴퓨팅

- 물리적 설비 > 하드웨어 > 호스트 서버 > 하이퍼바이저 > VNI > VS

- 주문형, 비용처리, 쌈, 템플릿 기반 

- 확장에 용이 (scale-out)

가상화

- 내부망 구축: 부대 설비 > 하드웨어 > 호스트 서버 > 하이퍼바이저(가상화) > VS 

- 비쌈, 이미지기반

 

인스턴스

- 컴퓨팅 리소스에 대한 가상 액세스 제공

- 확장성

- 내결합성

 

인스턴스 종류

- 범용 목적 인스턴스 (general purpose)

- 컴퓨팅 최적화 인스턴스 (compute optimized) : 빠른 속도를 요구하는 시스템

- 메모리 최적화 인스턴스 (memory optimized) : 데이터베이스

- 가속화된 컴퓨팅 인스턴스 (accelerated computing) : 이미지, 동영상, 게임

- 스토리지 최적화 인스턴스 (storage optimzed) : Iops 입출력 성능 빠른 응답속도/ 데이터 분석

 

Virtual Server on IaaS

- 부대 설비, 하드웨어, 호스트서버, OS, 하이퍼바이저, VS, VS1,2,3,> VS

- 사이즈 : 수백Mb ~ 수십 Gb

Container Architecture

- 부대설비, 하드웨어, 커널(CPU, 등등), 호스트 서버, OS, 컨테이너 엔진(쿠버네티스, 도커, 아파치 등), 컨테이너 생성

*container : 가상의 컴퓨터기 때문에 바이너리, 라이브러리, 빌드된 어플리케이션, MSA 등 존재 

*하이퍼바이저 대신에 컨테이너 엔진이 들어감

- 사이즈 : 수십Mb~ 수십Mb 

 

Container장점

- 동작환경, 환경구축, 전송속도 시간 빠름, vm보다 적은 메모리 소모

 

컨테이너 솔루션

1. Docker : 국외에서 가장

2. Kubernates : 국내에서 가장 

 

Kubernates

- 레지스트리, 네트워킹, 스토리지, 시큐리티, 전략 > 오케스트레이션

- 관리기능

- 구성도: UI , Master Node, Worker node, regestry

- worker node : kubernates runtime, kublet, kube-proxy

 

Docker

- Client: docker build, docker pull, docker run

- DockerHost: Containers, Images

- Registry

- docker engine: distribution, orchestration, volumes, containerd, docker build, networking

- 장점: 적은 메모리 공간 필요, 부팅시간 짧음, 단일 도커 엔진으로 성능 발휘, Scale-up, 효율성이 높음, 플랫폼 간에 이동, 데이터 공유, 재사용

*가상화와 비교해서 우수한 면을 보여줌

 

Container Security

보안이슈 

1. 컨테이너의 응용프로그램 접근

- ACL기반으로 접근통제 부여 해주어야 함, 생성, 운영, 삭제: 1. 책임자 2.개발자 3.사용자 

2. 컨테이너 이미지 보안

- 안전한 DB(registry)에 저장해야 함 (단, 검증된 저장소 사용)

ex) nginx, docker registry 등

- 취약점 분석 평가 (CCE, CVE 기반으로 해야 함) 

https://downloads.cisecurity.org/#/

 

3. 루트 권한으로 이용하는 컨테이너 동작: 컨테이너 서비스는 Root 권한을 제거해야 함 

 

4. 사용자 권한: Pod(docker: containers) 

- Pod View, list 권한 제한: 일반사용자 해당 권한 제거 

- 모든 Pod간의 연결은 하면 안되고, 연관된 Pod들만 연결  

 

Cloud Infra

- 프론트앤드와 백앤드로 서비스 

- 프론트앤드에서 직접 DB로 접근하게 되면 안됨

 

5. Pod 통신 구간 암호화

- 2개 이상의 Pod간 통신을 안전하게 하기 위해 TLS 1.2이상 적용

- Pod 간에 연결하는 구간은 평문 전송이 되지 않아야 함

 

6. 중요 데이터 보안

- 평문 저장 X

- Base64 기반 암호화 적용

- 3rd Party보안 관리 솔루션 사용

 

7. etcd 보안

- etcd에 저장하는 모든 데이터 보안 

- 모든 클러스터 데이터에 대해 kubernates 백업 저장

- API 서버를 우회 할 수 없도록 설정

- 클러스터에 무제한 접속 제한 설정

 

8. 컨테이너 데이터, 이미지 백업 및 복구

- 취약, 손실 데이터에 대해 데이터 보호 정책

- 신용카드, 개인의료, 개인정보, 식별정보 > 데이터 백업 정책 적용

- 주기적인 백업 및 복구 테스트

 

9. 컨테이너 보안정책 구성

 

10. 컨테이너 재해 복구 계획

- 재해복구 계획, 백업 정책 

- 이중화: 리전내에 가용영역 안에 있는container를 똑같은 container 생성 (안정성 낮음)

가용영역 내에 workernode 생성 

 

Cloud Native Container Security

Cloud Native 구성요소

1. container

2. DevOps

3. CI/CD

4. MSA

 

cloud native container security 4c

1. cloud/co-lo/corporate

2. cluster

3.container

4. code 

 

클라우드 관점 보안 

클라우드 공급자 보안 

- KISA CSAP, CSA STAR, ISO 27001:20, ISO 27017 > 검증서가 있는지 확인

 

infrastructre 보안: kuberantes 관점

- NACL 설정

클러스터의 컴포넌트

클러스터 내 컴포넌트(애플리케이션)

- 컨테이너는 앞 단에 가상방화벽, DDOS공격에 대한 SaaS솔루션 설계

RBAC 인증

- 일반 사용자, 관리자, 개발자에 맞춰서 인증

 

인증 송 수신 부문

- 6443번 포트에서 수신을 대기 , 클러스터는 443 포트에서 서비스

>> 6443, 443 포트 사용하지 않고 변경

인증 /권한 부문

- TLS 1.2 버전 사용

인증/인가부문

- OTP 사용 

 

서비스 품질

- 네임스페이스 생성: 컨테이너에 대해 격리되도록 

 

네트워크 정책

- OSI 7계층, TCP/IP 개념 파악

 

쿠버네티스 인그레스 TLS적용

- namespace 코딩, base64 

 

TLS를 통한 접근

통신 포트 범위 제한

- TCP 포트 제한 

타사 종속성 보안

정적 코드 분석

동적 탐지 공격 

 

DevOps

1. 보안 설계 및 아키텍처

2. 보안 코딩

3. 지속적 빌드, 통합 및 테스트

4. 지속적 전달 및 배포

5. 런타임 보호 및 모니터링 


실습

CSAP 보안인증컨설팅 템플릿

- 엑셀파일 커버페이지

- lab에 관련된 파일