JAX | 23. - 27. April 2018, Mainz

Sichere(re) Software durch bessere Abstraktion und statische Analyse

Session
Infos
Donnerstag, 9. November 2017
09:00 - 10:00
Raum:
Atlanta

Neben einem geschärften Bewusstsein für Softwaresicherheit und der Schaffung von organisatorischen Randbedingungen, die eine sichere Entwicklung zulassen, sind auch die Sprachen und Werkzeuge, die wir zur Softwareentwicklung einsetzen, ein relevanter Faktor. Auch heute entstehen viele Sicherheitslücken immer noch aufgrund von Problemen wie Buffer Overruns, kaputter Zeigerarithmetik oder unvollständigen Verzweigungen oder Switch Fallthroughs.
Um hier Fortschritte zu machen, sind bessere Abstraktionen der Schlüssel. In modernen Sprachen und VMs helfen sie, sicherheitsrelevante Fehler wie Buffer Overruns gar nicht erst entstehen zu lassen. Programmannotationen können für die statische Programmanalyse verwendet und ausgewertet werden. Passende Abstraktionen helfen aber auch dabei, die Programmlogik für Fachanwender besser verständlich zu machen. Dadurch wird die Software leichter reviewbar, und Teile der Implementierung können durch Generierung oder Interpretation automatisiert werden, was wiederum hilft, Low-level-Fehler zu vermeiden.
In diesem Vortrag zeigen wir einige Beispiele, wie man mit diesen Mitteln Software robuster und damit sicherer entwickeln kann. Dabei kommen einige Konzepte aus der theoretischen Informatik zur Sprache (bspw. SMT Solver oder Model Checker), wir illustrieren alles aber mit konkreten Beispielen aus der Praxis. Damit sollte der Vortrag für jeden Softwareingenieur nachvollziehbar sein. Wir sprechen beispielhaft Werkzeuge wie Z3, MPS oder Xtext an, betonen aber die konzeptionellen Aspekte.

Alle News der Java-Welt:
Alle News der Java-Welt:

Behind the Tracks of JAX 2018

Agile & Culture
Teamwork & Methoden

Big Data & Machine Learning
Speicherung, Processing & mehr

Clouds, Container & Serverless
Alles rund um Cloud

Core Java & JVM Languages
Ausblicke & Best Practices

DevOps & Continuous Delivery
Deployment, Docker & mehr

Microservices
Strukturen & Frameworks

Web Development & JavaScript
JS & Webtechnologien

Performance & Security
Sichere Webanwendungen

Serverside & Enterprise Java
Spring, JDK & mehr

Digital Transformation & Innovation
Technologien & Vorgehensweisen

Software Architecture
Best Practices