<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Schritte zu einer zertifizierten Informationsflussanalyse von Gesch¨aftsprozessen</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Thomas S. Heinze</string-name>
          <email>t.heinze@uni-jena.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Motivation</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Einfu ̈hrung und</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Institut fu ̈r Informatik Friedrich-Schiller-Universita ̈t Jena</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <volume>2072</volume>
      <fpage>8</fpage>
      <lpage>9</lpage>
      <abstract>
        <p>This paper introduces an easy to use methodology to analyze the information flow within business processes based on diferent confidentiality levels. Furthermore, this paper also provides a formal proof based on Coq for this methodology. Zusammenfassung. In diesem Beitrag wird eine einfache Methode zur Analyse des Informationsflusses in Gesch ¨aftsprozessen auf Grundlage von Vertraulichkeitsstufen vorgestellt. Die Korrektheit der Analyse wird anhand einer maschinenpru¨fbaren Formalisierung in Coq nachgewiesen.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>3. Estimate</p>
      <p>Risk
6. Send
$rating
$request.risk = $score
otherwise
$request.insurant = ’premium’
4. Assign
Rating
5. Create
$rating</p>
    </sec>
    <sec id="sec-2">
      <title>Abb. 1. Beispielprozess in BPMN-Notation</title>
      <p>
        des Informationsflusses in Gesch ¨aftsprozessen auf Grundlage von
Vertraulichkeitsstufen vorgestellt. Die Analyse beruht auf dem Verfahren der
AndersenAnalyse [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] und wurde mit Hilfe des Beweisassistenten Coq1 formal definiert,
so dass der Nachweis der Analysekorrektheit als maschinenpru¨fbarer Beweis zur
Verfu¨gung steht. Der Beitrag kann somit als ein Schritt zu einer zertifizierten
Informationsflussanalyse von Gescha¨ftsprozessen verstanden werden.
      </p>
      <p>Im sich anschließenden Abschnitt 2 wird das Analyseszenario genauer
abgegrenzt und die Analyse vorgestellt. Die formale Entwicklung und der
Korrektheitsnachweis zur Analyse auf Grundlage der Theorie der abstrakten Interpretation
erfolgt in Abschnitt 3. In Abschnitt 4 wird ein kurzer U¨berblick zu verwandten
Arbeiten gegeben, bevor der Beitrag mit einer Zusammenfassung und einem
Ausblick auf weiterfu¨hrende Arbeiten in Abschnitt 5 endet.
2</p>
      <sec id="sec-2-1">
        <title>Analyse des Informationsflusses</title>
        <p>
          Eine Informationsflussanalyse [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] untersucht einen Prozess hinsichtlich des
Flusses von Informationen, wobei verschiedene Vertraulichkeitsstufen beru¨cksichtigt
werden ko¨nnen. Im einfachsten Fall werden die zwei Stufen H (vertraulich) und
L (o¨fentlich) betrachtet. Zur Sicherstellung der Vertraulichkeit sollte dann kein
Informationsfluss von einer mit H ausgezeichneten Quelle an eine mit L
ausgezeichnete Senke existieren. In Abbildung 1 ist ein Beispielprozess dargestellt, in
dem die Risikobewertung fu¨r eine Versicherung bestimmt und versendet wird.
Dazu wird zuna¨chst ein Formular in $request erzeugt und der vertrauliche
ScoreWert $score abgefragt. In Abh¨angigkeit vom Versichertenstatus wird entweder
ein Standardwert oder der Score-Wert als Risikobewertung $rating verwendet
und weitergeleitet. Wird in diesem Beispiel die eingehende Nachricht $score mit
der Vertraulichkeitsstufe H und die ausgehende Nachricht $rating mit der Stufe
L ausgezeichnet, liegt fu¨r den oberen Pfad ein Informationsfluss von H nach L
und somit eine Verletzung der Informationsvertraulichkeit vor.
        </p>
        <p>Hier soll eine statische Datenflussanalyse zur Untersuchung des
