OpenStack Security Benchmark Overview
OpenStack Security Benchmark Overview
Abstract—The cloud computing paradigm entails a radical evaluation based on trustworthy and verifiable evidence
change in IT provisioning, which must be understood and collected at all layers of the cloud stack.
correctly applied especially when security requirements are
In this paper, we consider a practical scenario that focuses
considered. Security requirements do not cover anymore just
the application itself, but involve the whole cloud supply on the assurance evaluation of OpenStack, a major open
chain from the hosting infrastructure to the final applications. source cloud infrastructure. To this aim, we i) define a
This scenario requires, on one side, new security mechanisms security benchmark for OpenStack that is an instantiation
protecting the cloud against misbehaviors/malicious attacks and refinement of the CIS benchmark in [9] on the basis of
and, on the other side, a continuous and adaptive assurance
the OpenStack security guidelines in [10], and ii) describe its
process evaluating the observed cloud security behavior against
the expected one. In this paper, we focus on the evaluation evaluation by means of an assurance platform called Moon
of the security assurance of OpenStack, a major open source Cloud (https://moon-cloud.eu). The latter platform supports
cloud infrastructure. We first define a security benchmark for continuous evaluation of the proposed security benchmark,
OpenStack, inspired by Center for Internet Security (CIS) and is applied to a real OpenStack deployment at the Univer-
benchmark for cloud infrastructures. We then present a
sity of Milan. The contribution of this paper is twoforld. We
platform, called Moon Cloud, for cloud security assurance
evaluation, showing an application of our benchmark and first propose a security benchmark for OpenStack focusing
platform to the in-production OpenStack deployment of the on confidentiality, integrity, and access control attributes,
University of Milan. and then present an assurance and compliance evaluation
Keywords-Assurance, Benchmark, Cloud, OpenStack, Secu- platform supporting continuous monitoring of OpenStack
rity deployments against the proposed benchmark.
The remaining of this paper is organized as follows.
I. I NTRODUCTION Section II discusses the OpenStack security benchmark.
The cloud computing model provides unprecedented op- Section III defines our assurance evaluation process. Sec-
portunities that are changing the IT landscape. The cloud tion IV describes Moon Cloud, the platform for continuous
provides an environment where huge benefits in terms of assurance evaluation. Section V presents the application of
competitiveness, performance, as well as economical and our benchmark to the in-production OpenStack deployment
organizational enhancements can be achieved. On the other of the University of Milan. Section VI discusses the related
side, security and trust concerns are among the most signif- work and Section VII presents our concluding remarks.
icant barriers preventing the migration of users and service
providers to the cloud [1], [2]. Users and service providers II. S ECURITY B ENCHMARK FOR O PEN S TACK
are in fact concerned about the new threats and risks they
need to face when moving to the cloud [3], and increasingly A security benchmark is a set of (standard) recommen-
refuse to take full responsibility over security and privacy dations against which the security strength of different
breaches of their services. systems can be compared. The recommendations are coupled
Traditional security mechanisms and controls offered by with auditing activities specifying how to collect data for
cloud service providers conflict with the lack of evidence evaluating the recommendations. The result of a security
about their operation and effectiveness. In the last few benchmark evaluation is a score that represents the security
years, cloud service providers as well as researchers have strength of a specific product/service/deployment; the higher
spent a lot of effort in designing and developing security the score, the more secure the product/service/deployment.
assurance solutions and guidelines to fill in this security The Center for Internet Security (CIS) provided a series
gaps [4], [5]. This effort brought to the definition of different of security benchmark for different solutions [9], ranging
audit, certification, and compliance standards and techniques from applications such as Microsoft Word or MySQL, to
increasing cloud transparency and trustworthiness [6], [7], Operating Systems such as Window Server or Ubuntu, and
[8], [2]. Current assurance techniques provide continuous recently addressing cloud products such as AWS or Docker.
295
Authorized licensed use limited to: Mukesh Patel School of Technology & Engineering. Downloaded on January 31,2025 at 06:10:12 UTC from IEEE Xplore. Restrictions apply.
Table I
O PEN S TACK S ECURITY B ENCHMARK (OSB) ADDRESSING H OSTS , O PEN S TACK CORE SERVICES (K EYSTONE , N OVA , G LANCE , N EUTRON AND
C INDER , H ORIZON ) AND USER CONFIGURATIONS
Profile
# Recommendation Benchmark
Virtual Cloud User
R1 Maintain Current Patch Levels CIS, OSB
R2 Create and Enforce Account and Password Management Policies CIS, OSB ×
R3 Use a Central Directory for Authentication and Authorization CIS, OSB
R4 Configure Firewalls to Restrict Access CIS, OSB ×
R5 Use TLS/SSL where Possible CIS, OSB
R6 Do Not Use Default Self-Signed Certificates CIS, OSB
R7 Configure Centralized Remote Logging CIS, OSB
R8 Maintain Time Synchronization Services CIS, OSB ×
R9 Review and Minimize Hypervisor Attack Surface CIS, OSB × ×
R10 Review and Minimize Virtual Machine Manager Attack Surface CIS, OSB ×
R11 Use Templates to Deploy Virtual Machines CIS, OSB × ×
R12 Disconnect unauthorized devices from Virtual Machines CIS, OSB × ×
R13 Disable MAC Address Changes and Promiscuous Node on Guests CIS, OSB × ×
R14 Ensure Network Isolation through VLANs CIS, OSB ×
R15 Port Groups Should not be Configured to Reserved VLANs CIS, OSB × ×
R16 Secure Access to Cloud Application Programming Interfaces CIS, OSB ×
R17 Encrypt Data at Rest CIS, OSB ×
R18 Establish Appropriate Resource Isolation CIS, OSB
R19 Evaluate Denial of Service Scenarios and Mitigations CIS, OSB ×
R20 Do Not Use or Set Guest Customization Passwords CIS, OSB ×
R21 Evaluate and Minimize Cloud Architecture Dependencies CIS, OSB
− Align Infrastructure Security Controls with Tenant Requirements CIS − − −
− Segment and Restrict User and Server Workload Communication CIS − − −
− Restrict User-to-User Workload Communication CIS − − −
− Deploy Anti-Malware Solution to End User Workloads CIS − − −
− Audit Privileged Access to End User Workloads CIS − − −
R22 Audit sensible and configuration files OSB ×
R23 Storage Reliability OSB ×
R24 Data Remanence Avoidance OSB × ×
[R12] Disconnect unauthorized devices from Virtual Ma- [R17] Encrypt Data at Rest.
chines. Disable all unauthorized/unused device ports such as • Nodes should have encrypted file systems (Virtual)
NIC, USB or serial ports, disable compute unified device • Enable LUKS block storage creation in Cinder and
architecture (CUDA) and direct memory access (DMA) use an appropriate fixed_key as passphrase. Enable
(Virtual) encryption feature in Swift configuration file, use an
encryption_root_secret that is a base-64 encoding of a
[R13] Disable MAC Address Changes and Promiscuous
32 byte value generated by a cryptographically secure
Mode on Guests. Hypervisor or Network virtualizators
random number generator (Cloud)
should deny MAC address changes on the Vnic (Virtual)
[R18] Establish Appropriate Resource Isolation.
[R14] Ensure Network Isolation through VLANs. • Disable memory de-duplication, avoid co-resident at-
• Only VLAN or VLANX should be available and en- tack, do not allow overlapping of VLAN ids and of
abled in the whole deployment (Virtual) virtual disks assignment to hosts, disable live migration
• Only VLAN or VLANX should be enabled in Neutron or limit migration to dedicated network with encryption
(Cloud) enabled, disable delay delete feature for Glance, disable
the compute soft delete for Nova, allow to publish
[R15] Port Groups Should not be Configured to Reserved public images by admin users only (Virtual, Cloud)
VLANs. Neutron m2l plugin should be set to allow only • Make sure that only allowed users are member of your
VLAN ids that do not overlap the reserved ones used by project, use encrypted storage for sensitive data (User)
physical devices in the network infrastructure (Cloud)
[R19] Evaluate Denial of Service Scenarios and Mitiga-
[R16] Secure Access to Cloud Application Programming tions.
Interfaces. Enable and configure SELinux for secure access • Mitigation systems should be place in front of critical
to configuration file, run vulnerability scans for OpenStack assets. Rate-limiting from application server should be
APIs, isolate API endpoints, especially those with public configured, IDS should be installed and configured
access, deploy API endpoints on separate hosts for increased to detect DDoS attacks, blacklisting systems for SSH
isolation (if possible), enable multi-factor authentication (if connection should be enabled (e.g., fail2ban) (Virtual)
available) and only provide APIs over SSL/TLS with mutual • Run performance test and do not go under resource
authentication (Virtual, Cloud) quotas (Cloud)
296
Authorized licensed use limited to: Mukesh Patel School of Technology & Engineering. Downloaded on January 31,2025 at 06:10:12 UTC from IEEE Xplore. Restrictions apply.
[R20] Do Not Use or Set Guest Customization Passwords. • EP is the set of evaluation processes {Eval} to be
• Every node should allow access through a centralized carried out. The output of an evaluation process is a
system only; extra users should not exist, unless the boolean value expressing whether the evaluation has
necessary ones (Virtual) been executed with success or not, plus the evidence
• Admin should not be member of any project and a collected supporting the results.
policy should not allow the admin to access project • ER is an evaluation rule expressed as a propositional
resources she is not member of. Admin should not be logic formula in terms of the evaluation processes
allowed to set/change user password (Cloud) Eval. It combines the results of the different evalu-
ations Eval∈EP and returns true if the property is
[R21] Evaluate and Minimize Cloud Architecture De-
positively evaluated, false otherwise.
pendencies.
We note that, although we can implement more complex first
• Hypervisors should be always up and available, hard-
order logic formulas for ER, propositional logic provides
ware resources such RAM and CPUs should be always
enough expression power to cover all the recommendations
available and all services such as rabbitmq, MySQL
in Section II.
should be running. In addition, high availability should
Example 3.1 (Recommendation verification): Let us con-
be set for services. (Virtual)
sider the evaluation process REP 1 , ER1 of the recom-
• Guarantee high availability of all OpenStack services.
mendation R=Encrypt Data at Rest with respect to Open-
In Glance, do not allow creation of unsupported image
Stack Cinder and Swift services. Let us consider a set EP1
type. Provide multi-region deployment (Cloud)
of evaluation activities {Eval1 =check Cinder encryption
• Use scheduler filtering to deploy VMs that provide high
enabled, Eval2 =check strength Cinder key, Eval3 =check
availability on at least two different availability zones.
Swift encryption enabled, Eval4 =check strength Swift key }
(User)
and the evaluation rule ER1 =Eval1 ∧ Eval2 ∧ Eval3 ∧
[R22] Audit Sensible and Configuration Files. All regular Eval4 . The evaluation process R is positive if the evaluation
Linux file system and system calls, and OpenStack service rule ER1 returns true, that is, Eval1 , Eval2 , Eval3 and
configurations should be audited (e.g., auditctl) (Virtual, Eval4 return true.
Cloud) An evaluation process Eval∈EP refers to the evaluation of
[R23] Storage Reliability. a specific service.
• All OSs should run at least on Raid type 1 to guarantee Definition 3.2 (Eval): An evaluation process Eval is a
data replication (Virtual) tuple of the form t, C, where:
• Cinder and Swift should use a dedicated storage dis- • t is the ToE (Target of Evaluation). It is defined as the
tributed at least over three replicas (Cloud) services constituting the perimeter of the evaluation.
[R24] Data Remanence Avoidance. All resources, such as • C is the Control, that is, the process executing the
virtual network, block devices, images, should be always evaluation on t and returning the result of the evaluation
bound to entity in corresponding databases to avoid data together with the set of collected evidence.
remanence [12] (Virtual) We note that the ToE can be either a public service or
a specific mechanism providing a security feature to be
III. R ECOMMENDATION VERIFICATION FOR THE C LOUD evaluated.
Recommendation verification is the process of verify the Example 3.2 (Eval): Let us consider Eval2 =[t2 , C2 ] in
compliance of the target system to the given recommen- Example 3.1 about check strength Cinder key. Target of
dation. A recommendation is a complex concept whose evaluation t corresponds to OpenStack Cinder. Control C2
verification may require a number of different specific describes the evidence collection as a set of activities to be
evaluations on services of the target system mentioned by carried out on target t for checking the strength of the Cinder
the recommendation. In this paper an evaluation process is key.
implemented collecting evidence about the target system, A Control C defines details on how to collect evidence
for instance, by means of testing of monitoring activities on a specific target t to evaluate a recommendation. It is
on a specific service. Collected evidence permits to verify defined as follows.
whether the recommendations in Section II have been satis- Definition 3.3 (C): C is defined over a 3-tuple of the
fied or not (e.g., testing evidence that encryption is enabled form φ, λ, π, where:
on a communication channel). • φ is the flow of evidence collection execution. It is com-
Definition 3.1 (Recommendation verification): Let R be posed of a sequence of atomic evaluation operations.
the recommendation to be verified, the recommendation • λ is set of Control’s Parameters necessary to connect
defined over the tuple EP, ER
verification is a function R the evaluation flow φ to the target service t (e.g., the
taking value in {true, false} where: target URI)
297
Authorized licensed use limited to: Mukesh Patel School of Technology & Engineering. Downloaded on January 31,2025 at 06:10:12 UTC from IEEE Xplore. Restrictions apply.
Control import paramiko
import re
import StringIO
code/execution flow (φ) environment (π ) from driver import Driver
• dependencies from oslo_config import cfg
(-)
connect • requirements class SSHClient(object):
(paramiko and oslo library) def ssh_connect [...]
• extra-files [...]
(-)
298
Authorized licensed use limited to: Mukesh Patel School of Technology & Engineering. Downloaded on January 31,2025 at 06:10:12 UTC from IEEE Xplore. Restrictions apply.
evaluation, iii) Management and Result Database man-
public network
Evaluation Module
ages persistent information about controls’ execution and
evidence collection, iv) Control Repository where all the Execution Deployment1 public VM VM VM
queue communication
controls are stored. Execution Deployment2 public OpenStack API
The Execution Module must be deployed so that it can
reach the ToE and includes the following components: i) ...
internal network
Host1 Host2 Host3 Host32
299
Authorized licensed use limited to: Mukesh Patel School of Technology & Engineering. Downloaded on January 31,2025 at 06:10:12 UTC from IEEE Xplore. Restrictions apply.
remediation we replace the Host 5 time server configuration The execution flow φ of the first Controls C1 consists of
file with the one expected. three sequential operations with the relative Parameters λ as
[R20] Do Not Use or Set Guest Customization Passwords. follows.
Profile: Cloud. 1) openstack-connection [user credentials]: using user
ToE: Openstack Keystone. Keystone is the identity service credentials to access OpenStack API
and manages projects, users and groups. 2) retrieve-zone []: control retrieves all availability zones
Control: Admin cannot be member of any projects, excepts in OpenStack.
her owns projects and cannot change users passords. Hence, 3) check-deployment [vm-list]: control checks that at least
the control is double: i) admin user is only member of a one VM from vm-list is deployed in a different avail-
restricted list of project as specified in a list. The OpenStack ability zone.
policy does not allows to change user password and that The Environmental settings π are the following:
should be changed only through the centralized identity • Control must be executed with access to the public
system. OpenStack API.
The execution flow φ of control i) consists of two sequen- • The OpenStack client SDK to be able to communicate
tial operations with the relative Parameters λ as follows. with its API.
1) openstack_connection [os_username, os_password, Results: Lagrange is not compliant with this recommenda-
os_project_id, os_auth_url, os_user_domain_name]: tion since it offers only one availability zone and indeed
using the admin credentials, control connects to Open- all VMs from any user are then deployed on a the same
Stack API one. As remediation we suggest the admin to identify, if
2) checkProject [project_list]: control parses all projects possible, fault-independent zones and aggregate hosts under
and control admin is member only of the passed those zones. If not possible we suggest to re-design or extend
projects. the node cluster to provide different availability zones.
The Environmental settings π are the following:
• Control must be executed with access to the public VI. R ELATED W ORK
OpenStack API. OpenStack is largely adopted as case study for many re-
• The OpenStack client SDK to be able to communicate search works [13], [14], [15], [16], [17], [18], [19], [20], [21]
with its API. since it is widely used and open-source. Anisetti et al. [13]
The execution flow φ of control ii) consists of two sequen- present a first approach to automate tests for non-functional
tial operations with the relative Parameters λ as follows. properties in OpenStack. Ristov et al [15] present how a
1) connect_to_server [username, password, private_key, security vulnerability scan should be design for OpenStack,
private_key_passphrase, hostname, port]: control ac- highlighting the necessity of covering both core services and
cesses through ssh the Keystone nodes. hosts. Luo et al. [18] face the problem of policy enforcement
2) retrieve_policy_file [path]: control reads and parses the in OpenStack providing a solution that replace the default
policy file. policy system. The default policy, in fact, is difficult to
3) inspect_policy_file [key, expected_value]: control manage due to high distribution and fragmentations and
checks that identity:change_password action is problems related to operations coverage. Han et al. [14]
disabled. investigate how to mitigate co-resident VMs attacks by using
The Environmental settings π are the following: dedicated scheduling policy and they apply their solutions to
OpenStack. Sze et al. [17] addresses OpenStack weakness
• Control must be executed with access to the internal
e vulnerability that may not be resolved with its standard
network.
configuration providing a solution to harden compute nodes
• The paramiko python library to let the control access
security for what concerns communication queues and poli-
through ssh.
cies. The importance of automate the evaluation process
Results: Lagrange is perfectly compliant with this recom- to provide a continuous auditing is also discussed by Lins
mendation, the change_password is disabled and the admin et al. [22] where authors exhaustively examine processes
user is only member of projects admin and admin − test. and methods to audit cloud services. More in line with the
[R21] Evaluate Cloud Architecture Dependencies. approach of our Moon Cloud assurance platform, Madi et
Profile: User. Al. [16] present a framework for continuous auditing for
ToE: Nova computing and user VMs. Neutron; the auditing results are then compared and validate
Control: User can mitigate the dependencies from single to given policy as a CSP (Constraint Satisfaction Problem).
point of failure of a cloud by deploying her VMs in different Majumdar et al. [19] present a solution to audit Keystone
availability zone; hence, the control checks that a set of service and enforce policy over resources . OpenStack offers
VM are at least deployed in two different availability zone. an internal and service dedicated system of accountability,
300
Authorized licensed use limited to: Mukesh Patel School of Technology & Engineering. Downloaded on January 31,2025 at 06:10:12 UTC from IEEE Xplore. Restrictions apply.
the authors build upon it a security compliance auditor [9] “Cis security benchmark repository,” https://benchmarks.
based on formal method with excellent performance.In both cisecurity.org/downloads/.
[16], [19] refer to policy from CSA [23] and NIST27k [10] OpenStack Foundation, OpenStack Security Guide, April
properties. Malik et al. [20] evaluate the OpenStack Neutron 2015, http://docs.openstack.org/security-guide/security-guide.
service, analysing its behaviour under different types and pdf.
severity levels of network errors. Halabi et al [21] support
[11] G. Gerchow, M. A. Haines, and P. Goyal, “Cis quick start
the concept of continuously security assessment for cloud
cloud infrastructure benchmark v1.0.0,” October 2012,
provider via Goal-Question-Metric (GQM) paradigm. https://benchmarks.cisecurity.org/downloads/show-single/
VII. C ONCLUSIONS ?file=cloud.100/.
Continuous evaluation of cloud security assurance is [12] B. Albelooshi, K. Salah, T. Martin, and E. Damiani, “Exper-
among the fundamental requirements for a wide adoption imental proof: Data remanence in cloud vms,” in Proc. IEEE
of the cloud computing model in security-critical domains. CLOUD2015, June 2015.
In this paper, we first proposed a security benchmark for [13] M. Anisetti, C. A. Ardagna, E. Damiani, F. Gaudenzi, and
OpenStack composed of a set of security recommendations. R. Veca, “Toward security and performance certification of
We then presented an assurance platform called Moon Cloud open stack,” in Proc. of IEEE CLOUD2015, June 2015.
for continuous cloud security verification. An application of
[14] Y. Han, J. Chan, T. Alpcan, and C. Leckie, “Using virtual
the proposed benchmark has been finally provided in the machine allocation policies to defend against co-resident
context of the OpenStack deployment of the University of attacks in cloud computing,” IEEE TDSC, vol. 14, no. 1, pp.
Milan. 95–108, Jan 2017.
[8] P. Stephanow and N. Fallenbeck, “Towards continuous certifi- [23] Cloud control matrix (CCM) v3.0.1,, Cloud Security Al-
cation of Infrastructure-as-a-Service using low-level metrics,” liance (CSA), June 2016, https://cloudsecurityalliance.org/
in Proc. of ATC 2015, Beijing, China, August 2015. group/cloud-controls-matrix/.
301
Authorized licensed use limited to: Mukesh Patel School of Technology & Engineering. Downloaded on January 31,2025 at 06:10:12 UTC from IEEE Xplore. Restrictions apply.