2017 Issue2 Paper8
2017 Issue2 Paper8
Maryam Shahpasand
FSec research centre
Faculty of Computing, Engineering & Technology
Asia Pacific University of Technology & Innovation
Technology Park Malaysia, 57000 Kuala Lumpur, Malaysia
Email: dr.maryam.shahpasand@apu.edu.my
Abstract - Cloud Computing is a technology which gives computation, software, data and
storage services over the network. The software industry is laying increased emphasis
on Quality Assurance (QA) and Testing requirements for successful product development
today. To ensure a high level of security of cloud services and applications, testing is an
appropriate approach to detect possible vulnerabilities before real case scenarios occur.
Therefore, many public cloud providers revealed the growing number of Testing Centre
of Excellence (COE) and software test automation being encouraged by companies.This
paper presents a critical review of cloud security testing. Moreover, gaps in recent related
publications are revealed, testing tools and offers of software test automation. The
prospective research implications are pointed out to foster the understanding and
relations of current research fields.
Introduction
79
Journal of Applied Technology and Innovation (eISSN: 2600-7304)
vol. 1, no. 2, (2017), pp. 79-93
80
Journal of Applied Technology and Innovation (eISSN: 2600-7304)
vol. 1, no. 2, (2017), pp. 79-93
a. Functional Testing
Functional testing of both internet and non-internet applications can be performed using
cloud testing. The process of verification against specifications or system requirements
is carried out in the cloud instead of on-site software testing.
e. Stress Testing
Stress Test is used to determine ability of application to maintain a certain level of
effectiveness beyond breaking point. It is essential for any application to work even
under excessive stress and maintain stability. Stress testing assures this by creating peak
loads using simulators. But the cost of creating such scenarios is enormous. Instead of
investing capital in building on-premises testing environments, cloud testing offers an
affordable and scalable alternative.
f. Compatibility Testing
Using cloud environment, instances of different Operating Systems can be created on
demand, making compatibility testing effortless.
Another consideration is the need to decide between white box or black box testing. In
black box testing, the penetration tester knows as little about the system as a real-world
81
Journal of Applied Technology and Innovation (eISSN: 2600-7304)
vol. 1, no. 2, (2017), pp. 79-93
Testing in a cloud has to not only ensure that the functional requirements are met, but a
strong emphasis needs to be laid on non-functional testing as well.
a. Functional Testing
Goes without saying, that functional testing has to be performed to make sure that
offering provides the services that the user is paying for. Functional tests ensure that the
business requirements are being met. Some of the functional tests are described below.
Data Migration Testing: This makes sure that the several of data modules
function correctly with one another, thus making sure that their data in place.
Integration Testing: Here the cloud based solution is to integrate all software
tools to ensure the integration between each component and clouds working
properly.
82
Journal of Applied Technology and Innovation (eISSN: 2600-7304)
vol. 1, no. 2, (2017), pp. 79-93
b. Non-Functional Testing
Non-functional tests mainly focus on the web application based tests ensuring that they
meet the desired requirements. Here are few forms of non-functional tests discussed
below:
Availability Testing: The cloud supervisor/ vendor has to make sure that the
cloud is available round the clock. As there could be many mission critical
activities going on, the administrator has to make sure that there is no adverse
impact to the consumers
Multi Tenancy Testing: Here, multiple users use a cloud offering. Testing must
be performed to ensure that there is sufficient security and access control of data
when multiple users are using a single instance.
Security Testing: Since with the cloud everything is available anytime, it’s
essential to make sure that all user sensitive information has no unauthorized
access and the privacy of users remains intact. When maintaining the applications
in cloud, user data integrity must also be verified.
Disaster Recovery Testing: As already stated in availability testing, the cloud has
to be available at all times and if there are any kind of failures like network
outages, breakdown due to extreme load, system failures and etc., whilst measure
how fast the failure is indicated and any data loss during this period.
In this section, some of the different tools used in various kinds testing performed in a
cloud are mentioned. The details of the tools are out of the scope of this article. Many of
the tools are basically used for performance, load, stress testing. Some of these tools
below can also be used for:
SOASTA CloudTest: CloudTest makes it easy to test to any level of expected usage
– and beyond. A single interface allows to control the ramp and scale of user traffic
from locations around the world and measure the effects in real time. Network
83
Journal of Applied Technology and Innovation (eISSN: 2600-7304)
vol. 1, no. 2, (2017), pp. 79-93
emulation lets a model to test with multiple connection types. Whether it testing
100 users or a million, the CloudTest platform helps to get the most out of every
test by seamlessly spanning dozens of global cloud providers, and simulating web
and mobile user traffic more accurately.
AppPerfect: It is a fully Automated Load test, Stress test and Performance Test
solution that is easy to use and cost effective. Most application performance and
stability issues arise only when the server is stressed with a high user load.
AppPerfect Web Load Test helps to design and simulate thousands of users in a
realistic manner which can be used to load test at application infrastructure for
performance, reliability and scalability.
Jmeter: Java desktop application from the Apache Software Foundation designed
to load test functional behaviour and measure performance. Originally designed
for testing Web Applications but has since expanded to other test functions; may
be used to test performance both on static and dynamic resources (files, Servlets,
Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). Can be
used to simulate a heavy load on a server, network or object to test its strength or
to analyze overall performance under different load types; can make a graphical
analysis of performance or test server/script/object behaviour under heavy
concurrent load.
84
Journal of Applied Technology and Innovation (eISSN: 2600-7304)
vol. 1, no. 2, (2017), pp. 79-93
Wireshark: Wireshark is a free and open source packet analyzer. It is used for
network troubleshooting, analysis, software and communications protocol
development, and education. Wireshark is cross-platform, using the Qt widget
toolkit in current releases to implement its user interface, and using pcap to
capture packets and is very similar to tcpdump, but has a graphical front-end, plus
some integrated sorting and filtering options.
Nmap: Nmap ("Network Mapper") is a free and open source utility for network
discovery and security auditing. It useful for tasks such as network inventory,
managing service upgrade schedules, and monitoring host or service uptime. It
uses raw IP packets in novel ways to determine what hosts are available on the
network, what services (application name and version) those hosts are offering,
what operating systems (and OS versions) they are running, what type of packet
filters/firewalls are in use, and dozens of other characteristics. It was designed to
rapidly scan large networks, but works fine against single hosts.
85
Journal of Applied Technology and Innovation (eISSN: 2600-7304)
vol. 1, no. 2, (2017), pp. 79-93
Monitis: Monitis is a specialist provider of web and Cloud monitoring services that
include website monitoring, site load testing, transaction monitoring, application
and database monitoring, Cloud resource monitoring, and server and internal
network monitoring within one easy-to-use dashboard. Monitis can provide of
choice to increase uptime and user experience of their services and products.
Monitis are fast to deploy, feature-rich in technology and provide a comprehensive
single-pane view of on-premise and off-premise infrastructure and
86
Journal of Applied Technology and Innovation (eISSN: 2600-7304)
vol. 1, no. 2, (2017), pp. 79-93
Blaze Meter: Self-service, on-demand, cloud-based load testing. Simulate any user
scenario for webapps, websites, mobile apps or web services. Launch a single
dedicated server or a cluster of 100. Apache JMeter compatible - pre-configured
JMeter environments with up to 144 CPU cores and 500 GB of memory. Set geo
locations from among choices worldwide. Set up tests, access test results, view test
reports, compare past test reports and more, all on a unitary console. Generate
traffic using public cloud providers or install the on-premise load generator
software on your own machines and test behind the firewall on your internal
network. Free tools and resources for tips and tricks to optimize website and app
performance.
Challenges
As exciting as cloud sounds, all is not hunky-dory here. There are some challenges with
relying and using cloud as an infrastructure as well. Let’s take a look at some of the
primary concerns using the cloud.
Challenge #1: With everything available on demand to any user, security is a primary
issue for the businesses as currently there is still a lot of discussion and research going
on in the industry to set up security standards. User privacy protection, security
standards on cloud, security of applications running within the cloud, security testing
techniques are some of the primary issues that need to be addressed in the cloud
infrastructure
87
Journal of Applied Technology and Innovation (eISSN: 2600-7304)
vol. 1, no. 2, (2017), pp. 79-93
to delays. Also in case of some maintenance or outage related activities, the bandwidth
may seem insufficient.
Challenge #3: Sometimes for testing purposes, we require certain configurations: with
respect to servers, storage or networking which may not be supported by the cloud
provider. This sometimes makes it difficult to emulate customer environments.
Challenge #4: Another commonly faced challenge is with respect to integration testing
whereby the testers test the network, database, servers, etc. In such situations, the tester
will not have control on the underlying environment. Secondly, the challenge is doubled
when there has to be an interaction between these components because the tester will
have to anticipate risks like crashes, network breakdown or servers going kaput. Cloud
computing has today become one of those “big bangs” in the industry. Most organizations
are now leaning to adopting the cloud because of its flexibility, scalability and reduced
costs. The following table lists the main challenges in cloud computing environment.
Challenge #6: Performance testers usually execute their test plans on pre-fixed
environments with agreed upon metrics, evaluation parameters, etc. But for cloud
testing, the effect of dynamic scalability plays the role of a villain, if you were to ask us.
On-demand scalability poses extra loads on testing tools to execute new test cases in real
time without prefixed metrics or evaluation statistics.
Challenge #7: With lack of proper control of the underlying cloud environment, testers
face a huge challenge there is interaction between these components.
Challenge #8: Due to the lack of universal standards in integrating public resources on
the cloud with internal data architectures of organizations, there is a serious challenge to
testing teams to maintain dynamic testing environments to offer testing as a service.
Changing vendors would lead to the requirement of new solution architectures and
platform modifications for test tools to operate smoothly.
Challenge #9: Testing teams often prepare test cases and scenarios with pre-determined
data sets but when testing is offered as a dynamic cloud service, then the costs involved
in encrypting test data on cloud systems have to be considered since they need to
evaluate the security aspects of cloud testing as well.
88
Journal of Applied Technology and Innovation (eISSN: 2600-7304)
vol. 1, no. 2, (2017), pp. 79-93
In the early state of the newly emerged cloud computing paradigm, most researchers
focused on a broader and coherent understanding, including definitions, challenges and
benefits (Armbrust et al., 2010; Riungu-Kalliosaari et al., 2016). Subsequently, security of
cloud environments became one of the most crucial concerns in adopting and using the
new technology (Ali et al., 2015; Singh et al., 2016). The recent survey of RightScale Inc.
(2016) revealed, that security challenges are the second highest concerns in cloud
computing. Distributed systems are possible targets for attacks causing radical extra
charges such as data modifications or downtimes. Data loss or leakage represents 24.6%
and cloud-related malware 3.4% of threats causing cloud outages (Ko & Lee, 2013). Most
of the software security incidents are exploited vulnerabilities. Hence, Akhgar (2016)
recommends developing security metrics to identify vulnerabilities. To ensure
application security, security testing techniques are important and effective
countermeasures for improvement (Felderer et al., 2016). Thus, implemented systems
should be tested by the use of analytical techniques and engineering principles to detect
security issues as early as possible (Bos et al., 2014). However, according to Shrivastva
et al. (2014), is security testing one of the major challenges in cloud testing environments.
Besides, Nachiyappan & Justus (2015) indicated that present cloud security testing has
many open queries, such as quality assurance and security validation. The authors also
stated the challenge of testing security measures in cloud environments. Kumar & Singh
(2014) revealed the research issue of performing quality checks within cloud
environments. Beyond, Madan et al. (2016) pointed out the need to develop an approach
for cloud privacy testing. Although the body of knowledge on cloud testing is growing,
the literature review reveals an enormous gap of sophisticated security testing
approaches for testing the cloud. Researchers mostly focused on Test as a Service (TaaS)
rather than on testing the cloud.
Security of the data is the biggest disadvantage. Storing data in a cloud means the
data is, in theory, accessible to anyone and data and code are mostly stored in a remote
location beyond an organization's legal and regulatory jurisdiction. Yet another challenge
is that some cloud providers offer only limited types of configurations, technology,
servers and storage, networking and bandwidth, making it difficult to create real-time
test environments. Improper choice of cloud-based use and pricing options is another
risk. While some vendors offer pay-as-you-go services, they are only cost-effective when
the right plan and service provider are chosen for the anticipated needs (e.g. space vs.
RAM vs. bandwidth). Costs can quickly spin out of control if resource estimates differ
wildly from actual usage.
Integration testing in clouds - Although we have seen numerous published research
papers addressing software integration testing issues and strategies, not much research
results have been applied in the real engineering practice. One of the major reasons is the
89
Journal of Applied Technology and Innovation (eISSN: 2600-7304)
vol. 1, no. 2, (2017), pp. 79-93
existing software and components are developed without enabling technology and
solution to support and facilitate systematic software integration. In a cloud
infrastructure, engineers must deal with integration of different SaaS and applications
in/over clouds in a black-box view based on their provided APIs and connectivity
protocols. This could cause a lot of extra integration costs and difficulties due to the
following issues:
There is a lack of well-defined validation methods and quality
assurance standards to address the connectivity protocols,
interaction interfaces, and service APIs provided by SaaS and clouds
APIs; and
There is a lack of cost-effective integration solutions and
framework to facilitate software application integration and
assembly inside clouds and over clouds.
Infrastructure requirements: It is vital that Infrastructure requirements are rigorously
set, because the very flexibility that the cloud offers for testing environments can itself
be a risk if the requirements for those environments are inappropriate. Results will then
be poor and negative perceptions of the cloud as a test environment will result from what
was really an inattention to requirements.
Summary
Using the cloud for testing is immensely helping organizations to acquire the required
tools, software licenses, infrastructures at a very low cost without having to set it up
themselves and then worry about its maximum utilization.
For Cloud Security Lab/Test Lab: NeXpose is a tool for auditing cloud infrastructure.
It also provides Vulnerability Management for cloud assessment. NeXpose can scan the
entire infrastructure, application, database or Virtual Machine to detect vulnerability
across them. Vulnerability management tools include the ability to detect and identify
assets in an IT infrastructure, detect vulnerabilities, provide descriptions of
vulnerabilities as well as links to patches and other forms of remediation, and generate a
host of reports -- all from a central console. The other tool will be proposed using SAINT,
Burpsuite, NetSkope, Qualys, Retina, VIM and GFI LanGuard.
Though offering testing as a service through cloud based automation throws up a
lot of challenges down the line, organizations continue to focus on this trend, thanks to
its numerous benefits. This is evident from another World Quality Report insight which
shows that the share of testing budgets for transformational projects has increased from
41% in 2011 to 43 % in 2013.
The core philosophy behind a majority of the challenges stated is because of the
underlying characteristics of the cloud platform. A closely-knit approach with the cloud
90
Journal of Applied Technology and Innovation (eISSN: 2600-7304)
vol. 1, no. 2, (2017), pp. 79-93
service provider can help to minimize this risk considerably as testing teams can built a
solid cloud platform to deploy their tools.
Partnering with a reliable testing service provider is the perfect answer for
organizations to eliminate testing related challenges and overheads especially with
regards to automated test services. With decades of experience in offering world class
testing services to a plethora of global giants, Cigniti is your road to eliminating testing
overheads once and for all. Moreover, functional testing may take specific forms such as:
i. User acceptance testing: Also, known as beta testing, this category of testing
evaluates an application's performance in the real world among its intended
audience. It has the added benefits of helping to minimize change requests down
the road and keeping overall project costs to a minimum. User acceptance testing
can also build goodwill with end users and improve their satisfaction with the
software in question.
ii. Interoperability testing: With interoperability testing, testers are looking to see
that programs work with others on a variety of platforms. Many applications are
now cross-platform and must meet mission-critical requirements such as
exchanging data between different medical records systems. With the emergence
of cloud computing, this type of testing may also check whether software can hand
off workloads across both cloud and on-premises infrastructure.
iii. System verification testing: Here we get into slightly more technical testing.
System verification may include code audits, revisions to any documentation, and
testing of hardware and software components under normal as well as adverse
environmental conditions. Voting machines are a prime example of appliances
that require thorough system verification.
iv. How has the emergence of cloud computing affected the general practice of
functional testing? We can already see signs of its influence on the applications
testing that have been "hybridized," i.e. designed to leverage both internal and
external (public cloud) IT resources. More specifically, these programs require
careful attention to the interoperability of all the systems involved, as we noted
above.
The cloud computing paradigm is a nascent technology with many benefits for
organisations. On the other side, security of clouds is still one of the major concerns of
clients to adopt and use the new computing paradigm. The review of the recent academic
literature revealed that cloud security in general is still a major concern in the industry
and academics alike. To make it clearer, a data breach revealed vulnerabilities at Yahoo!
Inc., whereby 32 million user accounts were accessed by forged cookies to log in without
a password (Yahoo! Inc., 2017). Another example is the Distributed Denial-of-Service
(DDoS) attack against Dyn, which was just recently acquired by Oracle, causing a major
breakdown of its Domain Name System (DNS) servers also affecting enterprises relying
on SaaS (York, 2016). Besides, the survey unfolded that security and related testing
activities are current research fields with a lot of open queries. Thus, many academic
papers have been published to identify and address challenges in cloud security,
vulnerabilities and threats. However, most of the researchers focused on TaaS rather
91
Journal of Applied Technology and Innovation (eISSN: 2600-7304)
vol. 1, no. 2, (2017), pp. 79-93
than on testing the cloud. Hence, this survey reveals a current gap in academic research
in terms of testing the cloud security using an appropriate approach for SaaS
applications. The authors imply to conduct further research on cloud security testing
approaches, especially in SaaS and public environments, whereby internal and external
factors need to be differentially considered.
References
Zafar, F., Khan, A., Ur, S., Malik, R., Ahmed, M., Anjum, A., Khan, M.I., Javed, N., Alam, M. &
Jamil, F. (2017). A survey of cloud computing data integrity schemes: Design
challenges, taxonomy and future trends. Computers & Security. 65. p.pp. 29–49.
Yahoo! Inc. (2017). Annual Report. [Online]. Delaware. Available from:
https://investor.yahoo.net/secfiling.cfm?filingID=1193125-17-
65791&CIK=1011006&soc_src=mail&soc_trk=ma. [Accessed: 27 March 2017].
Vohradsky, D. (n.d.). Cloud Risk - 10 Principles and a Framework for Assessment.
Retrieved from http://www.isaca.org/Journal/archives/2012/Volume-
5/Pages/Cloud-Risk-10-Principles-and-a-Framework-for-Assessment.aspx
The 10 Worst Cloud Outages (and What We Can Learn From Them). (2011, June 27).
Retrieved from http://www.infoworld.com
Security of OpenStack Cloud. (n.d.). Retrieved from http://www.stratoscale.com
Security Authorization Process Guide. (n.d.).
Roadmap NIST, cloud application security and operations policy. (2015, July).
Red-hat OpenStack platform. (n.d.).
Private Cloud Providers Comparison. (n.d.). Retrieved from http://www.tomsitpro.com
National standard for cloud NIST. (n.d.).
Mirantis Reference Architecture VHC for Cloud Native Apps. (2016, March 3).
ISACA. (2011). IT Control Objectives for Cloud Computing: Controls and Assurance in the
Cloud. Retrieved from http://www.isaca.org/cloud
ISACA. (2010). Business Model for Information Security. Retrieved from
http://www.isaca.org/bmis
Goldsmith, R. F. (n.d.). Search software quality. Retrieved from
http://searchsoftwarequality.techtarget.com/answer/Functional-vs-non-
functional-requirements-what-is-the-difference
Enisa. (2009). Cloud Computing: Benefits, Risks and Recommendations for Information
Security. Retrieved from http://www.enisa.europa.eu
Cloud Pentest. (n.d.).
Boucher. (2013). Boucher Testing Challenge.
92
Journal of Applied Technology and Innovation (eISSN: 2600-7304)
vol. 1, no. 2, (2017), pp. 79-93
93