Sharper Crypto-API Analysis: Entwicklung eines integrierten Plugins zur statischen Code-Analyse der Nutzung von Krypto-APIs in C#

  • Untersuchungen haben ergeben, dass bis zu 95% aller verfügbaren Android Apps mindestens einen Programmierfehler bei der Verwendung von sogenannten Krypto-APIs besitzen. Bei korrekter Anwendung dieser APIs können mit ihnen sensible System- und Benutzerdaten vor Angriffen geschützt werden. Bisher gibt es nur wenige verfügbare Tool-basierte Hilfsmittel für Programmierer, welche die Verwendungsfehler identifzieren können. Für die Programmiersprache Java konnten bislang nur sehr wenige dieser spezialisierten Hilfsmittel gefunden werden, darunter das statische Codeanalysetool CogniCrypt. Ein derartiges Werkzeug für C# konnte nicht gefunden werden. Diese Arbeit befasst sich mit der Entwicklung eines Plugins für die IDE Visual Studio zur statischen Codeanalyse namens Sharper Crypto-API Analysis. Sein Hauptziel ist, Programmierern beim Verwenden der .NET Krypto-API mit der Programmiersprache C# zu unterstützen. Durch Beobachtungen im Entwicklungsprozess sollen einerseits die Parallelen undUntersuchungen haben ergeben, dass bis zu 95% aller verfügbaren Android Apps mindestens einen Programmierfehler bei der Verwendung von sogenannten Krypto-APIs besitzen. Bei korrekter Anwendung dieser APIs können mit ihnen sensible System- und Benutzerdaten vor Angriffen geschützt werden. Bisher gibt es nur wenige verfügbare Tool-basierte Hilfsmittel für Programmierer, welche die Verwendungsfehler identifzieren können. Für die Programmiersprache Java konnten bislang nur sehr wenige dieser spezialisierten Hilfsmittel gefunden werden, darunter das statische Codeanalysetool CogniCrypt. Ein derartiges Werkzeug für C# konnte nicht gefunden werden. Diese Arbeit befasst sich mit der Entwicklung eines Plugins für die IDE Visual Studio zur statischen Codeanalyse namens Sharper Crypto-API Analysis. Sein Hauptziel ist, Programmierern beim Verwenden der .NET Krypto-API mit der Programmiersprache C# zu unterstützen. Durch Beobachtungen im Entwicklungsprozess sollen einerseits die Parallelen und Unterschiede zwischen der Java- und der C#-Welt im Umgang mit Krypto-APIs erkennbar werden. Andererseits beschreibt diese Arbeit den erforderlichen Aufwand, um ein hoch spezialisiertes, statisches Codeanalysetool zu entwickeln. Die Beobachtungen zeigen, dass die Unterschiede der Java- und C#-Technologien nicht oberflächlich, sondern hauptsächlich im Detail liegen und daher während der Implementierung des Tools besondere Aufmerksamkeit erfordern. Die Entwicklungsphase selbst zeigt sich als besonders anspruchsvoll, da mit Unsicherheitsfaktoren bezüglich der Funktions- und Verhaltensweisen von Visual Studio umgegangen werden müssen. Das Hauptziel von Sharper Crypto-API Analysis konnte durch die Implementation von vier Hauptfunktionsgruppen umgesetzt werden. Die wichtigste von ihnen ist das Bereitstellen von Codeanalysen, welche ausschließlich auf die Verwendung der .NET Krypto-API spezialisiert sind. Die hier entwickelten Codeanalysen betrachten besonders Fehlerquellen, die Programmierer am häufigsten begehen. Um den Programmierern nachhaltig Wissen bezüglich der Krypto-API zu vermitteln, führt diese Arbeit erweiterte Analyseberichte ein, die zusätzlich über Schwachstellen oder Angriffsszenarien informieren. Besonderheiten und Alleinstellungsmerkmale der anderen Funktionsgruppen werden in dieser Arbeit unter besonderer Berücksichtigung von Implementationshinweisen dokumentiert.show moreshow less
  • Recent researches have shown that up to 95% of all available Andriod Apps contain at least one programming error caused by wrongly applying so-called Crypto-APIs. By using these APIs, applications can ensure protection of sensitive data against attacks. Currently there is a very limited amount of program-based tools available which help programmers identifying their mistakes in using Crypto-APIs. The programming language Java seems to be most prominent as many of the few tools found are specialized for this language. One of them is called CogniCrypt. A specialized tool for the C# programming language however could not be found. The thesis at hand addresses the development of a static code analysis plugin for the IDE Visual Studio called Sharper Crypto-API Analysis. To assist programmers using the .NET Crypto-API in C# shall be its main goal. Observations during the development process shall point out differences between the Java and C# ecosystems in handling Crypto-APIs. FurthermoreRecent researches have shown that up to 95% of all available Andriod Apps contain at least one programming error caused by wrongly applying so-called Crypto-APIs. By using these APIs, applications can ensure protection of sensitive data against attacks. Currently there is a very limited amount of program-based tools available which help programmers identifying their mistakes in using Crypto-APIs. The programming language Java seems to be most prominent as many of the few tools found are specialized for this language. One of them is called CogniCrypt. A specialized tool for the C# programming language however could not be found. The thesis at hand addresses the development of a static code analysis plugin for the IDE Visual Studio called Sharper Crypto-API Analysis. To assist programmers using the .NET Crypto-API in C# shall be its main goal. Observations during the development process shall point out differences between the Java and C# ecosystems in handling Crypto-APIs. Furthermore the work at hand describes the necessary expenditure to develop a static code analysis tool. On the one hand the observations show differences between Java and C#, which only become obvious after a careful examination. Hence, attention must be paid during the implmentation of the tool. On the other hand the development process revealed itsself to be challenging because of unpredictable and undocumented behaviour of the host platform Visual Studio. The main goal of Sharper Crypto-API Analysis could be achieved by implementing four primary function classes. The most important class contains code analyzers which investigate exspecially the usage of the .NET Crypto-API. In particular the analysis specialized at errors which programmers tend to do most commonly. In addition to analyzing bare source code the tool also presents more detailed reports that shall help programmers to understand weaknesses and attacks their code allows to perform and most importantly how to fix the identified issues. Lastly this work will also document the other function classes and point out their features and behaviours with a special consideration on implementation details.show moreshow less

Download full text files

Export metadata

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author:Sebastian Leuer
Fachbereich/Einrichtung:Hochschule Düsseldorf / Fachbereich - Medien
Hochschule Düsseldorf / Fachbereich - Medien / Digitale Vernetzung und Informationssicherheit​
Document Type:Master's Thesis
Year of Completion:2019
Referee:Holger Schmidt, Manfred Wojciechowski
Language:German
Place of publication:Düsseldorf
Pagenumber:128
URN:urn:nbn:de:hbz:due62-opus-16430
Tag:C#; Krypto-API
GND Keyword:Plug in; Statische Analyse
Dewey Decimal Classification:0 Informatik, Informationswissenschaft, allgemeine Werke / 00 Informatik, Wissen, Systeme / 000 Informatik, Informationswissenschaft, allgemeine Werke
Licence (German):Es gilt das deutsche Urheberrecht
Release Date:2019/01/30