pse: programmabhängigkeitsgraphen - ipd snelting, iti wagnerpse: programmabhangigkeitsgraphen¨ m....

18
PSE: Programmabh ¨ angigkeitsgraphen M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universit¨ at des Landes Baden-W ¨ urttemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft IPD Snelting, ITI Wagner www.kit.edu

Upload: others

Post on 23-Feb-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

PSE: Programmabhangigkeitsgraphen

M. Radermacher, S. Bischof, S. Buchwald, M.Hecker

KIT – Universitat des Landes Baden-Wurttemberg undnationales Großforschungszentrum in der Helmholtz-Gemeinschaft

IPD Snelting, ITI Wagner

www.kit.edu

Page 2: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Ein einfaches Programm

public i n t m( i n t y , i n t z ) {i n t ca lc = z∗z ;i n t r e s u l t = calc −1;i f ( y < 0) {

r e s u l t = 0 ;}return r e s u l t ;

}

Hangt das Ergebnis von z ab?

Und hangt es von y ab?

2 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 3: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Informationsflusskontrolle

es gibt geheime und offentliche Werte

Fragestellung: Kann der Wert einer geheimen Eingabe eine offentlicheAusgabe beeinflussen?

In diesem Fall kann ein Angreifer etwas uber geheime Werte lernen

Allein mit Programmcode fur Menschen schwierig zu erkennen

Graphen helfen bei der Visualisierung

Hier am Lehrstuhl entwickelt: JOANA

3 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 4: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Informationsflusskontrolle

es gibt geheime und offentliche Werte

Fragestellung: Kann der Wert einer geheimen Eingabe eine offentlicheAusgabe beeinflussen?

In diesem Fall kann ein Angreifer etwas uber geheime Werte lernen

Allein mit Programmcode fur Menschen schwierig zu erkennen

Graphen helfen bei der Visualisierung

Hier am Lehrstuhl entwickelt: JOANA

3 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 5: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Der Programmabhangigkeitsgraph(PDG)

4 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 6: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Wie entsteht ein solcher PDG?

Knoten sind Statements und Ausdrucke2 wichtige Arten von Kanten

Datenabhangigkeitskanten (blau), falls der Wert eines Knotens fur dieBerechnung eines anderen Knotens benotigt wirdKontrollabhangigkeitskanten (rot), falls ein Knoten entscheidet, ob einanderer ausgefuhrt wirdIn strukturierten Sprachen wie Java: Eine (if, while, ...)-Bedingungkontrolliert die Statements in dem entsprechenden Rumpf

JOANA kann aus Source- oder Bytecode den PDG generieren

5 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 7: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Wie entsteht ein solcher PDG?

Knoten sind Statements und Ausdrucke2 wichtige Arten von Kanten

Datenabhangigkeitskanten (blau), falls der Wert eines Knotens fur dieBerechnung eines anderen Knotens benotigt wirdKontrollabhangigkeitskanten (rot), falls ein Knoten entscheidet, ob einanderer ausgefuhrt wirdIn strukturierten Sprachen wie Java: Eine (if, while, ...)-Bedingungkontrolliert die Statements in dem entsprechenden Rumpf

JOANA kann aus Source- oder Bytecode den PDG generieren

5 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 8: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Wie entsteht ein solcher PDG?

Knoten sind Statements und Ausdrucke2 wichtige Arten von Kanten

Datenabhangigkeitskanten (blau), falls der Wert eines Knotens fur dieBerechnung eines anderen Knotens benotigt wirdKontrollabhangigkeitskanten (rot), falls ein Knoten entscheidet, ob einanderer ausgefuhrt wirdIn strukturierten Sprachen wie Java: Eine (if, while, ...)-Bedingungkontrolliert die Statements in dem entsprechenden Rumpf

JOANA kann aus Source- oder Bytecode den PDG generieren

5 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 9: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Wie sieht es aus bei mehrerenMethoden?

