article thumbnail image
Published 2022. 10. 29. 23:06

OpenStack이란?

OpenStack 사이트에서 “OpenStack is a cloud operating system that controls large pools of compute, storage and networking resources throughout a datacenter, all managed and provisioned through APIs with common authentication mechanisms.”이라고 설명되어 있음.

 

해당 설명을 번역 및 요약하면, “오픈스택은 데이터 센터의 자원들을 제어하는 클라우드 운영체제이며, API를 통해 관리함”으로 번역이 됨.

 

나는 해당 번역을 “너희들의 남아도는 자원들도 AWS처럼 클라우드 서비스를 할 수 있도록 해주겠다”라는 뜻으로 간단하게 이해하였음.
→ 실제로 LG CNS, NHN Cloud, VMware 등 국내외에서 OpenStack을 이용하여 퍼블릭 클라우드를 운영하고 있음.

 

OpenStack 구성

OpenStack은 필요에 따라 구성 요소를 Plug-In 할 수 있도록 서비스로 구분되어 있음.
→ VSCODE에서 필요한 기능을 확장프로그램으로 설치하여 사용하는 것과 같음.

 

엄청 많은 프로젝트(Plug-In)이 존재하며, OpenStack 사이트에서 간단한 설명이 되어 있음. 하지만 나는 OpenStack에 뇌 메모리를 많이 투자하는 것은 싫기 때문에 간단하게 필수 컴포넌트만 알고 가겠음.

 

Component Description
Nova 인스턴스 담당
 서버 가상화 지원, 여러 가상화 S/W를 제어하여 VM 등을 관리
Glance 이미지 담당
→ Nova에서 VM를 만들 때 필요한 OS 이미지 관리
Cinder 스토리지 담당
→ 볼륨 서비스를 제공∙관리
Neutron 네트워크 담당
→ 네트워크 서비스를 지원
Keystone 유저/인증 담당
→ 모든 프로젝트의 인증을 통합 관리

위 5개의 컴포넌트만 있으면, 인스턴스를 생성하고 사용할 수 있는 환경을 만들 수 있음.
클라우드 서비스를 하려면 인스턴스 생성만은 불가능하지만, 그래도 클라우드 서비스에서 가장 중요한 인스턴스 생성을 할 수 있음.

 

OpenStack CCE

Kisa에서 발간한 클라우드 취약점 점검 가이드에서 정의한 OpenStack의 CCE에 대하여 간단하게 정리하겠음.
이후, 취약점 점검 항목의 상세 설명과 OpenStack를 구축하여 점검해보는 것을 정리하겠음.

 

CCE이란?

사용자에게 허용된 권한 이상의 동작을 허용하거나, 범위 이상의 정보 열람∙변조∙유출을 가능하게 하는 시스템 설정 상의 취약점

 

취약점 점검 항목

항목은 크게 3개의 영역으로 나눠짐.

∙ 파일 권한 관리 : 14개 항목

∙ 암호화 : 15개 항목

∙ 보안 설정 : 18개 항목

 

파일 권한 관리

Code Name Service
OT-01 Identity 설정파일 소유권 설정 keystone
OT-02 Identity 설정파일 접근권한 설정 keystone
OT-03 Dashboard 설정파일 소유권 설정 horizon
OT-04 Dashboard 설정파일 접근권한 설정 horizon
OT-05 Computer 설정파일 소유권 설정 nova
OT-06 Computer 설정파일 접근권한 설정 nova
OT-07 블록 스토리지 서비스 설정파일 소유권 설정 cinder
OT-08 블록 스토리지 서비스 설정파일 소유권 설정 cinder
OT-09 이미지 스토리지 설정파일 소유권 설정 glance
OT-10 이미지 스토리지 설정파일 접근권한 설정 glance
OT-11 공유파일 시스템 설정파일 소유권 설정 manila
OT-12 공유파일 시스템 설정파일 소유권 설정 manila
OT-13 네트워킹 서비스 설정파일 소유권 설정 neutron
OT-14 네트워킹 서비스 설정파일 접근권한 설정 neutron

 

암호화

Code Name Service
OT-15 Identity TLS 활성화 keystone
OT-16 PKI토큰의 강력한 해시 알고리즘 사용 keystone
OT-17 Dashboard의 SECURE_PROXY_SSL_HEADER 설정 horizon
OT-18 Computer 인증을 위한 보안프로토콜 사용 nova
OT-19 Nova와 Glance의 안전한 통신 nova
OT-20 블록 스토리지 서비스 인증을 위한 TLS 활성화 cinder
OT-21 cinder와 nova의 TLS 통신 cinder
OT-22 cinder와 glance의 TLS 통신 cinder
OT-23 이미지 스토리지 서비스 인증을 위한 TLS 활성화 glance
OT-24 공유 파일 시스템 인증을 위한 TLS 활성화 manila
OT-25 TLS를 이용한 공유 파일 시스템과 Computer의 통신 manila
OT-26 TLS를 이용한 공유 파일 시스템과 네트워킹과의 연결 manila
OT-27 TLS를 이용한 공유 파일 시스템과 블록 스토리지 서비스와의 연결 manila
OT-28 네트워킹 서비스의 인증을 위한 안전한 프로토콜 사용 neutron
OT-29 Neutron API 서버의 TLS 활성화 neutron
OT-30 Identity 서비스 max_request_body_size 설정 keystone
OT-31 admin 토큰 비활성화 keystone
OT-32 Dashboard의 DISALLOW_IFRAME_EMBED 설정 horizon

 

보안 설정

Code Name Service
OT-33 Dashboard의 CSRF_COOKIE_SECURE 설정 horizon
OT-34 Dashboard의 SESSION_COOKIE_SECURE 설정 horizon
OT-35 Dashboard의 SESSION_COOKIE_HTTPONLY 설정 horizon
OT-36 Dashboard의 PASSWORD_AUTOCOMPLETE 설정 horizon
OT-37 Dashboard의 DISABLE_PASSWORD_REVEAL 설정 horizon
OT-38 Dashboard의 ENFORCE_PASSWORD_CHECK 설정 horizon
OT-39 Dashboard의 PASSWORD_VALIDATOR 설정 horizon
OT-40 Computer의 인증을 위한 keystone 설정 nova
OT-41 블록 스토리지 서비스의 인증을 위한 keystone 사용 cinder
OT-42 안전한 환경에서의 NAS 운영 cinder
OT-43 블록 스토리지 서비스에서 요청 본문 최대 크기 설정 cinder
OT-44 블록 스토리지 볼륨 암호화 cinder
OT-45 이미지 스토리지 서비스 인증을 위한 keystone 설정 glance
OT-46 공유파일 시스템 인증을 위한 오픈스택 Identity 사용 manila
OT-47 공유파일 시스템에서 요청 본문 최대 사이즈 설정 manila

점검 항목에서 각 설정해줘야하는 서비스들을 정리하였음.

이렇게 정리한 이유는 OpenStack은 각 서비스들을 각각의 서버로 구축하는 경우도 있기 때문이다.

이러한 이유 때문에 영역별보단 점검해야하는 서비스별로 나눠서 정리하는 것이 좋을 것 같음.

 

위 점검 항목의 서비스 중 정리하지 않은 2가지 서비스가 존재함.

horizon :  OpenStack의 대시보드를 담당하는 서비스, AWS에선 Console이 존재함.

manila : 공유 또는 분산 파일 시스템을 담당하는 서비스, AWS에선 EFS이 존재함.

복사했습니다!