19 research outputs found
Refactoring of Security Antipatterns in Distributed Java Components
The importance of JAVA as a programming and execution environment has grown steadily over the past decade. Furthermore, the IT industry has adapted JAVA as a major building block for the creation of new middleware as well as a technology facilitating the migration of existing applications towards web-driven environments. Parallel in time, the role of security in distributed environments has gained attention, as a large amount of middleware applications has replaced enterprise-level mainframe systems. The protection of confidentiality, integrity and availability are therefore critical for the market success of a product. The vulnerability level of every product is determined by the weakest embedded component, and selling vulnerable products can cause enormous economic damage to software vendors. An important goal of this work is to create the awareness that the usage of a programming language, which is designed as being secure, is not sufficient to create secure and trustworthy distributed applications. Moreover, the incorporation of the threat model of the programming language improves the risk analysis by allowing a better definition of the attack surface of the application. The evolution of a programming language leads towards common patterns for solutions for recurring quality aspects. Suboptimal solutions, also known as ´antipatterns´, are typical causes for quality weaknesses such as security vulnerabilities. Moreover, the exposure to a specific environment is an important parameter for threat analysis, as code considered secure in a specific scenario can cause unexpected risks when switching the environment. Antipatterns are a well-established means on the abstractional level of system modeling to inform about the effects of incomplete solutions, which are also important in the later stages of the software development process. Especially on the implementation level, we see a deficit of helpful examples, that would give programmers a better and holistic understanding. In our basic assumption, we link the missing experience of programmers regarding the security properties of patterns within their code to the creation of software vulnerabilities. Traditional software development models focus on security properties only on the meta layer. To transfer these efficiently to the practical level, we provide a three-stage approach: First, we focus on typical security problems within JAVA applications, and develop a standardized catalogue of ´antipatterns´ with examples from standard software products. Detecting and avoiding these antipatterns positively influences software quality. We therefore focus, as second element of our methodology, on possible enhancements to common models for the software development process. These help to control and identify the occurrence of antipatterns during development activities, i. e. during the coding phase and during the phase of component assembly, integrating one´s own and third party code. Within the third part, and emphasizing the practical focus of this research, we implement prototypical tools for support of the software development phase. The practical findings of this research helped to enhance the security of the standard JAVA platforms and JEE frameworks. We verified the relevance of our methods and tools by applying these to standard software products leading to a measurable reduction of vulnerabilities and an information exchange with middleware vendors (Sun Microsystems, JBoss) targeting runtime security. Our goal is to enable software architects and software developers developing end-user applications to apply our findings with embedded standard components on their environments. From a high-level perspective, software architects profit from this work through the projection of the quality-of-service goals to protection details. This supports their task of deriving security requirements when selecting standard components. In order to give implementation-near practitioners a helpful starting point to benefit from our research we provide tools and case-studies to achieve security improvements within their own code base.Die Bedeutung der Programmiersprache JAVA als Baustein fĂźr Softwareentwicklungs- und Produktionsinfrastrukturen ist im letzten Jahrzehnt stetig gestiegen. JAVA hat sich als bedeutender Baustein fĂźr die Programmierung von Middleware-LĂśsungen etabliert. Ebenfalls evident ist die Verwendung von JAVA-Technologien zur Migration von existierenden Arbeitsplatz-Anwendungen hin zu webbasierten Einsatzszenarien. Parallel zu dieser Entwicklung hat sich die Rolle der IT-Sicherheit nicht zuletzt aufgrund der Verdrängung von mainframe-basierten Systemen hin zu verteilten Umgebungen verstärkt. Der Schutz von Vertraulichkeit, Integrität und VerfĂźgbarkeit ist seit einigen Jahren ein kritisches Alleinstellungsmerkmal fĂźr den Markterfolg von Produkten. Verwundbarkeiten in Produkten wirken mittlerweile indirekt Ăźber kundenseitigen Vertrauensverlust negativ auf den wirtschaftlichen Erfolg der Softwarehersteller, zumal der Sicherheitsgrad eines Systems durch die verwundbarste Komponente bestimmt wird. Ein zentrales Ziel dieser Arbeit ist die Erkenntnis zu vermitteln, dass die alleinige Nutzung einer als ´sicher´ eingestuften Programmiersprache nicht als alleinige Grundlage zur Erstellung von sicheren und vertrauenswĂźrdigen Anwendungen ausreicht. Vielmehr fĂźhrt die Einbeziehung des Bedrohungsmodells der Programmiersprache zu einer verbesserten Risikobetrachtung, da die Angriffsfläche einer Anwendung detaillierter beschreibbar wird. Die Entwicklung und fortschreitende Akzeptanz einer Programmiersprache fĂźhrt zu einer Verbreitung von allgemein anerkannten LĂśsungsmustern zur ErfĂźllung wiederkehrender Qualitätsanforderungen. Im Bereich der Dienstqualitäten fĂśrdern ´Gegenmuster´, d.h. nichtoptimale LĂśsungen, die Entstehung von Strukturschwächen, welche in der Domäne der IT-Sicherheit ´Verwundbarkeiten´ genannt werden. Des Weiteren ist die Einsatzumgebung einer Anwendung eine wichtige KenngrĂśĂe, um eine Bedrohungsanalyse durchzufĂźhren, denn je nach Beschaffenheit der Bedrohungen im Zielszenario kann eine bestimmte Benutzeraktion eine Bedrohung darstellen, aber auch einen erwarteten Anwendungsfall charakterisieren. Während auf der Modellierungsebene ein breites Angebot von Beispielen zur Umsetzung von Sicherheitsmustern besteht, fehlt es den Programmierern auf der Implementierungsebene häufig an ganzheitlichem Verständnis. Dieses kann durch Beispiele, welche die Auswirkungen der Verwendung von ´Gegenmustern´ illustrieren, vermittelt werden. Unsere Kernannahme besteht darin, dass fehlende Erfahrung der Programmierer bzgl. der Sicherheitsrelevanz bei der Wahl von Implementierungsmustern zur Entstehung von Verwundbarkeiten fĂźhrt. Bei der Vermittlung herkĂśmmlicher Software-Entwicklungsmodelle wird die Integration von praktischen Ansätzen zur Umsetzung von Sicherheitsanforderungen zumeist nur in Meta-Modellen adressiert. Zur Erweiterung des Wirkungsgrades auf die praktische Ebene wird ein dreistufiger Ansatz präsentiert. Im ersten Teil stellen wir typische Sicherheitsprobleme von JAVA-Anwendungen in den Mittelpunkt der Betrachtung, und entwickeln einen standardisierten Katalog dieser ´Gegenmuster´. Die Relevanz der einzelnen Muster wird durch die Untersuchung des Auftretens dieser in Standardprodukten verifiziert. Der zweite Untersuchungsbereich widmet sich der Integration von Vorgehensweisen zur Identifikation und Vermeidung der ´Sicherheits-Gegenmuster´ innerhalb des Software-Entwicklungsprozesses. HierfĂźr werden zum einen Ansätze fĂźr die Analyse und Verbesserung von Implementierungsergebnissen zur VerfĂźgung gestellt. Zum anderen wird, induziert durch die verbreitete Nutzung von Fremdkomponenten, die arbeitsintensive Auslieferungsphase mit einem Ansatz zur Erstellung ganzheitlicher Sicherheitsrichtlinien versorgt. Da bei dieser Arbeit die praktische Verwendbarkeit der Ergebnisse eine zentrale Anforderung darstellt, wird diese durch prototypische Werkzeuge und nachvollziehbare Beispiele in einer dritten Perspektive unterstĂźtzt. Die Relevanz der Anwendung der entwickelten Methoden und Werkzeuge auf Standardprodukte zeigt sich durch die im Laufe der Forschungsarbeit entdeckten Sicherheitsdefizite. Die RĂźckmeldung bei fĂźhrenden Middleware-Herstellern (Sun Microsystems, JBoss) hat durch gegenseitigen Erfahrungsaustausch im Laufe dieser Forschungsarbeit zu einer messbaren Verringerung der Verwundbarkeit ihrer Middleware-Produkte gefĂźhrt. Neben den erreichten positiven Auswirkungen bei den Herstellern der Basiskomponenten sollen Erfahrungen auch an die Architekten und Entwickler von Endprodukten, welche Standardkomponenten direkt oder indirekt nutzen, weitergereicht werden. Um auch dem praktisch interessierten Leser einen mĂśglichst einfachen Einstieg zu bieten, stehen die Werkzeuge mit Hilfe von Fallstudien in einem praktischen Gesamtzusammenhang. Die fĂźr das Tiefenverständnis notwendigen Theoriebestandteile bieten dem Software-Architekten die MĂśglichkeit sicherheitsrelevante Auswirkungen einer Komponentenauswahl frĂźhzeitig zu erkennen und bei der Systemgestaltung zu nutzen
Fundamental Approaches to Software Engineering
This open access book constitutes the proceedings of the 23rd International Conference on Fundamental Approaches to Software Engineering, FASE 2020, which took place in Dublin, Ireland, in April 2020, and was held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020. The 23 full papers, 1 tool paper and 6 testing competition papers presented in this volume were carefully reviewed and selected from 81 submissions. The papers cover topics such as requirements engineering, software architectures, specification, software quality, validation, verification of functional and non-functional properties, model-driven development and model transformation, software processes, security and software evolution
Designing usable mobile interfaces for spatial data
2010 - 2011This
dissertation
deals
mainly
with
the
discipline
of
Human-ÂâComputer
Interaction
(HCI),
with
particular
attention
on
the
role
that
it
plays
in
the
domain
of
modern
mobile
devices.
Mobile
devices
today
offer
a
crucial
support
to
a
plethora
of
daily
activities
for
nearly
everyone.
Ranging
from
checking
business
mails
while
traveling,
to
accessing
social
networks
while
in
a
mall,
to
carrying
out
business
transactions
while
out
of
office,
to
using
all
kinds
of
online
public
services,
mobile
devices
play
the
important
role
to
connect
people
while
physically
apart.
Modern
mobile
interfaces
are
therefore
expected
to
improve
the
user's
interaction
experience
with
the
surrounding
environment
and
offer
different
adaptive
views
of
the
real
world.
The
goal
of
this
thesis
is
to
enhance
the
usability
of
mobile
interfaces
for
spatial
data.
Spatial
data
are
particular
data
in
which
the
spatial
component
plays
an
important
role
in
clarifying
the
meaning
of
the
data
themselves.
Nowadays,
this
kind
of
data
is
totally
widespread
in
mobile
applications.
Spatial
data
are
present
in
games,
map
applications,
mobile
community
applications
and
office
automations.
In
order
to
enhance
the
usability
of
spatial
data
interfaces,
my
research
investigates
on
two
major
issues:
1. Enhancing
the
visualization
of
spatial
data
on
small
screens
2. Enhancing
the
text-Ââinput
methods
I
selected
the
Design Science Research approach
to
investigate
the
above
research
questions.
The
idea
underling
this
approach
is
âyou
build artifact to learn from itâ, in
other
words
researchers
clarify
what
is
new
in
their
design.
The
new
knowledge
carried
out
from
the
artifact
will
be
presented
in
form
of
interaction
design
patterns
in
order
to
support
developers
in
dealing
with
issues
of
mobile
interfaces.
The
thesis
is
organized
as
follows.
Initially
I
present
the
broader
context,
the
research
questions
and
the
approaches
I
used
to
investigate
them.
Then
the
results
are
split
into
two
main
parts.
In
the
first
part
I
present
the
visualization
technique
called
Framy.
The
technique
is
designed
to
support
users
in
visualizing
geographical
data
on
mobile
map
applications.
I
also
introduce
a
multimodal
extension
of
Framy
obtained
by
adding
sounds
and
vibrations.
After
that
I
present
the
process
that
turned
the
multimodal
interface
into
a
means
to
allow
visually
impaired
users
to
interact
with
Framy.
Some
projects
involving
the
design
principles
of
Framy
are
shown
in
order
to
demonstrate
the
adaptability
of
the
technique
in
different
contexts.
The
second
part
concerns
the
issue
related
to
text-Ââinput
methods.
In
particular
I
focus
on
the
work
done
in
the
area
of
virtual
keyboards
for
mobile
devices.
A
new
kind
of
virtual
keyboard
called
TaS
provides
users
with
an
input
system
more
efficient
and
effective
than
the
traditional
QWERTY
keyboard.
Finally,
in
the
last
chapter,
the
knowledge
acquired
is
formalized
in
form
of
interaction
design
patterns. [edited by author]X n.s
A Network of Oneâs Own: Struggles to Domesticate the Internet
This thesis is a design research practice-led inquiry into the domesticated Internet. It first seeks to complicate simplistic corporate and academic visions by naming some of the struggles it encounters â not least to assert a private home and network of one's own. It is argued that a century of domestic technologies has emphasised invisibility, ubiquity, and automation in ways that obscure a network of exploited people and finite resources. Furthermore, these technological ambitions are met through machine surveillance, in ways newly enabled by the domesticated Internet, that threaten the privacy of the home.
In response, this thesis seeks some practical ways to design alternatives that assert a network of one's own and makes the work it implicates visible. The methodological approach is broadly Research Through Design supplemented by a practice described as designerly hacking through which hidden technical potential is revealed and given meaning. Two empirical studies are described that together make an account of the technical possibility and social reality of the networked home: an autobiographical technical exploration of the author's home and network with the making of hacks and Research Products privately and in public; and a cultural probe engagement with six rented households surfacing contemporary accounts of the domesticated Internet and in particular the challenges and opportunities of wireless networking. Together this yields a series of technical and social insights for design and two forms are offered to communicate these: a framework for understanding change in the networked home (The Stuff of Home) and a set of 30 design patterns for a network of one's own; each invites different analyses. The conclusion then draws together the multiple threads developed through this thesis and offers some reflection on the complexity of doing contemporary technical design work
Intelligent Systems Supporting the Use of Energy Systems and Other Complex Technical Objects, Modeling, Testing and Analysis of Their Reliability in the Operation Process
The book focuses on a novel application of Intelligent Systems for supporting the operation and maintenance of power systems or other technical facilities within wind farms. Indicating a different perception of the reliability of wind farm facilities led to the possibility of extending the operation lifetime and operational readiness of wind farm equipment. Additionally, the presented approach provides a basis for extending its application to the testing and analysis of other technical facilities
âBe a Pattern for the Worldâ: The Development of a Dark Patterns Detection Tool to Prevent Online User Loss
Dark Patterns are designed to trick users into sharing more information or spending more money than they had intended to do, by configuring online interactions to confuse or add pressure to the users. They are highly varied in their form, and are therefore difficult to classify and detect. Therefore, this research is designed to develop a framework for the automated detection of potential instances of web-based dark patterns, and from there to develop a software tool that will provide a highly useful defensive tool that helps detect and highlight these patterns
Technical Debt is an Ethical Issue
We introduce the problem of technical debt, with particular focus on critical infrastructure, and put forward our view that this is a digital ethics issue. We propose that the software engineering process must adapt its current notion of technical debt â focusing on technical costs â to include the potential cost to society if the technical debt is not addressed, and the cost of analysing, modelling and understanding this ethical debt. Finally, we provide an overview of the development of educational material â based on a collection of technical debt case studies - in order to teach about technical debt and its ethical implication