privacy vulnerabilities. In the following, the most
important concepts behind the ongoing research are
detailed. In particular, the most important aspects of
source code vulnerabilities, privacy by design
principles, privacy strategies, and privacy design
patterns, are discussed with reference to the literature.
2.2 Code Vulnerabilities, Privacy by
Design Principles and Privacy by
Design Strategies
Cybersecurity vulnerabilities can be detected by
adopting techniques like static analysis, automatic
penetration testing and manual penetration testing.
The current implementation of our framework
considers vulnerabilities derived from static code
analysis. They can be divided into security
vulnerabilities and privacy vulnerabilities.
Security vulnerabilities are categorized according
to OWASP Top 10 2021 standard: this is based on data
and information provided by firms specialized in
application security or collected by using industry
surveys. Its goal is to provide knowledge and
information on the most common and important
application security weaknesses. The vulnerabilities
are divided into ten categories: A1 Broken Access
Control, A2 Cryptographic Failures, A3 Injection, A4
Insecure Design, A5 Security Misconfiguration, 6
Vulnerable and Outdated Components, A7
Identification and Authentication Failures, A8
Software and Data Integrity Failures, A9 Security
Logging and Monitoring Failures, A10 Server-Side
Request Forgery (SSRF) (OWASP).
Privacy vulnerabilities are grouped by tools for
static code analysis like Fortify SCA into four macro-
categories, each one mapped with a single GDPR
article. In particular, these categories are Access
Violation, Indirect Access to Sensitive Data,
Insufficient Data Protection, and Privacy Violation
1
.
As proposed in (Baldassarre et al. 2019) these
vulnerabilities can be mapped with Privacy by Design
principles. Privacy by Design (PbD) is a methodology
proposed in 1995 by Ann Cavoukian. This
methodology consists of seven principles, each of
which specifies actions and responsibilities for
assessing “Privacy by Design Compliance”
(Cavoukian 2012). An example of a PbD principle is
Proactive not Reactive, which says that privacy
threats must be anticipated and prevented while
developing and/or running a system, rather than just
reacting to privacy breaches once they have occurred.
1
https://www.microfocus.com/it-it/products/static-code-
analysis-sast/overview
Each of these principles can be further mapped
with one or more Privacy Strategies (Baldassarre et
al. 2019). A privacy design strategy (PDS) is defined
as an approach to achieve some level of privacy
protection. In this study, the Hoepmann’s PDSs are
considered (Hoepman 2014). These strategies are
divided into two categories:
1) Data-oriented, and the strategies are: minimize,
to reduce to the minimum possible the amount of data
collected and processed; separate, to (physically
and/or logically) separate data processing and
storage; abstract, to limit the level of detail of
processed data; hide, to protect personal data from
unauthorized third parties;
2) Process-oriented, and the strategies are: inform,
to notify users in an exhaustive yet simple way about
the whole data processing lifecycle; control, to
provide users full control over their data; enforce, to
implement privacy-friendly data processing;
demonstrate, to prove the enforcement of compliant
data processing.
2.3 Privacy Design Patterns
Generally speaking, a design pattern provides
knowledge collected by experts in a specific field;
this knowledge is provided in a structured,
documented, and reusable manner (Colesky,
Hoepman, and Hillen 2016) and helps practitioners
build information system. In a cybersecurity context,
PDPs address and provide a common solution to
privacy problems. They can be seen as
a way to
translate “privacy-by-design” into practical
solutions for software engineering: t
hey help
improve the (re-)engineering process by describing
classes, collaborations between objects, and their
purposes, but also can help designers identify and
address privacy concerns during the initial phases of
the Software Development Life Cycle (SDLC).
In our study, we considered the PDPs resulting
from a joint research work between
the U.S.
Department of Homeland Security and the
National Institute of Standards and Technology.
The entire set of patterns is published at
https://privacypatterns.org/.
It consists of 72 privacy
patterns grouped by 7 PDSs (control, abstract,
separate, hide, minimize, inform, enforce) described
in terms of the following dimensions: context,
problem, solution, consequences, and examples.