Applicability of Iec 62443-4-1 Based Secure Development Lifecycle (SDL) To Cloud Applications
Applicability of Iec 62443-4-1 Based Secure Development Lifecycle (SDL) To Cloud Applications
Master’s thesis
Faculty of Information Technology and Communication Sciences
Marko Helenius
Ari Vakkuri
November 2021
i
ABSTRACT
Joona Lepola: Applicability of secure development lifecycle (SDL) based on IEC 62443-4-1 to
cloud applications
Tampere University
Master's Programme in Information Technology
Master’s Thesis
November 2021
Secure Development Lifecycle (SDL) is a great way to increase the security of product during
its lifetime. This work researches how well the industrial automation SDL, defined by IEC 62443-
4-1, fits for applications developed for cloud environment. IEC 62443-4-1 based SDL is widely
used in industrial companies and the use of it could be spread to the cloud development, after
which companies could use the existing tools and policies. This would make transition to cloud-
based development a bit easier.
The work is divided into four parts. The literature review chapter presents previous similar
studies on the compatibility of IEC 62443-4-1 and the cloud environment, studies on the
compatibility of IEC 62443-4-1 and agile methodologies, as well as mapping work related to the
security of a secure cloud application. It was found in the work that there are no previous studies
between IEC 62443-4-1 and the cloud environment, since most only mention one of them, whilst
the focus of the work itself is only on another topic. One study about agility was found and used
for this work. The literature review also found one good work related to a safe cloud environment
that will be used as references in later chapters. The suitability is then mapped using an example
project. The example project is an application running in a cloud environment to which IEC 62443-
4-1 based SDL is applied. The work firstly presents the project in detail and compares it against
the Cloud Security Alliance Security Guidance v4.0 book and previous studies on the cloud
security. The security features and deficiencies found will be utilized in later stages. After the
presentation of the project, all the processes required by the IEC 62443-4-1 SDL are reviewed
one by one and justified how they apply to the example project. Finally, the work analyses how
well the existing processes of SDL adapt to the project and how well the security features and
deficiencies found, have been considered in SDL, and suggests possible additional processes.
When SDL processes are adapted to the example project, it is noticed that most of them are
suitable directly to the project and total of four processes are left unselected. The analysis phase
shows that the non-selected processes are suitable for the cloud environment and were not
selected for the project because it lacked certain features required by these processes. Thus, the
analysis shows that all the processes are suitable for the cloud environment, but the work still
highlights 21 processes where it is good to keep certain things in mind when applying them to the
cloud environment. For example, agile development methods are often involved in cloud
development, which requires a different approach to a few processes. The second is the defining
the user, which is not necessarily easy in every case.
Research shows that IEC 62443-4-1 is also suitable for use in cloud environments if a few
things are remembered when it is implemented.
Keywords: IEC 62443-4-1, SDL, Secure Development Lifecycle, Cloud, Cloud development,
Cloud Environment
The originality of this thesis has been checked using the Turnitin OriginalityCheck service.
ii
TIIVISTELMÄ
Joona Lepola: IEC 62443-4-1:een pohjautuvan turvallisen kehityksen elinkaaren soveltuvuus
pilvisovelluksille
Tampereen yliopisto
Tietotekniikan tutkinto-ohjelma
Diplomityö
Marraskuu 2021
Turvallisen kehityksen elinkaari (engl. Secure Development Lifecycle, SDL) on erittäin hyvä
keino parantaa kehitetyn tuotteen turvallisuutta sen koko elinkaaren ajan. Tässä työssä tutkitaan,
kuinka hyvin teolliselle automaatiolle kehitetty IEC 62443-4-1 -standardin määrittelemä SDL
soveltuu pilviympäristöön kehitetyille sovelluksille. IEC 62443-4-1 -pohjainen SDL on laajasti
käytössä teollisuuspuolen yrityksissä ja sen käyttöä voitaisiin mahdollisesti myös laajentaa
pilvikehitykseen, jolloin yritykset voivat hyödyntää jo olemassa olevia työkaluja ja toimintatapoja.
Tällöin yritysten siirtyminen pilvipohjaisten sovellusten kehittämiseen voisi olla hieman
helpompaa.
Työ jakautuu neljään osaan. Kirjallisuustutkimusosa esittelee aiempia vastaavia tutkimuksia
IEC 62443-4-1 -standardin ja pilvikehityksen yhteensopivuudesta, ketterän kehityksen
menetelmien ja IEC 62443-4-1 -standardin yhteensopivuutta käsitteleviä töitä, sekä kartoittaa
turvalliseen pilvisovellukseen liittyviä töitä. Työssä havaittiin, että aiempia IEC 62443-4-1 ja
pilvikehityksen välisiä tutkimuksia ei ole lainkaan, vaan useimmissa vain mainitaan jompikumpi,
koska itse tutkimuksen pääpaino on vain toisessa aiheessa. Tutkielmassa löydettiin yksi
ketterään kehitykseen ja IEC 62443-4-1 -standardiin liittyvä työ, jota käytetään lähteenä tässä
työssä. Kirjallisuustutkimuksessa löydettiin yksi turvalliseen pilviympäristöön liittyvä työ, jota
käytetään viitteenä myöhemmissä osissa. Tämän jälkeen soveltuvuutta lähdetään kartoittamaan
esimerkkiprojektin avulla. Esimerkkiprojektina on pilviympäristössä toimiva sovellus, johon
sovelletaan IEC 62443-4-1 mukainen SDL. Työssä esitellään ensiksi projekti ja vertaillaan sitä
Cloud Security Alliancen Security Guidance v4.0 -kirjaa ja aiempia pilviympäristön turvallisuutta
käsitteleviä tutkimuksia vasten. Löydettyjä turvallisuusominaisuuksia ja puutteita käytetään
hyödyksi myöhemmissä vaiheissa. Projektin esittelyn jälkeen työssä käydään läpi yksitellen kaikki
IEC 62443-4-1 SDL:n vaatimat prosessit ja perustelen miten ne soveltuvat esimerkkiprojektiin.
Lopuksi työssä analysoidaan miten hyvin SDL:n olemassa olevat prosessit sopeutuvat projektille
ja miten hyvin löydetyt tietoturvaominaisuudet ja puutteet on huomioitu SDL:ssä ja ehdotetaan
mahdollisia ylimääräisiä prosesseja.
Kun SDL prosesseja sovitetaan esimerkkiprojektiin, huomataan että niistä suurin osa käy
projektiin ja valitsematta jää yhteensä neljä prosessia. Analyysivaiheessa käy ilmi, että vaikka
osa prosesseista ei sopinut esimerkkiprojektiin, ne kaikki ovat silti sopivia pilvikehitykseen. Tämä
johtui siitä, että esimerkkiprojektissa ei ollut tarvetta näille prosesseille. Työssä nostetaan esille
21 prosessia, joita sovellettaessa on pidettävä tiettyjä asioita mielessä, jotta ne soveltuisivat hyvin
pilvikehitykseen. Esimerkiksi ketterien kehitysmetodien mukana tuleva nopeatempoinen
ohjelmistojen julkaisu asettaa muutamille prosesseille erityisvaatimuksia. Mikäli jokaisen julkaisun
yhteydessä tehtäisiin kaikki SDL:n vaatimat prosessit, ohjelmistokehityksen ketteryys voisi kärsiä
huomattavasti. Toinen on käyttäjän määrittäminen, joka ei välttämättä ole kovin helppoa jokaisen
prosessin yhteydessä.
Tutkimus osoittaa, että IEC 62443-4-1 soveltuu myös pilvikehityksessä käytettäväksi, kunhan
sitä sovellettaessa muistetaan edellä mainitut asiat.
PREFACE
This master’s thesis has been done while I was working in Insta Digital Oy and the thesis
was done for a customer company. I would like to thank all the companies and personnel
involved in this thesis, since they all have been proved to be a great help for me to be
able to finish this. I would like to especially thank Henry Haverinen for proving me
invaluable security and secure development lifecycle information, Ari Vakkuri for helping
me to understand the architectures related to this project and guiding me through this
thesis, and finally my family for supporting me to follow my dreams.
Joona Lepola
iv
CONTENTS
1. INTRODUCTION .................................................................................................. 1
1.1 Problem layout ..................................................................................... 1
1.2 Delimitations ........................................................................................ 1
1.3 Research Method................................................................................. 2
1.4 Structure of the Diploma Thesis ........................................................... 2
2. LITERATURE RESEARCH ................................................................................... 3
2.1 Literature Research Method ................................................................. 3
2.2 Scientific Documents Related to IEC 62443-4-1 and Cloud.................. 3
2.3 Scientific Documents Related to IEC 62443-4-1 and Agile ................... 6
2.4 Scientific Documents Related to Security and Cloud Infrastructure .... 10
2.5 Literature Research Results ............................................................... 11
3. USED RESOURCES .......................................................................................... 12
3.1 IEC 62443-4-1.................................................................................... 12
3.1.1 General Principles....................................................................... 12
3.1.2 Maturity Model ............................................................................ 12
3.1.3 Security Levels ........................................................................... 13
3.1.4 About Practices and Security Processes..................................... 13
3.2 Cloud Security Alliance (CSA) ............................................................ 16
3.2.1 Security Guidance V4.0 .............................................................. 16
3.3 Center for Internet Security (CIS) ....................................................... 17
3.4 AWS Security Hub ............................................................................. 17
3.5 The Open Web Application Security Project® (OWASP) .................... 19
3.6 National Institute of Standards and Technology (NIST) ...................... 20
4. APPLICATION OF SDL TO CLOUD APPLIATION PROJECT ............................ 21
4.1 Project Introduction ............................................................................ 21
4.1.1 What is Cloud Computing ........................................................... 21
4.1.2 Management Plane ..................................................................... 22
4.1.3 Cloud Infrastructure .................................................................... 24
4.1.4 Identity, Entitlement, and Access Management ........................... 35
4.1.5 Data Security and Encryption ...................................................... 37
4.1.6 Application Security .................................................................... 41
4.2 Selecting SDL Processes to the Project ............................................. 45
4.2.1 Practice 1 – Security management ............................................. 45
4.2.2 Practice 2 – Specification of Security Requirements ................... 48
4.2.3 Practice 3 – Security by Design .................................................. 49
4.2.4 Practice 4 – Secure Implementation ........................................... 51
4.2.5 Practice 5 – Security Verification and Validation Testing ............. 51
4.2.6 Practice 6 – Management of Security-related Issues .................. 52
4.2.7 Practice 7 – Security Update Management ................................. 54
4.2.8 Practice 8 – Security Guidelines ................................................. 55
4.3 Summary of Selections ...................................................................... 57
v
LIST OF FIGURES
LIST OF TABLES
Table 1 Service types available in the cloud ............................................................... 24
Table 2 Cloud infrastructure stages ............................................................................ 25
Table 3 CloudFront routing table................................................................................. 27
Table 4 Project deployment stages in Jenkins ............................................................ 42
Table 5 Selected IEC 62443-4-1 processes for the example project ........................... 57
Table 6 How does the IEC 62443-4-1 cover the infrastructure security findings .......... 63
Table 7 How does the IEC 62443-4-1 cover the data security findings ....................... 65
Table 8 How does the IEC 62443-4-1 cover the application security findings ............. 66
Table 9 Compatible IEC 62443-4-1 Processes with Cloud Computing ........................ 67
viii
Entities
AWS Amazon Web Services
BOS Back Office System
CIS Center for Internet Security
CSA Cloud Security Alliance
EU European Union
IEC International Electrotechnical Commission
ISO International Organization for Standardization
NIST National Institute of Standards and Technology
NIST National Institute of Standards and Technology
OWASP Open Web Application Security Project
OWASP Open Web Application Security Project
PO Product Owner
TUNI Tampere University
U. S United States
Cloud
ACL Access Control List
Azure AD Azure Active Directory
CMK Customer Managed Keys
DB Database
dev Development
EC2 Elastic Computing 2
IaaS Infrastructure as a Service
IaC Infrastructure as Code
IAM Identity and Access Management
KMS Key Management Service
MFA Multi-Factor Authentication
PaaS Platform as a Service
prod Production
ix
Software
API Application Programming Interface
BOM Bill Of Materials
CD Continuous Delivery
CI Continuous Integration
CLI Command Line Interface
DevOps Development and IT Operations
HTTP Hypertext Transfer Protocol
HTTPS Hypertext Transfer Protocol Secure
IIoT Industrial Internet of Things
IoT Internet of Things
IP Internet Protocol
IPv4 Internet Protocol version 4
IT Information Technology
NPM Node Package Manager
REST Representational State Transfer
SAFe Scaled Agile Framework
SDK Software Development Kit
SQL Structured Query Language
SSH Secure Shell
SSL Secure Sockets Layer
URL Uniform Resource Locator
Other
COTS Commercial Off-The-Shelf
EAL Evaluation Assurance Level
ICS Industrial Control Systems
IMDSv2 Instance Metadata Service Version 2
.
1
1. INTRODUCTION
Industrial automation systems are often designed to be in use for a long time, meaning
that they can be in use for tens of years before they are replaced with newer
ones/updated. Some industrial automation systems are connected to the Internet and
can be updated remotely, yet many systems stay offline and are updated irregularly or,
in some cases, never. This increases the need of proper security features for those
systems. Secure Development Lifecycle (SDL) is a one way to increase the security of
the industrial automation product and the suitability of the IEC 62443-4-1 based SDL for
a cloud development is analysed in this thesis.
The research question is “How well does the Secure Development Lifecycle process
based on IEC 62443-4-1 fit as a cloud application development method and how it should
be developed from the perspective of cloud applications”. There are multiple existing
SDL frameworks i.e., IEC 62443-4-1, Microsoft SDL, ISO 27034, OWASP SAMM, PCI
DSS, and possibly more. IEC 62443-4-1 is an SDL that addresses industrial automation
and control system security. This SDL is mainly used SDL framework in Insta Digital Oy
because some of their customers happen to operate in the field of the industrial
automation. Now that cloud computing is more popular than ever, we are eager to see
how well the IEC 62443-4-1 fits for cloud development and if it does not, how we need
to change it. If this SDL does fit well for cloud development, the existing IEC 62443-4-1
based tools could be used for upcoming cloud projects.
1.2 Delimitations
IEC 62443 standard family contains multiple standards, 13 to be exact, and covering
even two of those is a big task. Therefore, this thesis will only cover the standard IEC
62443-4-1, and everything related to the other standards, within the same family, will be
left outside of the scope. Another big entity is cloud security. It will be covered only with
the scope that fits the example project that is presented within this thesis.
2
The SDL process is first applied cloud development project and the functionality of the
SDL process in this project is observed. In addition, the cloud side security
recommendations are mapped from various sources. The sources are previous research
related to this subject, Cloud Security Alliance (CSA), The Open Web Application
Security Project ® (OWASP), Amazon Web Services (AWS) Security Hub. Then the
applicability of existing SDL practices and processes to cloud environment is analyzed
and new processes are created if there are some missing from cloud security
perspective.
Chapter 2 goes through previous research related to this subject. Chapter 3 is a definition
of most common resources used to do this work. In chapter 4 the project will be
presented in detail, the current security status of the project will be covered, and an
attempt to apply SDL processes to the existing project. Chapter 5 will cover the analytical
part of the work, wherein the processes will be analysed for suitability for cloud
computing. New processes will be presented, if necessary, based on security findings
on chapter 4.
3
2. LITERATURE RESEARCH
This thesis was made by applying IEC 62443 based SDL to the existing cloud project.
Literature research was used to map existing scientific documents, that deals with the
same subject as this thesis. Also, literature research is used to map the works that can
be used as a reference for this work.
The main search engine used for literature research was Andor that is managed by
Tampere University’s (TUNI) library. At the time of writing TUNI’s Andor searches from
420 different.
The method for searching information was pearl growing [1, p. 571], in which the search
is started with limited knowledge. The search and search terms are updated with the help
of the search results. This means that the references and citations used by search results
can be used to find new resources and search terms, hence the term pearl growing.
Andor searches gives a lot of documents that are not peer reviewed and those
documents are avoided with this literature research.
The search was started with simple keywords, “IEC 62443 AND (cloud OR pilv*)” and it
gave only around 38 results that were peer reviewed. After a while it was clear that many
of these documents do not contain anything about IEC 62443-4-1, which is the basis of
this thesis. Many of these documents used other IEC 62443 standard family standards
as a source. Next the search term was updated to form of “IEC 62443-4-1 AND (cloud
OR pilv*)” that consists the standard name (also tried without IEC part, but it gave the
same results) and the environmental name, cloud in Finnish and English. This gave only
4 results, so the search term was updated once again to consist words that can be used
instead of cloud, like Amazon Web Services (AWS), Azure, Google. The final search
term used was “IEC 62443-4-1 AND (cloud OR pilv* OR aws OR azure OR google OR
amazon OR web service)” and it produced 7 results. It turned out that there is not that
much scientific material available for this thesis. The results and their applicability to this
thesis, which Andor gave, will be discussed next.
4
This article mentions that some standards can be a bit hard to read text and this work
tries to address that issue with a proposed tool-supported approach. Even though it is
good to verify security related questions from security specialist, it can be problematic
and slow with today’s need of increasing velocity in continuous software engineering.
This work “propose a tool-supported approach to make security standards more precise
and easier to understand for both non-security as well as security experts by applying
process models.” There is also a case study that has been done with 16 industry
practitioners that demonstrates how this approach improves communication between
development and security compliance practitioners. [2]
This work presents a way for regular developers to implement IEC 62443-4-1 processes
and practices easier with agile methodologies, without the constant need of security
expert’s support. Even though this is great information related to the IEC 62443-4-1 this
does not give any intel related to the research question at hand, which asks how well
these processes and practices fits cloud environment.
This article gives guidelines for how to implement IEC 62443 industrial security standard
concerning the security maintenance of IIoT systems and component. The lifetime of IIoT
device might be even decades and during that time it is necessary to update the device
to keep it secure. [3]
Subject of this article does not match the research question well enough, and cloud is
mentioned only once in this article, in the reference list. The conclusion is that the article
does not have enough information about a cloud environment, which is why it does not
support the research question of this thesis.
This work introduces a cyber security learning platform called Sifu, that has Cyber
Security Challenges that combine serious game techniques with cybersecurity and
secure coding guidelines, to raise secure coding awareness of software developers.
Platform performs automatic assessments of challenges and uses artificial intelligence
to give users hints to help them solve the challenges. [4]
5
IEC 62443 is not reviewed in this work, but it is mentioned in this work: “addresses
security from a high-level perspective and are not specific enough about
recommendations and policies to be followed in software development”. After this it is
not mentioned anymore, and alternative methods are considered. AWS is mentioned
once as it is the platform used to launch Sifu. Since this work does not have a usable
information about the IEC 62443 or a cloud, it does not support the research question of
this thesis.
This research did a survey study to test the knowledge of Secure Design Principles
(SDPs) among participants who have experience in developing/designing different types
of software. This study also explores if the demographic variables (age, gender,
experience, education) effect the participants knowledge about SDPs and discovered
some misconceptions of SDPs among participants. [5]
In this book, IEC 62443-4-1 standard is mentioned only once when the life cycle
requirements of Industrial Control Systems (ICS) are mentioned. Within this chapter it is
mentioned that some vendors and developers use secure development lifecycle to tackle
security issues with ICS components that have life cycle of 10-20 years. Since this work
does not have a usable information about the IEC 62443 or a cloud, it does not support
the research question of this thesis.
This report tells the writers experience when they developed security architecture for
railway signaling systems that starts from the bare safety-critical system that requires
protection. They are using German pre-standard DIN VDE V 0831-104 for security in
railway signaling networks. This is a guideline for applying IEC 62443 framework for
industrial control system security to railway signaling, while considering the relevant
railway safety standards. [6]
IEC 62443-4-1 is mentioned twice in this report when it is noted that “DIN VDE V 0831-
104 assumes that IT security products purchased on the market already have IEC 62443
compatible certification and the ISASecure’s interpretation of IEC 62443-4-1 suggests
that Commercial Off-The-Shelf (COTS) operating systems should at least be certified to
Common Criteria (CC) Evaluation Assurance Level 3 (EAL3)”. References were only
found to IEC 62443-4-1 but not to other search term and I am not sure why did this
6
showed up on the search. This work does not cover IEC 62443-4-1 or have any
references to a cloud, therefore it does not support the research question of this thesis.
This work presents platform for software developers in the industry that helps them to
increase awareness of secure software development. This also introduces and
interactive game component, a virtual coach. This is extension for the “code entry”
challenge type that was introduced in the Sifu – a cybersecurity awareness platform with
challenge assessment and intelligent coach that was another find from Andor. [7]
This mentions IEC 62443-4-1 almost in a same way as did the Sifu document. IEC62443-
4-1 or ISO 27001 addresses security from high-level perspective and thus are not
specific enough about recommendations, policies, and best practices to be followed in
software development. Since this work does not have a usable information about the IEC
62443 or a cloud, it does not support the research question of this thesis.
This paper reuses IEC 62443 approach, where system is broken down into zones and
conduits bases on required security levels, in small scale to show that the same concept
can be used with mixed-criticality IoT components to improve the security on component
level. [8]
IEC 62443-4-1 is mentioned once in this paper under component requirements, where it
is noted that the standards 62443-4-1 and 62443-4-2 belong within component section
of IEC 62443 standard family and what they defines/specifies. Cloud is mentioned once
within introduction, where it is mentioned to be one of the components that IT integrates
with and is built on. Since this work does not have a usable information about the IEC
62443 or a cloud, it does not support the research question of this thesis.
Agile helps teams to deliver results to their customer faster and easier by approaching
project management and software development with iterative mindset. Instead of
creating everything at once into a big release, with agile, teams tend to deliver work in
small, but consumable, increments. This means that requirements, plans, and results
7
This project uses agile methodologies and according to the Stack Overflow Development
Practices survey [10]. From this survey we can see that agile is popular in software
development project.
Since there were no good documents found related to the IEC 62443-4-1 and cloud, the
decision was made to widen the scope of searches. According to the Stack Overflow’s
polls, it is quite common that development projects use Agile software development
frameworks [10]. This is the case with the used example project also, so widening the
literature research to check if there is any works related to the IEC 62443-4-1 and Agile
seems to be logical. The research question does not include the Agile methodologies,
yet they are commonly used with cloud development and might have common pitfalls
with cloud development. Found works are used to gather some insights on how problems
associated with the agile and the SDL are handled.
Search was done in TUNI’s Andor service and the used search term was “IEC 62443-4-
1 AND Agile”. This search resulted five peer reviewed documents that will be covered
next.
This work presents an extension for Scaled Agile Framework (SAFe) that is compliant
with IEC 62443-4-1 called Security Standard Compliant Scaled Agile Framework (S²C-
SAFe). This work presents the framework and its evaluation by agile and security experts
within Siemens’ large-scale project ecosystem. The benefits and limitations are
discussed as well as challenges from practitioners’ perspective. Results indicate that
S²C-SAFe contributes to successfully integrating secure compliance with lean and agile
development in regulated environments. [11]
The subject and contents of this work are perfect match for what was searched for and
the text seems to be easy to understand. This work presents new extension for SAFe
that we are not that interest in, but this work also presents some pitfalls they have fixed
with it from agile and IEC 62443-4-1 synergy, which could be usable for this thesis. There
were three practices that were problematic with product development and they are
covered in the following chapters.
8
Security requirements (SR) are made part of the backlog as any other task. “Security
Experts facilitate analysis but are not primarily responsible. Instead, Product
Management, Business Owners, and Systems Architects are in charge so they become
aware of threats. Similarly, the Product Owner requires adequate training to be able to
prioritise and approve security requirements” [11, p. 72].
For Secure Implementation (SI), the secure coding standards are made part of the
Definition of Done, and agile teams as well as product owners are trained accordingly.
Security Verification and Validation Testing (SVV) requires the independence of testers,
this is achieved by independence rules during the formation of agile teams. S²C-SAFe
defines “criteria to keep resource allocation efficient and ensure continuous security
testing, placing security functionality testing at team level and conducting all testing
activities on program level before every System Demo” [11, p. 73].
These findings are somewhat useful for this thesis. Security requirements are placed in
the backlog in the example project and there is one responsible to organize those for the
following sprints. Secure coding standards are used, which are enforced with training
and third-party applications that observe the code. Possible security testing is added to
the existing pipelines and will be run automatically. Yet this does not cover all the open
questions this thesis has, i.e., the possible issues of releasing of the application versions
with fast pace and version documentation, continuous design process with agile, threat
modelling interval and managing security issues with fast pace version releasing.
The subject of this work is extension for the previous work, and it completes S2C-SAFe
and covers the searched subject in a bit higher level. This thesis is analysing how well
does IEC 62443-4-1 fit for cloud development process by process, yet this work is
covering the subject in a much higher level, meaning that it does not cover individual
9
practices and processes, which is why it does not support the research question of this
thesis.
Applying the DevOps is particularly challenging for industrial control systems that support
critical infrastructures and obey rigorous requirements from security regulations and
standards. Existing research on security compliant DevOps present open caps for this
domain. This work presents a systematic way to integrate standard-based security
activities into DevOps pipelines and highlight their automation potential. [13]
This work is covering mostly DevOps, while agile methodologies were searched.
Therefore, it does not support the research question of this thesis.
This is the same research [2] that was previously covered under 2.2. This is the reason
why this article will not be covered under this chapter.
Companies are often challenged to modify their existing development processes to make
them compliant with security standards. This makes it difficult to practitioners to validate
and foresee the effort required for compliance assessments. Performing analyses when
processes are not yet mature enough is costly and involving auditors in early stages is
often inefficient. This work presents a light-weight tool to perform early compliance
assessments for processes with security standards before entering an in-depth audit.
[14]
This work does not support the research question of this thesis, because it targets the
projects in the early stages of their lifecycle, yet the example project is well past the early
stages and thus cannot use the tools mentioned within the article.
10
This research concentrates only on cloud infrastructure and security. The reason is that
with agile, this is only major thing that differs from traditional industrial automation project
that uses IEC 62443-4-1. If a project is not using agile methodologies or cloud
infrastructure, then possible difference with industrial automation project is the used
coding languages and some other minor things. The point of this chapter is to find reliable
resources to use as a source to define secure cloud infrastructure. When this thesis
presents the example project and checks whether it is secure or not, these resources
are used. The cloud infrastructure security information is used to analyse how well does
the SDL note these security features/shortcomings.
The TUNI’s Andor was used to find suitable works to use with this thesis. First search
used the search term “Cloud AND Infrastructure AND Secur*”, but this resulted to 50
thousand peer reviewed results. Search term was updated to “"Cloud Infrastructure"
AND Secur*” which resulted over five thousand peer reviewed works. The search term
used was updated to “ "secure cloud infrastructure" “ which only resulted 30 peer
reviewed results. Shortly after going through these works it was clear that these were
not suitable for this thesis since some of those works dealt with problems that had
solutions only on a theoretical level, and some were used in a wrong scope.
Now the decision was made to change the search string once more to “Cloud
Infrastructure Security” and the perfect conference publishment was found, until it
became clear that this document was around 10 years old. Yet the fundamental idea of
the cloud is still the same and this document is peer reviewed. This document will be
used as an information source for this thesis. To keep this thesis within a reasonable
length, only this one conference publishment will be covered in the following chapters.
This paper discusses problems of providing the infrastructure security of a cloud. The
data and its security are being given a special attention during this work. Main
components of cloud infrastructure security are defined, and the corresponding issues
and recommendations are given. [15]
This paper firstly defines the cloud computing and different deployment models that can
be used. Then there is some risk and security concerns listed. The most valuable this for
11
this thesis is the cloud security principles and infrastructure security chapters that have
usable security information that will be used as source during this thesis.
After reviewing all the results that Andor gave, it turns out that usable scientific
documentation related to this thesis was hard to come by. This can be because the
subject is quite new, meaning that industrial automation companies have not introduced
their automation systems to the cloud for that long, which would make this work as a
forerunner on this subject. For works that deals with the subjects agile and SDL, there
were some useful findings that were already mostly implemented within the example
project, but some questions were left unanswered. Works related to the cloud
infrastructure security were a bit hard to come by, since most of the research seems to
be targeting a specific application or system that runs within cloud environment. One
work was found and is used as a source during this thesis. Overall, the literature research
was quite successful and managed to give some scientific basis for this thesis.
12
3. USED RESOURCES
Following chapters go through the resources that will be used with this work. IEC 62443-
4-1 describes practices and processes of the Secure Development Lifecycle (SDL) that
is applied to the example project, presented under chapter 4. The following sub-chapters
describe the resources that are used to define what is secure cloud computing and they
will be referenced during the thesis.
IEC 62443-4-1 is a part of IEC 62443 standard family that addresses the safety of
industrial automation and control systems. Part 4-1, Secure product development
lifecycle requirements, does address the SDL practices and processes that help users
to secure their devices and applications.
This thesis uses IEC 62443-4-1:2018 Edition 1.0. IEC 62443-4-1 is not a free standard
and it cannot be citated nor distributed freely with this work. Only publicly available
information (process & practice names) and small insights about them can be used with
this thesis. The document used with this thesis is only allowed to be used by Insta Digital
Oy employees.
Although this is important step for IEC 62443-4-1, it does not fit in the scope of this thesis
because the research question is asking that how well does the processes fit for a cloud
application and not how to do them.
It is worth to mention that the detailed information about the practices and processes
should not be freely available anywhere, thus following catalogue will only present the
name of the practices and the processes. Description of all practices and processes can
be found from chapter 3, where they are applied to the example project. This way the
information is not duplicated and is located only where it is needed. More accurate
description about all the practices and the processes can be found from standard [16]
IEC 62443-4-1:2018.
- SVV- 5: Independence of testers (Not a process itself, but the standard does
include a table that defines who can perform what tests. This way the reliability
of the test will not be affected by the persons performing them)
CSA is an organization that was founded in the late 2008 due to the increasing interest
surrounding the cloud computing within the information security community [17].
Currently they are a leading organization at defining and raising awareness about best
practices to help ensure a secure cloud computing environment. They can offer cloud
security-specific research, education, certification, events, and products by harnessing
the knowhow of industry practitioners, associations, governments, and corporate and
individual members. [17]
This list is used as a replacement for the security requirements presented in the IEC
62443-4-1 standard. This is a list created by the Cloud Security Alliance that consists of
the top 11 threats to a cloud computing [18]. CSA did a case study about these threats
by investigating nine real world attacks and breaches by checking how well these threats
fits for real world applications and found out that a lot of these threats were found from
those systems. [19]
This book covers cloud best practices in multiple chapters, that are:
- Information Governance
- Infrasturcture Security
- Incident Response
- Application Security
- Security as a Service
- Related Technologies
The book will be covered only with the scope that fits the example project. This means
that there might be some cloud security related insights left outside the analytical part of
this thesis and not included to the final SDL processes. This book is used as a basis for
what safe cloud computing is, and the example project will be compared against the
practices defined in this book to check the security state of the example project. This
book is free, and it can be obtained from Cloud Security Alliance’s website. [21]
AWS Security Hub (explained in next chapter) uses benchmarks that CIS has made for
Amazon Web Services to find possible issues from a cloud environment. These
benchmarks [23] are public information and can be downloaded from their website.
Security Hub gives comprehensive understanding about the overall security situation of
AWS account. Security Hub does include multiple powerful tools, such as Amazon
GuardDuty, Amazon Inspector, Amazon Macie, AWS Identity and Access Management
(IAM) Access Analyzer, AWS Systems Manager, and AWS Firewall Manager. Security
18
issues are scanned from environment with automatic security test that are based on
AWS best practices. All the found issues are shown in Security Hub web page under
given account. [24] Security findings will be covered in the project chapter. All the
Security Hub security tools were enabled in this project and more detailed explanation
about them are below.
Amazon GuardDuty
GuardDuty is a threat detection service that protects AWS accounts, workloads, and data
stored in Amazon S3 by continuously monitoring for malicious activity and unauthorized
behaviour. This is possible with the help of machine learning, anomaly detection, and
integrated threat intelligence that can identify and prioritize potential threats. [25]
Amazon Inspector
This helps to improve the security and compliance of applications that are deployed on
AWS by doing automated security assessments. Application exposure, vulnerabilities
and deviations from best practices are automatically assessed. After assessments are
performed, a detailed list of security findings is produced. [26]
Amazon Macie
Macie is a fully managed data security and data privacy service that discovers and
protects sensitive data in AWS with the help of machine learning and pattern matching.
Macie discovers sensitive data automatically from all Amazon S3 buckets (unencrypted,
public, and shared) in the account. [27]
IAM Access Analyzer monitors, and analyses policies applied to AWS resources.
Identifying and removing unintended external or unused permissions is easier when IAM
Access Analyzer helps with review of existing accesses. [28]
19
This is the operations hub for AWS. With Systems Manager it is possible to track and
resolve operational issues across AWS applications and resources. Operations can be
automated for EC2 and RDS instances through the System Manager i.e., software
updates. [29]
This enables the centrally configuring and managing the firewalls across AWS accounts
and applications [30]. Examined project currently has only one firewall and this service
is not needed.
Security hub service use this benchmark to find problems from the cloud environment.
This benchmark has satisfied the requirements of Center for Internet Security (CIS)
Certification. [31]
This is an AWS Security Hub benchmark used to analyse the example project’s state of
security. This is used to detect when deployed accounts and resources deviate from
security their best practices. [32]
CLASP is used as a basis for IEC 62443-4-1. This is over 500-page free eBook that can
be downloaded from OWASP website. “CLASP is an activity driven, role-based set of
process components whose core contains formalized best practices for building security
20
This list is used as a replacement for the security requirements presented in the IEC
62443-4-1 standard. This is a standard awareness document that represents the most
critical security risks to web applications, and it is aimed for developers and web
application security. OWASP recommends that companies would adopt this document
to minimize these risks on their web applications. [34]
This list is used as a replacement for the security requirements presented in the IEC
62443-4-1 standard. This list [35] is still under development yet the items on the list can
still be used to improve the security of cloud applications.
NIST is mainly known in the field of cyber security for developing cybersecurity
standards, guidelines, best practices, and resources to meet the needs of U.S. industry,
federal agencies, and the broader public. NIST is also known for working closely with
organizations in the public and private sectors to make their outputs fit the need of users
better. [36]
21
Project, that the SDL was implemented to, is a simple platform for distributing software
and configuration files for users. Platform can contain multiple products which can
contain multiple packages (downloadable items). Users can browse through products
they have access to, add packages to a cart, and finally download everything they want
to their computer. Packages they download are transferred in compressed zip-like format
that can be used in the end systems. Product owners (PO) can add new product/package
versions and disable unwanted ones from views that only POs/administrators can
access. This project does not contain any payment options at this state. Project
description is intentionally greatly simplified to protect the project from leaking.
Traditional IT infrastructure
Cloud computing
storage, applications, and services) that can be rapidly provisioned and released with
minimal management effort or service provider interaction.” [37]
Where in traditional IT infrastructure servers are bound to a physical hardware, they are
not in cloud computing. For example, there are multiple different ways to store data in
cloud computing, and each of them can be a separate instance running on a separate
hardware. Software updates can be handled automatically, and system updates are
under the responsibility of the service provider in many cases. Designing a fail-safe
system with cloud computing is much easier than with traditional IT infrastructure, and
with some cloud services it can even be automatic.
Essential Characteristics for cloud computing are resource pooling, broad network
access, rapid elasticity, and measured services [20, p. 10]. This means when the cloud
services are not bound on a physical hardware they can be scaled easily. Cloud provider
does have a huge pool of physical devices that are linked to each other, and when user
wants to use some services (resources from that pool), they are automatically allocated
a small portion of it in the form of a service. Cloud computing offers three main types of
service models: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and
Software as a Service (SaaS) where each of them provides different levels of control,
flexibility, and management [38].
Platform as a Service differs from IaaS by not letting consumers to control network,
servers, operating systems, or storage. Consumers still have control over the deployed
applications and possibly configurations done to the application-hosting environment.
[40]
Software as a Service does not give consumer any access to underlying network,
servers, operating systems, storage, or even individual application capabilities.
Consumer can only use the software as is and change some limited user-specific
application configuration settings. [41]
accessible with a single set of authentication credentials, this is not loss from the security
point of view i.e., there are no more hidden resources, and you can see how everything
is configured from one place. [20, p. 67]
Responsibilities
Cloud provider is responsible for management plane’s safety, and that all security
features are visible for users i.e., granular entitlements to control of what users can do in
management plane. User responsibility is to properly configure their use of the
management plane, and security and management of their credentials. [20, p. 68]
APIs and web consoles are the way how the management plane is accessed. Usually,
web console provides a visual interface that uses same API that users can use through
Software Development Kits (SDKs) and Command Line Interfaces (CLIs). APIs are
typically Representational state transfer (REST) for cloud services and run over
Hypertext Transfer Protocol Secure (HTTPS) thus making it more secure across diverse
environments. [20, p. 70]
Management plane is split into tree user levels, root user, administrator, and developer.
All the accounts require multi-factor authentication (MFA), and users store their
passwords within password manager vaults. To gain access to the production
management plane, it is mandatory to request proper access level for personal Azure
AD account from the customer company. If permission to use management plane is
granted, access right will be added to the existing Azure AD user. Developer accounts
are mainly used for configuring the cloud environment, but if the developer account
permissions fall short, the administrator accounts can be used to control the cloud when
needed. Administrator accounts are used to mitigate the need to use the root account.
Administrator accounts does have full access to almost all services except the ones
relating to security, meaning that even the administrators cannot remove logs or security
issues from the cloud. Developers act like day-to-day administrators that does have a
full access to multiple services but not nearly to all i.e., they cannot change their own
access levels or modify anything logging or security related items. This all is aligning with
24
the Security Guidance V4.0 [20] chapter 6.1.1.2 Securing the Management Plane and
with the chapter of Identity Security from Cloud Infrastructure Security paper [15, p. 114].
All the traditional security domains still exist with cloud computing, but the nature of risks,
roles and responsibilities, and implementation of controls change, sometimes
dramatically. Cloud computing is a shared technology model, where different
organizations are responsible from different parts of the stack, this means that as security
responsibilities are spread across the stack, they are also spread across organizations
involved. This is often called shared responsibility model. The Table 1 describes high-
level security responsibility of the service types.
Stages
Examined project does use multiple stages to ease the testing before deploying the
project to the production environment. Each stage does have a special purpose and they
are explained in the Table 2 below.
testdepl Used for testing deployment when there are changes in the
infrastructure. Both infrastructure and code are updated by
hand
staging Testbed for all the infrastructure and code changes before
deploying them to the production. This stage is identical to the
production stage. Infrastructure is updated by hand and code
is updated automatically by the Jenkins
The Figure 1 is an infrastructure drawing from the example project. The infrastructure is
split up to use multiple cloud provided services to share the responsibilities. The used
services will be covered below, each within its own sub-chapter.
CloudFront
Project currently has five path patterns that are redirected to some service. Generic URL
https://example.com is used for following Table 3 to prevent the leakage of the real
project.
With WAF users can protect their web applications or APIs against common web exploits
and bots that may affect the availability, compromise security, or consume excessive
resources. AWS has defined multiple managed rulesets for the WAF to use and filter the
traffic that goes through it. There are multiple free rules sets available that can spot SQL
injection or cross-site scripting attempts, and some rulesets that cost money like OWASP
Top 10 – The Complete Ruleset [43]. This project does currently have the following
rulesets enabled:
- WAF-IpReputationList
- WAF-Allow-Zip
o This was required since there were multiple false positives created by the
WAF
- WAF- CommonRuleSet
- WAF-KnownBadInputsRuleSet
Amazon simple storage service S3 is and object storage service. This means that it can
be used to store and protect any amount of data i.e., data lakes, websites, mobile
applications, backup and restore, archive, enterprise applications, IoT devices, and big
data analytics [44]
Buckets can be either private, partially public, or public. Private buckets restrict all access
to the files withing, except from those who own the bucket (creator of bucket) or have
been given the rights to access it. Public buckets allow everybody to get (read) the
contents of a given bucket, but the modification and deletion of items can only be done
by the owner or users with the right permissions. Partially public buckets are private
buckets that contain public items.
Signed URL is a way to share data to certain entities from a private bucket without giving
them too broad access rights. It contains the location of the data, information about the
signer and signature done by the entity who has the proper access rights for the given
data. When a user, who does not have rights for given data in bucket, clicks the Signed
URL, the request will be checked in a CloudFront for the validity of a signature, if
everything is correct the user will be redirected to the resource. The problem with Signed
URLs is to prevent their unapproved distribution. This can be partially mitigated by
making URLs time dependant, meaning that they are valid only for a short period of time.
To protect the buckets most of them are set to be private, yet there are couple
exceptions. Front end static content contains the web application itself, so it needs to be
public bucket to make the web application publicly available. Publicly available assets
are also stored within the public bucket, to make sharing of them a bit easier. Turns out
that this is not the best way to do this, instead buckets should be made private and allow
public access through a CloudFront to them. This way we would have partially private
buckets that can be accessed through the CloudFront and with this we would also have
a centralized logging for buckets.
All the valuable assets that are available in the platform are stored in the private buckets
to protect them from unauthorized access. When a authorized user needs something
29
from the private buckets, backend software creates Signed URL that is signed with the
CloudFront’s private key. Now when the user uses the link, signature will be
automatically checked and if everything is correct, the user can access the files from the
bucket.
o It was decided that there is no need for server-side encryption for file that
are stored in S3
Lambda
Lambdas are serverless compute service that run code without provisioning or managing
servers, creating workload-aware cluster scaling logic, maintaining event integrations, or
managing runtimes. Lambdas enable running almost any type of application or backend
service and requires almost no administration. Lambdas can scale automatically based
on how much requests are done. [45]
This project consists several dozen lambdas that together constructs the backend of the
example project. Each API endpoint is a separate Lambda that can be requested by a
user or another application. The beauty of Lambdas is that they can each be individually
configured, meaning that each of them can require different access level from callers
and have different access levels to resources.
API Gateway
API Gateway collects all the Lambdas that are publicly accessible and brings them under
one API. This way one URL can be used to access all the Lambdas [46]. As mentioned
under the CloudFront chapter, some requests done to a CloudFront are redirected to the
API Gateway. API Gateway can also be accessed with a publicly accessible URL, but
that is not a desired way in this project. To prevent the API Gateway direct access and
thus possibly bypassing the CloudFront’s WAF and logging, an API key can be
implemented. This means that a random and rotating key is automatically added to the
request headers when it goes through the CloudFront. When request finally reaches the
API Gateway it does expect this header to be in place, and if it is not, the request will be
dropped. WAF can also be implemented directly to the API Gateway, but the example
project only uses one WAF to have a centralized logging and configuration.
- API Gateway REST API stages should be configured to use SSL certificates for
backend authentication
o We are using Lambdas in our project and they work within AWS with the
API Gateway, this means that there is no other easy way to call the
Lambda than through the API Gateway and through the Management
Plane, thus making certificates redundant.
o We decided that one WAF for the example project is a better solution.
This way we don’t have to keep two identical WAFs up to date.
CloudFormation
With the help of CloudFormation the project infrastructure can be written in YAML (data
serialization language) and be deployed with ease, this is referred as Infrastructure as
Code (IaC). This way multiple services like, databases, Lambdas, API Gateway, EC2
(Elastic computing), and other services can be linked to each other before deploying and
then deployed to cloud together where they act as a unit. This helps tremendously with
deploying, maintaining, updating, and deleting different stacks (deployed unit). [47]
In this project, infrastructure and code are deployed with the help of a CloudFormation.
The infrastructure is deployed by hand and the code is normally deployed (can also be
deployed by hand) by the Jenkins during the normal deployment pipeline.
31
Amazon Elastic Compute Cloud (Amazon EC2) is a compute capacity in the cloud. User
can choose processor, storage, networking, operating system, and purchase model of
their liking when deploying the instance. [48]
To prevent Relational Database Service (RDS) instance from being exposed to the
Internet, a publicly available EC2 instance can be used to manage the RDS instance
while RDS is kept in a private network within the AWS. To make an EC2 secure it uses
a hardened image that is created with the AWS EC2 Image builder. Images build with
this tool are automatically updated by build-in automation and does include AWS-
provided security settings. Images are updated by creating a new image and testing it
against AWS-provided tests, new instance is created, and the old instance is replaced
with the new one [49]. Hardening is “a process intended to eliminate a means of attack
by patching vulnerabilities and turning off nonessential services” [50].
In the example project, at first the EC2 was reachable through SSH connection that had
IP-whitelisting in use. The problem was that IP-addresses can change and it was publicly
reachable, so the connection method was changed. Now the only way to connect the
EC2 instance is through the AWS Session manager (explained below). Security Hub
findings for the EC2 are following:
Session Manager
AWS Systems Manager Session Manager allows users to connect their EC2 instances,
on-premises instances, and virtual machines through AWS webpage with browser, or
with AWS Command Line Interface (CLI). [51]
Session Manager can be used with private EC2 instances, but we still have SSH
connection remnants in our infrastructure and that is why our EC2 is located within a
public subnet that has Security Group blocking all the inbound traffic. With the help of a
Session Manager, a SSH connection does not need to be exposed to the Internet.
Another benefit from this is that users need to use their own credentials to connect the
instance and not shared password/key that is commonly used with SSH connections,
and with this comes better logging capabilities.
32
Regions are physical locations around the world where Amazon clusters the data
centres. Each region consists multiple, isolated, and physically separated availability
zones within a given geographic area. Each availability zone has independent power,
cooling, and physical security. [52]
This project is hosted in one of the EU regions that has three availability zones available.
All these availability zones are used with networking and most of the other services that
are covered in this thesis. Cloud Infrastructure Security paper [15, p. 147] states that
availability of public facing (and internal) services should be ensured, which is made
easier with regions and availability zones.
Security groups acts as a virtual firewall for service instance to control inbound and
outbound traffic [54]. Almost all the services have their own security group defined to
allow specific inbound and outbound traffic. All security groups implement default deny
when they are created.
This project uses one VPC that does have four subnetworks defined under it. Three of
these subnetworks are private, which are not able to connect the Internet. There are
three private subnetworks because all of them are in a different availability zone,
meaning if one or two of the availability zones go down for unknown reason, there are
still one or two more to handle the networking between the services. The last subnetwork
is a public one, and it is a remnant from the time when connections to EC2 instance were
handled through SSH-connections, but its connection to the Internet is blocked by
Security Group rules.
- The VPC default security group should not allow inbound and outbound traffic
Amazon Relational Database Service is an easy to set up, operate, and scale relational
database in the cloud. It does automate traditional administration tasks such as hardware
provisioning, database setup, patching and backups. [55]
In this project there is one database that is used to save information about the projects,
the packages, and some statistics. The database is automatically backed up with daily,
weekly, and monthly cycle. The RDS is connected to couple private subnetworks which
are the only way to connect the database. The database is not visible to the Internet and
Lambdas can access it because they are within the same private subnetwork as is the
EC2 instance which can be accessed through Session Manager. EC2 instance is used
to modify database during deployment.
o This would provide real-time metrics from the operating system that RDS
instance runs on
Azure AD is enterprise identity service that enables single sign-on and multi-factor
authentication [56]. Customer, to which the example project is made to, currently has
their own Azure AD set up that contains all their user accounts. These accounts can be
used in this project with the help of Cognito (explained below).
Cognito
Cognito lets users to add sing-up, sign-in, and access control to web and mobile apps.
It does support sign-in with multiple social identity providers such as Apple, Facebook,
Google, and Amazon, and enterprise identity providers via SAML and OpenID Connect
[57].
Cognito is used to handle sing-ins in this project. When user wants to log in to the
example project, they enter the login page of the web application. From there, they are
redirected to the Azure AD login screen. When they enter proper credentials, the Azure
34
AD generates message that is sent to the AWS Cognito, and that message contains
information about the user, groups linked to the account, and roles for the user. Cognito
parses this information into token format. After all this, the token will be sent to the user
and with that token, the user can use this web application, with the rights given by Azure
AD. Cognito can be used to change the account privileges if necessary, yet it is not
recommended nor allowed to do so in the example project.
BOS contains all the master data for products in the example project. BOS sends this
data to the example project and it the BOS cannot be connected from the example
project’s side.
CloudTrail does provide event history about AWS account activity of AWS management
console, AWS SDKs, command line tools, and other AWS services [58]. With this it is
possible to notice all the changes done to cloud infrastructure.
In the example project, CloudTrail events are saved on a separate account making it
impossible to change them from the account that contains the infrastructure.
In this project, CloudWatch gathers all the logs that are printed from the application or
services within the infrastructure. Security Hub findings for CloudTrail are following:
- Ensure CloudTrail logs are encrypted at rest using Key Management Service
(KMS) Customer-managed Keys (CMKs)
- Ensure that log metric filters and alarms exist for anything that is not allowed to
be changed
35
Parameter Store
This provides a secure storage for secrets and configuration data. Values stored in here
can be automatically encrypted, have length up to 4096 characters, and be referenced
by CloudFormation [60]. With the help of this, services and application can have shared
secrets and configurations without the need of hard coding them to the code.
Infrastructure Security
According to Security Guidance V4.0 [20] networking should be split into multiple
subnetworks, which is done in this project, Security Groups should be used for each
service and have default deny implemented which are also done in this project. Remote
access has been removed from all the services (except the Session Manager one), used
images are hardened and constantly updated and tested by AWS. Important logs are
stored to external account and AWS Security Hub is scanning the interface and services.
With this it is safe to say that infrastructure security of this project is on par with Cloud
Security Alliance’s Security Guidelines V4.0.
User and identity management is something that Insta Digital Oy, the developer of this
project, is not responsible. Cloud account is owned by a company which is responsible
for maintenance of the project and creating and maintaining access roles within that
account. Access roles has been decided in collaboration with developers. To gain access
to the production account, one firstly needs account to the customer system and after
that the account needs to be granted proper rights to be able to use Single Sign On
36
(SSO) to access the production account. Cloud environment uses federated SSO to
enable users with Azure AD accounts to log in Amazon Cloud.
For cloud environments there is a great need for strong authentication using multiple
factors. This is because cloud services are always accessible over the network, and often
over the Internet. If credentials were to be stolen, the attacker could access everything
under the account. If Federation has been used, that means one set of credentials could
be used to access greater number of cloud services [20, pp. 136-137]. To mitigate this,
an MFA is one of the strongest options to reduce account takeovers. [20, pp. 136-137]
Accounts used with the production cloud environment are managed by the customer and
are forced to be used with MFA. Developers stores their password with password
manager. Passwords are required to be changed twice a year. Security Hub findings for
Identity and Access Management (IAM) are following:
- IAM principals should not have IAM inline policies that allow decryption actions
on all KMS keys
- IAM customer managed policies should not allow decryption actions on all KMS
keys
- IAM customer managed policies that you create should not allow wildcard actions
for services
Best practices in Security Guidance 4.0 are mostly followed in this chapter. Although we
are not responsible for managing users and identities in the cloud environment it was
easy to verify that the current environment is enforcing the MFA for each account, role-
based access control, federated SSO, and there are no multiple or unnecessary account
defined directly under AWS account. These configurations also follow the Identity
Security recommendations from Cloud Infrastructure Security [15, p. 145]
Policies
At the beginning, define the policies for which data types are allowed and where they are
allowed. After this you must tie these to your baseline security, meaning that you have
datatypes that is allowed for certain services only if it meets the certain encryption and
access control requirements [20, pp. 120-122]. This project currently does not have a
written data security policy that defines the previously mentioned.
Data Migrations
Monitor data repositories for large migrations/activity to give an early warning from large
data transfer. This can help to detect major data breaches or misuse scenarios. Cloud
environments usually have their own tools that can be used to monitor data repositories
[20, pp. 120-122]. This project does not have migration/activity alerts at the given
moment.
The example project does include a web application from where users can download
items to their own computer, also product owners/administrators can upload new items
to the web application. The data is secured in transit with HTTPS that provides encrypted
transfer of files. When data is being sent to the bucket behind the web application, the
frontend code calculates MD5 message-digest of the package which is used to check
that the correct file got uploaded to the bucket. These all are aligning with the
recommendations in Cloud Infrastructure Security paper [15, p. 147]
38
Access control to cloud data should be implemented with a minimum of three layers.
management plane (user access right to data through management plane), public and
internal sharing controls (if user does not have direct access to the data), and application-
level controls (self-defined controls to manage access) [20, pp. 122-123]. Security
Guidance [20] also suggest that entitlement matrix should be done to define which
access levels should have access rights to what data along with setting up alerts if new
public shares are created or existing shares are turned into public.
The example project’s management plane access rights prevent developers from
deleting a bucket or a RDS instance. Developers can use the Session Manager to
connect the EC2 instance which is connected to the RDS. Developers have full access
rights to the database if the database passwords are known.
Connections that are coming from outside of the management plane are handled with
signed URLs. These URLs are handed through the web application to those who have
proper access rights to given files.
Some lambdas in this project needs to connect some buckets, but they are defined with
custom roles that they only possess, leaving all the other lambdas without permission to
access the buckets. Database and backend application are within the same subnetwork,
which allows application to connect database with predefined credentials whilst
restricting all other accesses attempts to the database.
This project does not use encrypted or tokenized data storage. The trust for AWS
compound security is high and data is always secured during the transit, which is why
encryption or tokenization was not implemented.
39
Data Backup
Database is automatically backed up daily, weekly, and monthly to make sure latest data
is always backed up. Buckets does have a replica bucket that is perfect clone of the
given bucket. This will prevent the data loss if the bucket is deleted completely, because
the replica bucket is running in its own instance. Buckets also use versioning, that make
them work GIT-like, meaning that each version of the files are stored separately, while
only the latest versions is shown for the users. With this, accidentally deleted/modified
files, or intentionally encrypted files (ransomware) can be recovered by returning file
version to the previous one.
Key Security
The cloud provider key management services are used with this project to secure
symmetric keys, CloudFront key-pair, and certificates. There are four potential ways for
handling keys in a cloud environment [20, pp. 125-126].
By using cloud provider features the attack surface can be reduced, but strong meta-
structure security must be demanded. Using cloud storage or a queue service that
communicates on the provider’s network, and not within cloud virtual network, the
network can be gapped. This forces attackers to either compromise the cloud provider
or just attack the application level. [20, p. 126]
In AWS each bucked does have their own URL and are hosted within their own network.
Databases have backups enabled and buckets does have replica buckets and versioning
in use (explained above, under Data Backup). Databases and buckets cannot be deleted
40
directly and require proper access rights and disabling safety measures from AWS
account.
Integration tests uses custom database entries that are generated before the tests are
run. The data used in the tests are random data that resembles the real data without
revealing anything.
Data Location
Data can be stored in multiple regions with cloud environments. With the example project
the production data is located within Europe to fulfil the GDPR requirements.
Comparing this project’s current data security and encrypting to Security Guidance v4.0
recommendations this project is on a right track, yet there are still some best practices
to be implemented. Also, when comparing data security to Cloud Infrastructure Security
[15, p. 144] some things are missing, like data encryption at rest. Otherwise, the
recommendations from the paper are executed well.
- Entitlement matrix for determining access controls is something that have not
been done yet and might not be mandatory with this small project.
- This project does not use Cloud Access Security Broker (CASB) to monitor the
data that goes between users and cloud.
- Data is always encrypted during transit by HTTPS, yet it is not encrypted at-rest
because that is not seen as a threat for used data.
Jenkins is hosted in the customer’s network, and it can only be accessed through
customer’s VPN with proper credentials. Credentials that Jenkins use are strictly limited
to have only mandatory privileges. Jenkins does have a web interface where developers
can check the state of the pipeline and it can be accessed without credentials with
customer’s VPN, but any changes to the pipeline requires the use of credentials. Table
4 will describe all the stages Jenkins currently have, if any of these stages give an error
the deployment will be stopped.
42
Stage Description
Robot Framework tests (Frontend only) After frontend has been deployed, robot
tests will be run against it to check basic
functionalities
Jenkins handles the deployment and the update of the product, but this requires human
interaction in order it to happen for production environment. To update the production
environment, developer needs to select updates that are wanted for production and
update them to the staging environment. If those updates work properly in the staging
environment, developer can trigger Jenkins to update the production environment with
the same updates. This deployment does have couple Jenkins gates (deployment stops
to wait for human interaction) to prevent accidental deployment.
Ownership
With cloud technologies it is possible to spread the responsibilities across entities. For
example, in this project Insta Digital Oy is responsible for developing this project for the
customer. Product is hosted in Amazon cloud on an account that is owned by another
company, which is accountable for operating and maintenance of the product in the
production environment. With cloud computing, companies can easily outsource the
product’s operating and maintenance responsibilities to a company that has a lot of
experience from it.
This project uses technologies that heavily rely on JavaScript and Node Package
Manager (NPM). With the NPM it is possible to install third-party packages to a project.
These packages need to be monitored in case of a vulnerability (explained below) by
creating a Bill of Materials (BOM) that contains a list of packages used within a project.
Vulnerability Assessment
Training
All the developer has gone through the company’s SDL training, but we did not have any
cloud specific security training which is a shortcoming.
Secure Design
The focus for security in cloud is on architecture, the cloud provider’s baseline
capabilities, cloud provider features, and automating and managing security for
deployment and operations, during the application design process. [20, p. 112]
For cloud environments (secure)design tends to come in phases, like the example
project is built in phases. The current design of the project does follow multiple best
practices for the cloud environment which it did not a while ago. Cloud environments and
the used serverless technology is still a fairly new thing and new best practices pop up
time to time. We just must implement them to the project in a timely manner, if they are
useful for us, after which the design will be secure enough.
Development
Developers mostly use the development environment with higher access rights to test
their code. Last place to test code is the staging environment that is identical to the
production environment, yet it does not include any production data. When everything is
working as intended in the staging, updates will be pushed to the production. The testing
is already done with other stages and deployments are handled manually or with Jenkins,
therefore developers does not need to access the production environment often
Code Review
Code review doesn’t change much for cloud environment, but there’s some specific
areas that need additional attention. Any changes that can change infrastructure, make
API calls cloud service, includes encryption or authentication should be examined
carefully. [20, p. 113]
45
Code Testing
In this chapter all the SDL processes will be checked for their suitability to the project.
Processes will be covered in same order they were presented in chapter 2.1.
Personnel responsibilities and organizational roles shall be identified for each of the
processes in these practices [16, p. 21]. This process is mandatory every time with the
46
SDL, since without personnel that are responsible of these processes, the SDL
implementation will not make any progress within the project.
Only take products, or parts of the products, that requires securing to apply these
practises and processes [16, p. 21]. This process as well is pretty much mandatory for
all the projects. There is no point to increase security of the parts of the project that does
not require it. This will only bring unnecessary costs.
All the personnel assigned in process SM-2 should have proper security expertise for
the given role or responsibility. Trainings shall be offered if any lacks in expertise are
noticed. [16, p. 22]
All personnel should have proper training for their role. This project does have mandatory
SDL training, but cloud and other security related trainings are missing. Without proper
training the product security may decline drastically so this is considered as mandatory.
Identify what parts of these practices and processes are applicable to the project [16, p.
22]. This chapter of the thesis is covering this process, deciding what processes should
be used with the project. There is no point trying to do processes that are not suitable for
the project, therefore this is mandatory.
File integrity checking mechanism should be implemented for all scrips, executables and
other important files that are included in the project or delivered through it [16, p. 23]. As
mentioned before in the Application Security chapter, there are files that need file
integrity checks, making this process mandatory for this project.
Securing the development environment to protect the product or product update during
design, implementation, testing, and release [16, p. 23]. If there is some development
47
involved with the project, as this does, this process is required to make development
environment as secure as it can be.
Securing the private keys from unauthorized access or modifications in store and during
transit [16, p. 23]. As mentioned previously under the Application Security chapter, there
are some file integrity requirements for files that can be downloaded from the example
project’s web application. This file integrity requirement will be handled with public-key
cryptography, along with the content signing, in the future, therefore this process is
required.
Monitor the vulnerabilities of third-party components that are used within products, or
product parts, if they can have an impact on product’s security [16, p. 24]. This project
uses a lot of externally developed packages with JavaScript related technologies, making
this process required. Also, Cloud Infrastructure Security [15, p. 146] indirectly requires
this.
Specific purpose custom components that are developed by third-party supplier which
can have an impact on security must also follow IEC 62443-4-1:2018 [16, p. 24]. There
are none custom developer components in this project at the time of writing, thus this
process is not required.
Product or patches should not be released if they have security-issues that have not
been fixed, analysed, or accepted [16, p. 25]. This process is pretty much always
mandatory and furthermore this product is a web application that will be available on the
Internet and will receive multiple updates during its lifetime. Because of these reasons,
this process is necessary, but this needs to be changed a bit for a cloud environment.
Cloud/agile development can have fast pace releases that can update something as
small as one letter from the view. So, this needs to be done a bit differently and it will be
covered in the analytical chapter.
48
It should be verified that all the security-related processes/issues that are applicable to
the product are completed and documented prior each product release [16, p. 25]. Like
the previous one, this is always required process for the SDL, but this needs to be
changed a bit for a cloud environment. Cloud, or agile, development can have fast pace
releases that can update something as small as one letter from the view. So, this needs
to be done a bit differently and it will be covered in the analytical chapter.
SDL process should be continuously improved, meaning that every security defect that
has escaped to the field should be analysed to improve the SDL process [16, p. 25]. Not
like other most of the other processes that you can mark done, but more like never ending
process to make SDL process as good as it can be. There are no reasons to leave this
one out since this will only have benefits in the long run.
Document the security context of the product. Document the minimum requirements of
the environment for the product to get the security level for which the product was
designed. [16, p. 27]
Even though cloud security context can differ a lot from traditional IT infrastructure it is
still necessary to document it. The user, in this case not the end user but the company
that manages this application in the cloud, can use this document to configure the cloud
to have security context developers expect it to have. This process is required.
Threat models are used to identify, communicate, and understand threats and
mitigations within the project. It is a structured representation of all the information that
affects the security of the project. [62] This process simply requires that threat models
49
are created from the products. Standard also requires that it is reviewed at least once a
year for possible updates. [16, p. 27]
Since this project is a public web application it can have vulnerabilities and the threat
modelling is good way to find the possible threats and mitigations for this application,
making this a required process.
Define and document all product security requirements that also includes privileges
required to install, operate, maintain, and decommissioning the product [16, p. 28].
Project management plane does have couple different access levels and users also have
different access levels to the web application. Therefore, it is required to document
required privileges, so the developers and users have a clear view about required
privileges for each action. This project does not have any predefined security
requirements therefore those will not be documented.
Check that the security requirements does contain the scope & boundaries of the
component or system (Physical & logical) and required capability security level (SL-C) of
the product [16, p. 29]. There are no predefined security requirements for this project.
Develop and document a secure design that identifies and characterizes each interface
of the product, including physical and logical interfaces [16, p. 30]. This process is
mandatory, since without secure design this web application could have some drastic
vulnerabilities.
Defence in depth is layering security measures to common attack vectors to ensure that
attacks that are missed by one technology are caught by another. [63] Using the threat
model as a base for a risk-based approach, design the implementation of multiple layers
of defence (defence in depth). [16, p. 31]
Periodically review the design and update it to handle all the security requirements,
threats, security-related issues, and security design best practices, if some of those were
not included to the design already [16, p. 32]. Periodically done security design update
that is required if there is some security design documents and since this project does
have them, this process is required.
Periodically review that secure design best practices are properly documented and
applied to the design process and update if necessary [16, p. 32]. This is required since
if there is some security design involved, this process is mandatory to review those
designs and keep them up to date.
51
Implementation reviews are performed while addressing the secure design, security
requirements, and implementation best practices [16, p. 33]. This project already implies
code reviews and static code analysis, yet periodic manual implementation and design
reviews are still missing but can be implemented quite easily. This process is crucial step
to secure the project, therefore it is required.
Use security coding standards that are reviewed and updated periodically [16, p. 34].
This project uses linting to check for possible security issues in code, and we are
following the secure coding standards defined by the customer company. This process
is required.
Ensure that product security functions meet the security requirements, and the errors
and invalid inputs are handled properly. Test should include functional testing,
performance and scalability testing and boundary/edge condition, stress, and
malformed/unexpected input tests. [16, p. 35] There were no security requirements for
this project.
Threats that have been identified and fixed needs to be tested to have full knowledge
that it has been mitigated properly [16, p. 35]. If there can be threats in the product, and
52
there will be if the product is a web application, there needs to be tests that validate the
mitigations have been implemented correctly, thus making this process required.
Tests that try to identify and characterize potential security vulnerabilities from the
product [16, p. 36]. This project is using vulnerability assessment to scan the packages
used within the project and linting to check the rest of the code. This is an important step
for a web application that can have multiple vulnerabilities during its lifetime. This is
required process.
Tests that try to identify and characterize potential security-related issues from the
product by exploiting security vulnerabilities [16, p. 36]. This step is also considered to
be required, since this can bring a lot of insight about the current state of the security of
the example project.
Have a way how the security-related issues can be reported by personnel within your
organization or even from outside of your organization and then tracked to closure [16,
p. 38]. Required. This project does have contact person at the customer side and Jira is
used to record the issues.
53
Assess the impact, severity, and identify other products/parts that have same security
related issue, root cause, and related security issues caused by given security-related
issue [16, p. 39]. This process is required.
Supplier should determinate acceptable level of residual risk for the security-related
issue when deciding the proper way to address each issue. Following actions can be
taken, fix the issue, create remediation plan, defer the issue, leave it unfixed. [16, p. 40]
This process is required.
Each update should address the intended security vulnerability and not introduce any
regression. This process should include confirmation that the update is not contradicting
other operational, safety or legal constraints. [16, p. 42]
This process is required. All the updates should, as the definition mentions, address only
the intended security vulnerability and as mentioned previously, web applications are
likely candidates to have vulnerabilities during their lifetime.
Product update documentation should be made available for product users [16, p. 42].
In the case of web applications, the regular update documents are not normally shared
with end users. This project does have a third-party company that manages this project
in the cloud and the customer company also wants to know what has been updated and
when. This project already has properly written update documentation and it will be used
to include security update documentation when needed. This task should be required if
there are some security updates involved with the product and this indeed does, so this
process is required.
project includes one IaaS (EC2) but that does not concern users in any way, and it is
hardened and automatically updating instance. Responsibility of this process in
transferred to the AWS, because they are responsible for the dependent components
and OS updates for the used services.
Security updates should be delivered to the users with a manner that facilitates
verification so that the users can be sure of the authenticity of the patches [16, p. 43].
Web application does not have same kinds of update delivery problems to users that
traditional software’s might have. Traditional software like Google Chrome runs on user’s
computer, where web applications are fetched from some server and user will always
get the latest version available. This means that users could receive updated web page
each time they update the page, this is of course highly unlikely, but possible. Now only
requirements are that the web page is delivered securely to the user and therefore
HTTPS is used. Update delivery to the cloud can be also secured and that has been
covered under the Application Security chapter. Secure delivering of the content to the
users and secure deployment of the project are covered under different processes so
this process is not required.
Define a policy that specifies the timeframes and qualifications for delivering the security
updates to the users [16, p. 44]. If there can be security-related issues, there must be
security patches and therefore it is wise to define a policy how fast security patches
should be delivered. In this case though, patches will not be delivered to the end users,
but just deployed as an update to cloud environment to fix the security issues. This is
required since this project most likely will have security issues in future.
Before addressing these processes, it is wise to define the term user here. User can
mean the end user, system user or other companies that manage this project in the
56
cloud. By defining the user like this, all the following processes are now suitable for the
example project.
Create user documentation for the product that describes the security defence in depth
strategy for the product installation, operation, and maintenance [16, p. 44]. This process
is required.
Create user documentation for the product that describes the security defence in depth
measures that are expected to be provided by the external environment where the
product is to be used [16, p. 45]. This process is required.
Create user documentation for the product that includes guidelines for hardening the
product during the installing and maintaining process [16, p. 45]. This process is required.
Create user documentation for the product that includes guidelines for removing the
product from use [16, p. 46]. This process is required.
Create user documentation for the product that includes guidelines for secure operations
for users and administrators [16, p. 46]. This process is required.
Create user documentation for the product that defines recommendations associated
with the use of the product and user account requirements [16, p. 47]. This process is
required.
57
Review the user manuals and the security guidelines to identify, characterize, and track
to closure errors and omissions [16, p. 47]. If there is some documentation done in this
practice, this step is required to keep the documents updated.
This chapter will summarize all the selected and not selected processes. The selected
and not selected processes are presented in the Table 5 below.
5.1 How IEC 62443-4-1 Practises and Processes Fit to the Cloud
Computing
In this chapter each of the practices of IEC 62443-4-1 are analysed in its own sub-chapter
for suitability to cloud computing. The sub-chapters will use intel gathered from previous
chapters to decide the suitability of the practices and the processes.
One thing that example project was missing that cloud have been covered with this SD-
1 process is monitoring data repositories for large migrations. With this, it is possible to
60
give warnings from large data transfers, and this will help to mitigate the risk of large data
leaks that are much too common these days.
SUM-1, SUM-5 are clear and applicable to cloud environment as is. SUM-2 that require
making update documentation available for product users. With web applications it is not
that common to share update documents with end users, and with the example project
the update documentation is shared with the customer company and third-party company
that manages the cloud. But whatever is decided, and whom to receive the update
documents, this process is applicable to the cloud environment. SUM-3 was not required
for the example project, because with the used services the responsibility have been
transferred to the AWS. Yet Cloud computing can use dependant components and even
61
IaaS based services where OS is implementor’s responsibility and because of this SUM-
3 is applicable to the cloud environment.
SUM-4 suggests that there should be a way for the users to verify delivered security
update’s authenticity. As mentioned, this is not required for web applications, since the
security updates are not delivered to the users, but the cloud application is updated, and
it is delivered securely to the end user’s browsers. But this does not mean that this will
not ever be required with cloud environments. If i.e., cloud environment is used as a
backend for desktop application or automation system, then the security updated
possibly needs to be delivered to the users once again.
In the example project, user is a third-party company that is managing the cloud
environment on behalf of us or the customer company. All the documents required by
this practice are addressed to that company, to make their job easier to manage this web
application in the cloud. But it does not matter who is the cloud operator, since cloud
environment can be bit complex and cumbersome, these documents will help users to
use the cloud environment more securely. These documents need to be periodically
updated as cloud environment evolves and expands, errors are found, or other
improvements are discovered. All these processes are applicable to the cloud
environment.
This matter is settled by going through the whole project introduction and covering how
well all the security-related findings have been covered with current SDL processes.
When some security-related findings do not fit any of the current SDL processes, new
process will be proposed.
credentials. The management plane best practices could be part of the SG-3: Security
hardening guidelines, since the management plane configuration can be in the hands of
the third-party company that manages the application in the cloud.
Usage of API Gateway & configuration SD-1 & SD-2 & SD-3
Logging SD-1
Table 6 How does the IEC 62443-4-1 cover the infrastructure security findings
64
One thing that might not be that obvious for a somebody used to industrial automation
or traditional IT. Cloud environment can be published in multiple stages, with this it is
possible to test the application in a production like environment before deploying it to the
production environment. This is something that falls under SD-1, yet the designer must
know of this option.
Securing data in the cloud (access & SD-1 & SG-5 & SG-6
encryption)
Table 7 How does the IEC 62443-4-1 cover the data security findings
There is one problem that require some extra attention, the data location. With cloud
environment, user data can be stored in some country, yet it can be also copied to an
edge location if that data is needed often there. This behaviour is something that can
unexpectedly break the GDPR or some other regulations in some cases, thus it is
mandatory to have good plan for data storage. This is something that needs to be
handled with production version of the product, and since it can be managed some other
entity, the data location requirements can be written into SG-5: Security operation
guidelines.
66
Training SM-3
Code review & Testing SI-1 & SI-2 & SVV-1 & SVV-2 & SD-1
Table 8 How does the IEC 62443-4-1 cover the application security findings
There were two findings that might need some extra attention. Adding human gates for
production deployment is something that was used in the example project and this is just
to prevent automatic, unintended, deployments. Another one was the ownership of the
product and its parts. With a cloud environment it is easy to share the ownership of a
product. I.e., in the example project, the account that the product is being hosted on in
AWS, is owned by a third-party company. It might be even possible to split big projects
into multiple parts and spread the maintenance responsibility over multiple companies,
thus it requires documentation that who is responsible for what. This can be documented
into SG-5: Security operation guidelines.
67
Table 9 shows what IEC 62443-4-1 processes are compatible with a cloud computing. It
also shows what should be kept in mind if they are not fully compatible.
Testing frequency
6. CONCLUSIONS
IEC 62443-4-1 (4-1) is a widely used standard with industrial automation in many
companies. Many companies that use 4-1 do have some operating models and tools
already defined for this standard, and with this thesis we are trying to find out if those
tools and models can be used with a cloud developing, which will widen the future options
for these companies.
There were no remarkable findings from scientific literature that would investigate the
combability of 4-1 and cloud development. This could be because the cloud computing
is a relatively recent invention, and the industrial automation often demands the reliability
which cannot be guaranteed with new services.
Scientific literature was also searched to find good resources for a cloud infrastructure
security, yet they were a bit hard to come by, since many of these works are targeting
some specific area of a web application or a cloud, and not a cloud infrastructure. One
document was found and used during this thesis. The literature research could be a bit
broader, but it was left to be a stub to keep the thesis within a reasonable length.
The literature research was extended to also cover works that handle 4-1 and agile, since
a modern cloud development is often combined with agile development methodologies.
There was one notable work that is used with this thesis, which required adding the SDL
processes to the backlog, making testing continuous, and to ensure proper training.
The combability of 4-1 to cloud development was explored with the help of the example
project. The example project is a simple platform for distributing software and
configuration files that has quite simple access management. To know whether 4-1 is
suitable for a cloud development or not, firstly the project is fully presented and the
project is compared against couple resources to check its current state of security. After
this, the 4-1 processes are applied to the example project and the suitability of each
process is described. Finally, the applicability of existing 4-1 processes to cloud
development is analyzed and the application’s current state of security is analyzed
against the 4-1 processes, to check whether there are some processes missing from the
4-1.
Original 4-1 processes are suitable to the example project for the most parts. There are
some processes that needs some redefining to make them a bit more understandable in
a general and for a cloud development. For example, test data generation should be
done carefully to not imitate the production data too closely, which could leak some
69
Some 4-1 processes include security requirements that are completely different standard
to go through, and this was skipped to keep this thesis within a reasonable length. They
were lightly analyzed to not be that suitable for a cloud development and the alternative
route was suggested. Some literature suggests [15] that common web vulnerabilities
should always be considered with cloud applications, so some security checklists were
suggested to replace the security requirements. These security checklists are popular
and well known OWASP top 10 web application security risks, OWASP top 10 cloud
security risks and CSA top 11 threats to cloud computing.
Updating the application can be a bit different with a cloud computing than with an
industrial automation, and especially with web applications. With web applications the
updates are done to the cloud environment and not to end users’ systems. This means
that an update documentation is not often made available to end users at all, but to a
system user/customer who operates a cloud environment. The same goes with Security
guidelines documentation, which is not targeted to end users but often for a system
user/customer who operates a cloud environment.
Other observations during this work were that testing should be automated with a cloud
development and done on a regular basis. Testing is required by 4-1, but the agile/cloud
development demands much faster pace for a testing than traditional IT/industrial
automation.
So how well does the IEC 62443-4-1 fit for the cloud computing? Really well, if the
implementor remembers a couple important things. The cloud development usually
revolves around the agile methodologies, which means that some of the processes
cannot be implemented as is, they require some light alterations. Also, the diversity of a
cloud environment versus the traditional IT/industrial automation is a quite severe, and it
must be kept in mind when implementing 4-1 to a cloud environment. Lastly, the user
mentioned in multiple processes needs to be defined, since it is not always the traditional
end user.
The work turned out to be fine and answered well to the research question. The possible
follow up research could be comparing security levels mentioned in 4-1 versus security
checklists presented in this thesis for cloud/web applications.
70
7. REFERENCES
[16] International Standard, IEC 62443-4-1, Security for industrial automation and control
systems – Part 4-1: Secure product development lifecycle requirements, 2018.
[17] "Cloud Security Alliance," Cloud Security Alliance, [Online]. Available:
https://cloudsecurityalliance.org/. [Accessed 3 November 2021].
[18] "CSA 11 top threats to cloud computing," Cloud Security Alliance, [Online]. Available:
https://www.meritalk.com/articles/cloud-security-alliance-releases-11-top-threats-to-
cloud-computing/. [Accessed 3 November 2021].
[19] S. Bhat, J.-M. C. Brook, B. Calguner, T. Eliyahu, A. Getzin, V. Hargrave, E. Osime,
M. Roza, J. Yeoh and N. Yosif, Top Threats to Cloud Computing: Ergegious Eleven Deep
Dive, Cloud Security Alliance, 2020.
[20] R. Mogull, J. Arlen, F. Gilbert, A. Lane, D. Mortman, G. Peterson and M. Rothman,
Security Guidance - For Critical Areas of Focus In Cloud Computing v4.0, Cloud Security
Alliance, 2021.
[21] "Security Guidance v4.0," [Online]. Available:
https://cloudsecurityalliance.org/research/guidance/. [Accessed 3 November 2021].
[22] "Center for Internet Security (CIS)," Center for Internet Security, [Online]. Available:
https://www.cisecurity.org/about-us/. [Accessed 3 November 2021].
[23] "CIS Benchmarks," Center for Internet Security, [Online]. Available:
https://learn.cisecurity.org/benchmarks. [Accessed 3 November 2021].
[24] "Amazon Security Hub," Amazon Web Services, [Online]. Available:
https://aws.amazon.com/security-hub. [Accessed 3 November 2021].
[25] "Amazon GuardDuty," Amazon Web Services, [Online]. Available:
https://aws.amazon.com/guardduty/. [Accessed 3 November 2021].
[26] "Amazon Inspector," Amazon Web Services, [Online]. Available:
https://aws.amazon.com/inspector/. [Accessed 3 November 2021].
[27] "Amazon Macie," Amazon Web Services, [Online]. Available:
https://aws.amazon.com/macie/. [Accessed 3 November 2021].
[28] "AWS Identity and Access Management (IAM) Access Analyzer," Amazon Web
Services, [Online]. Available: https://aws.amazon.com/iam/features/analyze-access/.
[Accessed 3 November 2021].
[29] "Amazon Systems Manager," Amazon Web Services, [Online]. Available:
https://aws.amazon.com/systems-manager/. [Accessed 3 November 2021].
[30] "AWS Firewall Manager," Amazon Web Services, [Online]. Available:
https://aws.amazon.com/firewall-manager/. [Accessed 3 Novemer 2021].
[31] "CIS AWS Foundations Benchmark v1.2.0," Amazon Web Services, [Online].
Available: https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-
standards-cis.html. [Accessed 3 November 2021].
[32] "AWS Foundational Security Best Practices v1.0.0," Amazon Web Services, [Online].
Available: https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-
standards-fsbp.html. [Accessed 3 November 2021].
[33] "OWASP Comprehensive, Lightweigth Application Security Process (CLASP)," 31
March 2006. [Online]. Available: https://owasp.org/www-pdf-archive//Us_owasp-clasp-
v12-for-print-lulu.pdf. [Accessed 3 November 2021].
[34] "OWASP Top Ten," OWASP, 2021. [Online]. Available: https://owasp.org/www-
project-top-ten/. [Accessed 3 November 2021].
[35] "OWASP Cloud-Native Application Security Top 10," [Online]. Available:
https://owasp.org/www-project-cloud-native-application-security-top-10/. [Accessed 4
November 2021].
[36] "NIST," National Institute of Standards and Technology, [Online]. Available:
https://www.nist.gov/cybersecurity. [Accessed 3 November 2021].
[37] P. Mell and T. Grance, "The NIST Definition of Cloud Computing," National Institute
of Standards and Technology, September 2011. [Online]. Available:
https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf.
[Accessed 3 November 2021].
72