Titelaufnahme

Titel
Automated detection of security vulnerabilities using machine learning for automated testing / von Andreas Hübler
VerfasserHübler, Andreas
Begutachter / BegutachterinGrechenig, Thomas ; Schanes, Christian
Erschienen2014
UmfangXIII, 82 Bl. : Ill., graph. Darst.
HochschulschriftWien, Techn. Univ., Dipl.-Arb., 2014
Anmerkung
Zsfassung in dt. Sprache
SpracheEnglisch
DokumenttypDiplomarbeit
Schlagwörter (DE)Maschinelles Lernen / Systemtest / Optimierung / Sicherheit
Schlagwörter (EN)Machine learning / System testing / Optimization / Security
URNurn:nbn:at:at-ubtuw:1-73420 Persistent Identifier (URN)
Zugriffsbeschränkung
 Das Werk ist frei verfügbar
Dateien
Automated detection of security vulnerabilities using machine learning for automated testing [3.72 mb]
Links
Nachweis
Klassifikation
Zusammenfassung (Deutsch)

IT-Sicherheit ist ein wichtiger Aspekt in der Entwicklung von Software-Projekten. Um die Qualitaet der Software zu gewaehrleisten, ist es notwendig, die Sicherheitsmassnahmen gruendlich zu testen. Um mit der wachsenden Menge und Komplexitaet von Programmen zurechtzukommen, muessen auch Sicherheitstests ihre Effizienz durch die Entwicklung von automatisierten Testmethoden steigern. Allerdings generieren automatisierte Testmethoden eine Vielzahl an Daten, deren manuelle Auswertung umstaendlich und zeitaufwaendig ist. Diese Arbeit hat sich das Ziel gesetzt, die Auswertungs- und Analysephase durch die automatische Evaluation der Testresultate zu optimieren und auffaellige Testfaelle zu erkennen. Als Herangehensweise an diese Zielsetzung wurden Methoden aus dem Forschungsgebiet des maschinellen Lernens gewaehlt. Es wurden vier Methoden des ueberwachten und nicht-ueberwachten maschinellen Lernens eingesetzt: kuenstliche neuronale Netze, selbstorganisierende Karten, Support Vector Machine sowie k-Means Clustering. In dieser Arbeit wurden Prototypen der jeweiligen Methoden erstellt und evaluiert, wie gut sie verdaechtiges Verhalten des zu testenden Systems erkennen. Die Resultate zeigen, dass die Methoden aus dem Bereich des maschinellen Lernens gut fuer die Integration in ein bestehendes Sicherheitstest-Programm geeignet sind. Drei der vier getesteten Implementierungen erkannten Schwachstellen mit einer hohen Genauigkeit mit den zusaetzlichen Vorteilen einer unkomplizierten Anwendung, schnellen Laufzeiten und der Moeglichkeit, sie einfach in verschiedene Software-Projekte einzubauen. Integriert in einem Sicherheitstest-Programm koennen dieses Methoden die Auswertung von Sicherheitstests verbessern. Mit ihrer Hilfe kann die manuelle Arbeitszeit bei gleichbleibender Erkennungsrate von Schwachstellen deutlich verringert werden.

Zusammenfassung (Englisch)

IT security is an important aspect of the software development life cycle and thorough security testing is necessary to ensure the quality of the software. To cope with the increasing complexity and amount of software, security testing is required to increase its efficiency through the development of automated testing methods. However, the manual analysis of the results produced by an automated test execution can be very cumbersome and extremely time consuming. The purpose of this thesis is to optimize the analysis phase through the automatic evaluation of test results and detection of suspicious test cases. In this work the optimization task was approached by using methods from the research field of machine learning. To this aim several supervised and unsupervised machine learning methods were investigated: Artificial Neural Network, Self-Organizing Map, Support Vector Machine, c-Means Clustering. Based on the prototypes created in this thesis, the four approaches were evaluated in terms of their applicability in detecting suspicious behaviour of the test subject. The results show that machine learning methods are well suited for an integration into a security testing framework. Three out of four implementations displayed a high vulnerability detection rate while maintaining a straightforward implementation, fast running times and easy adaptation into various projects. Integrated into a security testing system, machine learning methods can improve the analysis phase of the test execution. With their help the amount of manual labor can be decreased without any loss of vulnerability detection rate.