Informationsflusses in Prozessmodellen definiert werden. Gegenstand der Analyse sind
explizite Datenfl u¨sse, wie im obigen Beispiel, jedoch keine impliziten
Informationsfl u¨sse oder Seitenkana¨le (vergleiche den impliziten Fluss von $request.insurant
1 https://coq.inria.fr, letzter Zugrif am 8. M a¨rz 2018
i : ReceiveL x/ i : CreateL x :
i : ReceiveH x/ i : CreateH x :
oiL ∈ pt(x)
oiH ∈ pt(x)
x = y :
x = y.f :
x.f = y :</p>
        <p>oiL ∈ pt(y)
pt(oi.f ) ⊆ pt(x)</p>
        <p>oiL ∈ pt(x)
pt(y) ⊆ pt(oi.f )
pt(y) ⊆ pt(x)</p>
        <p>oiH ∈ pt(y)
pt(oi.f ) ⊆ pt(x)</p>
        <p>oiH ∈ pt(x)
pt(y) ⊆ pt(oi.f )</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Abb. 2. Regelsystem zur statischen Informationsflussanalyse</title>
      <p>
        nach $rating u¨ber die Kontrollabh¨angigkeit der Variablendefinition). Unter
diesen Anforderungen l¨asst sich die Analyse als Taint-Analyse [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] aufassen und
auf das Verfahren der Andersen-Analyse [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] zuru¨ckfu¨hren. Durch dieses
Verfahren werden Variablen, und deren Komponenten im Fall zusammengesetzter
Variablentypen, Mengen mit abstrakten Objekten zugewiesen. Weiterhin werden
Regeln zwischen den Mengen in Form von Element-/Teilmengenbeziehungen
definiert. Die L ¨osung des dadurch charakterisierten Regelsystems ergibt dann
einen Fixpunkt als Abscha¨tzung zum Datenfluss im analysisertem Prozess.
      </p>
      <p>In Abbildung 2 sind die Regeln der Analyse fu¨r einen kleinen Sprachausschnitt
dargestellt. Auf der linken Seite stehen die Prozessaktivita¨ten und auf der rechten
Seite die zugeho¨rigen Regelschemata. Zusa¨tzlich zu einer herko¨mmlichen
Andersen-Analyse wird hier zwischen o¨fentlichen und vertraulichen Informationsquellen
unterschieden, so dass die Aktivit¨aten Receive und Create eine entsprechende
Auszeichnung mit L oder H aufweisen mu¨ssen. Komplexere Sprachkonstrukte,
etwa die Zuweisung x.f.g = y.h, lassen sich durch die Einfu¨hrung zus¨atzlicher
Variablen ebenfalls abbilden. Ferner wird von atomaren Nachrichten ausgegangen.</p>
      <p>
        Durch die Regeln wird fu¨r jede Prozessaktivit¨at beschrieben, wie deren
Ausfu¨hrung die den Variablen und Komponenten zugeordneten Mengen pt mit
abstrakten Objekten beeinflusst. Als Fixpunktl ¨osung ergibt sich fu¨r die Regeln
dann eine U¨berabsch¨atzung des Datenflusses, da Ausf u¨hrungsreihenfolge und
-kontext von Aktivita¨ten unberu¨cksichtigt bleiben (fluss-/kontextinsensitiv [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]).
Zudem wird pro Receive- und Create-Aktivita¨t i nur jeweils ein abstraktes Objekt
oi unterschieden, unabha¨ngig davon wie oft die Aktivita¨t ausgefu¨hrt wird. Wird
der Beispielprozess in Abbildung 1 betrachtet, und von einer vertraulichen Quelle
$score sowie einer ¨ofentlichen Quelle $ request ausgegangen, ergibt sich unter
Anwendung der Regeln die folgende Ableitung und somit eine
Vertraulichkeitsverletzung, unter Annahme der Vertraulichkeitsstufe L fu¨r die ausgehende Nachricht
$rating (Regelanwendungen sind mit der zugeho¨rigen Aktivita¨ts-Id angegeben):
L
o1 ∈ pt($request)
1
      </p>
      <p>4