public i n t m( i n t y , i n t z ) {i n t ca lc = z∗z ;i n t r e s u l t = calc −1;i f ( y < 0) {

r e s u l t = 0 ;}return r e s u l t ;

}

public i n t method ( i n t a , i n t b ) {return m( a , b ) ;

}

6 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 10: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Wie sieht es aus bei mehrerenMethoden?

7 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 11: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Wie sieht es aus bei mehrerenMethoden?

7 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 12: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Wie sieht es aus bei mehrerenMethoden?

Zusatzliche Knoten:

Einfugen eines Call-Knotens

Knoten fur berechnete Parameter

Knoten fur Verwendung des Ruckgabewerts

Zusatzliche Kanten:

Call-Knoten zum Eintrittsknoten der aufgerufenen Funktion (gelb)

Call-Knoten zu den anderen eingefugten Knoten (gelb)

Berechnete Parameter zu den Parameterknoten in der aufgerufenenFunktion

Ruckgabewert in der aufgerufenen Funktion zu dessen Verwendung

Summary-Kanten (lila gestrichelt)

8 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 13: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Wie sieht es aus bei mehrerenMethoden?

Zusatzliche Knoten:

Einfugen eines Call-Knotens

Knoten fur berechnete Parameter

Knoten fur Verwendung des Ruckgabewerts

Zusatzliche Kanten:

Call-Knoten zum Eintrittsknoten der aufgerufenen Funktion (gelb)

Call-Knoten zu den anderen eingefugten Knoten (gelb)

Berechnete Parameter zu den Parameterknoten in der aufgerufenenFunktion

Ruckgabewert in der aufgerufenen Funktion zu dessen Verwendung

Summary-Kanten (lila gestrichelt)

8 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 14: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Summary-Kanten

Abhangigkeiten konnen durch Methodenaufrufe gehen

Problem: Direkte Modellierung algorithmisch schwierig

Losung: Summary-Kanten in aufrufender Funktion fassen solcheAbhangigkeiten zusammen

Verbinden Parameter mit der Verwendung des Ruckgabewerts

9 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 15: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Summary-Kanten

Abhangigkeiten konnen durch Methodenaufrufe gehen

Problem: Direkte Modellierung algorithmisch schwierig

Losung: Summary-Kanten in aufrufender Funktion fassen solcheAbhangigkeiten zusammen

Verbinden Parameter mit der Verwendung des Ruckgabewerts

9 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 16: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Spezielle Anforderungen

Pfade zwischen Knoten zeigen, falls solche existiert

Einfache Navigation zwischen aufrufender und aufgerufener Funktion

Fur Summary-Kanten: Moglichkeit, den zusammengefassten Pfad zusehen

Genaue Ausgestaltung frei

Eigene Ideen willkommen (Wunschkriterien)

10 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 17: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Spezielle Anforderungen

Pfade zwischen Knoten zeigen, falls solche existiert

Einfache Navigation zwischen aufrufender und aufgerufener Funktion

Fur Summary-Kanten: Moglichkeit, den zusammengefassten Pfad zusehen

Genaue Ausgestaltung frei

Eigene Ideen willkommen (Wunschkriterien)

10 20. April 2016 PSE: Programmabhangigkeitsgraphen

Page 18: PSE: Programmabhängigkeitsgraphen - IPD Snelting, ITI WagnerPSE: Programmabhangigkeitsgraphen¨ M. Radermacher, S. Bischof, S. Buchwald, M.Hecker KIT – Universitat des Landes Baden-W¨

Zum selbst ausprobieren

JOANA-Webseite: http://pp.ipd.kit.edu/projects/joana/ mitIFC-Konsole und Graphviewer als Webstart-Anwendungen

Eigenes Programm in *.jar-Datei ubersetzen

IFC-Konsole starten, Datei auswahlen, PDG bauen und speichern

Dann mit Graphviewer anschauen

11 20. April 2016 PSE: Programmabhangigkeitsgraphen