CT 6662 Chapter 8 Class
CT 6662 Chapter 8 Class
(CT-6662)
Problems
Many flaws and possible sources of misunderstanding found in protocol or
system specifications, sometimes years after publication.
Many vulnerabilities in deployed security-critical systems have been
exploited, sometimes leading to spectacular attacks.
…
Causes
I-
• Designing secure systems correctly is difficult.
Even experts may fail:
– Needham-Schroeder protocol (1978)
– attacks found 1981 (Denning, Sacco), 1995 (Lowe)
• Designers often lack background in security.
• Security as an afterthought.
II -
„Blind“ use of mechanisms:
• Security often compromised by circumventing (rather than breaking)
them.
• Assumptions on system context, physical environment.
„Those who think that their problem can be solved by simply applying
cryptography don`t understand cryptography and don`t understand their
problem“ (R. Needham).
iii-
„Penetrate-and-patch“ (aka „banana strategy):
• insecure
• disruptive
loose customer trust.
Goal: reduce number of flaws arising this way
Model-Based Security Engineering with UML
Towards a solution of the problems mentioned – take an approach for model-
based security engineering using the UML.
• as represented in Fig. bellow, the idea is to
first construct a model of a system, which should be as close to human intuition as
possible and is typically relatively abstract.
In a second step, the implementation is derived from the model: either
automatically using code generation, or
manually, in which case one can still generate test sequences from the model to
establish conformance of the code regarding the model.
The goal is to increase the quality of the implemented code while keeping the
implementation cost and the time-to-market bounded.
…
• For security-critical systems, this approach allows one to consider security
requirements from early of in the development process.
• Using the model-based approach, one can,
- firstly, establish that the system fulfills the relevant security requirements
on the design level, by analyzing the model.
- Secondly, one can check that the code is also secure by generating test
sequences from the model.
Why UML ?
• UML offers an opportunity as a notation for a high-quality model-based
development of security-critical systems that is feasible in an industrial
context:
a UML specification may already be available for security analysis, or less
difficult to obtain than other notations.
UML provides graphical, intuitive description techniques with multiple
views of a system through different kinds of diagrams.
It offers standard extension mechanisms (such as stereotypes, tags,
constraints, and profiles) which one can use to tailor the notation to a
specific application domain.
…
UML is relatively precisely defined,
A variety of tools exist that provide the basic functionality required to use
UML, such as the drawing of UML diagrams.
Some challenges (as UML is object-oriented model):
- One needs to adapt the UML to the application domain of security-critical systems
- One has to develop advanced tool support for secure systems development
with UML, such as automatic analysis of UML specifications with respect to
security requirements.
• To overcoming these challenges, the UML extension UMLsec for
secure systems development is used.
…
The UMLsec extension: Goals -
allows one to evaluate UML specifications for security weaknesses on the
design level.
Encapsulates established rules of prudent security engineering in the
context of a widely known notation, and thus makes them available to
developers who may not be security experts.
Allows the developer to consider security requirements from early on in
the system development process, and
Involves little additional overhead, since the UML diagrams can serve as
system documentation, which is always desirable to have, and sometimes
required (for example, for security certification).
…
The UMLsec extension: Overview
• UMLsec is an extension to the Unified Modeling Language for integrating
security related information in UML specifications. This information can be
used for model-based security engineering.
• Here we focus on providing a core profile that includes the main security
requirements.
Using UML for Security
Lets consider a small part of the UMLsec notation to highlight the UMLsec
approach, considering a simplified model of an Internet-based business
application as a running example.
• A central idea of the UMLsec extension is to define labels for UML model
elements, the so-called stereotypes, which,
when attached, add security-relevant information to these model elements.
This security-relevant information can be of the following kinds:
Security assumptions on the physical level of the system, such as the
«Internet» stereotype.
Security requirements on the logical structure of the system (such as the
«secrecy» stereotype) or on specific data values (such as the «critical»
stereotype).
Security policies that system parts are supposed to obey, such as the «fair
exchange», «secure links», «data security», or «no down-flow» stereotypes.
UML Diagrams for Security Requirement
We not that in the given diagram, this constraint associated with the
stereotype «secure links» is already violated when considering standard
adversaries, because plain Internet connections can be eavesdropped easily,
and thus the data that is communicated does not remain secret.
For this adversary type, the stereotype «secure links» is thus applied wrongly
to the subsystem.
This can be pointed out automatically by the UMLsec tools.
…
Security-Critical Interaction with Sequence Diagrams
Sequence diagrams are used to specify interaction between different parts of a
system. Using UMLsec stereotypes, we can extend them with information giving
the security requirements relevant to that interaction.
For example, this enables one to see whether cryptographic session keys
exchanged in a key exchange protocol remain confidential from possible
adversaries.
• example, based on the security analysis in the previous subsection, lets
create a secure channel for the sensitive data that has to be sent over the
untrusted networks, by making use of encryption.
As usual, we first exchange symmetric session keys for this purpose.
Let us assume that, for technical reasons, we decide not to use a standard
and well-examined protocol such as SSL but instead a customized key
exchange protocol such as the simplified one in Fig. bellow.
The goal is to exchange a secret session key K, using public key 𝐾𝐶 and 𝐾𝑆 ,
which is then used to encrypt the secret data S before transmission.
Here,
*M+𝐾 is the encryption of the message M with the key 𝐾,
𝑆𝑖𝑔𝑛 𝐾 M is the signature of the message M with K, and
:: denotes concatenation.
…
.
…
• Note : the UMLsec model of the protocol given in Fig. above is similar to
the traditional informal notation. In that notation, the protocol would be
written as follows:
𝐶 𝑆 : N𝑖 , K 𝐶 , 𝑆𝑖𝑔𝑛𝐾−1 (𝐶 ∷ 𝐾𝐶 )
𝐶
𝐶 𝑆 :{ 𝑆𝑖 }K ,
𝑗
• One can again use stereotypes to include important security requirements
on the data that is involved.
Here, the stereotype «critical» labels classes containing sensitive data
and has the associated tags {secrecy}, {integrity}, {authenticity}, and
{fresh} to denote the respective security requirements on the data.
- The constraint associated with «data security» then requires that these
requirements are met with respect to the given adversary model.
- We assume that the standard adversary is not able to break the
encryption used in the protocol, but can exploit any design flaws that may
exist in the protocol, for example by attempting so-called “man-in-the-
middle” attacks.
…
Secure States Using Statechart Diagrams
Statechart diagrams, can be used to specify security requirements on the
resulting sequences of states and the interaction with the object’s environment.
• Lets assume that for privacy reasons, it should remain secret how much
money a customer spends at the website.
- We thus consider the simplified specification of the customer account object
in Fig. bellow.
-The object has a secret attributes money containing the amount of money
spent so far by a given customer.
- It can be read using the operation rm() whose return value is also secret,
and
increased by placing an order using the operation wm(x).
If the object is in the state ExtraService since the amount of money spent
already is over 1000, there is special functionality offered at the website
providing the customer with complementary extra services. There is an
associated operation rx() to check whether this functionality should be
provided. In the specification shown in Fig., this operation is not assumed to be
secret.
…
• Now we use the stereotype «no down-flow» to indicate that the object
should not leak out any information about secret data, such as the money
attribute.
• Unfortunately, the given specification violates this requirement, since
partial information about the input of the secret operation wm() is leaked
out via the return value of the non-secret operation rx().
Thus the model carries the stereotype illegitimately.
Security Engineering
• Communication over open, unprotected networks is often prone to attacks.
- In the case of the Internet, it is relatively easy to read or delete messages
that are exchanged, or to insert other messages.
- In wireless networks, it is even easier at least to read or insert messages, in
physical proximity of the network.
• Secure communication over untrusted networks thus requires specific
mechanisms such as encryption and cryptographic protocols.
- A cryptographic protocol is a description of a message exchange, which
includes cryptographic data, for establishing a secure relationship between
the protocol participants, such as a secure communication channel.
Cryptographic protocols are very difficult to design and prone to very subtle
errors.
• Apart from attacking the communication links in a distributed system, an
adversary may also try to directly attack the physical system nodes, if physical
access is possible.
• In systems, where adversaries may get in possession of security-critical nodes
(for example, if adversaries may be system users), one often uses specially
protected hardware such as smart-cards assumed to be tamper-proof.
…
• The model-based security engineering approach approached here has been
designed for object-oriented and component-oriented systems.
In particular, object-orientation is suitable as a conceptual basis for secure
systems:
- They are equipped with a general mechanism for controlling access to
data, namely method calls, and
offer information hiding by encapsulating data in objects.
• Intuitively, this notion is “dual” to that of secrecy, the sense that secrecy
prevents the flow of information from protected sources to untrusted
recipients, while integrity prevents the flow of information in the other
direction.
…
Authenticity
• To formalize message authenticity, we note that a message has its origin at
a system part if during any execution of the system, the message appears
at first at that part.
To provide authenticity then means to secure the information on the
message origin.