Im Rahmen der Arbeit wird auf Basis des maschinellen Lernens eine automatisierte Methode entwickelt, welche es erlaubt, mithilfe von Bugtrackernachrichten, Sicherheitsschwachstellen in Open Source Projekten zu erkennen. Dies erlaubt es, ökonomische Untersuchungen auf Basis der gewonnenen Daten zu tätigen, um Erkenntnisse zum Thema IT-Sicherheit, Open Source Software und Softwareentwicklung zu gewinnen.
Die Einsatzmöglichkeiten der Erkenntnisse sind im weitem Sinne vielseitig nutzbar. Einerseits geben sie einen Überblick über den Zusammenhang zwischen IT-Sicherheit, Entwicklern und Nutzern von Open Source Software, da diese Bugtrackernachrichten auf ihren Meldungen basieren. Andererseits können diese Erkenntnisse zur Erkennung von Hinweisen auf Sicherheitsschwachstellen in jenen Meldungen genutzt werden, was es Entwicklern erlaubt, diese Meldungen zu priorisieren.
Die Arbeit unterteilt sich in fünf Abschnitte. Zuerst wird im zweiten Kapitel eine Einführung in die Grundlagen der IT-Sicherheit, Open Source Software und des maschinellen Lernens gegeben. Danach wird im dritten Kapitel die aktuelle Forschung zum Thema Sicherheitsschwachstellen in der Softwareentwicklung und ihre Erkennung betrachtet. Auf Basis einer Auswahl an Projekten der Open Source Software Plattform SourceForge wird im vierten Kapitel eine Vorselektion der Bugtrackernachrichten getätigt und diese manuell klassifiziert.
Dies erlaubt es, basierend auf diesen Ergebnissen im fünften Kapitel, das maschinelle Lernen durchzuführen und die Resultate zu validieren. Im sechsten Kapitel wird eine statistische Untersuchung als Beispiel der Anwendung der Ergebnisse der Arbeit getätigt, um Einflussfaktoren in Bezug auf Sicherheitsschwachstellen in der Software zu identifizieren. Zum Abschluss wird im siebten Kapitel ein Fazit verfasst und einen Ausblick auf Ansätze für zukünftige Arbeiten gegeben.
Inhaltsverzeichnis
1. Einleitung
1.1. Motivation
1.2. Ziele und Nutzen
1.3. Struktur der Arbeit
2. Grundlagen
2.1. Grundlagen zur IT-Sicherheit
2.1.1. Definition der IT-Sicherheit
2.1.2. Schwachstellen in der IT-Sicherheit
2.1.3. Schwachstellendatenbanken
2.2. Grundlagen zu Open Source Software und SourceForge
2.2.1. Definition der Open Source Software
2.2.2. SourceForge als Open Source Plattform
2.2.3. Bugtracker
2.2.4. Artefakt
2.3. Grundlagen des maschinellen Lernens
2.3.1. Einführung
2.3.2. Die Datenpräparation als Vorstufe des maschinellen Lernens
2.3.3. Algorithmen zur Textklassifizierung
2.3.4. Ensembles und Stacking
2.3.5. Evaluierung der Ergebnisse
3. Aktuelle Forschung
3.1. Übersicht der Herangehensweisen der aktuellen Forschung
3.2. Analytische Methoden zur Erkennung von IT-Schwachstellen
3.2.1. Mathematische Modelle
3.2.2. Automatische Methoden
3.3. Empirische Untersuchung von Aufwänden in der IT-Sicherheit
3.4. Diskussion der analytischen und empirischen Untersuchungen zur IT-Sicherheit
4. Patternbasierende Selektion und manuelle Klassifizierung von Artefakten
4.1. Datensammlung und Verarbeitung
4.2. Patternbasierende Selektion von Artefakten
4.3. Manuelle Klassifizierung von Sicherheitsschwachstellen
4.4. Analyse und Ergebnisse der manuellen Klassifizierung
4.5. Erfahrungen der manuellen Klassifizierung
4.6. Diskussion der Ergebnisse
5. Maschinelles Lernen
5.1. Problemstellung und Lösungsansätze
5.2. Datenpräparation
5.2.1. Erkennen von Codeartefakten
5.2.2. Generierung von Tokens
5.2.3. Metadaten Tokens
5.3. Durchführung und Ergebnisse des maschinellen Lernens
5.3.1. Wahl des optimalen k für k-NN
5.3.2. Veränderung der Accuracy durch Metadaten im maschinellen Lernen
5.3.3. Evaluierung der Tokenqualität
5.3.4. Evaluierung der Qualität der Algorithmen
5.4. Ensembles und Stacking
5.5. Validierung der Ergebnisse
5.5.1. Validierung auf den restlichen Artefakten der Datenbank
5.5.2. Validierung auf neuen Artefakten
5.6. Diskussion der Ergebnisse
6. Exemplarische statistische Untersuchung von ökonomischen Zusammenhängen
6.1. Problemstellung der statistischen Untersuchung
6.2. Forschungshypothesen und Modellerstellung
6.3. Statistische Auswertung des Modells
6.4. Einflussfaktoren von Security Bugs, Security Feature Request und Security Discussions
6.5. Diskussion der statistischen Ergebnisse
7. Zusammenfassung, Fazit und Ausblick
A. Anhang
A.1. Regular Expressions des patternbased Refinement
A.2. Ergebnisse des maschinellen Lernens mit und ohne Metadaten
A.3. Regressionsergebnisse für Security Bugs, Feature Requests und Security Discussions
Zielsetzung & Themen
Ziel dieser Arbeit ist die Entwicklung einer automatisierten Methode zur Erkennung von Sicherheitsschwachstellen (Security Issues, SI) in Open Source Software-Projekten. Da bisherige Ansätze primär auf Schwachstellendatenbanken basieren, fokussiert sich diese Arbeit auf die Nutzung von Bugtracker-Nachrichten, um ein breiteres Spektrum an Projekten untersuchen zu können. Dies soll ökonomische Analysen der IT-Sicherheit in der Softwareentwicklung ermöglichen.
- Entwicklung eines automatisierten Klassifizierungsverfahrens basierend auf maschinellem Lernen
- Nutzung und Aufbereitung von Bugtracker-Daten der Plattform SourceForge
- Verwendung von Textklassifizierungsmethoden wie Naive Bayes, k-Nearest Neighbour, Decision Tree und Support Vector Machines
- Optimierung der Erkennungsgenauigkeit durch Ensembles und Stacking-Techniken
- Statistische Untersuchung ökonomischer Zusammenhänge zwischen IT-Sicherheitsaufwänden und dem Softwarelebenszyklus
Auszug aus dem Buch
2.1.2 Schwachstellen in der IT-Sicherheit
Unter einer Schwachstelle in der IT-Sicherheit (im folgendem SI für „Security Issue” genannt) ist ein Bug zu verstehen, ein Fehler in der Software, welcher die Verletzung eines der drei Schutzziele der IT-Sicherheit erlaubt. Diesen kann ein Angreifer nutzen, um durch unerlaubte Zugriffe Schaden an einen System zu verursachen, dessen schwere von der Art des Fehlers der Software abhängt. Von einem Zugriff auf unerlaubte unkritische Daten bis zur totalen Übernahme eines Systems durch einen Fehler existiert ein großes Spektrum an Angriffsmöglichkeiten.
Die Entwicklung sicherer Software, wie auch die Behebung von Sicherheitsschwachstellen erfordert Aufwände. Das steigende Bedürfnis von Entwicklern und Nutzern zum Thema IT-Sicherheit kann beispielsweise dadurch erkannt werden, das entsprechende Aspekte zur Diskussion gebracht werden, zum Beispiel durch die folgenden Bugtrackernachrichten aus SourceForge:
„Implement authentication and access control. Users and groups should be managed in preferences, so the preferences system will have to be written first. See the ACal 5.0 planning document for details.”
„When you choose to remember password the program will write your password with no encryption in the botton of the config file.”
„Anyone can export other account private key. ex: Create a new test account and any password, in the [options] - [profile] - [profile manager], I can export anyone the PGP private key, i don’t known the other account password, Im compared it, was right PGP key.. this is a big BUG!!”
Zusammenfassung der Kapitel
1. Einleitung: Beschreibt die zunehmende Bedeutung der IT-Sicherheit und definiert das Ziel der Arbeit, eine automatisierte Methode zur Erkennung von Sicherheitsschwachstellen in Open Source Projekten zu entwickeln.
2. Grundlagen: Vermittelt die theoretischen Konzepte zu IT-Sicherheit, Open Source Plattformen wie SourceForge und die Funktionsweise des maschinellen Lernens als Basis für die automatisierte Klassifizierung.
3. Aktuelle Forschung: Gibt einen Überblick über bestehende analytische und empirische Ansätze zur Erkennung von IT-Schwachstellen und diskutiert deren Grenzen hinsichtlich kleinerer Softwareprojekte.
4. Patternbasierende Selektion und manuelle Klassifizierung von Artefakten: Beschreibt den Prozess der Datengewinnung aus SourceForge, die Vorselektion mittels Pattern und die manuelle Klassifizierung als Grundlage für das maschinelle Lernen.
5. Maschinelles Lernen: Detailliert die technische Durchführung der Klassifizierung, von der Datenpräparation über verschiedene Algorithmen bis hin zur Ensemble-Optimierung und Validierung.
6. Exemplarische statistische Untersuchung von ökonomischen Zusammenhängen: Wendet die gewonnenen Erkenntnisse auf eine statistische Regressionsanalyse an, um Zusammenhänge zwischen SI-Aufkommen und Projektlebenszyklusphasen zu prüfen.
7. Zusammenfassung, Fazit und Ausblick: Fasst die Ergebnisse der Arbeit zusammen, reflektiert über die Herausforderungen bei der Klassifizierung inhomogener Bugtracker-Daten und gibt Ausblicke auf künftige Forschungsansätze.
Schlüsselwörter
IT-Sicherheit, Security Issue, Maschinelles Lernen, Textklassifizierung, SourceForge, Open Source Software, Bugtracker, Datenpräparation, Naive Bayes, k-Nearest Neighbour, Support Vector Machines, Stacking, Softwarelebenszyklus, Ökonomische Untersuchung, Regressionsanalyse
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Bachelorthesis befasst sich mit der automatisierten Erkennung und Messung von IT-Sicherheitsaufwänden in Open Source Softwareprojekten, indem sie Methoden des maschinellen Lernens auf Daten aus Bugtrackern anwendet.
Welche zentralen Themenfelder werden behandelt?
Die Arbeit verknüpft die Bereiche IT-Sicherheit, Softwareentwicklung und Data Mining, wobei ein besonderer Fokus auf dem Bereich „Text Mining“ liegt.
Was ist das primäre Ziel oder die Forschungsfrage?
Ziel ist die Schließung der Forschungslücke bei der Identifikation von Sicherheitsrelevanz in Bugtracker-Nachrichten, um auch kleinere Projekte ohne explizite Schwachstellendatenbanken ökonomisch untersuchen zu können.
Welche wissenschaftliche Methode wird verwendet?
Es wird eine Kombination aus regelbasierter Vorselektion (Pattern-Matching), manueller Klassifizierung und verschiedenen Algorithmen des maschinellen Lernens wie Naive Bayes, SVM und k-NN eingesetzt.
Was wird im Hauptteil behandelt?
Der Hauptteil gliedert sich in die methodische Datenaufbereitung, das Training und die Evaluation der Klassifizierungsmodelle sowie die anschließende empirische Untersuchung ökonomischer Einflussfaktoren mittels Regression.
Welche Schlüsselwörter charakterisieren die Arbeit?
Kernbegriffe sind IT-Sicherheit (Security Issues), maschinelles Lernen, Open Source Software (SourceForge), Textklassifizierung und ökonomische Analyse.
Warum sind Bugtracker eine Herausforderung für das maschinelle Lernen?
Bugtracker enthalten sehr inhomogene Daten: Neben natürlichen Sprachbeschreibungen finden sich Quellcodesegmente, Fehlermeldungen und Stacktraces, die die Sprachqualität und Struktur extrem variieren lassen.
Welchen Einfluss hat die Projektphase auf die Anzahl der Security Issues?
Die statistische Analyse konnte zeigen, dass die relative Anzahl an Security Issues in einer Phase signifikant durch die relative Anzahl an Security Issues der vorangegangenen Phase beeinflusst wird.
- Arbeit zitieren
- Sebastian Wittor (Autor:in), 2016, Automatische Erkennung und Messung von IT-Sicherheitsaufwänden, München, GRIN Verlag, https://www.grin.com/document/538839