pt(o1.risk) ⊆ pt($rating)</p>
      <p>H
o2 ∈ pt($rating)</p>
      <p>L
o1 ∈ pt($request)
1</p>
      <p>3
pt($score) ⊆ pt(o1.risk)</p>
      <p>H
o2 ∈ pt(o1.risk)</p>
      <p>H
o2 ∈ pt($score)
2</p>
    </sec>
    <sec id="sec-4">
      <title>Abb. 3. Konkrete Semantik (Pra¨dikat [exec] in Coq-Formalisierung)</title>
      <p>3</p>
      <sec id="sec-4-1">
        <title>Zertifizierte Informationsflussanalyse</title>
        <p>Im Folgenden soll die im vorangegangenen Abschnitt vorgestellte Analyse formal
definiert und deren Korrektheit bewiesen werden. Die Formalisierung erfolgte
mit Hilfe des Beweisassistenten Coq, so dass ein maschinenpru¨fbarer Beweis zur
Analysekorrektheit2 zur Verfu¨gung steht und die Implementierung der Analyse
aus dem Beweis extrahiert werden kann. Der Coq-Formalismus beruht dabei
wesentlich auf bestehenden Coq-Quellen3 zur Andersen-Analyse.</p>
        <p>
          Fu¨r die formale Entwicklung einer statischen Analyse kann auf die abstrakten
