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이 존재함.
'기술보안 > Cloud' 카테고리의 다른 글
AWS 클라우드 기본 개념 알아보기! (0) | 2023.04.30 |
---|---|
클라우드 모의해킹(1) (EQST LMS) (0) | 2023.02.27 |
[AWS 기초 입문] 네트워크 기초 01 (0) | 2022.09.30 |
[AWS Practitioner 자격증] 10. EC2 기초 (0) | 2022.08.29 |
[AWS Practitioner 자격증] 09. AWS Access 방식 (0) | 2022.07.18 |