Interpretation zuru¨ckgegrifen werden [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. In der abstrakten Interpretation wird
ein Prozess nicht auf konkreten sondern auf abstrakten Werten ausgefu¨hrt.
Anstatt mit int-Werten wird etwa mit den Werten odd und even gerechnet,
so dass sich die Addition aus den Regeln even + even = even, even + odd = odd,
odd + even = odd und odd + odd = even ergibt. Die Ausfu¨hrung auf konkreten
Werten definiert die konkrete Semantik und die Ausfu¨hrung auf abstrakten Werten
die abstrakte Semantik. Letztere wird zur Definition der Analyse verwendet,
fu¨r die ausgehend von einem Startzustand durch kontinuierliche Anwendung
der abstrakten Semantik auf einen Prozess ein Fixpunkt errechnet wird. Zum
Nachweis der Korrektheit muss gezeigt werden, dass der Fixpunkt die sich fu¨r
jeden Zustand aus der konkreten Semantik ergebenden konkreten Werte abscha¨tzt.
        </p>
        <p>Zur Formalisierung der Informationsflussanalyse wird die in Abbildung 3
dargestellte konkrete Semantik genutzt. Darin werden Variablen, Komponenten
und Objekte als natu¨rliche Zahlen kodiert. Ein Zustand s enstpricht einem Tupel
(vars, heap, high, l), wobei vars, heap : N → N Variablen und Komponenten die
Objekte zuordnet, auf die sie im Zustand s verweisen, high ⊆ N alle vertraulichen
Objekte aufza¨hlt und l ∈ N das zuletzt erzeugte Objekt bezeichnet. Die konkrete
Semantik denfiiert damit eine Relation i, s → s′ zwischen einem Zustand s, einer
2 https://gitlab.com/t.heinze/zeus2018.git
3 http://adam.chlipala.net/itp/coq/src, letzter Zugrif am 8. M a¨rz 2018
ReceiveL x#k/ CreateL x#k, (avars, aheap, ahigh)</p>
        <p>→ (avars[x ← avars(x) ∪ {k}], aheap, ahigh)
ReceiveH x#k/ CreateH x#k (avars, aheap, ahigh)</p>
        <p>→ (avars[x ← avars(x) ∪ {k}], aheap, ahigh ∪ {k})
x = y, (avars, aheap, ahigh) → (avars[x ← avars(x) ∪ avars(y)], aheap, ahigh)
x = y.f, (avars, aheap, ahigh)
→ (avars[x ← avars(x) ∪</p>
        <p>[
k∈avars(y)</p>
        <p>aheap(k)], aheap, ahigh)
x.f = y, (avars, aheap, ahigh)</p>
        <p>→ (avars, aheap[k ← aheap(k) ∪ avars(y) | k ∈ avars(x)], ahigh)</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Abb. 4. Abstrakte Semantik (Pra¨dikat [abstract exec] in Coq-Formalisierung)</title>
      <p>auf diesem ausgefu¨hrten Prozessaktivita¨t i und dem sich daraus ergebenden
Folgezustand s′. Durch die Relation wird beispielsweise fu¨r eine Aktivita¨t CreateH x
im Folgezustand ein neues Objekt l + 1 erzeugt, der Menge vertraulicher Objekt
hinzugefu¨gt und der Verweis der Variablen x auf das Objekt l + 1 gesetzt.</p>
      <p>In der abstrakten Semantik in Abbildung 4 werden abstrakte Zust¨ande
betrachtet, die Tupel (avars, aheap, ahigh) sind, wobei avars, aheap : N → P(N)
nun die m¨oglichen Verweisziele von Variablen und Komponenten in Form von
Mengen abscha¨tzen (vergleiche auch Abbildung 2), ahigh fasst alle vertraulichen
Objekte zusammen. Im Gegensatz zur konkreten Semantik wird nicht mehr fu¨r
jede Ausfu¨hrung einer Receive- oder Create-Aktivit¨at ein neues Objekt erzeugt,
sondern fu¨r dieselbe Aktivita¨t nur ein Objekt verwendet. Die Aktivita¨ten werden
dazu durchnummeriert, so dass sich das Objekt aus dem Index k ergibt.</p>
      <p>Fu¨r den Nachweis der Korrektheit werden die konkrete und die abstrakte
Semantik in Beziehung gesetzt, dies mittels sogenannter Objektpfade:
s = (vars, heap, high, l) s = (vars, heap, high, l) s ⊢ p :: l′ l′ ̸= 0
s ⊢ v :: vars[v] s ⊢ p :: l′ :: heap[l′]
a = (avars, aheap, ahigh) k ∈ avars[v]</p>
      <p>a ⊢ v :: k
a = (avars, aheap, ahigh) a ⊢ p :: k k′ ∈ aheap[k]</p>
      <p>a ⊢ p :: k :: k′</p>
      <p>Ein Objektpfad v :: p :: n ist ein Pra¨dikat, das ausgehend von einer Variablen v,
unter einen gegebenen konkreten Zustand s beziehungsweise abstrakten Zustand
a, eine eventuell leere Sequenz p von Kompontenenzugrifen auf ein Objekt n
beschreibt. Vereinfacht gesprochen bezeichnet ein Objektpfad die Mo¨glichkeit unter
Zustand s beziehungsweise a u¨ber die Variable v auf das Objekt n zuzugreifen.
Wie in Abbildung 5 definiert, ist ein abstrakter Zustand a dann eine Abscha¨tzung
fu¨r einen konkreten Zustand s, falls zus¨atzlich zu gewissen Nebenbedingungen
folgende zwei Bedingungen erfu¨llt sind: (1) Fu¨r jedes Objekt l′ auf das im Zustand
s u¨ber Objektpfade v1 :: p :: l′ und v2 :: q :: l′ zugegrifen werden kann, existiert
im Zustand a ein entsprechendes Objekt k auf das u¨ber Objektpfade v1 :: p′ : k
a = (avars, aheap, ahigh) approximates s = (vars, heap, high, l)
⇔df heap(0) = 0 ∧ ∀l′ &gt; l : heap(l′) = 0 ∧ ∀l′ : s ⊢ p :: l′ ⇒ l′ ≤ l ∧ ∀l′ ∈ high : l′ ≤ l
∧ ∀v1, v2, l′ ̸= 0 : s ⊢ v1 :: p :: l′ ∧ v2 :: q :: l′ ⇒ ∃k : a ⊢ v1 :: p′ :: k ∧ a ⊢ v2 :: q′ :: k
∧ ∀v, l′ ̸= 0 : s ⊢ v :: p :: l ∧ l ∈ high ⇒ ∃k : a ⊢ v :: q :: k ∧ k ∈ ahigh</p>
    </sec>
    <sec id="sec-6">
      <title>Konservativita¨t der abstrakten Semantik:</title>
      <p>∀a′, s′, s : s′ ⇝ s ∧ a′ approximates s′ ⇒ ∃a : a′ ⇝ a ∧ a approximates s ⊓⊔
v not H ⇔df ∀s = (vars, heap, high, l) : init ⇝ s ⇒ vars(v) ∈/ high</p>
    </sec>
    <sec id="sec-7">
      <title>Korrektheit der Informationsflussanalyse:</title>
      <p>∀v : (∀a = (avars, aheap, ahigh) : ainit ⇝ a ⇒ ∀k ∈ avars(v) : k ∈/ ahigh) ⇒ v not H ⊓⊔
Abb. 5. Korrektheit der Analyse (Theorem [analysis sound] in Coq-Formalisierung)
und v2 :: q′ :: k zugegrifen werden kann. (2) F u¨r jedes vertrauliche Objekt l′
auf das u¨ber einen Objektpfad v :: p :: l′ im Zustand s zugegrifen werden kann,
existiert im Zustand a ein entsprechendes vertrauliches Objekt k auf das u¨ber
einen Objektpfad v :: q :: k zugegrifen werden kann. Anhand dieser Definitionen
la¨sst sich zeigen, dass die abstrakte Semantik eine konservative Abscha¨tzung fu¨r
die konkrete Semantik ist, das heißt fu¨r alle erreichbaren konkreten Zust¨ande s
existiert ein erreichbarer abstrakter Zustand a, der eine Abscha¨tzung fu¨r s ist.</p>
      <p>Als Folgerung aus dieser Beziehung zwischen konkreter und abstrakter
Semantik kann auf die Korrektheit der Informationsflussanalyse geschlossen werden.
So la¨sst sich zeigen, dass fu¨r alle Variablen v gilt, falls v unter allen erreichbaren
abstrakten Zusta¨nden a auf kein vertrauliches Objekt verweist, so verweist v auch
unter allen erreichbaren konkreten Zust¨anden s auf kein vertrauliches Objekt.
Unter Anwendung der Analyse kann somit ein Fluss von einer vertraulichen
Quelle an eine o¨fentliche Senke, in Form einer Variablen v, sicher ausgeschlossen
werden. Neben der Korrektheit der Analyse kann auch deren Terminierung gezeigt
werden. Aus Platzgru¨nden wird auf eine entsprechende Diskussion verzichtet und
stattdessen auf die Coq-Formalisierung (Definition [fixed point]) verwiesen.
4</p>
      <sec id="sec-7-1">
        <title>Verwandte Arbeiten</title>
        <p>
          In [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] wurde der Ansatz zur zertifizierten Analyse von Gesch a¨ftsprozessen zuna¨chst
allgemein motiviert, in diesem Beitrag konnte die Machbarkeit des Ansatzes nun
konkret am Beispiel der Analyse des Informationsflusses von Gesch a¨ftsprozessen
gezeigt werden. Die Pru¨fung des Informationsflusses ist dabei ein
Standardproblem der statischen Analyse [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. Es gibt zahlreiche Varianten, die neben
expliziten Datenfl u¨ssen auch Seitenkan¨ale, zum Beispiel das Zeitverhalten oder
den Energieverbrauch, einbeziehen. Informationsflussanalysen werden neben dem
hier betrachteten Aufdecken von Informationslecks insbesondere zur
Identizfiierung von Sicherheitslu¨cken eingesetzt, oft in Form einer Taint-Analyse [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. Eine
gela¨ufige Technik zur Taint-Analyse ist das Andersen-Verfahren [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. Fu¨r dieses
wird zwischen inter- und intraprozeduralen, fluss- und kontextsensitiven sowie
-insensitiven Varianten unterschieden. Das hier beschriebene Verfahren setzt eine
sehr einfache intraprozedurale und fluss-/kontextinsensitive Analyse um.
        </p>
        <p>
          Der Einsatz von Beweisassistenten zur Verifikation von statischen Analysen
erfa¨hrt eine stetig wachsende Verbreitung. Insbesondere Coq spielt eine
herausragende Rolle, wie nicht zuletzt an der erfolgreichen Verifikation eines realistischen
optimierenden Compilers im CompCert-Projekt [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] deutlich wird. Im
Allgemeinen wird zum Nachweis der Analysekorrektheit analog dem Vorgehen in diesem
Beitrag auf die Theorie der abstrakten Interpretation zuru¨ckgegrifen [
          <xref ref-type="bibr" rid="ref4 ref5">4,5</xref>
          ]. Neben
den auch dieser Arbeit zugrundeliegenden Coq-Quellen zum Andersen-Verfahren
von Adam Chlipala existieren weitere entsprechende Formalisierungen [
          <xref ref-type="bibr" rid="ref11 ref15">11,15</xref>
          ].
        </p>
        <p>
          Eine Reihe von typischerweise petrinetzbasierten Techniken zur Analyse des
Informationsflusses wird auch f u¨r Gescha¨ftsprozesse beschrieben, eine U¨ bersicht
kann etwa [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] entnommen werden. Die hier vorgestellte Analyse bezieht sich
dabei auf den expliziten Datenfluss und Vertraulichtkeitsstufen ( Mandatory
Access Control). Vergleichbare Arbeiten fu¨r Gescha¨ftsprozesse beruhen meist auf
ho¨heren Petrinetzen und Methoden des Model-Checking [
          <xref ref-type="bibr" rid="ref12 ref3">3,12</xref>
          ]. Damit ergeben sich
aber zwei Problemstellungen, die fu¨r den in dieser Arbeit beschriebenen Ansatz
nicht auftreten. So stellen sich fu¨r das Model-Checking auf ho¨heren Petrinetzen
aufgrund potentieller Zustandsraumexplosion grundlegende Skalierungsprobleme.
Durch eine geschickte Wahl der Abstraktion in den Petrinetzmodellen lassen sich
diese zwar prinzipiell umgehen, jedoch bedingt dies dann eine aufwendige und
nicht triviale manuelle Modellierung der zu analysierenden Gesch¨aftsprozesse.
Ferner ist dem Autor kein Ansatz zur zertifizierten Informationsflussanalyse, das
heißt maschinell verifizierten Analyse, f u¨r Gescha¨ftsprozesse bekannt.
5
        </p>
      </sec>
      <sec id="sec-7-2">
        <title>Zusammenfassung und Ausblick</title>
        <p>In diesem Beitrag wird eine einfache statische Analyse zur Untersuchung des
Informationsflusses in Gesch ¨aftsprozessen vorgestellt. Mit Hilfe der Analyse
lassen sich Datenfl u¨sse von sensitiven Datenquellen an o¨fentliche Senken f u¨r einen
Prozess sicher ausschließen. Die Analyse beruht auf dem Verfahren der
AndersenAnalyse und ist mittels der Theorie der abstrakten Interpretation formalisiert, so
dass sich Korrektheit und Terminierung im Beweisassistent Coq maschinenpru¨fbar
beweisen lassen. Da zudem die Mo¨glichkeit besteht, die Analyseimplementierung
aus dem Beweis zu extrahieren, handelt es sich um einen ersten Schritt zu einer
zertifizierten Informationsflussanalyse fu¨r Gescha¨ftsprozesse.</p>
        <p>
          In weiterfu¨hrenden Arbeiten sollen Fragen zur Pr¨azision und
Skalierbarkeit der Analyse untersucht werden. So kann die Pr¨azision durch Definition
einer flusssensitiven Analyse erh ¨oht werden, etwa unter Verwendung
erweiterter Workflow-Graphen [
          <xref ref-type="bibr" rid="ref10 ref9">9,10</xref>
          ]. In diesem Fall ist aber eine Formalisierung der
Transformation in erweiterte Workflow-Graphen in Coq notwendig.
Danksagung. Ich danke Adam Chlipala fu¨r die Bereitstellung der Coq-Quellen
zur Andersen-Analyse.
        </p>
      </sec>
      <sec id="sec-7-3">
        <title>Literatur</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Accorsi</surname>
          </string-name>
          , Rafael ; Lehmann, Andreas ; Lohmann, Niels:
          <article-title>Information leak detection in business process models: Theory, application, and tool support</article-title>
          .
          <source>In: Information Systems</source>
          <volume>47</volume>
          (
          <year>2015</year>
          ), S.
          <fpage>244</fpage>
          -
          <lpage>257</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Accorsi</surname>
          </string-name>
          , Rafael ; Lowis, Lutz ; Sato,
          <article-title>Yoshinori: Automated Certification for Compliant Cloud-based Business Processes</article-title>
          .
          <source>In: Business &amp; Information Systems Engineering</source>
          <volume>3</volume>
          (
          <year>2011</year>
          ),
          <year>Nr</year>
          . 3,
          <string-name>
            <surname>S.</surname>
          </string-name>
          145-
          <fpage>154</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Barkaoui</surname>
          </string-name>
          , Kamel ; Ayed, Rahma B. ;
          <string-name>
            <surname>Boucheneb</surname>
          </string-name>
          , Hanifa ; Hicheur,
          <article-title>Awatef: Verification of Workflow Processes Under Multilevel Security Considerations</article-title>
          .
          <source>In: Proceedings, Third International Conference on Risks and Security of Internet and Systems</source>
          ,
          <source>CRiSIS</source>
          <year>2008</year>
          , Tozeur, Tunisia,
          <source>October 28-30</source>
          ,
          <year>2008</year>
          , IEEE,
          <year>2008</year>
          , S.
          <fpage>77</fpage>
          -
          <lpage>84</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Bertot</surname>
          </string-name>
          ,
          <article-title>Yves: Structural Abstract Interpretation: A Formal Study Using Coq</article-title>
          . In: Language Engineering and Rigorous Software Development,
          <source>International LerNet ALFA SummerSchool</source>
          <year>2008</year>
          , Piriapolis, Urugay,
          <source>February 24-March 1</source>
          ,
          <year>2008</year>
          , Revised Tutorial Lectures. Springer,
          <year>2009</year>
          (LNCS 5520), S.
          <fpage>153</fpage>
          -
          <lpage>194</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Besson</surname>
          </string-name>
          , Fr´ed´eric ; Cachera, David ; Jensen, Thomas ; Pichardie, David:
          <article-title>Certiifed Static Analysis by Abstract Interpretation</article-title>
          . In:
          <article-title>Foundations of Security Analysis</article-title>
          and Design V. Springer,
          <year>2009</year>
          (LNCS 5705), S.
          <fpage>223</fpage>
          -
          <lpage>257</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Cousot</surname>
          </string-name>
          , Patrick ; Cousot,
          <article-title>Radhia: Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs</article-title>
          .
          <source>In: Proceedings of the 4th ACM Symposium on Principles of Programming Languages, ACM</source>
          ,
          <year>1977</year>
          , S.
          <fpage>238</fpage>
          -
          <lpage>252</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Denning</surname>
          </string-name>
          , Dorothy E.:
          <article-title>A Lattice Model of Secure Information Flow</article-title>
          .
          <source>In: Communications of the ACM</source>
          <volume>19</volume>
          (
          <year>1976</year>
          ),
          <year>Nr</year>
          . 5,
          <string-name>
            <surname>S.</surname>
          </string-name>
          236-
          <fpage>243</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Heinze</surname>
          </string-name>
          , Thomas S.:
          <article-title>Towards Certified Data Flow Analysis of Business Processes</article-title>
          .
          <source>In: 9th ZEUS Workshop</source>
          , ZEUS 2017, Lugano, Switzerland,
          <fpage>13</fpage>
          -14
          <source>February</source>
          <year>2017</year>
          , Proceedings, CEUR-WS.org,
          <source>2017 (CEUR Workshop Proceedings</source>
          <year>1826</year>
          ),
          <source>S. 1-3</source>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Heinze</surname>
          </string-name>
          , Thomas S. ; Amme, Wolfram ; Moser,
          <article-title>Simon: A Restructuring Method for WS-BPEL Business Processes Based on Extended Workflow Graphs</article-title>
          . In: Business Process Management, 7th International Conference, BPM 2009, Ulm, Germany, September 8-
          <issue>10</issue>
          ,
          <year>2009</year>
          , Proceedings, Springer,
          <year>2009</year>
          (LNCS 5701), S.
          <fpage>211</fpage>
          -
          <lpage>228</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Heinze</surname>
          </string-name>
          , Thomas S. ; Amme, Wolfram ; Moser, Simon:
          <article-title>Static analysis and process model transformation for an advanced business process to Petri net mapping</article-title>
          .
          <source>In: Software: Practice and Experience</source>
          <volume>48</volume>
          (
          <year>2018</year>
          ),
          <year>Nr</year>
          . 1,
          <string-name>
            <surname>S.</surname>
          </string-name>
          161-
          <fpage>195</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Jourdan</surname>
            , Jacques-Henri ; Laporte, Vincent ; Blazy, Sandrine ; Leroy, Xavier ; Pichardie, David:
            <given-names>A</given-names>
          </string-name>
          <string-name>
            <surname>Formally-Verified C Static</surname>
          </string-name>
          <article-title>Analyzer</article-title>
          .
          <source>In: ACM SIGPLAN Notices</source>
          <volume>50</volume>
          (
          <year>2015</year>
          ),
          <year>Nr</year>
          . 1,
          <string-name>
            <surname>S.</surname>
          </string-name>
          247-
          <fpage>259</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Juszczyszyn</surname>
          </string-name>
          ,
          <article-title>Krzysztof: Verifying Enterprise's Mandatory Access Control Policies with Coloured Petri Nets</article-title>
          . In: 12th International Workshops on Enabling Technologies:
          <article-title>Infrastructure for Collaborative Enterprises</article-title>
          , IEEE,
          <year>2003</year>
          , S.
          <fpage>184</fpage>
          -
          <lpage>189</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Leroy</surname>
          </string-name>
          ,
          <article-title>Xavier: Formal Verification of a Realistic Compiler</article-title>
          .
          <source>In: Communications of the ACM</source>
          <volume>52</volume>
          (
          <year>2009</year>
          ),
          <year>Nr</year>
          . 7,
          <string-name>
            <surname>S.</surname>
          </string-name>
          107-
          <fpage>115</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Livshits</surname>
          </string-name>
          , V. B. ;
          <string-name>
            <surname>Lam</surname>
          </string-name>
          , Monica S.:
          <article-title>Finding Security Vulnerabilities in Java Applications with Static Analysis</article-title>
          .
          <source>In: Proceedings of the 14th USENIX Security Symposium, USENIX Association</source>
          ,
          <year>2005</year>
          , S.
          <fpage>271</fpage>
          -
          <lpage>286</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Robert</surname>
          </string-name>
          , Valentin ; Leroy,
          <article-title>Xavier: A Formally-Verified Alias Analysis</article-title>
          .
          <source>In: Certified Programs and Proofs</source>
          , Second International Conference, CPP 2012, Kyoto, Japan,
          <source>December 13-15</source>
          ,
          <year>2012</year>
          , Proceedings, Springer,
          <year>2009</year>
          (LNCS 7679), S.
          <fpage>11</fpage>
          -
          <lpage>26</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Sridharan</surname>
          </string-name>
          , Manu ; Chandra, Satish ; Dolby, Julian ; Fink, Stephen J. ; Yahav, Eran:
          <article-title>Alias Analysis for Object-Oriented Programs</article-title>
          .
          <source>In: Aliasing in Object-Oriented Programming</source>
          . Springer,
          <year>2013</year>
          (LNCS 7850), S.
          <fpage>196</fpage>
          -
          <lpage>232</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>