Software Vulnerability Tool Entwicklung einer Anwendung zur Analyse des CVE-Verzeichnisses Vergleichende Analyse der Standards CVE, CPE, CVSS und CWE Developement of an application for analyzing the CVE-dictionary Comparative analysis of the standards CVE, CPE, CVSS and CWE Matthias Scherf Bachelor-Abschlussarbeit Betreuer: Prof. Dr. Konstantin Knorr Trier, 15.12.2015 II Kurzfassung Im Rahmen dieser Arbeit wurde analysiert, ob die von den Standards CVE, CVSS, CWE und CPE bereitgestellten Informationen eine ausreichende Quantität und Qualität besitzen, um als Informationsbasis für eine Sicherheitsanalyse zu dienen. Um diese Überprüfung durchzuführen wurde eine 90 tägige Testphase definiert. In diesem Zeitraum sind 26 unterschiedliche und kostenlos erhältliche Softwareprodukte regelmäßig auf ihre Angreifbarkeit mit Hilfe der Sicherheitsanalyseanwendung Secunia PSI untersucht und aufgetretene Warnungen dokumentiert worden. Die detaillierten Informationen zu den aufgetretenen Warnungen, wie beispielsweise die zugeordneten CVE-IDs, sind auf der SecuniaWebseite hinterlegt und wurden ebenfalls herausgesucht und festgehalten. Während der Testphase wurde zeitgleich eine Anwendung namens Software-VulnerabilityTool entwickelt und implementiert. Diese importiert die öffentlich verfügbaren CVE- und CPE-Verzeichnisse in eine SQLite-Datenbank und stellt Funktionen zur Erzeugung von Statistiken und zur Durchsuchung der Datenbank bereit. Die entwickelte Anwendung bietet zusätzlich die Möglichkeit zur Erstellung eines CPE-Profils. Anhand dieses Profils kann das Software-Vulnerability-Tool die Datenbank nach zutreffenden CVE-Einträgen durchsuchen. Nachdem die Testphase endete, wurden mit dem Software-Vulnerability-Tool alle in der Datenbank vorhandenen CVE-Einträge, die den 26 Testanwendungen zugeordnet sind, gesucht und dokumentiert. Im Vergleich der Ergebnisse des Software-Vulnerability-Tools und des Secunis PSI wird deutlich, dass die von Standards CVE, CVSS, CWE und CPE bereitgestellten Informationen die notwendige Quantität und Qualität besitzen, um als Grundlage für die Entwicklung von Sicherheitsanalyseanwendungen zu dienen. So ist die Anzahl der mit der entwickelten Anwendung gefundenen CVEs höher als die von Secunia. Der Test zeigte jedoch auch, dass das Zusammenspiel der einzelnen Standards Raum für Verbesserungen bietet. Vor allem im Zusammenspiel von CVE und CPE sind viele Probleme festgestellt worden. Secunia PSI weist ebenfalls einige Probleme auf. So wurden bei Secunia falsch zugeordnete CVE-IDs und inkonsistente Bewertungen registriert. Trotz der Problematiken im Zusammenspiel der Standards ist es sinnvoll, das CVEVerzeichnis als Informationsgrundlage für Sicherheitsanwendungen bevorzugt in Betracht zu ziehen, da der CVE-Standard von vielen Herstellern genutzt wird, um ihre Sicherheitslücken eindeutig zu benennen. Dadurch bietet das öffentlich verfügbare CVE-Verzeichnis zurzeit eine der besten Möglichkeiten, kostenlos auf zuverlässige und gut strukturierte Informationen zu Sicherheitslücken zuzugreifen. III Inhaltsverzeichnis 1 Einleitung und Problemstellung ................................................................. 1 1.1 1.2 2 Standards....................................................................................................... 4 2.1 2.2 2.3 2.4 2.5 3 Common Vulnerabilities and Exposures ................................................................. 4 2.1.1 Allgemein .................................................................................................... 4 2.1.2 Unterscheidung Vulnerability und Exposure .............................................. 4 2.1.3 Aufbau ......................................................................................................... 5 2.1.4 Rollen und Aufgaben .................................................................................. 6 2.1.5 Erstellung von CVE Identifiers ................................................................... 7 Common Vulnerability Scoring System.................................................................. 7 2.2.1 Allgemein .................................................................................................... 7 2.2.2 Metriken ...................................................................................................... 8 2.2.3 Berechnung der CVSS Punktzahl ............................................................. 11 2.2.4 CVSS Vector-String .................................................................................. 15 Common Weakness Enumeration ......................................................................... 16 2.3.1 Allgemein .................................................................................................. 16 2.3.2 Unterscheidung Softwareschwachstellen und Softwarelücken ................. 16 2.3.3 Aufbau ....................................................................................................... 16 2.3.4 Entwicklung .............................................................................................. 19 Common Platform Enumeration ........................................................................... 19 2.4.1 Allgemein .................................................................................................. 19 2.4.2 Namensformatierung ................................................................................. 20 Zusammenhang der Standards............................................................................... 21 Testphase ..................................................................................................... 23 3.1 3.2 3.3 4 Zielsetzung .............................................................................................................. 1 Gliederung der Arbeit .............................................................................................. 2 Allgemein .............................................................................................................. 23 Definition der Testparameter................................................................................. 23 3.2.1 Softwareprofil ........................................................................................... 23 3.2.2 Zeitraum .................................................................................................... 27 3.2.3 Vergleichsprodukt ..................................................................................... 27 Ablauf der Testphase ............................................................................................. 30 Software-Vulnerability-Tool ..................................................................... 32 4.1 4.2 4.3 Ziel......................................................................................................................... 32 Anforderungen....................................................................................................... 33 Planung .................................................................................................................. 35 4.3.1 Datenbanktyp und Datenbankschema ....................................................... 35 IV 4.4 5 Ergebnisse ................................................................................................... 44 5.1 5.2 5.3 5.4 5.5 6 Ergebnisse des Secunia PSI................................................................................... 44 Ergebnisse des CVE-Tools .................................................................................... 47 Vergleich der beiden Ergebnisse ........................................................................... 54 5.3.1 Detaillierter Vergleich einzelner Softwareanwendungen ......................... 56 Allgemeine Statistiken zum gespeicherten CVE-Verzeichnis .............................. 61 Interpretation der Ergebnisse................................................................................. 64 Diskussion .................................................................................................... 65 6.1 6.2 6.3 6.4 6.5 6.6 7 4.3.2 CVE-Import-Tool – 1. Ausbaustufe.......................................................... 36 4.3.3 CVE-Research-Tool – 2. Ausbaustufe ...................................................... 38 4.3.4 Software-Vulnerability-Tool – 3. Ausbaustufe ......................................... 40 Entwicklung........................................................................................................... 43 Verwandte Arbeiten .............................................................................................. 65 6.1.1 vFeed ......................................................................................................... 65 6.1.2 CVE und CVSS ......................................................................................... 65 6.1.3 Reviewing the Secunia 2013 Vulnerability Review ................................. 66 6.1.4 Vulnerability management tools for COTS software - A comparison ...... 66 Feedback zu den Standards ................................................................................... 67 6.2.1 Feedback zu CVE...................................................................................... 67 6.2.2 Feedback zu CVSS.................................................................................... 69 6.2.3 Feedback zu CWE ..................................................................................... 69 6.2.4 Feedback zu CPE ...................................................................................... 70 Feedback zu Secunia ............................................................................................. 74 Feedback zur Implementierung des Tools............................................................. 76 6.4.1 Hinweise zur Verarbeitung des CVE-Verzeichnisses ............................... 76 6.4.2 Anmerkung zu Erstellung der Datenbankschemas ................................... 79 Feedback zur Testphase......................................................................................... 79 Erweiterungsmöglichkeiten ................................................................................... 79 6.6.1 Software zur Einstufung der Angreifbarkeit eines Systems ..................... 79 6.6.2 Nutzung eines Datenbankservers .............................................................. 80 6.6.3 Nutzung einer Host-Client Struktur .......................................................... 81 6.6.4 Definition des Temporal Scores und Environmental Scores .................... 82 6.6.5 Durchführung einer Testphase auf Basis anderer Testparameter ............. 82 Fazit.............................................................................................................. 83 Erklärung des Kandidaten ............................................................................... 88 9 Anhang......................................................................................................... 89 9.1 9.2 9.3 Detaillierte Informationen zu Ergebnissen von Secunia PSI ................................ 89 Lastenheft für das Software-Vulnerability-Tool ................................................... 97 9.2.1 Einleitung .................................................................................................. 97 9.2.2 Ziele .......................................................................................................... 97 9.2.3 Anforderungen .......................................................................................... 98 E-Mail-Korrespondenzen .................................................................................... 108 V Abbildungsverzeichnis Abbildung 1, Kapitelzuordnungsdiagramm ....................................................................... 2 Abbildung 2, Detailansicht des Kapitelzuordnungsdiagramms ......................................... 3 Abbildung 3, Vorgehen bei Bestimmung des CVSS-Score ............................................. 13 Abbildung 4, Beispiel für die Berechnung des Base-Score ............................................. 14 Abbildung 5, Beispiel für die Berechnung des Temporal-Score ..................................... 14 Abbildung 6, Beispiel für die Berechnung des Environmental-Score ............................. 15 Abbildung 7, Beispiel für grafische Darstellung einer CWE Liste ................................. 17 Abbildung 8, Beispiel für einen CWE Eintrag ................................................................ 18 Abbildung 9, Zusammenhang der Standards ................................................................... 22 Abbildung 10, Darstellung der Funktionsweise des Softwareprofils ............................... 23 Abbildung 11, Darstellung des Zeitraums der Testphase ................................................ 27 Abbildung 12, Darstellung des Ziels des Software-Vulnerability-Tools ......................... 32 Abbildung 13, Darstellung der verschiedenen Ausbaustufen .......................................... 35 Abbildung 14, Datenbankschema der SQLite Datenbank ............................................... 36 Abbildung 15, Darstellung der Funktionsweise des CVE-Import-Tools ......................... 36 Abbildung 16, Startbildschirm des CVE-Import-Tools ................................................... 37 Abbildung 17, Einstellungen des CVE-Import-Tools ...................................................... 37 Abbildung 18, Importvorgang des CVE-Import-Tools .................................................... 37 Abbildung 19, Darstellung der Funktionsweise des CVE-Research-Tools ..................... 38 Abbildung 20, Startbildschirm des CVE-Research-Tools ............................................... 39 Abbildung 21, Profilerstellung und –bearbeitung im CVE-Research-Tool ..................... 39 Abbildung 22, Detailansicht eines CVE-Eintrags im CVE-Research-Tool ..................... 40 Abbildung 23, Darstellung der Daten des Software-Vulnerability-Tools........................ 41 Abbildung 24, Startbildschirm des Software-Vulnerability-Tools .................................. 41 Abbildung 25, Überarbeitete Einstellungen des Software-Vulnerability-Tools .............. 42 Abbildung 26, Ansicht der inkonsistenten CVEs im Software-Vulnerability-Tool ........ 42 Abbildung 27, Detaillierte Informationen zur Warnung bezüglich .NET-Frameworks .. 45 Abbildung 28, Detaillierte Informationen zur Warnung bezüglich Windows 7 ............. 45 Abbildung 29, Detaillierte Informationen zur Warnung bezüglich Acrobat Reader ....... 46 Abbildung 30, Anteil der unterschiedlichen CPEs........................................................... 61 Abbildung 31, Balkendiagramm der pro Jahr veröffentlichten CVE-Einträge ................ 62 Abbildung 32, Balkendiagramm zu Verteilung des CVSS-Base-Scores ......................... 62 Abbildung 33, Veranschaulichung des Problems der inkonsistenten CVE-Einträge ...... 67 Abbildung 34, Ausschnitt der CPEs der CVE-2015-8480 von NVD-Webseite .............. 68 Abbildung 35, Ausschnitt der CPEs der CVE-2015-8480 aus der XML-Datei............... 68 Abbildung 36, Detailansicht der CVE-2015-8480 im Software-Vulnerability-Tool ....... 69 Abbildung 37, Beispiel für die Baumstruktur des CWE-Verzeichnis ............................. 70 Abbildung 38, Zusammenfassungsproblem unterschiedlicher Versionen zu einer CPE . 71 Abbildung 39, Ausschnitt einer Secunia PSI-Bewertung von einer Warnung ................ 75 Abbildung 40, Ausschnitt der Secunia-Webseite zur Bewertung einer Warnung ........... 75 VI Abbildung 41, Fehlermeldung bei Ausführung der entwickelten Tools .......................... 76 Abbildung 42, Eine reservierte CVE-ID im CVE-Verzeichnis ....................................... 77 Abbildung 43, „Null“-CPE in CVE-2014-4389 im CVE-Verzeichnis ............................ 77 Abbildung 44, CPE-Angabe in beiden XML-Tags identisch .......................................... 77 Abbildung 45, CPE-Angabe nur in XML-Tag „vulnerability-configuration“ ................. 78 Abbildung 46, CPEs in mehrere XML-Tags „vulnerability-configuration“ verteilt ....... 78 Abbildung 47, Erweiterungsmöglichkeit zur Angreifbarkeitseinstufung eines Systems . 80 Abbildung 48, Nutzung eines Datenbankservers anstelle lokaler SQLite-Datenbanken . 80 Abbildung 49, Erweiterungsmöglichkeit zur Einstufung mehrerer Rechner ................... 81 Abbildung 50, Datenbankstruktur zur Speicherung aller CVSS-Metriken ...................... 82 Abbildung 51, Detaillierte Informationen zur Warnung (Mozilla Firefox) ..................... 89 Abbildung 52, Detaillierte Informationen zur Warnung (.NET-Framework) .................. 89 Abbildung 53, Detaillierte Informationen zur Warnung (Internet Explorer) ................... 90 Abbildung 54, Detaillierte Informationen zur Warnung (Windows 7) ............................ 90 Abbildung 55, Detaillierte Informationen zur Warnung (Apple iTunes)......................... 91 Abbildung 56, Detaillierte Informationen zur Warnung (Acrobat Reader) ..................... 92 Abbildung 57, Detaillierte Informationen zur Warnung (Mozilla Firefox) ..................... 92 Abbildung 58, Detaillierte Informationen zur Warnung (JRE)........................................ 93 Abbildung 59, Detaillierte Informationen zur Warnung (Apple iTunes)......................... 93 Abbildung 60, Detaillierte Informationen zur Warnung (Apache OpenOffice) .............. 94 Abbildung 61, Detaillierte Informationen zur Warnung (PuTTY) .................................. 94 Abbildung 62, Detaillierte Informationen zur Warnung (Google Chrome)..................... 95 Abbildung 63, Detaillierte Informationen zur Warnung (Adobe Flash Players) ............. 95 Abbildung 64, Detaillierte Informationen zur Warnung (Windows 7) ............................ 96 Abbildung 65, Ausschnitt des Eintrags CVE-2015-8480 aus der NVD-Webseite ........ 109 VII Tabellenverzeichnis Tabelle 1, Metriken der Base Metric Group ...................................................................... 9 Tabelle 2, Metriken der Temporal Metric Group ............................................................. 10 Tabelle 3, Metriken der Environmental Metric Group .................................................... 11 Tabelle 4, Übersicht aller CVSS Metriken inklusive der numerischen Werte................. 12 Tabelle 5, Erläuterung der Eigenschaften des URI Bindings........................................... 20 Tabelle 6, Zusätzliche Eigenschaften des Formatted String Bindings ............................. 21 Tabelle 7, Zusammenfassung der Standards .................................................................... 22 Tabelle 8, Softwareprofil, welches als Grundlage für die Überprüfung dient ................. 25 Tabelle 9, Fünf Top-Downloadlisten ............................................................................... 26 Tabelle 10, Vergleichsmatrix der drei potentiellen Softwareanwendungen .................... 29 Tabelle 11, Angabe der installierten Version der Anwendungen des Softwareprofils .... 31 Tabelle 12, Von Secunia PSI gemeldete Sicherheitswarnungen...................................... 44 Tabelle 13, Gefundene Sicherheitslücken zum Softwareprofil, Teil 1 ............................ 47 Tabelle 14, Gefundene Sicherheitslücken zum Softwareprofil, Teil 2 ............................ 48 Tabelle 15, Übersicht über CVE-Ergebnisse des .NET-Frameworks 4.0 ........................ 49 Tabelle 16, Übersicht über CVE-Ergebnisse des .NET-Frameworks 4.5 ........................ 49 Tabelle 17, Übersicht über CVE-Ergebnisse des Adobe Flash Players 18.0.0.232 ......... 50 Tabelle 18, Übersicht über CVE-Ergebnisse des Adobe Flash Players 19.0.0.226 ......... 50 Tabelle 19, Übersicht über CVE-Ergebnisse des Acrobat Readers 2015.008.20082 ...... 50 Tabelle 20, Übersicht über CVE-Ergebnisse von Apache OpenOffice 4.1.1 .................. 51 Tabelle 21, Übersicht über CVE-Ergebnisse von Apple iTunes 12.2.2.25 ...................... 51 Tabelle 22, Übersicht über CVE-Ergebnisse von Apple iTunes 12.3.0.44 ...................... 51 Tabelle 23, Übersicht über CVE-Ergebnisse von Google Chrome 44.0.2403.X ............. 51 Tabelle 24, Übersicht über CVE-Ergebnisse von Google Chrome 45.0.2454.101.......... 51 Tabelle 25, Übersicht über CVE-Ergebnisse von Google Chrome 46.0.2490.80............ 51 Tabelle 26, Übersicht über CVE-Ergebnisse der JRE 1.8.0 Update 51 ........................... 52 Tabelle 27, Übersicht über CVE-Ergebnisse des Microsoft Internet Explorer 11.X ....... 52 Tabelle 28, Übersicht über CVE-Ergebnisse von Mozilla Firefox 40.0.2.X ................... 52 Tabelle 29, Übersicht über CVE-Ergebnisse von Mozilla Firefox 40.0.3.X ................... 52 Tabelle 30, Übersicht über CVE-Ergebnisse von Mozilla Firefox 41.0.1.X ................... 53 Tabelle 31, Übersicht über CVE-Ergebnisse von Mozilla Firefox 41.0.2.X ................... 53 Tabelle 32, Übersicht über CVE-Ergebnisse VLC Players 2.2.1..................................... 53 Tabelle 33, Übersicht über CVE-Ergebnisse Windows 7 ................................................ 53 Tabelle 34, Vergleich der Anzahl der gefundenen CVEs ................................................ 54 Tabelle 35, Vergleich der Ergebnisse .............................................................................. 55 Tabelle 36, Vergleich der Ergebnisse des Adobe Flash Player........................................ 56 Tabelle 37, Vergleich der Ergebnisse des Adobe Acrobat Readers ................................. 57 Tabelle 38, Vergleich der Ergebnisse von OpenOffice.................................................... 57 Tabelle 39, Vergleich der Ergebnisse von iTunes ........................................................... 58 Tabelle 40, Vergleich der Ergebnisse von Google Chrome ............................................. 59 VIII Tabelle 41, Vergleich der Ergebnisse der Java Runtime Environment............................ 59 Tabelle 42, Vergleich der Ergebnisse von Mozilla Firefox ............................................. 60 Tabelle 43, Vergleich der Ergebnisse von Windows 7 ................................................... 61 Tabelle 44, Darstellung der am häufigsten genutzten CWE-IDs ..................................... 63 Tabelle 45, Beispielhafte CPE-Erstellung für iTunes ...................................................... 72 Tabelle 46, Beispielhafte CPE-Erstellung für OpenOffice .............................................. 73 Tabelle 47, Beispielhafte CPE-Erstellung für Silverlight ................................................ 73 IX Abkürzungsverzeichnis API CCE CNA COTS-Software CPE CVE CVSS CWE DHS FIRST GAC HS SEDI ICU JSON MFC NCSD NIAC NIST NVD OS OVAL PLOVER PSI SAMATE SCAP SQL URI USM WFN WPF XML Application Programming Interface Common Configuration Enumeration CVE Numbering Authority Commercial off the shelf-Software Common Platform Enumeration Common Vulnerabilities and Exposures Common Vulnerability Scoring System Common Weakness Enumeration United States Department of Homeland Security Forum of Incident Response and Security Teams Global Assembly Cache Homeland Security Systems Engineering and Development Institute International Components for Unicode JavaScript Object Notation Microsoft Foundation Class National Cyber Security Division National Infrastructure Advisory Council U.S. National Institute of Technology National Vulnerability Database Operating System Open Vulnerability and Assessment Language Preliminary List Of Vulnerability Examples for Researchers Personal Software Inspector Software Assurance Metrics and Tool Evaluation Security Content Automation Protocol Structured Query Language Uniform Resource Identifier Unified Security Management well-formed CPE name Windows Presentation Foundation Extensible Markup Language Einleitung und Problemstellung 1 1 Einleitung und Problemstellung „Experten warnen: Adobe Flash Player sofort abschalten!“(Focus 2015), „Sicherheitslücke in Millionen Android Geräten“ (Kuri 2015). Solche Schlagzeilen über kritische Sicherheitslücken machen immer häufiger die Runde in den Nachrichten. Es vergeht kaum ein Tag, an dem nicht eine neue Sicherheitswarnung für ein Softwareprodukt veröffentlicht wird. Selbst für ITAdministratoren wird es dabei immer schwieriger, die Übersicht über die bekannten Sicherheitslücken zu behalten. Sie müssen einschätzen können, für welche auf den IT-Systemen des Unternehmens eingesetzten Anwendungen der Handlungsbedarf am größten ist, und entsprechend handeln. Diese Beurteilung wird aufgrund der Angreifbarkeit durch veröffentlichte Sicherheitslücken einer Softwareversion bestimmt, denn je gefährlicher eine solche Sicherheitslücke ist, umso dringender ist der Handlungsbedarf seitens eines Administrators. Es existieren verschiedene Tools zur Bestimmung der Angreifbarkeit von bestimmten Softwareversionen. Diese verwenden bei ihrer Bewertung unterschiedlichste Informationen zu den Softwareanwendungen. Eine Möglichkeit, mit der solche Tools sich ihre Informationsgrundlage beschaffen könnten, wäre die Nutzung der Standards Common Vulnerabilities and Exposures (CVE), Common Vulnerability Scoring System (CVSS), Common Weakness Enumeration (CWE) und Common Platform Enumeration (CPE), welche frei verfügbar sind. Diese Bachelor-Abschlussarbeit befasst sich mit den Standards und untersucht, ob und wie diese genutzt werden können, um die Angreifbarkeit von Softwareanwendungen anhand von veröffentlichten Softwaresicherheitslücken zu bestimmen. 1.1 Zielsetzung Ziel dieser Arbeit ist die Beantwortung der Frage, ob die frei verfügbaren Standards CVE, CVSS, CWE und CPE als Informationsgrundlage für die Entwicklung von Sicherheitsanalyseanwendungen dienen können. Um eine möglich realistische Beurteilung bezüglich der Qualität und der Quantität zu ermöglichen, sollen für eine Softwareanwendung zugeordnete CVEs mit den Ergebnissen einer bereits auf dem Markt befindlichen Sicherheitssoftware verglichen werden, um daraus aussagekräftige Rückschlüsse zu gewinnen Ein weiteres Ziel dieser Arbeit ist die Entwicklung und Implementierung einer Softwareanwendung, welche die Informationen des öffentlich verfügbaren CVE-Verzeichnisses in eine Datenbank importiert und es ermöglicht diese anhand unterschiedlicher Kriterien nach CVEEinträgen zu durchsuchen. Die Anwendung ermöglicht es des Weiteren CPE-Profile zu erstellen, zu speichern und die Datenbank anhand des Profils nach Sicherheitslücken zu überprüfen. Zusätzlich können verschiedene Statistiken zu allen gespeicherten Datensätzen und zu einem Profil, in Form von Diagrammen in Excel, erzeugt werden. Die zu entwickelnde Software hat den Namen „Software Vulnerability Monitor“ und ist für den Einsatz auf dem Betriebssystem Windows 7 ausgerichtet. Einleitung und Problemstellung 2 Ein weiteres Ziel ist die Dokumentation aller aufgetretenen Probleme und gesammelten Erfahrungen im Umgang mit den Standards. Dadurch sollen Informationen erfasst werden, die beschreiben, worauf bei der Nutzung der Standards geachtet werden muss und welche Lösungsmöglichkeiten es für bestehende Probleme gibt. 1.2 Gliederung der Arbeit Der erste Teil der Arbeit (Kapitel 2) erläutert detailliert die Standards CVE, CVSS, CWE und CPE. Im zweiten Teil (Kapitel 3) wird eine Testphase zur Überprüfung der Qualität und der Quantität der von den Standards verfügbaren Informationen festgelegt. In diesem Abschnitt werden das zu überprüfende Softwareprofil (Kapitel 3.2.1), der Zeitraum (Kapitel 3.2.2) und das Vergleichsprodukt (Kapitel 3.2.3) für die Testphase definiert. Im darauf folgenden Kapitel (Kapitel 4) sind die Ziele und Anforderungen für die Entwicklung eines Tools beschrieben, welches das CVE-Verzeichnis in einer Datenbank speichert und die Möglichkeit bietet die Datenbank anhand von Softwareproduktbezeichnungen nach CVE-Einträgen zu durchsuchen. Es werden außerdem verschiedene Konzepte und Entwicklungsentscheidungen erläutert. Der anschließende Abschnitt (Kapitel 5) enthält die dokumentierten Ergebnisse der Testphase. Dabei werden die Ergebnisse der Vergleichssoftware (Kapitel 5.1) zunächst getrennt von den Ergebnissen der CVE-Suche (Kapitel 5.2) mit Hilfe des entwickelten Tools betrachtet und später miteinander verglichen (Kapitel 5.3). Es werden außerdem auch allgemeinte Informationen, wie beispielsweise die Anzahl der in der Datenbank gespeicherten CVEs dokumentiert (Kapitel 5.4). Der vorletzte Abschnitt (Kapitel 6) erläutert aufgetretene Probleme, Entwicklungsmöglichkeiten und persönliche Erfahrungen im Umgang mit dem CVE-Verzeichnis. Zusätzlich werden verwandte Arbeiten aufgezeigt und gegenüber dieser Arbeit abgegrenzt (Kapitel 6.1). Als letzter Abschnitt dieser Bachelorarbeit (Kapitel 7) wird ein Fazit zu den gesammelten Ergebnissen, Erfahrungen und Problemen bezüglich des Umgangs mit den verschiedenen Standards gezogen. In den Abbildungen 1 und 2 ist der Zusammenhang der jeweiligen Kapitel dargestellt. Abbildung 1, Kapitelzuordnungsdiagramm Einleitung und Problemstellung Abbildung 2, Detailansicht des Kapitelzuordnungsdiagramms 3 Standards 4 2 Standards 2.1 Common Vulnerabilities and Exposures 2.1.1 Allgemein Common Vulnerabilities and Exposures, kurz CVE, ist ein Verzeichnis von Namen für öffentlich bekannte Sicherheitslücken (engl.: Vulnerabilities) und Sicherheitsrisiken (engl.: Exposures). Jeder dieser Namen ist eindeutig, was Rückschlüsse zu einem ganz bestimmten CyberSicherheitsproblem zulässt. Diese Namen werden als CVE Identifiers, CVE names, CVE numbers, CVE-IDs oder auch CVEs bezeichnet. Durch die CVE Identifiers können Daten zwischen verschiedenen Netzwerksicherheitsdatenbanken und –tools einfacher ausgetauscht werden, da alle die gleiche Formatierung, beziehungsweise Definition für Schwachstellen, nutzen. Durch diese Definition wird sichergestellt, dass die verschiedenen Quellen immer über die gleiche Schwachstelle kommunizieren und nicht jeder eine andere Schwachstelle mit einem bestimmten Namen verbindet. Somit besitzt eine Schwachstelle über alle Ressourcen hinweg den gleichen Namen (CVE Identifier) und kann immer als das eine CyberSicherheitsproblem identifiziert werden. Im Jahre 1999 wurde CVE erstmals eingeführt. Die MITRE Corporation 1 verwaltet CVE mit Hilfe der Finanzierung von der National Cyber Security Division. Diese ist eine Abteilung des United States Department of Homeland Security. Vor 1999 nutzte jedes Sicherheitstool eine eigene Datenbank mit eigenen Bezeichnungen und Definition für ein bestimmtes Cyber-Sicherheitsproblem. Dadurch konnten sich die verschiedenen Datenbanken der Sicherheitstools sich nicht untereinander austauschen und ihre Sicherheitsschwachstellen und Sicherheitslücken gegenseitig teilen und ergänzen. Durch die Einführung von CVE war es möglich diese Informationen auf einer definierten Ebene auszutauschen. (The MITRE Corporation 2015a) 2.1.2 Unterscheidung Vulnerability und Exposure Vulnerability In CVE ist ein Fehler in einer Software eine Sicherheitslücke (engl.: Vulnerability), wenn sie es Angreifern auf direktem Wege ermöglicht Zugriff zum System oder zum Netzwerk zu erlangen oder es Angreifern ermöglicht die Sicherheitsrichtlinien eines Systems zu verletzen. 1 Die MITRE Corporation ist durch die Abspaltung vom Massachusetts Institute of Technology (MIT) entstanden und ist eine Organisation zum Betrieb von Forschungsinstituten im Auftrag der Vereinigten Staaten (Wikipedia 2015b) Standards 5 In CVE beschreibt eine Sicherheitslücke somit den Zustand eines Systems oder mehrerer Systeme, wenn es dem Angreifer ermöglicht • • Befehle als ein anderer Benutzer auszuführen, auf Daten zuzugreifen, auf welche er durch die festgelegten Zugriffsbeschränkungen normalerweise nicht zugreifen dürfte, • sich als andere Einheit ausgeben, • einen Denial-Of-Service auszuführen. (The MITRE Corporation 2013a) Beispiel: In einem Rechnernetz ist es möglich gerichtete Broadcast-Anfragen aus dem Internet lokal weiterzuleiten. Dadurch besteht eine direkte Angriffsmöglichkeit auf eine Zieladresse bzw. Zielrechner. Der Angreifer sich kann diese Eigenschaft des Rechnernetzes zunutze machen und mit einem Smurf-Angriff einen Dinial-of-Service bei dem Empfänger auslösen. 2 Exposure In CVE wird ein Sicherheitsrisiko (engl.: Exposure) als ein Systemkonfigurationsproblem oder ein Fehler in einer Software, welches Angreifern Zugriff auf Informationen ermöglicht oder die Möglichkeit bietet in ein System oder Netzwerk einzudringen, angesehen. Diese Sicherheitsrisiken stellen keine direkte Gefährdung dar, können aber ein wichtiger Bestandteil einer erfolgreichen Attacke sein. Außerdem müssen Sicherheitsrisiken die festgelegten Sicherheitsrichtlinien verletzen. Somit beschreibt ein Sicherheitsrisiko den Zustand eines Rechners, welcher keine Sicherheitslücken besitzt, aber • • • es Angreifern ermöglicht informationsgewinnende Aktivitäten zu betreiben, es Angreifern ermöglicht Aktivitäten zu verbergen, ein primärer Einstiegspunkt für Angreifer sein kann, welche versuchen Zugriff zum System oder Daten zu erlangen, • als ein Problem aufgrund der Sicherheitsrichtlinien betrachtet wird. (The MITRE Corporation 2013a) Beispiel: Ein Benutzer nutzt eine Anwendung, welche eine DES-Verschlüsselung mit einem 56 Bit langem Schlüssel nutzt. Durch die Verschlüsselung sind die Informationen nicht direkt angreifbar, jedoch besteht ein sehr großes Sicherheitsrisiko da bereits 2008 DES mit dieser Schlüssellänge via Brute-Force-Angriff in unter 24 Stunden geknackt wurde. (Paar und Schimmler 2008) 2.1.3 Aufbau Jeder CVE-Eintrag ist eindeutig und bezieht sich auf eine bestimmte veröffentlichte CyberSicherheitslücke. Ein CVE Eintrag besteht aus mindestens folgenden Angaben: • • • einer CVE Identifier Nummer (zum Beispiel CVE-2015-0045), eine kurze Beschreibung der Sicherheitsschwachstelle oder Sicherheitslücke, einer oder mehrerer Referenz(en) zur Sicherheitsschwachstelle oder Sicherheitslücke, 2 Bei einem Smurf-Angriff sendet ein Angreifer Ping-Pakete an die gerichtete Broadcast-Adresse eines Netzwerkes. Als Absender wird die Adresse des anzugreifenden Rechners angegeben. Dadurch senden alle an dem Netzwerk angeschlossenen Rechner eine Antwort an den anzugreifenden Rechner, was zu einem Denial-OfService führen kann. (Wikipedia 2015a) Standards 6 Die CVE Identifier Nummer muss in einem festgelegten Format angegeben sein. Zu Beginn jeder Identifier Nummer wird der CVE Präfix angegeben (CVE). Es folgt das Jahr in dem die Sicherheitslücke oder Sicherheitsschwachstelle in das CVE-Verzeichnis aufgenommen wurde (im Beispiel: 2015). Der letzte Teil ist eine eindeutige, aber von den CVE Numbering Authorities, kurz CNA, wählbare, Ziffernfolge. Bis 2014 war diese Ziffernfolge auf genau 4 Stellen (im Beispiel: 0045) festgelegt, weshalb in einem Jahr maximal 9999 CyberSicherheitsprobleme veröffentlicht werden konnten. Doch im Jahre 2014 wurde eine neue Syntax eingeführt, die es falls nötig erlaubt, die Anzahl der Stellen der Ziffernfolge beliebig zu erhöhen. Es existiert seitdem keine Einschränkung der Anzahl der Stellen der Ziffernfolge, außer dass diese immer mindestens 4-stellig sein muss. Die jeweiligen Angaben der CVE Identifier Nummer werden durch einen Bindestrich voneinander getrennt. (The MITRE Corporation 2015d) 2.1.4 Rollen und Aufgaben CVE Numbering Authority CNAs sind unter anderem große Betriebssystemhersteller, wie Microsoft oder Apple, und Forschungsorganisationen. Sie verteilen CVE Identifier Nummern an Forscher und Softwarehersteller, damit bei einer Veröffentlichung einer neu entdeckten Sicherheitsschwachstelle oder – lücke die CVE Identifier Nummer mitangegeben werden kann. Die MITRE Corporation muss nicht direkt über die Details der Schwachstelle oder Lücke informiert werden. Sie versorgt die CNAs mit einem Vorrat an CVE Identifier Nummern, welche diese wiederum verteilen können. Die folgenden Organisationen und Unternehmen nehmen aktuell Rollen als CNAs ein (Stand: Juli 2015): Primary CNA • MITRE Corporation ([email protected]) Softwareanbieter • • • • • • • • • • • • • • • • • • Adobe Systems Incorporated (nur Adobe Probleme) Apple Inc. (nur Apple Probleme) Attachmate (nur Attachmate/Novell/SUSE/NetIQ Probleme) BlackBerry (nur BlackBerry Probleme) Cisco Systems, Inc. (nur Cisco Probleme) Debian GNU/Linux (nur Linux Probleme) EMC Corporation (nur EMC Probleme) FreeBSD (hauptsächlich FreeBSD Probleme) Google Inc. (nur Chrome, Chrome OS, and Android Open Source Project Probleme) Hewlett-Packard Development Company, L.P. (nur HP Probleme) IBM Corporation (nur IBM Probleme) Microsoft Corporation (nur Microsoft Probleme) Mozilla Corporation (nur Mozilla Probleme) Oracle (nur Oracle Probleme) Red Hat, Inc. (nur Linux Probleme) Silicon Graphics, Inc. (nur SGI Probleme) Symantec Corporation (nur Symantec Probleme) Ubuntu Linux (nur Linux Probleme) Standards 7 Third-Party Koordinatoren • CERT/CC • ICS-CERT • JPCERT/CC (The MITRE Corporation 2015b) CVE Editorial Board Im CVE Editorial Board arbeiten verschiedene Personen aus IT-Sicherheitsorganisationen. Diese sind Mitarbeiter von Softwareherstellern, welche kommerzielle ITSicherheitsprogramme von Forschungsinstituten oder von staatlichen Einrichtungen verkaufen. Des Weiteren können die Personen aus der akademischen Arbeitswelt stammen oder bekannte Sicherheitsexperten sein. Die Aufgabe des CVE Editorial Board ist die Überwachung und Überprüfung der Erstellung von neuen CVE-Einträgen. (The MITRE Corporation 2015e) CVE Editor Als CVE Editor fungiert die MITRE Corporation selbst. Die Kernfunktion des CVE Editors ist das Hinzufügen von neuen CVE Identifier zur CVE Liste und die Veröffentlichung der CVE Liste auf der CVE Webseite. (The MITRE Corporation 2015b) 2.1.5 Erstellung von CVE Identifiers Sobald eine neue potentielle Sicherheitslücke oder ein -risiko entdeckt wird, werden diese Informationen von einer CNA einem CVE Identifier zugeordnet. Anschließend fügt der CVE Editor diesen der CVE List (das Verzeichnis der gesamten Sicherheitsschwachstellen und Sicherheitslücken) hinzu. Die CVE List wird über die CVE Webseite veröffentlicht. Die MITRE Corporation fungiert dabei als CVE Editor und Primary CNA. Überwacht wird der gesamte Prozess von dem CVE Editorial Board. (The MITRE Corporation 2015c) 2.2 Common Vulnerability Scoring System 2.2.1 Allgemein 3 Das Common Vulnerability Scoring System, kurz CVSS, ist ein Industriestandard, der den Schweregrad einer Softwaresicherheitslücke oder eines -risikos, sowie die Priorität und Dringlichkeit einer entsprechenden Reaktion darauf, bestimmt. Dies wird durch eine numerische Punktzahl, von 0 [keine Bedrohung] bis 10 [sehr kritisch], widergespiegelt, welche anhand von definierten Kriterien (Metriken) berechnet wird. Die numerische Punktzahl kann in eine von vier qualitativen Darstellungen übersetzt werden. Diese sind: • • • • 3 geringer Schweregrad einer Software-Schwachstelle [offiziell vorgeschlagener CVSS Punktzahlbereich: 0.1 – 3.9] mittlerer Schweregrad einer Software-Schwachstelle [offiziell vorgeschlagener CVSS Punktzahlbereich: 4.0 – 6.9] hoher Schweregrad einer Software-Schwachstelle [offiziell vorgeschlagener CVSS Punktzahlbereich: 7.0 – 8.9] kritischer Schweregrad einer Software-Schwachstelle [offiziell vorgeschlagener CVSS Punktzahlbereich: 9.0 – 10.0] Es existieren drei Versionen von CVSS (Stand November 2015). Die in dieser Arbeit beschriebenen Informationen beziehen sich, falls nicht explizit angegeben, auf die CVSS Version 2. Standards 8 Die qualitativen Darstellungen sollen Unternehmen dabei helfen, ihre SchwachstellenManagement-Prozesse richtig einzuschätzen und priorisieren zu können. So besteht bei einem kritischen Schweregrad einer Software-Schwachstelle ein größerer und schnellerer Handlungsbedarf, als bei einem geringem Schweregrad. Durch CVSS ist es möglich, dass verschiedene, inkompatible Bewertungssysteme ihre Informationen miteinander teilen und austauschen. Das CVSS wurde 2004 von dem National Infrastructure Advisory Council, kurz NIAC, veröffentlicht. Zurzeit wird es von dem Forum of Incident Response and Security Teams, kurz FIRST, verwaltet. CVSS wird durch den gemeinsamen Aufwand von verschiedenen Organisationen wie beispielsweise CERT/CC, Cisco, Microsoft, eBay oder IBM Internet Security Systems weiterentwickelt und gepflegt. (FIRST) 2.2.2 Metriken In CVSS werden die verschiedenen Bewertungskriterien einer Schwachstelle in drei unterschiedliche Metrikgruppen eingeteilt. Diese enthalten jeweils weitere Metriken. Base Metric Group In der Basis-Metrikgruppe (engl.: Base Metric Group) werden die wesentlichen Merkmale einer Schwachstelle zusammengefasst, welche über einen Zeitraum und eine Benutzerumgebung hinweg konstant bleiben. Es existieren zwei Arten von Metriken in dieser Gruppe, die Ausnutzbarkeitsmetriken (engl.: Exploitability metrics) und die Auswirkungsmetriken (engl.: Impact metrics). Die Ausnutzbarkeitsmetriken spiegeln die Leichtigkeit und die benötigten technischen Mittel wieder, welche nötig waren um die Schwachstelle auszunutzen, wohingegen die Auswirkungsmetriken die direkten Konsequenzen einer erfolgreichen Ausnutzung der Schwachstelle repräsentieren. Standards 9 Die Metriken der Base Metric Group werden von Softwareanbietern und SchwachstellenAnalytiker spezifiziert, da diese im Normalfall die exaktesten Informationen über die Eigenschaften einer Schwachstelle besitzen. In Tabelle 1 sind alle Metriken der Base Metric Group mit möglichen Werten, sowie deren Abkürzung für den CVSS Vector-String dargestellt. (Mell et al.) Metrikgruppe Metrik Access Complexity (AC) Authentification (Au) Base High (H) Medium (M) Low (L) Multiple (M) Single (S) None (N) None (N) Partial (P) Complete (C) None (N) Integrity Impact (I) Partial (P) Complete (C) None (N) Availability Impact (A) Partial (P) Complete (C) Impact Metrics Confidentiality Impact (C) Abkürzung AV:L AV:A AV:N AC:H AC:M AC:L Au:M Au:S Au:N C:N C:P C:C I:N I:P I:C A:N A:P A:C Exploitability Metrics Access Vector (AV) Metrikwert Local (L) Adjacent(A) Network (N) Tabelle 1, Metriken der Base Metric Group Temporal Metric Group Die zeitliche Metrikgruppe (engl. Temporal Metric Group) repräsentiert die Merkmale einer Schwachstelle, die sich im Laufe der Zeit ändern können. Dadurch werden die zeitabhängigen Eigenschaften einer Schwachstelle widergespiegelt und die CVSS Punktzahl entsprechend der aktuellen Gefahr angepasst. Die Merkmale der Temporal Metric Group umfassen die Verfügbarkeit von Exploit-Kits oder -Techniken, den Fortschritt bei der Behebung der Schwachstelle und die Bestätigung der technischen Details der Schwachstelle. Die drei Metriken können die CVSS Punktzahl selbst im schlechtesten Fall (kein Exploit notwendig [E:H], keine Lösung zur Schwachstellenbehebung verfügbar [RL:U], Bestätigung der Schwachstelle [RC:C]) nicht erhöhen. So kann eine Veröffentlichung eines Patches die Gefahr, die von einer Schwachstelle ausgeht, verringern, was sich beispielsweise in einer Reduzierung der CVSS Punktzahl von 5,0 auf 4,7 auswirkt. Die Metriken der Temporal Metric Group werden, wie bei der Base Metric Group, von Softwareanbietern und Schwachstellen Analytikern spezifiziert. In Tabelle 2 sind die Metriken der Temporal Metric Group mit möglichen Werten, sowie deren Abkürzung für den CVSS Vector-String, dargestellt. (Mell et al.) Standards Metrikgruppe 10 Metrik Exploitability (E) Temporal Remediation Level (RL) Report Confidence (RC) Metrikwert Unproven (U) Proof-of-Concept (POC) Functional (F) High (H) Not Defined (ND) Official Fix (OF) Temporary Fix (TF) Workaround (W) Unavailable (U) Not Defined (ND) Unconfirmed (UC) Uncorroborated (UR) Confirmed (C) Not Defined (ND) Abkürzung E:U E:POC E:F E:H END RL:OF RL:TF RL:W RL:U RL:ND RC:UC RC:UR RC:C RC:ND Tabelle 2, Metriken der Temporal Metric Group Environmental Metric Group Die umweltbedingte Metrik-Gruppe (engl.: Environmental Metric Group) repräsentiert die Eigenschaften einer Schwachstelle, welche relevant für eine Benutzerumgebung sind. In dieser werden daher die Implementierungseigenschaften und die benutzerumgebungsabhängigen Eigenschaften einer Schwachstelle erfasst. Die Metriken der Environmental Metric Group erlauben einem Analysten Sicherheitskontrollen einzubinden, die verschiedene Konsequenzen mildern können, sowie eine Höher- oder Tieferstufung der Gewichtung eines verwundbaren Systems, abhängig vom Geschäftsrisiko. In der Environmental Metric Group existieren zwei Arten von Metriken, wovon sich eine mit der Benutzerumgebung und die andere mit Sicherheitsbedingungen (engl.: Security Requirements) befasst. Diese Metriken erlauben es Analysten die CVSS Punktzahl gezielt für bestimmte Benutzerumgebungen anzupassen. Wie stark diese Anpassung ausfällt, kann einerseits aufgrund der Wichtigkeit einer betroffenen IT für die Benutzer eines Unternehmens, gemessen in Vertraulichkeit (engl.: confidentiality), Integrität (engl.: integrity) und Verfügbarkeit (engl.: availability), zum anderen durch Bestimmung der Folgen einer erfolgreichen Ausnutzung der Schwachstelle, wie der Anteil der betroffenen PC-Arbeitsplätze und Potential eines Kollateralschadens, festgelegt werden. Erreicht wird dies unter anderem durch eine Neugewichtung der Impact Metrics aus der Base Metric Group. So beeinflusst beispielsweise die in der Environmental Metric Group bestimmte Integrity Requirement die Bewertung des Integrity Impacts der Base Metric Group. Die Metriken der Environmental Metric Group werden von IT-Experten, die für das entsprechende System zuständig sind, spezifiziert, weil diese am besten in der Lage sind die potentielle Auswirkung einer Schwachstelle in der eigenen IT-Infrastruktur zu beurteilen. In Tabelle 3 sind alle Metriken der Environmental Metric Group, mit möglichen Werten, sowie deren Abkürzung für den CVSS Vector-String, dargestellt. (Mell et al.) Standards Metrikgruppe 11 Metrik Collateral Damage Potential (CDP) Environmental Target Distribution (TD) Security Requirements (CR, IR, AR) Metrik-Wert None (N) Low (L) Low-Medium (LM) Medium-High (MH) High (H) Not Defined (ND) None (N) Low (L) Medium (M) High (H) Not Defined (ND) Low (L) Medium (M) High (H) Not Defined (ND) Abkürzung CDP:N CDP:L CDP:LM CDP:MH CDP:H CDP:ND TD:N TD:L TD:M TD:H TD:ND CR:L , IR: L , AR:L CR:M , IR:M , AR:M CR:H , IR:H , AR:H CR:ND , IR:ND , AR:ND Tabelle 3, Metriken der Environmental Metric Group 2.2.3 Berechnung der CVSS Punktzahl Die verschiedenen Metriken aus der Base Metric Group, der Temporal Metric Group und der Environmental Metric Group besitzen alle mehrere fest definierte Metrikwerte, die den ITExperten zur Auswahl stehen. Jeder dieser Metrikwerte besitzt zudem einen festgelegten numerischen Wert, welche für die Berechnung der CVSS Punktzahl von Bedeutung ist. In der Tabelle 4 sind alle Metrikwerte der einzelnen Metriken abgebildet. Standards Metrik Gruppe 12 Metrik Access Complexity (AC) Authentification (Au) Base Confidentiality Impact (C) Availability Impact (A) Exploitability (E) Temporal Remediation Level (RL) Report Confidence (RC) Collateral Damage Potential (CDP) Environmental Target Distribution (TD) Security Requirements (CR, IR, AR) Pflicht Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Nein Proof-of-Concept (POC) 0.9 Nein Functional (F) 0.95 Nein High (H) 1 Nein Not Defined (ND) 1 Nein Official Fix (OF) 0.87 Nein Temporary Fix (TF) 0.90 Nein Workaround (W) 0.95 Nein Unavailable (U) 1 Nein Not Defined (ND) 1 Nein Unconfirmed (UC) 0.9 Nein Uncorroborated (UR) 0.95 Nein Confirmed (C) 1 Nein Not Defined (ND) 1 Nein None (N) 0 Nein Low (L) 0.1 Nein Low-Medium (LM) 0.3 Nein Medium-High (MH) 0.4 Nein High (H) 0.5 Nein Not Defined (ND) 0 Nein None (N) 0 Nein Low (L) 0.25 Nein Medium (M) 0.75 Nein High (H) 1 Nein Not Defined (ND) 1 Nein Low (L) 0.5 Nein Medium (M) 1 Nein High (H) 1.51 Nein Not Defined (ND) 1 Nein Tabelle 4, Übersicht aller CVSS Metriken inklusive der Angabe der numerischen Werte Impact Metrics Integrity Impact (I) Numerischer Wert 0.395 0.646 1 0.35 0.61 0.71 0.45 0.56 0.704 0 0.275 0.660 0 0.275 0.660 0 0.275 0.660 0.85 Exploitability Metrics Access Vector (AV) Metrik-Wert Local (L) Adjacent(A) Network (N) High (H) Medium (M) Low (L) Multiple (M) Single (S) None (N) None (N) Partial (P) Complete (C) None (N) Partial (P) Complete (C) None (N) Partial (P) Complete (C) Unproven (U) Standards 13 Um eine CVSS Punktzahl zu bestimmen, müssen mindestens alle Metrikwerte der Base Metric Group festgelegt sein. Falls dies nicht der Fall ist, gilt die CVSS Punktzahl, oder auch Overall-Score genannt, als nicht bestimmt (engl.: Not Defined). Abbildung 3, Vorgehen bei Bestimmung des CVSS-Score Das in Abbildung 3 definierte Vorgehen bei der Bestimmung der CVSS Punktzahl zeigt die drei unterschiedlichen Scores. Diese sind der • Base-Score, • Temporal-Score, • Environmental-Score. Die jeweiligen Scores können nur berechnet werden, wenn alle Metriken der entsprechenden Metrikgruppe einen Metrikwert definiert haben. (NVD NIST) Standards 14 Berechnung des Base-Score Abbildung 4, Beispiel für die Berechnung des Base-Score Der in Abbildung 4 berechnete Base-Score gilt, falls keine Angaben in der Temporal Metric Group und der Evironmental Metric Group gemacht wurden, auch als Overall-Score. Wenn dies nicht der Fall ist, wird der Base-Score durch die Metriken der Temporal Metric Group und/oder der Environmental Metric Group weiter angepasst. Berechnung des Temporal Score Abbildung 5, Beispiel für die Berechnung des Temporal-Score Bei der Berechnung des Temporal-Score ist zu erkennen, dass dieser nie größer werden kann als der Base-Score, da der höchstmögliche numerische Werte der entsprechenden Metriken (E, RL, RC) 1 ist. Als Folge daraus lautet die Gleichung im schlechtesten Fall „TemporalScore = Base-Score * 1 * 1 * 1“, was gleichbedeutend mit „Temporal-Score = Base-Score“ ist. Falls keine Angaben in der Evironmental Metric Group angegeben wurden, ist der Temporal-Score auch der Overall-Score. Standards 15 Berechnung des Evironmental-Score Abbildung 6, Beispiel für die Berechnung des Environmental-Score Bei der Berechnung des Environmental-Score wird der Score der Auswirkungsmetriken (C, I und A) durch die Metriken der Sicherheitsbedingungen (CR, IR und AR) angepasst. Durch diesen angepassten Score muss dementsprechend auch der Base-Score und der TemporalScore neu berechnet werden. Zur Berechnung des Environmental-Score müssen nun der angepasste Temporal-Score, der numerische Wert aus den beiden Metriken Collatereal Damage Potential und Target Distribution in der in Abbildung 6 angegebenen Formel eingesetzt werden. Falls die Metrikwerte der Environmental Metric Group gesetzt sind, ist der OverallScore immer gleich dem Environemtal-Score. 2.2.4 CVSS Vector-String Die CVSS Punktzahl wird auch als CVSS Vector-String repräsentiert. Dies ist eine, auf ASCII basierende, Zeichendarstellung von CVSS Metriken. Sie wird standardmäßig genutzt um CVSS Metrik Informationen in einer kurzgefassten Form zu speichern oder zu übertragen. Der CVSS Vector String beginnt immer mit der Bezeichnung „CVSS:“ und der aktuellen Version „3.0“. Anschließend können, getrennt durch „/“, die Metrikinformationen angegeben werden. Eine Metrik und der Wert einer Metrik werden immer durch ein oder zwei Buchstaben, welche in Tabelle 1, Tabelle 2, Tabelle 3 und Tabelle 4 zusätzlich angegeben sind, dargestellt. Getrennt werden die Metrik und der Wert durch „:“. (FIRST) Beispiel: folgende Metriken und Metrikwerte sollen im CVSS Vector String angegeben werden: • Attack Vector (AV) -> Network (N) • Attack Complexity (AC) -> Low (L) • Privileges Required (PR) -> High (H) • User Interaction (UI) -> None (N) • Scope (S) -> Unchanged (U) • Confidentiality (C) -> Low (L) • Integrity (I) -> Low (L) • Availability (A) -> None (N) Der daraus resultierende CVSS Vector String: CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:L/U:L/A:N Standards 16 2.3 Common Weakness Enumeration 2.3.1 Allgemein Common Weakness Enumeration, kurz CWE, ist eine Liste, welche bekannte Arten von Softwareschwachstellen enthält. Dieses Verzeichnis soll einerseits als gängige Sprache zur Beschreibung von sicherheitskritischen Softwareschwachstellen (in deren Architektur, Design oder Code) eingesetzt werden und zum anderen als Standardmaßstab für Softwaresicherheitstools dienen, die sich mit diesen Schwachstellen auseinandersetzen. Zusätzlich beinhaltet CWE eine Standardvorgehensweise zur Schwachstellenerkennung, zur Schadensminderung und für Präventionsmaßnahmen. CWE ist eine Gemeinschaftsentwicklung von verschiedenen Organisationen wie Apple, Core Security, HP, IBM, Symantec, U.S. National Institute of Technologie, kurz NIST, und viele weiteren. Die MITRE Corporation unterhält CWE, verwaltet das Kompatibilitätsprogramm (Definition der gängigen Sprachen) und stellt unabhängige technische Unterstützung für die Community bereit. (The MITRE Corporation 2014b) 2.3.2 Unterscheidung Softwareschwachstellen und Softwarelücken CWE ist ein Verzeichnis von Softwareschwachstellen (engl.:software weakness). Eine Softwareschwachstelle kann ein Mangel, eine Störung, ein Bug oder ein anderer Fehler in der Architektur, im Design, oder im Quellcode einer Software sein. Dies sind beispielsweise Buffer Overflows, Format Strings, Code Injection, Authentifizierungsfehler oder Handler Errors. Softwaresicherheitslücken (engl.: software vulnerabilities) werden in CVE aufgelistet und können von Angreifern genutzt werden, um auf direktem Wege Zugriff zum Netzwerk oder zum System zu erlangen. Softwareschwachstellen können zu Softwaresicherheitslücken führen. (The MITRE Corporation 2014c) 2.3.3 Aufbau Die CWE Liste wird in vier unterschiedlichen Darstellungen (engl.: Views) veröffentlicht: • • als Verzeichnis (engl.: Dictionary); Alphabetisch sortierte Ansicht, als Klassifizierungsbaum (engl.: Classification Tree); ermöglicht einen einfacheren Zugriff zu bestimmten Schwachstellen für verschiedene potentielle Nutzer, durch Schichtung der Klassifizierungen, • grafisch (engl.: Graphical); dient zum einfacheren Verständnis individueller Schwachstellen im Klassifizierungsbaum, • aufgeteilt nach Thematik (engl.: Slices-by-Topic); es werden Teilmengen von CWE, anhand der Sprache oder anderen Attributen, bereitgestellt. (The MITRE Corporation 2015f) Standards Abbildung 7, Beispiel für grafische Darstellung einer CWE Liste (The MITRE Corporation) 17 Standards 18 Inhalt einer CWE-Liste Zur eindeutigen Identifizierung eines CWE Eintrags dienen die CWE Identifier, auch CWEIDs oder CWEs genannt. Diese sind in vier Haupttypen organisiert: • • • • Category IDs Compund IDs View IDs Weakness IDs Ein CWE Eintrag beinhaltet folgende Attribute: • • • • • • • • • • • • Name der Schwachstelle Beschreibung des Schwachstellentyps alternative Bedingungen für das Verhalten der Schwachstelle Beschreibung des Verhaltens der Schwachstelle Beschreibung der Ausnutzungsmöglichkeit der Schwachstelle Wahrscheinlichkeit der Ausnutzung der Schwachstelle Beschreibung der Konsequenzen eines Ausnutzung potentielle Schadensminderung Kontenbeziehungsinformationen Quellen Codebeispiele die Programmiersprache/Programmarchitektur CVE identifies der Schwachstellen, für welche die Art der Schwachstelle existiert (Weakness Vulnerabiities) • Referenzen • … (The MITRE Corporation 2014a) Abbildung 8, Beispiel für einen CWE Eintrag (The MITRE Corporation 2015g) Standards 19 2.3.4 Entwicklung Nach der Veröffentlichung von CVE im Jahre 1999 befasste sich die MITRE Corporation erstmals mit der Problematik der Kategorisierung der Softwareschwachstellen. Als Ergebnis wurde eine erste vorläufige Klassifizierung und Kategorisierung von Schwachstellen, Angriffen und Fehler erarbeitet. Diese war zwar ausreichend für CVE, jedoch zu grob, um als Identifizierung und Kategorisierung in der Sicherheitssoftware-Industrie genutzt zu werden. MITRE hat die internen CVE Kategorien überarbeitet und im Rahmen ihrer Mitwirkung im Software Assurance Metrics and Tool Evaluation Projekt, kurz SAMATE, 2005 das Dokument Preliminary List Of Vulnerability Examples for Researchers, kurz PLOVER, veröffentlicht. Dieses besaß über 1500 unterschiedliche Beispiele für reale Schwachstellen, die anhand des CVE-Identifiers eindeutig bestimmt wurden. Durch die Einführung einer Definition für die Beschreibung von Schwachstellen ist, als Weiterentwicklung von PLOVER, das CWEVerzeichnis entstanden. (The MITRE Corporation 2014b) 2.4 Common Platform Enumeration 2.4.1 Allgemein Der offene Industriestandard Common Platform Enumeration, kurz CPE, wurde erstellt, um IT-Systeme, -Plattformen und –Produkte in einem standardisierten Namensformat angeben zu können. Der Grund für die Entwicklung lag darin, dass Spezifizierungssprachen wie CVE ihre definierten Schwachstellen IT-Systemen, -Plattformen und -Produkten zuordnen. Damit die unterschiedlichen CNAs nicht unterschiedliche Formate für diese Angabe benutzen, bietet CPE dafür eine standardisierte Art und Weise, die zusätzlich geeignet für die Interpretation und Verarbeitung durch Maschinen ist. Die aktuellste Version von CPE ist Version 2.3, welche im August 2011 von NIST veröffentlicht wurde. NIST ist außerdem die Hauptverantwortliche Organisation für CPE und stellt das offizielle CPE Verzeichnis zur Verfügung. Entwickelt wurde CPE ursprünglich von der MITRE Corporation, die jedoch die Verantwortung und Entwicklung im Rahmen des Security Content Automation Protocol, kurz SCAP, an NIST übertragen haben. Der CPE-Standard besteht aus vier Spezifikationen für • eine für Maschinen verständliche Namensformatierung für IT-Systeme, -Plattformen und -Produkte (CPE-Names) (Cheikes et al. 2010), • den Abgleich/Vergleich von CPEs (Algorithmen) (Parmelee et al. 2010), • ein Verzeichnis von CPEs (Cichonski et al. 2010), • einer Definitionssprache zur Beschreibung von komplexen Gruppierungen von CPEs, mit dem Ziel IT Plattformen zu beschreiben (Waltermine et al. 2011). NIST bietet auf ihrer Webseite neben den Dokumentationen der Spezifikationen auch ein Verzeichnis von CPEs an. Dieses umfasst 105.297 unterschiedliche Namensbezeichnungen (Stand August 2015). Standards 20 2.4.2 Namensformatierung In CPE sind standardisierte Methoden definiert, welche Namen zu IT Produktklassen zuordnen. Die am einfachsten zu lesende Methode wird well-formed CPE name, kurz WFN genannt. Diese ist eine abstrakte, aber logische, Konstruktion für die Formatierung eines Namens. So ist beispielsweise die WFN-Repräsentation des Microsoft Internet Explorer 8.0.6001 Beta wie folgt: wfn:[part=“a“,vendor=“microsoft“,product=“internet_explorer“,version=“8\.0\.6001“, version=“beta“] Zu Beginn muss das entsprechende Präfix „wfn“ angegeben werden. Die verschiedenen Eigenschaften des Produktes werden innerhalb einer geöffneten und geschlossenen eckigen Klammern aufgezählt, wobei die Eigenschaftsdefinitionen wie Hersteller (engl.: vendor) oder Version (engl.: version) explizit mit angegeben werden. Die CPE Spezifikation zur Namenformatierung definiert außerdem zwei Verfahren zur Zusammenfügung eines WFN zu einer maschinenlesbaren Codierung, ebenso wie das Auseinanderfügen der maschinenlesbaren Codierung zurück zu einem WFN. Einer der Verfahren wird URI Zusammenfügung (engl.: Uniform Resource Identifier binding) genannt. Diese orientiert sich an der URI-Syntax und besitzt folgende Formatierung: cpe:/{part}:{vendor}:{product}:{version}:{update} {part} {vendor} {product} {version} {update} Unterscheidung zwischen Hardware (h), Betriebssystem (o) oder Anwendung (a) Name des Herstellers Name des Produktes Versionsnummer des Produktes Herstellerspezifischer Name zur Charakterisierung eines Updates, Service-Packs oder Status bei Veröffentlichung des Produktes (beispielsweise Beta, Alpha, usw.) Tabelle 5, Erläuterung der Eigenschaften des URI Bindings Das als WFN genannte Beispiel des Microsoft Internet Explorers sieht in der URI Zusammenführung wie folgt aus: cpe:/a:microsoft:internet_explorer:8.0.6001:beta Die URI Zusammenführung wird auch in dem von NIST angebotenen CPE Verzeichnis verwendet. Die zweite Art der Zusammenführung wird Formatierte String Zusammenführung (engl.: formatted string binding) genannt. Im Vergleich zur URI Zusammenführung sind nur geringe Syntaxunterschiede vorhanden. So wird zu Beginn das Präfix nicht mit „cpe:/“ angegeben, sondern mit „cpe:2.3:“. Dadurch kann sofort erkannt werden, um welche Version der von CPE es sich handelt. Das Hauptunterscheidungsmerkmal ist, dass sechs weitere Produktattribute angegeben werden können. Standards {edition} {sw_edition} {target_sw} {target_hw} {language} {other} 21 Vom Hersteller definierte editionsrelevante Anforderungen des Produktes Charakterisierung wie das Produkt zu einem bestimmten Markt oder Zielgruppe zugeschnitten wurde Die anvisierte Softwareumgebung in der das Produkt ausgeführt werden soll Die anvisierte Hardwarearchitektur (beispielsweise x86) auf der das Produkt arbeiten soll Vom Produkt unterstützte Sprachen Alle sonstigen wichtigen hersteller- oder produktspezifischen Beschreibungsmerkmale Tabelle 6, Zusätzliche Eigenschaften des Formatted String Bindings Das WFN Beispiel sieht in der Formatierten String Zusammenführung wie folgt aus: cpe:2.3:a:microsoft:internet_explorer:8.0.6001:beta:*:*:*:*:*:* Das „*“ bedeutet, dass diese Werte nicht definiert wurden. (The MITRE Corporation 2013b) 2.5 Zusammenhang der Standards Die in Kapitel 2.1 bis 2.4 beschriebenen Standards stehen alle in einem Zusammenhang. Der Mittelpunkt der Verbindung stellt die Norm CVE dar. Diese macht es möglich Cybersicherheitslücken und -risiken eindeutig zu benennen, ohne jedoch detaillierte Informationen zu diesen zu nennen. Mit Hilfe eines CVSS-Eintrags kann der Schweregrad der Sicherheitslücke oder des Sicherheitsrisikos bestimmt werden. Ein CVE-Eintrag besitzt entweder keine oder genau eine Zuordnung zu einem CVSS-Eintrag. Dadurch wird eine mehrfache Festlegung des Schweregrads vermieden. Um zu bestimmen in welchem IT-Produkt, -Plattform, oder System das Sicherheitsrisiko, beziehungsweise die Sicherheitslücke, auftritt können dem CVE-Eintrag beliebig viele CPEs zugeordnet werden. Falls eine Sicherheitslücke auf eine Schwachstelle im Produkt zurückzuführen ist, kann diese Schwachstelle mit Hilfe des CWEStandards mit dem CVE-Eintrag verknüpft werden. Standards 22 Zusammenfassung Eine Sicherheitslücke oder ein Sicherheitsrisiko wird durch einen CVE-Eintrag eindeutig benannt, kann des Weiteren durch einen CVSS-Eintrag bewertet, mit Hilfe von CPE-Einträgen bestimmten IT-Produkten, in denen die Schwachstelle auftritt, zugeordnet und durch CWE mit aufgetretenen Schwachstellen verknüpft werden. Abbildung 9, Zusammenhang der Standards Standard verwaltet von aktuelle Version Erklärung The MITRE Corporation keine Versionierung Common Vulnerabilities Standard and Exposures [CVE] Verzeichnis NIST 2.0 Dient zur Eindeutigen Benennungen von Sicherheitslücken und -risiken Common Vulnerability Scoring System [CVSS] FIRST 3.0 Dient zur Einstufung des Schweregrads einer Sicherheitslücke oder eines -risiko Common Weakness Enumeration [CWE] The MITRE Corporation 2.9 Dient zur Definition einer Sprache zur Beschreibung von Softwareschwachstellen NIST Dient zur Definition eines Namensformat zur Benennung von IT-Systemen, -Plattformen und -Produkten Common Platform Enumeration [CPE] Standard Verzeichnis 2.3 Tabelle 7, Zusammenfassung der Standards Testphase 23 3 Testphase 3.1 Allgemein Um zu überprüfen ob die Entwicklung von Sicherheitsanalyseanwendungen auf Basis des CVE-Verzeichnisses sinnvoll ist, muss geprüft werden, ob die im Kapitel Standards beschriebenen Normen eine qualitativ und quantitativ ausreichende Informationsgrundlage für eine zuverlässige Schwachstellenerkennung von installierten Softwareprodukten bieten. Um eine möglichst realistische Beurteilung zu ermöglichen, werden die zur Verfügung stehenden Informationen der Standards mit Ergebnissen einer Software zur Schwachstellenerkennung und -einstufung verglichen. Diese Bewertung umfasst Aspekte wie den Detailgrad der Informationen, die Anzahl der gefundenen Schwachstellen und den Zeitpunkt der Erkennung einer Schwachstelle. Ein abschließendes Fazit zeigt, ob sich die Entwicklung einer Software zur Schwachstellenerkennung und –bewertung auf Basis von CVE, CVSS, CPE und CWE lohnt. 3.2 Definition der Testparameter 3.2.1 Softwareprofil Für den Test wird ein Softwareprofil mit 26 Programmen erstellt, welches als Grundlage der Überprüfung dient. Die einzelnen Programme werden über einen in Kapitel 3.2.2 definierten Zeitraum von einer in Kapitel 3.2.3 definierten Software überwacht. Zusätzlich werden alle CVE-Einträge aus dem frei verfügbaren, offiziellen CVE-Verzeichnis der National Vulnerability Database, kurz NVD, gesichert, die in Verbindung mit einem der Programme des Softwareprofils stehen. Abbildung 10, Darstellung der Funktionsweise des Softwareprofils Testphase 24 Die Programme des Softwareprofils müssen mehrere Kriterien erfüllen, die sich an der definierten Ziel-Benutzerumgebung des zu entwickelnden Software-Vulnerability-Tools orientieren. Die Softwareanwendungen müssen 1. unter Windows 7 installiert und genutzt werden können Grund: Windows 7 ist das zurzeit (Stand Juli 2015) am weitest verbreitete Betriebssystem auf dem deutschen Markt (statista 2015). Durch dieses Kriterium kann die größtmögliche Zielgruppe, Benutzer die Windows 7 als Betriebssystem besitzen, erreicht werden. 2. frei verfügbar sein (Freeware) Grund: Im Rahmen dieser Arbeit werden keine Softwareprodukte für den Vergleich erworben, da keine finanziellen Mittel zur Verfügung stehen. 3. beliebt und weit verbreitet sein Grund: Durch dieses Kriterium kann die größtmögliche Zielgruppe erreicht werden Um dem 3. Kriterium gerecht zu werden, wurden fünf unterschiedliche Top-Downloadlisten, beispielsweise von dem reichweitenstärksten Technikportal im deutschsprachigen Raum, CHIP Online (Wikipedia), oder dem meistbesuchten deutschsprachigen IT-Nachrichtenticker, Heise Online (Wikipedia), als Basis der Auswahl verwendet. In manchen Top-Downloadlisten finden sich Spiele wieder, welche jedoch in dieser Arbeit nicht berücksichtigt wurden, da der Schwerpunkt auf kostenlos erhältlichen Softwareanwendungen für Windows 7 liegt. Bei der Auswahl der 26 Softwareanwendungen aus den fünf Top-Downloadlisten wurde wie folgt vorgegangen: 1. Erstellung von Softwarekategorien Bevor bestimmte Anwendungen für das Softwareprofil der Testphase ausgewählt wurden, sind unterschiedliche Softwarekategorien erstellt worden. Dies dient dem Zweck, dass ein größtmöglicher Funktions- und Anwendungsbereich von den verschiedenen Softwareanwendungen abgedeckt wird. Die Softwarekategorien orientieren sich an den gelisteten Anwendungen und wurden nach eigenem Ermessen definiert. 2. Auswahl der am häufigsten gelisteten Anwendungen je Kategorie Je Kategorie, wurden die am häufigsten und besten gelisteten Anwendungen für das Softwareprofil ausgewählt. Die Anzahl der pro Kategorie ausgewählten Produkte wurde nach eigenem Ermessen bestimmt. Eine Ausnahme bei der Auswahl bildet der Internet Explorer von Microsoft, welcher trotz Abwesenheit in den Downloadlisten aufgenommen wurde. Grund dafür ist die standardmäßige Installation auf einem Windows Betriebssystem, weswegen der Internet Explorer nicht nachträglich heruntergeladen werden muss, aber trotzdem auf einem Großteil der Rechner der Zielgruppe installiert ist. Testphase 25 Kategorie Softwareanwendung installierte Version IrfanView GIMP 4.40 2.8.14 CDBurnerXP 4.5.5.5790 Microsoft Internet Explorer 11.0.9600.17937 Mozilla Firefox 40.0.2.5702 Google Chrome 44.0.2403.155 Adobe Flash Player 18.0.0.232 Microsoft Silverlight 5.1.40728.0 7-Zip 9.20 WinRAR 5.21.0.0 Skype 7.15.0.102 .NET Framework 4.0.30319.34209 Java Runtime Environment Apple iTunes 8.0.51.16 12.2.2.25 KMPlayer 3.9.1.138 VLC Player 2.2.1.0 Editor Notepad++ 6.7.9.2 Office Apache OpenOffice 4.11.9775 Adobe Acrobat Reader 15.008.20082 PDFCreator 2.1.2.884 FileZilla 3.13.0 PuTTY 0.65 Recuva 1.52.0.1086 TrueCrypt 7.1.1.0 AdwCleaner 5.0.0.3 Ccleaner 5.08.5308 Bilddarstellung/-bearbeitung Brennen Browser Browsererweiterung File-Archiver Kommunikation Laufzeitumgebung Multimedia PDF Serverkommunikation Sicherheit/Wiederherstellung Systemoptimierung Tabelle 8, Softwareprofil, welches als Grundlage für die Überprüfung dient Testphase Platz 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 filehippo 4 Ccleaner Adobe Acrobat Reader VLC Player Mozilla Firefox Avast! Free Antivirus BlueStacks App Player Skype Recuva uTorrent Google Chrome WinRAR KMPlayer Internet Download Manager Java Runtime Environment Microsoft Silverlight Speccy Flash Player Apple iTunes Defraggler tucows 5 IrfanView Adobe Acrobat Reader Express Files RegInOut System Utilities Outlook Express Phoenix EDID Designer Apple iTunes Adobe Flash Player Exifer DAEMON Tools Pro PDF Reader for Windows 7 TeamViewer Internet Download Manager PDF Reader for Windows 8 AmazingMIDI PDF Converter Free Karaoke Player Software Time Adjuster CutePDF Printer techtalk 6 Windows Live Essentials Microsoft Silverlight Adobe Flash Player Google Chrome Adobe Shockwave Player Windows Live Messanger Apple iTunes QuickTime Mozilla Firefox Skype TurboTax Bing Bar Adobe Acrobat Reader Google Earth Ccleaner Yahoo Toolbar MS Security Essentials 7-Zip HP Photosmart Essential chip 7 Adobe Flash Player Ccleaner Free Youtube Converter Avira Free Antivirus AdwCleaner Mozilla Firefox Adobe Acrobat Reader VLC Player Google Chrome PDFCreator TubeMate (Android-App) Apple iTunes GIMP CDBurnerXP Apache OpenOffice DAEMON Tools Lite avast Free Antivirus Skype Recuva heise 8 AdwCleaner H2testw Ccleaner TrueCrypt VLC Player IrfanView Mozilla Firefox 7-Zip PuTTY Netspot (für Apple) Disk Drill PDF-Xchange Viewer MediathekView Avira Free Antivirus FileZilla Notepad++ Adobe Flash Player PDFCreator Advanced IP Scanner FileHippo App Manager Shockwave Player K-Lite Codec Pack .NET Framework Malwarebytes Anti-Malware TeamViewer PDF Editor Half-Life DAEMON Tools Lite Sqirlz Morph DWG Viewer MS Office Word Viewer 2003 VLC media Player Ask Toolbar Picasa RealPlayer Safari Spybot - Search Destroy Windows Movie Maker PDF24 Creator AdBlock Plus für Chrome Teamspeak 3 Java Runtime Environment Audacity LicenseCrawler CDBurnerXP Classic Shell Adobe Acrobat Reader Minitool Partition Wizard SpyBot Search & Destroy definierte Kategorien Bilddarstellung/-bearbeitung Brennen Browser Browsererweiterung File-Archiver Kommunikation Laufzeitumgebung Multimedia Editor Office PDF Serverkommunikation Sicherheit/Wiederherstellung Systemoptimierung Tabelle 9, Fünf Top-Downloadlisten, in denen die für das Softwareprofil ausgewählten Anwendungen hervorgehoben sind 4 (FILEHIPPO 2015) [Stand August 2015] (Tucows 2015) [Stand August 2015] 6 (PC Pitstop 2013) [Stand Juni 2013] 7 (CHIP 2015) [Stand August 2015] 8 (heise online 2015)[Stand August 2015} 5 Testphase 27 3.2.2 Zeitraum Damit aussagekräftige Ergebnisse erzielt werden können, muss das Softwareprofil über einen möglichst langen Zeitraum überwacht werden. Für die Sammlung von CVE-Einträgen stellt dies kein Problem dar, da ein CVE-Eintrag ein Veröffentlichungsdatum enthält und das CVEVerzeichnis mit allen jemals veröffentlichten Schwachstellen frei verfügbar ist. Dadurch kann die Prüfung eines Zeitraums im Nachhinein durchgeführt werden und es muss beispielsweise nicht täglich kontrolliert werden, ob für das Softwareprofil zutreffende neue CVEs veröffentlicht wurden. Für ein Vergleichsprodukt ist dies jedoch nicht möglich, da es dort keine Möglichkeit gibt frei auszuwählen, für welchen Zeitraum und welche Anwendung man eine Schwachstellenüberprüfung durchführen möchte. Eine solche Anwendung bezieht sich im Normalfall immer auf die aktuell gegebene Situation. Infolgedessen muss das Ergebnis der Schwachstellesuche des Vergleichsprodukts über den gesamten, definierten Zeitraum in regelmäßigen Abständen überprüft und erfasst werden. Die Testphase beginnt am 23.08.2015 und endet am 20.11.2015. Dadurch wird über einen Zeitraum von 90 Tagen Informationen zu gefundenen, beziehungsweise veröffentlichten Schwachstellen gesammelt. Abbildung 11, Darstellung des Zeitraums der Testphase 3.2.3 Vergleichsprodukt Bei der Festlegung eines Vergleichsprodukts, für die Analyse der Quantität und Qualität von CVE-Einträgen, wurden verschiedene Anwendungen im Internet gesucht. Dabei wurden unterschiedlichste Softwareanwendungen gefunden, wie beispielsweise: • AlienVault Unified Security Management (kostenpflichtig) AlienVault Unified Security Management, kurz AlienVault USM, ist eine umfangreiche Software zur Sicherheitsanalyse der gesamten Unternehmensstruktur. Es bietet unter anderem eine Funktionalität zur Schwachstellenüberprüfung an. Diese stellt fest, ob Anwendungen oder Betriebssysteme Konfigurationsprobleme besitzen oder nicht auf dem aktuellsten Stand sind. AlienVault USM bietet jedoch auch die Möglichkeit Schwachstellen, welche durch CVEs eindeutig identifiziert sind, anhand von CVSS zu priorisieren. (AlienVault) Testphase • • • • • • 28 Cisco Security IntelliShield Alert Manager Service (kostenpflichtig) Cisco Security IntelliShield Alert Manager Service ist eine API-Schnittstelle mit der CISCOs IntelliShield-Datenbank genutzt werden kann, um automatisiert Sicherheitswarnungen und -informationen zu Hard- und Software zu erlangen. Es werden keine Angaben zu genutzten Standards gemacht. Der Cisco Security IntelliShield Alert Manager Service wurde während dieser Arbeit (03.08.2015) aus dem Verkauf genommen und wird nicht mehr angeboten. (Cisco Systems 2009) FileHippo App Manager (kostenlos) Der FileHippo App Manager scannt das IT-System, auf welchem es ausgeführt wird, nach installierten Programmen und überprüft ob Updates für diese bereitstehen. Eine Beurteilung von Sicherheitsschwachstellen existiert nicht. Das Tool ist ausschließlich darauf ausgelegt, Anwendungen auf dem aktuellsten Stand zu halten. (FILEHIPPO) IBM Internet Scanner (kostenpflichtig) IBM Internet Scanner überprüft ein Netzwerk um dort Sicherheitsschwachstellen zu finden und diese zu beheben. Bei der Angabe von Schwachstellen werden unter anderem CVEs genutzt. (IBM) Microsoft Baseline Security Analyzer (kostenlos) Microsoft Baseline Security Analyzer unterstützt IT-Experten bei der Bestimmung des Sicherheitsstatus in einem Unternehmen anhand von MicrosoftSicherheitsempfehlungen. Das Tool erkennt fehlende Sicherheitsupdates und häufig vorkommende Fehler in der Sicherheitskonfiguration von Rechnersystemen. Microsoft Baseline Security Analyzer nutzt keine der in Kapitel 2 erläuterten Standards. (Microsoft) Secunia Personal Software Inspector, kurz Secunia PSI (kostenlos) Secunia PSI untersucht ein IT-System auf installierte Programme und prüft, ob für diese Sicherheitsschwachstellen bekannt sind oder Updates zur Verfügung stehen. Gefundene Schwachstellen für eine Anwendung werden in einer Skala von 0 [keine Gefahr] bis 5 [sehr gefährlich] eingestuft. Secunia PSI ermöglicht es des Weiteren Updates von nicht aktuellen Softwareanwendungen zu installieren. Zu Identifikation von Schwachstellen wird CVE genutzt. (Secunia) SUMo (kostenlos) SUMo scannt den PC nach installierten Softwareanwendungen und prüft ob diese aktuell sind. Dabei wird eine Priorisierung nach der Größe der Updates vorgenommen. Große Updates sind mit Warnzeichen markiert, wohingegen kleine Updates nur einen einem Stern besitzen. Die Updates können direkt über SUMo installiert werden. SUMo nutzt keine der in Kapitel 2 erläuterten Standards. (KC Softwares) Alle kostenpflichtigen Anwendungen konnten nicht als Vergleichsprodukt ausgewählt werden, da für diese Arbeit keine finanziellen Mittel zu Verfügung standen. Von den anderen vier kostenlos erhältlichen Programmen, ist der Microsoft Baseline Security Analyzer zur Überprüfung der Sicherheitskonfigurationen von Rechnern in Netzwerken ausgelegt. Dadurch kann mit diesem kein Softwareprofil überprüft werden. Somit wurden zur Auswahl des Vergleichsproduktes der FileHippo App Manager, Secunia PSI und SUMo miteinander verglichen. Testphase 29 Version Design Einstufung der Kritikalität Grundlage der Einstufung der Kritikalität Scannen nach installierter Software Programme manuell hinzufügen Updates installieren Nutzung von Standards Nutzt herstellereigene Datenbank Werbeanzeigen Secunia PSI SUMo 3.0.0.100004 3.13.10.265 + übersichtlich + übersichtlich + modern (Win. 7-orientiert) + schlicht + schlicht - veraltet (Win. XP-orientiert) FileHippo App Manager 2.0.0.353 + modern (Win. 8-orientiert) - unübersichtlich - zu große Darstellung Ja Nein - feste Fenstergröße Nein Keine Angaben Keine Einstufung Keine Einstufung Ja Ja Ja CVE Ja Nein Ja Ja Ja Keine Angaben Keine Angaben Nein Ja Nein Ja Keine Angaben Ja Ja Tabelle 10, Vergleichsmatrix der drei potentiellen Softwareanwendungen Als Vergleichsprodukt wurde sich aufgrund von zwei Gründen für Secunia PSI entschieden. 1. Secunia PSI ist die einzige der drei Anwendungen, in welcher, die auf einem ITSystem gefundenen Programme, nach bereits bekannten Sicherheitslücken geprüft werden. Dadurch kann das Tool eine Einstufung der Angreifbarkeit von Anwendungen, auf Basis der gefundenen Sicherheitslücken, vornehmen. 2. Secunia PSI ist die einzige der drei Anwendungen die CVEs nutzt. Nur durch die Angabe von CVEs bei den gefundenen Sicherheitsschwachstellen können die Ergebnisse von Secunia PSI mit den Ergebnissen des öffentlich, verfügbarem CVE-Verzeichnis verglichen werden. SUMo und FileHippo App Manager dienen zur Überprüfung der Programmversion und nicht zur Überprüfung der Schwachstellen eines Programms. Vorgehen von Secunia PSI Secunia PSI sammelt von dem System, auf dem es ausgeführt wird, Informationen zu installierten Programmen, wie beispielsweise den Namen einer Anwendung oder die Versionsnummer. Diese Informationen sendet es bei der Schwachstellenüberprüfung zu einem Secunia-Server. Dort überprüft der Server, ob zu der übermittelten Anwendung in der installierten Version Schwachstellen in der Datenbank eingetragen sind und ob bereits eine neuere Version der Anwendung zur Verfügung steht. Der Secunia PSI stellt die zurückgelieferten Informationen in einer Liste dar. Falls Schwachstellen für eine bestimmte Anwendung gefunden wurden, so wird für diese eine Einstufung der Kritikalität in einer Skala von 0 bis 5 vorgenommen. Über ein Untermenü können weitere detaillierte Informationen, wie beispielsweise die CVE-IDs, zu Schwachstellen auf der Secunia-Webseite aufgerufen werden. Über Secunia PSI ist es möglich, nicht aktuelle Anwendungen zu aktualisieren. Testphase 30 3.3 Ablauf der Testphase Die Anwendungen des Softwareprofils, sowie das definierte Vergleichsprodukt Secunia PSI werden alle auf einem zur Verfügung stehenden IT-System installiert. Auf diesem System wird das Betriebssystem Windows 7 ausgeführt. Ab dem Beginn der Testphase wird, in regelmäßigen Abständen von bis zu maximal zwei Tagen, eine Überprüfung der Softwareanwendungen mit Secunia PSI durchgeführt. Falls bei dieser Überprüfung Sicherheitslücken entdeckt werden, müssen diese protokolliert werden. Secunia stellt für einige Sicherheitslücken weitere detaillierte Informationen auf ihrer Webseite zur Verfügung, welche aus Secunia PSI heraus aufgerufen werden kann. Der Vorgang der Überprüfung und Dokumentation der Sicherheitslücken mit Secunia PSI wird für die gesamte Testphase vom 23.08.2015 bis zum 20.11.2015 durchgeführt. Nach der Testphase können die CVE-Einträge für das Softwareprofil gesucht werden. Für diesen Zweck wird während der Testphase ein Tool entwickelt, welches es ermöglichen soll, das frei verfügbare CVE-Verzeichnis in einer lokalen Datenbank abzuspeichern und zu durchsuchen. Da die Suche von CVE-Einträgen unter Angabe von CPEs durchgeführt wird (siehe Kapitel 2.5), müssen die genauen Programmversionen bekannt sein, damit der korrekte CPEEintrag für die Suche bestimmt werden kann. Ohne die Angabe der Version wäre die zutreffende CPE-ID nicht zu bestimmen. Beispiel für Acrobat Reader in Version 11.0.9: cpe:/a:adobe:acrobat_reader:11.0.9 Aus diesem Grund werden vor Beginn der Testphase die Versionen der Softwareanwendungen dokumentiert. Testphase 31 Softwareanwendung .NET Framework 7-Zip Adobe Flash Player Adobe Reader AdwCleaner Ccleaner CDBurnerXP FileZilla Gimp Google Chrome IrfanView iTunes Java Runtime Environment KMPlayer Microsoft Internet Explorer Microsoft Silverlight Mozilla Firefox Notepad++ OpenOffice PDFCreator Putty Recuva Skype TrueCrypt VLC Player WinRAR Angabe der installierten Version in Secunia PSI in Systemsteuerung im Programm 4.5.51209 9.20 18.0.0.232 15.008.20082 5.8.0.5308 4.5.5.5790 3.13.0.0 2.24.24.0 44.0.2403.155 12.2.2.25 8.0.51.16 3.9.1.138 11.0.9600.17937 5.1.40728.0 40.0.2.5702 6.7.9.2 4.11.9775 2.1.2.884 0.65.0.0 1.52.0.1086 7.15.0.102 7.1.1.0 2.2.1.0 5.21.0.0 4.5.51209 9.20.00.00 18.0.0.232 15.008.20082 5.08 4.5.5.5790 3.13.0 2.8.14 44.0.2403.155 4.40 12.2.2.25 8.0.51.16 3.9.1.138 5.1.40728.0 40.0.2 6.7.9.2 4.11.9775 2.1.2 0.65 1.52.0.1086 7.15.0.102 7.1.1.0 2.2.1 5.21 9.20 5.0.0.3 5.08.5308 3.13.0 2.8.14 40.0.2 2.2.1 5.21 Tabelle 11, Angabe der installierten Version der Anwendungen des Softwareprofils Manche Versionsangaben in Secunia PSI und in der Systemsteuerung unterscheiden sich. Falls dies der Fall ist, wurde zusätzlich die Versionsangabe im Programm selbst überprüft. Software-Vulnerability-Tool 32 4 Software-Vulnerability-Tool 4.1 Ziel Das Hauptziel des zu entwickelnden Tools ist es, dass das CVE-Verzeichnis nach CVEEinträgen, denen ein CPE-Eintrag einer Softwareanwendung aus dem Softwareprofil zugeordnet ist, durchsucht werden kann. Abbildung 12, Darstellung des Ziels des Software-Vulnerability-Tools. Das Software-Vulnerability-Tool soll das CVE-Verzeichnis nach CVE-Einträgen durchsuchen, denen ein CPE-Eintrag einer Softwareanwendung aus dem definierten Softwareprofil zugeordnet ist. Um das Hauptziel zu erreichen wurden mehrere Unterziele definiert. Diese sind: • Die Speicherung des CVE-Verzeichnisses inklusive aller CVE-Informationen auf dem ausführenden System Das auf der Webseite der NVD verfügbare CVE-Verzeichnis muss lokal auf dem ausführenden IT-System gespeichert werden, damit dort nach der Speicherung unabhängig vom Internet das CVE-Verzeichnis durchsucht werden kann. • CVE-Informationen auf dem aktuellsten Stand zu halten Da das von der NVD zu Verfügung gestellte, öffentlich frei verfügbare CVEVerzeichnis täglich aktualisiert wird, muss eine Möglichkeit bereitgestellt werden, das lokal gespeicherte CVE-Verzeichnis zu aktualisieren. • Die Unabhängigkeit von CVE-Verzeichnis-Quellen Der Link zum Download des CVE-Verzeichnisses kann sich im Laufe der Zeit ändern, beziehungsweise kann es sein, dass die NVD bei der Bereitstellung des Verzeichnisses von einer anderen Organisation abgelöst wird. Daher muss es möglich sein die Quelle des CVE-Verzeichnisses anzupassen. • Die Suche im lokalen CVE-Verzeichnis Das lokal gespeicherte CVE-Verzeichnis muss anhand von verschiedener Kriterien durchsucht werden können Software-Vulnerability-Tool • • • 33 Die Suche im lokalen CVE-Verzeichnis anhand eines CPE-Profils Das Tool muss es ermöglichen eine Liste von CPE-Einträgen als Profil abzuspeichern und das lokal gespeicherte CVE-Verzeichnis anhand des CPE-Profils zu durchsuchen. Die Möglichkeit zur Anzeige von detaillierten Informationen eines CVE-Eintrags Es muss die Möglichkeit bestehen alle zur Verfügung stehenden Informationen eines CVE-Eintrags aus dem lokal gespeicherten CVE-Verzeichnis anzuzeigen. Diese Informationen sind beispielsweise eine CVSS-Bewertung, zugeordnete CPEs, Referenzen oder die CWE-Id. Die Generierung von Statistiken Im lokal gespeicherten CVE-Verzeichnis befinden sich viele unterschiedliche Informationen über die Standards. Um daraus aussagekräftige Beurteilungen ziehen zu können, muss die Möglichkeit bestehen, Statistiken über das lokal gespeicherte CVEVerzeichnis oder über ein -CPE-Profil zu generieren. 4.2 Anforderungen Um die definierten Ziele zu erreichen werden Anforderungen an das CVE-Tool gestellt und in einem Lastenheft zusammengefasst (siehe Anhang, Kapitel 9.2). Diese legen die Eigenschaften des zu entwickelnden Tools fest. Im Folgenden sind einige der wichtigsten Anforderungen aus dem Lastenheft für das Software-Vulnerability-Tool aufgeführt: (A1) Datenbank Das CVE-Verzeichnis muss in einer lokalen Datenbank gespeichert werden. (A4) Standardorientierte Tabellenstrukturierung Das Datenbankschema muss eine Strukturierung der Tabellen besitzen, welche die Standards CVE, CPE, CVSS und CWE klar voneinander trennt. (A13) Automatischer Download Die zu entwickelnde Software muss nach Aufforderung des Benutzers automatisch die benötigten Importdateien für CVEs und CPEs herunterladen. (A10) Quelle der Importdatei für CVEs II Ein URL-Pfad zu einer Informationsquelle für CVE-Einträge muss zu der Liste der CVEQuellen hinzugefügt werden können. (A30) Quelle der Importdatei für CVEs III Ein URL-Pfad zu einer Informationsquelle für CVE-Einträge muss aus der Liste der CVEQuellen entfernt werden können. (A15) Format der Importdatei für CVEs Die Datei in der die CVE-Einträge enthalten sind muss im XML-Format vorliegen. (A31) CVE-Quellen speichern Die vom Benutzer eingegebenen Quellen für CVE-Einträge müssen auch nach Beenden und erneutem Starten der zu entwickelnden Software weiterhin bestehen. (A25) Datenbank aktualisieren Die zu entwickelnde Software muss dem Nutzer die Möglichkeit bieten, die Datenbank mit wenig Benutzeraufwand aktualisieren zu können. Software-Vulnerability-Tool 34 (A34) CVE-Verzeichnis nach CVE-ID durchsuchen Die zu entwickelnde Software muss die Möglichkeit bieten, das lokale CVE-Verzeichnis unter Angabe einer CVE-ID als Suchkriterium zu durchsuchen. (A35) CVE-Verzeichnis nach bestimmten Softwareprodukt durchsuchen Die zu entwickelnde Software muss die Möglichkeit bieten, das lokale CVE-Verzeichnis unter Angabe eines Softwareprodukts als Suchkriterium zu durchsuchen. (A36) CVE-Verzeichnis ab einem bestimmten Datum durchsuchen Die zu entwickelnde Software muss die Möglichkeit bieten, das lokale CVE-Verzeichnis unter Angabe eines bestimmten Datums als Suchkriterium zu durchsuchen und alle Einträge anzuzeigen, die ab dem eingegebenen Datum veröffentlicht wurden. (A37) CVE-Verzeichnis bis zu einem bestimmten Datum durchsuchen Die zu entwickelnde Software muss die Möglichkeit bieten, das lokale CVE-Verzeichnis unter Angabe eines bestimmten Datums als Suchkriterium zu durchsuchen und alle Einträge anzuzeigen, die bis zu dem eingegebenen Datum veröffentlicht wurden. (A38) Kombination der Suchkriterien Die zu entwickelnde Software muss die Möglichkeit bieten, die in den Anforderung (A34), (A35), (A36) und (A37) definierten Suchkriterien miteinander zu kombinieren, um so eine detailliertere Suche zu ermöglichen. (A41) Detaillierte Anzeige von Suchergebnissen Die zu entwickelnde Software muss die Möglichkeit besitzen eine detaillierte Ansicht eines einzelnen Suchergebnisses der Suchergebnisliste anzuzeigen. (A74) CPE-Profil erstellen Die zu entwickelnde Software muss dem Nutzer die Möglichkeit bieten, ein CPE-Profil zu erstellen. (A62) CVE-Verzeichnis anhand des CPE-Profils durchsuchen Das zu entwickelnde System muss anhand eines CPE-Profils alle CVE-Einträge des CVEVerzeichnisses finden, die mit dem im Profil hinterlegten CPE-Einträgen verknüpft und im hinterlegten Zeitraum, falls vorhanden, veröffentlicht sind. Software-Vulnerability-Tool 35 4.3 Planung Die Softwareentwicklung dieser Arbeit wird in drei Ausbaustufen unterteilt. Dies bietet den Vorteil, dass verschiedene Funktionen, wie beispielsweise der Import und die Aktualisierung des CVE-Verzeichnisses, als eigene Anwendung entwickelt und getestet werden können. Abbildung 13, Darstellung der verschiedenen Ausbaustufen Die erste Ausbaustufe wird CVE-Import-Tool genannt. Dieses Tool bildet die Basis für die weiteren Entwicklungen. Das Ziel des CVE-Import-Tools ist es, dass frei verfügbare CVEVerzeichnis lokal abzuspeichern und aktualisieren zu können. Die Weiterentwicklung der 1. Ausbaustufe ist das CVE-Research-Tool. Es nutzt die bereits implementierten Funktionen des CVE-Import-Tools und muss diese jedoch um mehrere Suchfunktionen und eine Softwareprofilerstellung erweitern. Zusätzlich soll eine detaillierte Ansicht aller Informationen zu einem CVE-Eintrag ermöglicht werden. Die letzte Ausbaustufe bildet das Software-VulnerabilityTool. Dieses greift die Funktion der Profilsuche und der Profilerstellung des CVE-ResearchTools auf. Die Anwendung hat das Ziel zusätzliche Statistiken zu einzelnen Profilen oder der gesamten Datenbank zu erzeugen. Zusätzlich soll das Software-Vulnerability-Tool es ermöglichen ein CPE-Verzeichnis zu importieren, um so eine größere Basis von CPE-Einträgen zur Erstellung von Profilen zu besitzen. 4.3.1 Datenbanktyp und Datenbankschema Es gibt mehrere Möglichkeiten das CVE-Verzeichnis lokal zu sichern. In dieser Arbeit wurde sich für eine SQLite Datenbank entschieden. Dies bietet die Vorteile, dass: • • • • • kein Datenbankserver notwendig ist (keine Client-Server-Architektur notwendig), die gesamte Datenbank sich in einer Datei befindet, wodurch diese einfach verteilt werden kann, die meisten SQL-Sprachbefehle unterstützt werden, im Gegensatz zu beispielsweise XML die Informationen strukturiert in Tabellen gespeichert werden, die Datenbankschnittstellen in vielen Programmiersprachen, wie beispielsweise Java oder C#, vorhanden sind. Wie in der Anforderung (A4) des Kapitels 4.2 beschrieben ist, müssen die Informationen der Standards klar getrennt voneinander sein. Dies hat zur Folge, dass normalerweise vermeidbare Redundanzen der Tabellenstruktur bewusst in Kauf genommen werden. Ein Beispiel hierfür sind die CVSS-Informationen eines CVE-Eintrags. Da ein CVE-Eintrag entweder keine oder genau eine CVSS-Bewertung besitzt, sollten diese Informationen in einer Tabelle erfasst werden. In dem entwickelten Datenbankschema ist dies jedoch bewusst in zwei Tabellen auf- Software-Vulnerability-Tool 36 geteilt worden, um eine strukturierte Trennung der Standards CVE, CVSS, CPE und CWE zu verwirklichen. Abbildung 14, Datenbankschema der SQLite Datenbank 4.3.2 CVE-Import-Tool – 1. Ausbaustufe Die erste Ausbaustufe muss das CVE-Verzeichnis in Form einer XML-Datei von der Webseite der NVD (NVD NIST) herunterladen. Die einzelnen CVE-Einträge der XML-Datei werden nacheinander ausgelesen und über eine selbst entwickelte Schnittstelle in die SQLite Datenbank geschrieben. Falls ein CVE-Eintrag bereits in der Datenbank vorhanden ist, muss dieser Eintrag aktualisiert werden. Der Importvorgang kann vom Benutzer jederzeit gestartet werden, wodurch die Datenbank auf dem aktuellsten Stand gehalten werden kann. Abbildung 15, Darstellung der Funktionsweise des CVE-Import-Tools Software-Vulnerability-Tool Abbildung 16, Startbildschirm des CVE-Import-Tools Abbildung 17, Einstellungen des CVE-Import-Tools Abbildung 18, Importvorgang des CVE-Import-Tools 37 Software-Vulnerability-Tool 38 4.3.3 CVE-Research-Tool – 2. Ausbaustufe Das CVE-Research-Tool basiert auf dem CVE-Import-Tool, weswegen die Funktionsweise des CVE-Imports übernommen wird. Das Tool ermöglicht es, ein Softwareprofil (eine Liste von CPE-Einträgen) zu erstellen und lokal auf dem Rechner als XML-Datei zu sichern. Dieses Profil kann im Nachhinein geladen und bearbeitet werden. Die Hauptfunktion des Tools ist die Suche nach CVE-Einträgen anhand von Suchkriterien wie beispielsweise eine CVE-ID oder anhand eines Softwareprofils. Die Suche nutzt eine selbst entwickelte Schnittstelle zur Interaktion mit der SQLite Datenbank. Abbildung 19, Darstellung der Funktionsweise des CVE-Research-Tools Software-Vulnerability-Tool Abbildung 20, Startbildschirm des CVE-Research-Tools Abbildung 21, Profilerstellung und –bearbeitung im CVE-Research-Tool 39 Software-Vulnerability-Tool 40 Abbildung 22, Detailansicht eines CVE-Eintrags im CVE-Research-Tool 4.3.4 Software-Vulnerability-Tool – 3. Ausbaustufe Aufbauend auf dem CVE-Research-Tool wurde das Software-Vulnerability Tool entwickelt. Dieses besitzt, zu den gesamten bereits im CVE-Research-Tool implementierten Funktionen, die Möglichkeit ein CPE-Verzeichnis, beispielsweise das öffentlich verfügbare Verzeichnis der NVD, zu importieren, um dadurch auf eine größere Basis an CPE-Einträgen zurückgreifen zu können und das in Kapitel 6.2.4 beschriebene Problem zu minimieren. Des Weiteren wurde eine Funktionalität hinzugefügt, die es ermöglicht inkonsistente CVEs, das heißt CVEEinträge, denen keinen CPE-Namen zugeordnet ist, aufzulisten und im Detail zu betrachten. Es können zusätzlich drei verschiedene Statistiken zu einer Datenbank oder zu einem CPEProfil generiert werden. Eine Statistik dient dazu, die Anzahl der pro Jahr veröffentlichten CVE-Einträge grafisch darzustellen. Die Zweite Statistik kann die Verteilung des CVSSScores aufzeigen. Dafür wird der CVSS-Wertebereich von 0 bis 10 in kleinere Bereiche wie beispielsweise von 4 bis 5 aufgeteilt. Anschließend kann für jeden Bereich die Anzahl der CVEs, die einen entsprechenden CVSS-Base-Score besitzen, grafisch dargestellt werden. Die dritte Statistik zeigt die Häufigkeit von verwendeten CWE-IDs. Dies bedeutet, dass die Anzahl der CVEs dargestellt wird, die eine bestimmte CWE-ID nutzen, um so zu verdeutlichen, welche CWE-IDs am häufigsten verwendet werden. Software-Vulnerability-Tool Abbildung 23, Darstellung der ein- und ausgehenden Daten des Software-Vulnerability-Tools Abbildung 24, Startbildschirm des Software-Vulnerability-Tools 41 Software-Vulnerability-Tool Abbildung 25, Überarbeitete Einstellungen des Software-Vulnerability-Tools Abbildung 26, Ansicht der inkonsistenten CVEs im Software-Vulnerability-Tool 42 Software-Vulnerability-Tool 43 4.4 Entwicklung Bei der Realisierung der Tools wurde sich für einen modularen Aufbau der Softwarekomponenten entschieden. Dies bietet den Vorteil, dass verschiedene Softwarekomponenten wiederverwendet, jedoch unabhängig voneinander entwickelt werden können. Die Interaktion der verschiedenen Komponenten ist durch definierte Schnittstellen sichergestellt. Ein Beispiel hierfür ist die Interaktion mit der SQLite Datenbank. Die eigentliche Bibliothek dafür ist die System.Data.SQLite (Hwaci 2015). Da jedoch der Quellcode, welcher die Datenbankinteraktion enthält, wie beispielsweise das Hinzufügen eines CVE-Eintrags in die Datenbank, getrennt vom Rest des Projektes sein soll, wurde eine eigene Klassenbibliothek erstellt. Diese stellt Funktionen und Klassen bereit mit denen unkompliziert mit der SQLite Datenbank mit dem in Kapitel 4.3.1 definierten Datenbankschema interagiert werden kann. Die gesamte Entwicklung wird aufgrund der bereits vorhandenen Programmierkenntnisse in der Programmiersprache C# durchgeführt. Als Entwicklungsumgebung wird Visual Studio 2013 genutzt. Die verschiedenen Ausbaustufen werden alle als Windows Presentation Foundation Projekt, kurz WPF-Projekt, realisiert, welche das .NET-Framework in der Version. 4.5 nutzen. Ergebnisse 44 5 Ergebnisse 5.1 Ergebnisse des Secunia PSI In den 90 Tagen vom 23.08.2015 bis zum 20.11.2015 wurden insgesamt 19 Warnungen/Sicherheitslücken von Secunia PSI registriert und dokumentiert. Falls es möglich war, wurde auf eine Meldung einer Warnung die betroffene Softwareanwendung aktualisiert, sodass die Warnung von Secunia PSI nicht mehr erscheint und neue Sicherheitslücken gemeldet werden konnten. Datum Software bisherige Version sichere Version Kritikalität 23.08.2015 TrueCrypt 7.1.1.0 Product Discontinued End of life 30.08.2015 Mozilla Firefox 40.0.2.5702 40.0.3.5716 4/5 02.09.2015 Google Chrome 44.0.2403.157 45.x End of life 09.09.2015 .NET Framework 4.0.30319.34209 - 3/5 11.0.9600.17937 - 4/5 Windows 7 Enterprise - 4/5 09.09.2015 Microsoft Internet Explorer Windows 7 18.09.2015 Apple iTunes 12.2.2.25 12.3.0 4/5 24.09.2015 Mozilla Firefox 40.0.3.5716 41.x / 38.x (esr) End of life 15.10.2015 Google Chrome 45.0.2454.101 46.x End of life 15.10.2015 Adobe Acrobat Reader 15.8.20082.15957 2015.009.20069 4/5 19.10.2015 Mozilla Firefox 41.0.1.5750 41.0.2 / 38.x (esr) 3/5 23.10.2015 Java Runtime Environment 8.0.51.16 8u65 4/5 23.10.2015 Apple iTunes 12.3.0.44 12.3.1 4/5 02.11.2015 Apache OpenOffice 4.0.97774.500 4.1.2 4/5 05.11.2015 Mozilla Firefox 41.0.2.5765 42.x / 38.x (esr) End of life 10.11.2015 PuTTY 0.65.0.0 0.66.0.0 3/5 11.11.2015 Google Chrome 46.0.2490.80 46.0.2490.86 4/5 11.11.2015 Adobe Flash Player 19.0.0.226 19.0.0.245 4/5 12.11.2015 Windows 7 Windows 7 Enterprise - 4/5 09.09.2015 Tabelle 12, Von Secunia PSI gemeldete Sicherheitswarnungen Handlung keine Möglich Update auf Version 40.0.3.5716 Update auf Version 45.0.2454.101 Update auf Version 4.5.51209 Update auf Version 11.0.9600.18098 Update Update auf Version 12.3.0.44 Update auf Version 41.0.0.5750 Update auf Version 46.0.2490.71 Update auf Version 15.9.20077.29851 Update auf Version 41.0.2.5765 Update auf Version 8.0.650.17 Update auf Version 12.3.1.23 Update auf Version 4.0.9782.500 Update auf Version 42.0.0.5780 Update auf Version 0.66.0.0 Update auf Version 46.0.2490.86 Update auf Version 19.0.0.245 Update Ergebnisse 45 Zu manchen Sicherheitswarnungen von Secunia PSI existieren zusätzliche Informationen auf der Secunia Webseite. Im Folgenden sind beispielhaft Sicherheitswarnungen aufgeführt, bei denen dies zutrifft: 09.09.2015, .NET-Framework Abbildung 27, Detaillierte Informationen zur Warnung bezüglich des –NET-Frameworks am 09.09.2015 9 12.11.2015, Windows 7 Abbildung 28, Detaillierte Informationen zur Warnung bezüglich Windows 7 am 12.11.2015 10 9 https://secunia.com/advisories/66386 https://secunia.com/advisories/67337 10 Ergebnisse 15.10.2015, Acrobat Reader Abbildung 29, Detaillierte Informationen zur Warnung bezüglich Acrobat Reader am 15.10.2015 11 11 https://secunia.com/advisories/66814 46 Ergebnisse 47 5.2 Ergebnisse des CVE-Tools Bei der Suche nach passenden CVEs zu den Anwendungen aus dem Softwareprofil mussten zunächst über das Tool die passenden CPE-Einträge gefunden werden. Falls keine passenden Einträge gefunden wurden, kann davon ausgegangen werden, dass noch keine Sicherheitslücken zu der gesuchten Anwendung veröffentlicht wurden, beziehungsweise die Anwendung im CPE-Verzeichnis fehlt. Der Grund für die Aufführung von vermuteten und gefundenen CPE wird dem in Kapitel 6.2.4 beschriebenen Problem deutlich. In manchen Fällen wurden mehrere unterschiedliche Versionen einer Anwendung geprüft, was daran liegt, dass wenn Secunia PSI eine Schwachstelle gefunden hat, ein Update auf die aktuellste Version der entsprechenden Anwendung gemacht werden musste, damit Secunia neue Schwachstellen für die Softwareanwendung anzeigt. Dadurch wurden im Laufe des Testzeitraums mehrere Versionen überprüft. Softwareanwendung Version .NET Framework 4.0.30319.34209 4.5.51209 7-Zip 9.20 Adobe Flash Player 18.0.0.232 19.0.0.226 19.0.0.245 Adobe Reader AdwCleaner Apache OpenOffice Apple iTunes Ccleaner CDBurnerXP FileZilla Gimp 15.008.20082 15.009.20077 5.0.0.3 4.0.9774.500 / 4.11.9774 4.0.9782.500 / 4.12.9782 12.2.2.25 12.3.0.44 12.3.1.23 5.8.0.5308 4.5.5.5790 3.13.0 2.8.14 gefundene CPE cpe:/a:microsoft:.net_framework:4.0 cpe:/a:microsoft:.net_framework:4.5 cpe:/a:7-zip:7-zip:9.20 cpe:/a:7-zip:7-zip:9.20::~~~~x64~ cpe:/a:adobe:flash_player:18.0.0.232 cpe:/a:adobe:flash_player:19.0.0.226 keine cpe:/a:adobe:acrobat_reader_dc:2015.008.20082::~~ continuous~~~ vermutete CPE cpe:/a:adobe:flash_player:19.0.0.245 Anzahl CVEs 56 41 0 0 23 17 0 Zeitraum der CVEVeröffentlichung 10.04.2012 bis 11.11.2015 22.09.2015 11.11.2015 - 58 15.10.2015 bis 04.11.2015 keine keine cpe:/a:adobe:acrobat_reader_dc:2015.009.20077::~~ continuous~~~ keine 0 - - cpe:/a:apache:openoffice:4.1.1 - 5 28.04.2015 bis 10.11.2015 keine cpe:/a:apple:itunes:12.2 cpe:/a:apple:itunes:12.3.0 keine keine keine keine keine cpe:/a:apache:openoffice:4.1.2 cpe:/a:apple:itunes:12.3.1 cpe:/a:piriform:ccleaner:5.08.5308 cpe:/a:impressum:cdburnerxp:4.5.5.5790 cpe:/a:filezilla:filezilla:3.13.0 cpe:/a:gimp:gimp:2.8.14 Tabelle 13, Gefundene Sicherheitslücken zu Anwendungen aus dem Softwareprofil, Teil 1 0 63 12 0 0 0 0 0 08.05.2015 bis 18.09.2015 23.10.2015 - Ergebnisse Softwareanwendung 48 Version gefundene CPE 44.0.2403.155 44.0.2403.157 45.0.2454.101 Google Chrome 46.0.2490.71 46.0.2490.80 46.0.2490.86 IrfanView 4.40 8.0.51.16 Java Runtime Environment 8.0.650.17 KMPlayer 3.9.1.138 Microsoft Internet Explorer 11.0.9600.17937 11.0.9600.18098 Microsoft Silverlight 5.1.40728.0 40.0.2.5702 40.0.3.5716 Mozilla Firefox 41.0.1.5750 41.0.2.5765 42.0.0.5780 cpe:/a:google:chrome:44.0.2403 cpe:/a:google:chrome:44.0.2403 cpe:/a:google:chrome:45.0.2454.101 keine cpe:/a:google:chrome:46.0.2490.80 keine keine cpe:/a:oracle:jre:1.8.0:update_51 keine keine cpe:/a:microsoft:internet_explorer:11:cpe:/a:microsoft:internet_explorer:11:keine cpe:/a:mozilla:firefox:40.0.2 cpe:/a:mozilla:firefox:40.0.3 cpe:/a:mozilla:firefox:41.0.1 cpe:/a:mozilla:firefox:41.0.2 keine Notepad++ PDFCreator Putty Recuva Skype TrueCrypt VLC Player Windows 7 WinRAR keine keine keine keine keine keine cpe:/a:videolan:vlc_media_player:2.2.1 siehe Übersicht der Ergebnisse für Windows 7 keine 6.7.9.2 2.1.2.884 0.65 1.52.0.1086 7.15.0.102 7.1.1.0 2.2.1 64-Bit 5.21 vermutete CPE cpe:/a:google:chrome:45.0.2454.101 cpe:/a:google:chrome:46.0.2490.86 cpe:/a:irfanview:irfanview:4.40 cpe:/a:oracle:jre:1.8.0:update_650 cpe:/a:kmplayer:kmplayer:3.9.1.138 cpe:/a:microsoft:silverlight:5.1.40728.0 cpe:/a:mozilla:firefox:42.0.0 cpe:/a:notepad_plus_plus:notepad%2b%2b:6.7.9. 2 cpe:/a:pdfforge:pdfcreator:2.1.2 cpe:/a:putty:putty:0.65 cpe:/a:piriform:recuva:1.52 cpe:/a:skype:skype:7.15.0.102 cpe:/a:truecrypt_foundation:truecrypt:7.1.1 cpe:/a:rarlab:winrar:5.21 Tabelle 14, Gefundene Sicherheitslücken zu Anwendungen aus dem Softwareprofil, Teil 2 Zeitraum der CVEVeröffentlichung 15 04.09.2015 15 04.09.2015 10 15.10.2015 01 11.11.2015 0018 21.10.2015 bis 22.10.2015 00341 11.12.2013 bis 11.11.2015 341 11.12.2013 bis 11.11.2015 02 29.08.2015 28 24.09.2015 1 18.10.2015 2 05.11.2015 0- Anzahl CVEs 0000001 25.08.2015 30 09.09.2015 bis 11.11.2015 0- Ergebnisse 49 Für die folgenden Anwendungen existierten bereits CPEs, jedoch stimmte die entsprechende Versionsangabe nicht mit der installierten Version überein. Dies bedeutet, dass für diese Softwareanwendungen noch keine Sicherheitslücken veröffentlicht wurden. Die Anwendungen sind: • • • • • • • • • • • • • • Ccleaner CDBurnerXP FileZilla GIMP IrfanView KMPlayer Microsoft Silverlight Notepad++ PDFCreator PuTTY Recuva Skype TrueCrypt WinRAR Für die restlichen Anwendungen wurden entweder CVE-Einträge gefunden, oder es sind Sonderfälle eingetreten. .NET Framework Durch Secunia PSI wurde am 09.09.2015 ein Update auf die Version 4.5.51209 durchgeführt. Aus diesem Grund wurde die entsprechende CPE dieser Version ebenfalls überprüft. Beim .NET-Framework ist ein Problem aufgetreten, welches im Detail in Kapitel 6.2.4 beschrieben wird. cpe:/a:microsoft:.net_framework:4.0 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 56 8.1 22.09.2010 11.11.2015 Tabelle 15, Übersicht über CVE-Ergebnisse des .NET-Frameworks 4.0 cpe:/a:microsoft:.net_framework:4.5 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 41 8.1 10.04.2012 11.11.2015 Tabelle 16, Übersicht über CVE-Ergebnisse des .NET-Frameworks 4.5 7-Zip In 7-Zip ist ein Sonderfall aufgetreten, in denen eine CPE-ID für die Softwareanwendung existiert, jedoch keine Sicherheitslücken für diesen zugeordnet sind. Dies bedeutet, dass die folgenden CPEs in das von der NVD bereitgestellte CPE-Verzeichnis eingetragen wurden, obwohl keine Sicherheitslücke für diese Version existiert: • cpe:/a:7-zip:7-zip:9.20 • cpe:/a:7-zip:7-zip:9.20::~~~~x64~ Ergebnisse 50 Adobe Flash Player Zu Beginn der Überprüfung wurde der Adobe Flash Player in der Version 18.0.0.232 installiert. Durch verschiedene Aktualisierungen müssen auch die Versionen 19.0.0.226 und 19.0.0.245 geprüft werden. Erwähnenswert ist, dass von den gefundenen 40 Sicherheitslücken 23 einen CVSS-Base-Score von 10.0, und 35 einen CVSS-Base-Score von mindestens 9.3 besitzen. cpe:/a:adobe:flash_player:18.0.0.232 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 23 9.1 22.09.2015 22.09.2015 Tabelle 17, Übersicht über CVE-Ergebnisse des Adobe Flash Players 18.0.0.232 cpe:/a:adobe:flash_player:19.0.0.226 Anzahl CVEs durchschnittlicher CVSS-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 17 9.4 11.11.2015 11.11.2015 Tabelle 18, Übersicht über CVE-Ergebnisse des Adobe Flash Players 19.0.0.226 Adobe Acrobat Reader Durch verschiedene Angaben der Versionsnummer in Secunia PSI (15.8.20082.15957) und der Windows-Systemsteuerung (15.008.20082) war es kompliziert die passende CPE-ID zu bestimmen. Erschwerend kommt hinzu, dass Adobe die Versionsbenennung des AcrobatReaders im Juli verändert hat. Ohne manuelle Suche der CPEs in der Profilerstellung des Software-Vulnerability-Tools, wäre es nicht möglich gewesen die CPE-ID korrekt zu bestimmen. cpe:/a:adobe:acrobat_reader_dc:2015.008.20082::~~continuous~~~ Anzahl CVEs 58 durchschnittlicher CVSS-Base-Score 8.3 früheste Veröffentlichung eines CVE 15.10.2015 späteste Veröffentlichung eines CVE 04.11.2015 Tabelle 19, Übersicht über CVE-Ergebnisse des Adobe Acrobat Readers 2015.008.20082 AdwCleaner Zum Programm AdwCleaner wurden keine passenden CPE-IDs gefunden. Dies bedeutet, dass entweder noch nie Sicherheitslücken für AdwCleaner veröffentlicht wurden, oder dass die Anwendung generell nicht im CVE/CPE-Verzeichnis erfasst wird. Apache OpenOffice Ähnlich wie beim Adobe Acrobat Reader war es nur möglich die korrekte CPE-ID manuell im Software-Vulnerability-Tool zu bestimmen, da Secunia PSI (4.0.9774.500) und die Windows Systemsteuerung (4.11.9774) unterschiedliche Versionsangaben für Apache OpenOffice besitzen. Die Versionsnummer in der CPE lautet 4.1.1. cpe:/a:apache:openoffice:4.1.1 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 5 6.3 28.04.2015 10.11.2015 Ergebnisse 51 Tabelle 20, Übersicht über CVE-Ergebnisse von Apache OpenOffice 4.1.1 Apple iTunes Die gefundenen CPEs für Apples iTunes sind bezüglich der Versionsnummer nicht so genau wie die Versionsangabe in Secunia PSI oder der Windows Systemsteuerung. So wurde für die Version 12.2.2.25 nur ein CPE-Eintrag mit der Versionsnummer 12.2 und für die Version 12.3.0.44 nur ein Eintrag mit der Versionsnummer 12.3.0 gefunden. cpe:/a:apple:itunes:12.2 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 63 7.8 28.04.2015 10.11.2015 Tabelle 21, Übersicht über CVE-Ergebnisse von Apple iTunes 12.2.2.25 cpe:/a:apple:itunes:12.3.0 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 12 7.0 23.10.2015 23.10.2015 Tabelle 22, Übersicht über CVE-Ergebnisse von Apple iTunes 12.3.0.44 Google Chrome CPEs von Google Chrome sind in der Angabe der Version sind nicht immer so detailliert wie die Versionsangabe in Secunia PSI oder der Windows Systemsteuerung. So konnte beispielsweise für die Versionen 44.0.2403.155 und 44.0.2403.157 nur die gleiche CPE-Version manuell zugeordnet werden: 44.0.2403. Anders ist es bei der Version 45.0.2454.101. In diesem Fall existiert eine CPE-ID mit der genauen Versionsangabe: „cpe:/a:google:chrome:45.0.2454.101“. cpe:/a:google:chrome:44.0.2403 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 15 6.5 04.09.2015 04.09.2015 Tabelle 23, Übersicht über CVE-Ergebnisse von Google Chrome 44.0.2403.X cpe:/a:google:chrome:45.0.2454.101 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 10 7.0 15.10.2015 15.10.2015 Tabelle 24, Übersicht über CVE-Ergebnisse von Google Chrome 45.0.2454.101 cpe:/a:google:chrome:46.0.2490.80 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 1 7.3 11.11.2015 11.11.2015 Tabelle 25, Übersicht über CVE-Ergebnisse von Google Chrome 46.0.2490.80 Ergebnisse 52 Java Runtime Environment Die im Software-Vulnerability-Tool manuell gesuchte, passende CVE-ID besitzt in der Versionsnummer andere Angaben als die Versionsnummer in Secunia PSI und der Windows Systemsteuerung. Ohne manuelles Bestimmen der CPE-ID wäre eine korrekte Zuordnung nicht möglich gewesen. Version: 8.0.51.16, CPE: cpe:/a:oracle:jre:1.8.0:update_51 cpe:/a:oracle:jre:1.8.0:update_51 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 18 7.2 21.10.2015 22.10.2015 Tabelle 26, Übersicht über CVE-Ergebnisse der Java Runtime Environment 1.8.0 Update 51 Microsoft Internet Explorer Ähnlich wie bei dem .NET-Framework ist auch bei Microsofts Internet Explorer die Versionsangabe in CPEs viel zu ungenau, weswegen eine Zuordnung von Sicherheitslücken zu bestimmten Versionen des Internet Explorers nur bedingt möglich ist. Alle Sicherheitslücken der Internet Explorer Versionen 11.X werden in der CPE „cpe:/a:microsoft:internet_explorer:11:-“ erfasst. cpe:/a:microsoft:internet_explorer:11:Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 341 8.6 11.12.2013 13.11.2015 Tabelle 27, Übersicht über CVE-Ergebnisse des Microsoft Internet Explorer 11.X Mozilla Firefox Die für Mozilla Firefox gefundenen CPEs, besitzen nicht so detaillierte Versionsnummern wie die Angaben in Secunia PSI oder der Windows Systemsteuerung. Jedoch sind die Angaben detailliert genug, um genau zwischen den verschiedenen Firefox Versionen unterscheiden zu können. Bsp.: Version: 40.0.2.5702 entspricht der CPE: cpe:/a:mozilla:firefox:40.0.2 cpe:/a:mozilla:firefox:40.0.2 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 2 8.8 29.08.2015 29.08.2015 Tabelle 28, Übersicht über CVE-Ergebnisse von Mozilla Firefox 40.0.2.X cpe:/a:mozilla:firefox:40.0.3 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 28 6.5 24.09.2015 24.09.2015 Tabelle 29, Übersicht über CVE-Ergebnisse von Mozilla Firefox 40.0.3.X Ergebnisse 53 cpe:/a:mozilla:firefox:41.0.1 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 1 6.8 18.10.2015 18.10.2015 Tabelle 30, Übersicht über CVE-Ergebnisse von Mozilla Firefox 41.0.1.X cpe:/a:mozilla:firefox:41.0.2 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 2 6.3 05.11.2015 05.11.2015 Tabelle 31, Übersicht über CVE-Ergebnisse von Mozilla Firefox 41.0.2.X VLC Player Für die Anwendung VLC Player wurde ein CVE-Eintrag gefunden. Die Zuordnung zu einem passenden CPE war ohne Probleme möglich. cpe:/a:videolan:vlc_media_player:2.2.1 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 1 6.8 25.08.2015 25.08.2015 Tabelle 32, Übersicht über CVE-Ergebnisse VLC Players 2.2.1 Windows 7 Zur Überprüfung von Windows 7 musste ein Zeitraum angegeben werden, da Windows 7 keine Versionsbezeichnung in den CPEs führt. Die CPEs, welche über den Veröffentlichungszeitraum vom 23.08.2015 bis zum 20.11.2015 überprüft wurden sind: • • • • • • • • • • cpe:/o:microsoft:windows_7 cpe:/o:microsoft:windows_7::sp1 cpe:/o:microsoft:windows_7::sp1:~~~~x64~ cpe:/o:microsoft:windows_7::sp1:x64 cpe:/o:microsoft:windows_7:::x64 cpe:/o:microsoft:windows_7:::~~~~x64~ cpe:/o:microsoft:windows_7:-:sp1 cpe:/o:microsoft:windows_7:-:sp1:x64 cpe:/o:microsoft:windows_7:-:sp1:~~~~x64~ cpe:/o:microsoft:windows_7:-:-:x64 Windows 7 Anzahl CVEs durchschnittlicher CVSS-Base-Score früheste Veröffentlichung eines CVE späteste Veröffentlichung eines CVE 30 7,5 09.09.2015 11.11.2015 Tabelle 33, Übersicht über CVE-Ergebnisse Windows 7 Ergebnisse 54 5.3 Vergleich der beiden Ergebnisse Secunia bietet über ihre Webseite weitere Informationen zu von Secunia PSI gefundenen Sicherheitswarnungen. Diese zusätzlichen Informationen beinhalten zugeordnete CVE-IDs, wodurch die Ergebnisse von Secunia PSI und dem Software-Vulnerability-Tool sehr gut verglichen werden können. Anzahl CVEs Software Adobe Flash Player Version 18.0.0.232 Secunia PSI gefunden korrigiert 0 0 SoftwareVulnerability-Tool 23 19.0.0.226 17 17 17 Acrobat Reader 2015.008.20082 56 57 58 Apache OpenOffice 4.1.1 Apple iTunes 1 5 5 12.2.2.25 66 63 63 12.3.0.44 12 12 12 0 0 15 45.0.2454.101 0 0 10 46.0.2490.80 18 1 1 8.0.51.16 18 44.0.2405.157 Google Chrome Java Runtime Environment 25 18 40.0.2.5702 2 2 2 40.0.3.5716 0 0 28 41.0.1.5750 1 1 1 41.0.2.5765 0 0 2 PuTTY 0.65 1 0 0 VLC Player 2.2.1 0 0 1 Windows 7 SP1 - 64-Bit 4 4 30 203 180 286 Mozilla Firefox = Anzahl identisch = Anzahl unterschiedlich Tabelle 34, Vergleich der Anzahl der gefundenen CVEs zwischen Secunia PSI und dem SoftwareVulnerability-Tool In Tabelle 34 ist die Anzahl der gefundenen CVEs zu einer bestimmten Anwendung dargestellt. Die Tabelle enthält keine Einträge über das .NET-Framework und den Microsoft Internet Explorer, obwohl zu diesen Sicherheitslücken gefunden wurden. Der Grund dafür ist, dass das Software-Vulnerability-Tool bei beiden Anwendungen, aufgrund der zu ungenauen Versionsangabe in CPE-Einträgen, keine Überprüfung von bestimmten Versionen durchführen kann, da Sicherheitslücken für mehrere Versionen unter einer CPE-ID zusammengefasst werden. Durch diese Zusammenfassung ist ein Vergleich der Ergebnisse für das .NETFramework und den Internet Explorer nicht möglich. Beispiel: Secunia PSI [.NET-Framework 4.0.30319.34209]-> 2 CVEs im Vergleich zum Software-Vulnerability-Tool [.NET-Framework 4.0] -> 56 CVEs Ergebnisse 55 Bei CPE-Einträgen des Betriebssystems Windows 7 existieren keine Versionsangaben. Hier besteht jedoch die Möglichkeit durch Eingrenzung des Überprüfungszeitraums im SoftwareVulnerability-Tool nach entsprechenden CVEs zu suchen. Secunia PSI besitzt das Problem, dass wenn ein großer Versionssprung ansteht, es die Kritikalität „end of life“ anzeigt, obwohl Sicherheitslücken zu der installierten Version vorhanden sind. Zusätzlich gibt Secunia in vier Fällen (Apple iTunes, Google Chrome, Java Runtime Environment und PuTTY) falsche CVE-IDs an. Im Fall des VLC Players in der Version 2.2.1 erkennt Secunia PSI eine bereits bekannte Sicherheitslücke nicht. Dies könnte eventuell daran liegen, dass für den VLC Player noch kein Update für eine neuere Version zur Verfügung steht, was bedeuten würde, dass Secunia PSI nur Warnungen für Anwendungen ausgibt, wenn für diese ein Update oder Patch bereitsteht. Aufgrund dieser Vermutung wurde Secunia kontaktiert und um Aufklärung gebeten, jedoch wurde im Zeitrahmen dieser Bachelor Abschlussarbeit nicht mehr rechtzeitig auf diese Anfrage geantwortet (siehe Kapitel 9.3). Sicherheitslücken gefunden in Software-Vulnerability-Tool Softwareanwendung Secunia PSI .NET Framework 7-Zip Adobe Flash Player Adobe Reader AdwCleaner Apache OpenOffice Apple iTunes Ccleaner CDBurnerXP FileZilla Gimp Ja Nein Problem durch Update auf neuere Version Ja Nein Ja Angabe falscher CVEs Nein Nein Nein Nein Problem durch Update auf neuere Version Angabe falscher CVEs Nein Angabe falscher CVEs Nein Ja Nein Problem durch Update auf neuere Version Nein Nein Angabe falscher CVE Nein Nein Nein Nein Ja Nein Google Chrome IrfanView Java Runtime Environment KMPlayer Microsoft Internet Explorer Microsoft Silverlight Mozilla Firefox Notepad++ PDFCreator Putty Recuva Skype TrueCrypt VLC Player Windows 7 WinRAR zu ungenaue Versionsangabe in CPE Nein Ja Ja Nein Ja Ja Nein Nein Nein Nein Ja Nein Ja Nein zu ungenaue Versionsangabe in CPE Nein Ja Nein Nein Nein Nein Nein Nein Ja Ja Nein Tabelle 35, Vergleich der Ergebnisse von Secunia PSI und dem Software-Vulnerability-Tools Ergebnisse 56 5.3.1 Detaillierter Vergleich einzelner Softwareanwendungen Im Folgenden werden die Ergebnisse von betroffenen Softwareanwendungen detailliert miteinander verglichen. .NET Framework Die Ergebnisse des .NET-Frameworks können nicht direkt miteinander verglichen werden. Dies liegt daran, dass bei der Suche nach CVEs die CPE-Angabe für das .NET-Framework zu allgemein ist. Da alle Sicherheitslücken der .NET-Framework Versionen 4.0.X unter der CPE „cpe:/a:microsoft:.net_framework:4.0“ zusammengefasst werden, können für die installierte Version 4.0.30319.34209 insgesamt 56 Sicherheitslücken, die seit 22.09.2010 veröffentlicht wurden, gefunden werden. Das Problem hierbei ist, dass jede Version bei der die Versionsnummer mit 4.0 beginnt, diese 56 Sicherheitslücken zugeordnet sind. Dadurch ist für das .NET-Framework keine Bewertung einzelner Versionen möglich. In Kapitel 6.2.4 wird das Problem nochmals im Detail erläutert. Adobe Flash Player Es wurde ein automatisches Update von Version 18.0.0.232 auf 19.0.0.226 durchgeführt, weswegen Secunia PSI keine Sicherheitslücken zu dieser Version finden konnte, beziehungsweise nicht die benötigte Zeit hatte diese zu ermitteln. Die CVE-Einträge wurden am 22.09.2015 veröffentlicht. Falls der Adobe Flash Player das automatische Update beispielsweise am 01.09.2015 durchgeführt hat, war zum Zeitpunkt der Veröffentlich bereits eine andere Version des Adobe Flash Players installiert, wodurch Secunia PSI entsprechend nicht mehr die Version 18.0.0.232 überwachte. Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Secnuia PSI Software-Vulnerability-Tool Adobe Flash Player 18.0.0.232 22.09.2015 23 9.1 / 10.0 Adobe Flash Player 19.0.0.226 11.11.2015 10.11.2015 (laut Secunia) 11.11.2015 17 17 4/5 9.4 / 10.0 Tabelle 36, Vergleich der Ergebnisse des Adobe Flash Player zwischen Secunia PSI und dem SoftwareVulnerability-Tool Ergebnisse 57 Adobe Acrobat Reader In Folge der Dokumentation der aufgetretenen Schwachstellen am 15.10.2015 wurde Adobe Acrobat Reader aktualisiert. Da jedoch am 04.11.2015 die Sicherheitslücke „CVE-20157650“ zu der Version 2015.008.20082 veröffentlich wurde, fehlte diese zunächst in der Tabelle. Nach einer erneuten Überprüfung der Secunia-Webseite (Secunia) wurde festgestellt, dass diese CVE-ID entsprechend hinzugefügt wurde. Der einzige Unterschied zwischen Secunia PSI und der Überprüfung durch das Software-Vulnerability-Tool ist, dass die Sicherheitslücke „CVE-2015-7829“ bei Secunia nicht angegeben ist. Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Secnuia PSI Software-Vulnerability-Tool Adobe Acrobat Reader 2015.008.20082 15.10.2015 13.10.2015 (laut Secunia) 15.10.2015 bis 04.11 2015 56 (bzw. 57) 58 4/5 8.3 / 10.0 Tabelle 37, Vergleich der Ergebnisse des Adobe Acrobat Readers zwischen Secunia PSI und dem Software-Vulnerability-Tool Apache OpenOffice Aufgrund der Aktualisierung von OpenOffice in Folge der Dokumentation der Sicherheitslücke fehlten die am 10.11.2015 veröffentlichten Sicherheitslücken bei Secunia PSI. Nach einer Kontrolle der Secunia-Webseite wurde jedoch festgestellt, dass die am 10.11.2015 hinzugefügten CVE-Einträge jedoch dem Ergebnis zugeordnet worden. Dadurch bestehen keinerlei Unterschiede zwischen den Ergebnissen. Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Secnuia PSI Software-Vulnerability-Tool Apache OpenOffice 4.1.1 02.11.2015 27.04.2015 (laut Secunia) 28.04.2015 bis 10.11.2015 1 (bzw. 5) 5 4/5 6.3 / 10.0 Tabelle 38, Vergleich der Ergebnisse von OpenOffice zwischen Secunia PSI und dem SoftwareVulnerability-Tool Ergebnisse 58 Apple iTunes Secunia PSI hat der Version 12.2.2.25 weitere CVEs zugeordnet. Diese drei weiteren CVEs haben jedoch keinen Bezug zu iTunes, weswegen hier von einem Fehler seitens Secunia ausgegangen werden muss. Die CVEs sind: • CVE-2010-3190 (Fehler in Microsoft Foundation Class, kurz MFC Bibliothek in Visual Studio) • CVE-2014-8146 (Fehler in der Implementierung des Unicode Bidirectional Algorithms in ICU4C in International Components for Unicode, kurz ICU) • CVE-2015-1205 (unspezifizierte Sicherheitslücken in Google Chrome) Bis auf die oben erwähnte Ausnahme stimmen die Ergebnisse von Secunia PSI und dem Software-Vulnerability-Tool über ein. Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Secnuia PSI Software-Vulnerability-Tool Apple iTunes 12.2.2.25 18.09.2015 17.09.2015 (laut Secunia) 08.05.2015 bis 18.09.2015 66 (ohne Falschzuordnung 63) 63 4/5 6.8 / 10.0 Apple iTunes 12.3.0.44 23.10.2015 22.10.2015 (laut Secunia) 23.10.2015 12 12 4/5 7.0 / 10.0 Tabelle 39, Vergleich der Ergebnisse von iTunes zwischen Secunia PSI und dem Software-VulnerabilityTool Ergebnisse 59 Google Chrome Bei der Überprüfung von Google Chrome ergeben sich einige Unterschiede zwischen den Ergebnissen von Secunia PSI und dem Software-Vulnerability-Tool. So werden bei den Versionen 44.0.2403.157 und 45.0.2454.101 keine Sicherheitslücken von Secunia gefunden, sondern lediglich Warnungen ausgegeben, dass bereits neuere Programmversionen existieren. Bei der Überprüfung mit dem Software-Vulnerability-Tool werden jedoch 15, beziehungsweise 10 Sicherheitslücken für die entsprechenden Versionen gefunden. Entweder wurde die Aktualisierung von Google Chrome zu früh durchgeführt, so dass die Sicherheitslücken nicht mehr zugeordnet werden konnten, oder Secunia hat diese Sicherheitslücken nicht aufgeführt. Eine Überprüfung der entsprechenden Versionen auf der Secunia Webseite ist nach der Testphase nicht möglich, da die spezifische, von Secunia zur Identifikationen von Schwachstellen definierte, ID nicht bekannt ist (anders als beim Acrobat Reader und OpenOffice). Bei der Version 46.0.2490.80 findet Secunia PSI 18 zugeordnete CVE-Einträge, während es bei dem Software-Vulnerability-Tool nur ein CVE-Eintrag ist. Der von beiden gefundene CVE-Eintrag lautet „CVE-2015-1302“. Bei den 17 anderen, von Secunia PSI zugeordneten, CVE-Einträgen handelt es sich um Sicherheitslücken bezüglich des Adobe Flash Players. Daher ist in diesem Fall von einer falschen Zuordnung seitens Secunia auszugehen. Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Secnuia PSI Software-Vulnerability-Tool Google Chrome 44.0.2403.157 02.09.2015 04.09.2015 15 End of life 6.5 / 10.0 Google Chrome 45.0.2454.101 15.10.2015 15.10.2015 10 End of life 7.0 / 10.0 Google Chrome 46.0.2490.80 11.11.2015 11.11.2015 (laut Secunia) 11.11.2015 18 (ohne Falschzuordnung 1) 1 4/5 7.5 / 10.0 Tabelle 40, Vergleich der Ergebnisse von Google Chrome zwischen Secunia PSI und dem SoftwareVulnerability-Tool Java Runtime Environment Die unterschiedliche Anzahl der gefundenen CVEs kommt dadurch zusammen, dass Secunia PSI auch CVE-Einträge angegeben, hat welche nicht explizit der Version „1.8 u51“ zugeordnet sind, sondern beispielsweise der Version „1.8 u60“. Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Secnuia PSI Software-Vulnerability-Tool Java Runtime Environment 8.0.51.16 23.10.2015 21.10.2015 (laut Secunia) 21.10.2015 bis 22.10.2015 25 (ohne Falschzuordnung 18) 18 4/5 7.2 / 10.0 Tabelle 41, Vergleich der Ergebnisse der Java Runtime Environment zwischen Secunia PSI und dem Software-Vulnerability-Tool Ergebnisse 60 Microsoft Internet Explorer Beim Microsoft Internet Explorer besteht das gleiche Problem wie beim .NET-Framework. Da alle Sicherheitslücken der Internet Explorer Versionen 11.X unter der CPE „cpe:/a:microsoft:internet_explorer:11:-“ zusammengefasst werden, können für die installierte Version 11.0.9600.17937 insgesamt 341 Sicherheitslücken, die seit 11.12.2013 veröffentlicht wurden, gefunden werden. Das Problem hierbei ist, dass jede Version, bei der die Versionsnummer mit 11 beginnt, diese 341 Sicherheitslücken zugeordnet sind. Dadurch ist für den Internet Explorer keine Bewertung einzelner Versionen anhand des CVE-Verzeichnisses möglich. (detaillierte Erläuterung in Kapitel 6.2.4). Mozilla Firefox In den Versionen 40.0.3.5716 und 41.0.2.5765 wurden keine Sicherheitslücken in Secunia PSI angezeigt, sondern lediglich der Hinweis, dass ein Update verfügbar ist. In den anderen beiden Versionen 40.0.2.5702 und 41.0.1.5750 sind die Ergebnisse identisch. Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Secnuia PSI Software-Vulnerability-Tool Mozilla Firefox 40.0.2.5702 30.08.2015 28.08.2015 (laut Secunia) 29.08.2015 2 2 4/5 8.8 / 10.0 Mozilla Firefox 40.0.3.5716 24.09.2015 24.09.2015 28 End of life 6.5 / 10.0 Mozilla Firefox 41.0.1.5750 19.10.2015 16.10.2015 (laut Secunia) 18.10.2015 1 1 3/5 6.8 / 10.0 Mozilla Firefox 41.0.2.5765 05.11.2015 05.11.2015 2 End of life 6.3 / 10.0 Tabelle 42, Vergleich der Ergebnisse von Mozilla Firefox zwischen Secunia PSI und dem SoftwareVulnerability-Tool Putty Secunia PSI hat im Gegensatz zum Software-Vulnerability-Tool für PuTTY eine Sicherheitslücke mit der Kritikalität von 3/5 am 10.11.2015 entdeckt. Die angegebene CVE-ID lautet „CVE-2015-5309“. Diese Angabe ist problematisch, da diese CVE-ID nicht im CVEVerzeichnis existiert. Die ID wurde eine Zeit lang reserviert, ist jedoch nie veröffentlicht und später aus dem CVE-Verzeichnis entfernt worden. Ergebnisse 61 VLC Player Für den VLC Player hat Secunia PSI, im Gegensatz zum Software-Vulnerability-Tool, keine Sicherheitslücken gefunden. Der vom Tool entdeckte CVE-Eintrag mit der ID „CVE-20155949“ wurde am 25.08.2015 veröffentlicht und besitzt einen CVSS-Base-Score von 6.8. Windows 7 Da für das Betriebssystem Windows 7 keine Versionsangaben in den CPE-Einträgen vorhanden sind, wurden alle zutreffenden CPEs (Windows 7 SP1 64-Bit) über den definierten Testzeitraum geprüft. Die Anzahl der gefundenen CVEs, zwischen Secunia PSI und dem Software Vulnerability-Tool, unterscheidet sich enorm. Zeitpunkt der Dokumentation Veröffentlichung Anzahl CVEs Einstufung Kritikalität Secnuia PSI Software-Vulnerability-Tool Windows 7 – SP1 – 64-Bit 12.11.2015 09.09.2015 08.09.2015 (laut Secunia) 10.11.2015 (laut Secunia) 09.09.2015 bis 11.11.2015 1 3 30 4/ 5 4/5 7.5 / 10.0 Tabelle 43, Vergleich der Ergebnisse von Windows 7 zwischen Secunia PSI und dem SoftwareVulnerability-Tool 5.4 Allgemeine Statistiken zum gespeicherten CVE-Verzeichnis Zum Zeitpunkt der Überprüfung (24.11.2015) befanden sich insgesamt 72.903 CVE-Einträge in der SQLite-Datenbank des Software-Vulnerability-Tools. Von diesen besitzen 72.846 eine Bewertung anhand eines CVSS-Eintrags und 41.239 eine Verknüpfung mit einer CWE-ID. Insgesamt sind 199.138 unterschiedliche CPEs in der Datenbank vorhanden. Es existieren 1.921.344 CVE-CPE-Verknüpfungen, die festlegen, welches Softwareprodukt welche Sicherheitslücke enthält. CPEs 15318 9077 174743 Anwendungen (a) Betriebssysteme (o) Hardware (h) Abbildung 30, Anteil der unterschiedlichen CPEs Der Großteil der in der Datenbank vorhandenen CPEs ist für Anwendungen. Dieser Anteil macht über 87% aller CPEs aus. Ergebnisse 62 Abbildung 31, Balkendiagramm der pro Jahr veröffentlichten CVE-Einträge Bei der Übersicht der pro Jahr veröffentlichten CVEs ist ein stetiger Anstieg bis 2007 zu erkennen. Anschließend geht die Anzahl der veröffentlichten Einträge zurück. Im Jahre 2014 wurden bislang die meisten CVEs in einem Jahr veröffentlicht. Abbildung 32, Balkendiagramm zu Verteilung des CVSS-Base-Scores Bei der Verteilung des CVSS-Base-Scores ist eine Konzentration in dem Bereich zwischen 4 und 8 zu erkennen. Auffällig ist außerdem die geringe Anzahl von CVEs mit einem CVSSBase-Score von größer als 8 und kleiner als 9. Ergebnisse CWE-ID CWE-79 CWE-119 CWE-264 CWE-89 CWE-20 CWE-399 CWE-200 CWE-310 CWE-94 CWE-22 CWE-189 CWE-352 CWE-287 CWE-255 CWE-59 CWE-362 CWE-16 CWE-78 CWE-134 CWE-284 CWE-17 CWE-254 CWE-19 CWE-77 CWE-74 CWE-345 CWE-18 CWE-199 CWE-21 63 Titel Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') Improper Restriction of Operations within the Bounds of a Memory Buffer Permissions, Privileges, and Access Controls Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') Improper Input Validation Resource Management Errors Information Exposure Cryptographic Issues Improper Control of Generation of Code ('Code Injection') Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') Numeric Errors Cross-Site Request Forgery (CSRF) Improper Authentication Credentials Management Improper Link Resolution Before File Access ('Link Following') Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition') Configuration Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') Uncontrolled Format String Improper Access Control Code Security Features Data Handling Improper Neutralization of Special Elements used in a Command ('Command Injection') Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') Insufficient Verification of Data Authenticity Source Code Information Management Errors Pathname Traversal and Equivalence Errors Tabelle 44, Darstellung der am häufigsten genutzten CWE-IDs zugeordnet in 6284 CVEs 6168 CVEs 4299 CVEs 4140 CVEs 3468 CVEs 2598 CVEs 2347 CVEs 2213 CVEs 2060 CVEs 1823 CVEs 1291 CVEs 1103 CVEs 968 CVEs 580 CVEs 417 CVEs 346 CVEs 293 CVEs 180 CVEs 161 CVEs 158 CVEs 145 CVEs 105 CVEs 76 CVEs 53 CVEs 18 CVEs 13 CVEs 4 CVEs 2 CVEs 1 CVEs Ergebnisse 64 5.5 Interpretation der Ergebnisse Aus dem Vergleich der Ergebnisse von Secunia PSI mit den gefundenen CVEs aus dem Software-Vulnerability-Tool geht hervor, dass die Nutzung des CVE-Verzeichnisses zur Bestimmung der Kritikalität einer Software, mit wenigen Ausnahmen, sehr gut geeignet ist. So wurden bis auf einige falsche Zuordnungen seitens Secunia PSI alle Sicherheitslücken und –warnungen auch in dem lokal gespeicherten CVE-Verzeichnis gefunden, in manchen Fällen sogar mehr. Beim Zeitpunkt der Veröffentlichung der Sicherheitsmängel gibt es maximal bis zu einen Tag Verzug. Secunia PSI bietet unter einem Link zur Secunia-Webseite detaillierte Informationen für Nutzer an. Wenn man diese Funktionalität nicht nutzt und nur Secunia PSI betrachtet, so bietet das CVE-Verzeichnis, dank CVSS, CWE und CPE, detailliertere Informationen zu einer Sicherheitslücke. Die Nutzung des CVE-Verzeichnisses zur Sicherheitsanalyse von Softwareanwendungen ist zu empfehlen, da im Zeitraum von 2006 bis 2014 pro Jahr durchschnittlich 6.400 Sicherheitslücken veröffentlicht wurden. Es gilt jedoch zur beachten, dass dies nur die veröffentlichten Sicherheitslücken sind. Dies bedeutet, dass, auch wenn für eine Softwareanwendung keine CVEs bekannt sind, man trotzdem davon ausgehen muss, dass die Anwendung nicht 100% sicher ist. Jedoch bietet das CVE-Verzeichnis zurzeit eine der besten Möglichkeiten an, kostenlos auf zuverlässige Daten zu Sicherheitslücken zuzugreifen. Diskussion 65 6 Diskussion 6.1 Verwandte Arbeiten 6.1.1 vFeed vFeed ist ein Framework, welches ein zu CVE, CWE und OVAL kompatibles Konzept zur Namensgebung über ein XML/JSON-Schema bereitstellt. Es bietet den Vorteil, dass zusätzliche strukturierte Third-Party-Referenzen und technische Charakteristiken für CVE-Einträge angegeben werden können. Zum vFeed-Framework gehört die Datenbank vFeed.db (The Correlated Community Vulnerability and Threat Database). Diese SQLite Datenbank ist eine Sammlung von Sicherheitsinformationen die genutzt wird, um Sicherheitslücken von verstreuten Internetquellen in einer Datenbank zu vereinen. (Ouchn 2015) Das vFeed-Framework und die dazugehörige Datenbank wären für die Entwicklung des Tools perfekt geeignet. Es besteht jedoch das Problem, dass die Datenbank nicht nach Belieben aktualisiert werden kann. Somit steht immer eine bestimmte Version der Datenbank zum Download bereit, die in definierten Abständen vom vFeed-Team aktualisiert wird. Für diese Abschlussarbeit ist es jedoch eine wichtige Voraussetzung, dass das lokal gespeicherte CVEVerzeichnis jederzeit aktualisiert werden kann, damit zu einem beliebigen Zeitpunkt immer die neusten CVE-Einträge enthalten sind. 6.1.2 CVE und CVSS Steve Christey, Principal Infosec Engineer der MITRE Corperation, veröffentliche im September 2010 ein Dokument im Namen des Homeland Security Systems Engineering and Development Institute, kurz HS SEDI, welches CVE und CVSS erläutert und den Zusammenhang beider widerspiegelt. Seine Arbeit beschreibt detailliert, warum beide Standards entwickelt wurden, wie sie genutzt und erstellt werden und verdeutlicht anhand von Statistiken den Verbreitungsgrad von CVE.(Christey 2010) Steve Christey konzentriert sich auf die Erläuterung der Standards CVE und CVSS, wohingegen dies nur ein Teil der Grundlage dieser Arbeit darstellt. Dieses Grundwissen wird in dieser Arbeit genutzt, um später eine Software zu implementieren, mit der sich überprüfen lässt, ob das CVE-Verzeichnis für Sicherheitsanalyseanwendungen genutzt werden kann. Diskussion 66 6.1.3 Reviewing the Secunia 2013 Vulnerability Review Brian Martin befasst sich in seinem Blog mit der Beurteilung des Secunia 2013 Vulnerability Reviews, welcher am 26.02.2014 veröffentlicht wurde. Dabei analysiert er zu Beginn die Vorgehensweise von Secunia bei der Erstellung der Statistiken. Er verweist darauf, dass Secunia nicht alle bisher veröffentlichten CVEs in ihrem Datenbestand enthält und kritisiert die eigene Bewertungsmethodik namens Secunia Vulnerability Criticality Classification. Es werden falsche Definitionsaussagen von Secunia, wie beispielsweise Third-Party-Software, kritisch hinterfragt und die mehrfache Zählung von Schwachstellen aufgezeigt. Brian Martin analysiert die Auswahl der Top 50 Produkte und vergleicht beispielhaft an einzelnen Produkten die Anzahl der gefundenen CVEs. (Martin 2014) Brian Martin befasst sich ausschließlich mit der Beurteilung des Secunia 2013 Vulnerability Reviews. In dieser Arbeit wird jedoch nur die Secunia entwickelte Anwendung Secunia PSI als Vergleichsprodukt verwendet. Die in dem Blog angesprochenen Mängel der Statistik spielen für diese Arbeit keine Rolle, da sich diese auf die Mehrfachzählung von Produkten und Schwachstellen in der Statistik beziehen. In dieser Arbeit werden jedoch die Ergebnisse von ganz bestimmten Versionen einer Anwendung, einzeln mit den Ergebnissen des SoftwareVulnerability-Tools verglichen werden. Dadurch können Schwachstellen nicht mehrfach gezählt werden. 6.1.4 Vulnerability management tools for COTS software - A comparison Die Arbeit von Herrn Welberg analysiert Schwachstellen-Management-Tools in zwei Schritten miteinander. Im ersten Schritt werden 30 Anwendungen anhand von Kriterien allgemein miteinander verglichen. Die Kriterien sind beispielsweise in den Anwendungsbereich oder die Untersuchungsart aufgeteilt. Drei der 30 Anwendungen nutzen eine korrelierte Analyse. Diese drei Anwendungen werden im zweiten Schritt detailliert miteinander verglichen. Des Weiteren wird bei diesen drei Anwendungen die Vorgehensweise detailliert erläutert. (Welberg) Während Herr Welberg sich auf den detaillierten Vergleich der Vorgehensweise bei der korrelierten Analyse von drei Schwachstellen-Management-Tools konzentriert, findet in dieser Arbeit nur ein kurzer Auswahlprozess eines Vergleichsproduktes statt. Der Auswahlprozess dient dazu ein passendes Schwachstellen-Management-Tool zu finden, mit der eine Einstufung der Angreifbarkeit von auf einem System installierten Softwareanwendungen durchgeführt werden kann. Die Ergebnisse des Vergleichsproduktes dienen im Vergleich mit den Ergebnissen des Software-Vulnerability-Tools zur Analyse der Quantität und Qualität von CVE-Einträgen. Diskussion 67 6.2 Feedback zu den Standards 6.2.1 Feedback zu CVE Die Anzahl der im Test gefundenen CVEs zum definierten Softwareprofil ist höher als bei dem Vergleichsprodukt Secunia PSI. Die Ergebnisse stellten sich auch häufig als zuverlässiger heraus, da Secunia einige falsch zugeordnete CVEs besitzt. Die hohe Zahl der beispielsweise im Jahr 2014 veröffentlichten CVEs (7928 Einträge) spricht des Weiteren für die gute Quantität von CVE. Es gibt jedoch Probleme mit dem Zusammenspiel von CPE und CVE, die dadurch die gefunden CVEs beeinflussen. Problem inkonsistenter CVEs Als inkonsistente CVEs werden in dieser Arbeit CVEs bezeichnet, denen keine CPEs zugeordnet sind. Betroffen sind (Stand 10.12.2015) 161 CVE-Einträge in der SQLite Datenbank. Das Problem dabei ist, dass ohne die Zuordnung zu einem CPE-Eintrag die Sicherheitslücke oder das Sicherheitsrisiko keinen Mehrwert bietet, da nicht definiert ist, wo beziehungsweise in welchem IT-Produkt, -System oder -Plattform diese auftritt. Auf eine Anfrage bezüglich dieser Problematik an die MITRE Corporation wurde mir mitgeteilt, dass es vorkommen kann, das die von der MITRE Corporation veröffentlichten CVEs noch nicht von dem NIST NVD Team analysiert wurden um die betroffenen CPEs zuzuordnen (siehe Kapitel 9.3). Das NIST NVD Team ist für die Definition und Zuordnung von CPEs verantwortlich. Dadurch kommt das beschriebene Problem häufig in kürzlich veröffentlichten CVEs vor. Abbildung 33, Veranschaulichung des Problems der inkonsistenten CVE-Einträge Die inkonsistenten CVEs werden trotz der beschriebenen Problematik in die Datenbank importiert. Durch die in Kapitel 4.3.4 beschriebene neue Funktionalität des SoftwareVulnerability-Tools können alle inkonsistenten CVE-Einträge angezeigt und im Detail betrachtet werden. Dadurch kann der Nutzer des Tools sich selbst einen Eindruck über die betroffenen Sicherheitslücken und –risiken verschaffen. Zusätzlich bietet das Hinzufügen der inkonsistenten CVEs den Vorteil, dass für den Import kein Sonderfall definiert werden muss, was zu einer simpleren Implementierung und schnelleren Durchführung des Imports führt. Diskussion 68 Problematik fehlender CPE-Zuordnungen bei der Angabe „and previous versions“ Es gibt Sicherheitslücken, die alle bisher veröffentlichten Versionen einer Anwendung, einer Hardware oder eines Betriebssystems betreffen. In solchen Fällen sind in der XML-Datei jedoch nicht alle CPEs der vorherigen Versionen aufgeführt, wodurch diese praktisch nicht von dem CVE-Eintrag betroffen sind. Ein Beispiel hierfür ist die Sicherheitslücke „CVE-20158480“. In der Zusammenfassung des CVE-Eintrags steht der Text „…in Google Chrome before 47.0.2526.73 …“. Auf der NVD-Webseite (NVD NIST 2015) steht bei der Angabe des CPEs in diesem Fall der Zusatz „and previous versions“. Abbildung 34, Ausschnitt der CPEs des Eintrags CVE-2015-8480 von der NVD-Webseite In der von der NVD-Webseite heruntergeladenen Importdatei (NVD NIST) für das SoftwareVulnerability-Tool sind jedoch in der CPE-Definition keine Angaben darüber enthalten, dass auch vorherige Versionen betroffen sind. Abbildung 35, Ausschnitt der CPE-Definition des Eintrags CVE-2015-8480 in der zu importierenden XML-Datei Durch das Fehlen der oben genannten Angaben in der Importdatei ist in dem lokal als Datenbank gespeicherten CVE-Verzeichnis nur die Version 46.0.2490.86 von der Sicherheitslücke betroffen und nicht auch alle davor veröffentlichten. Dadurch entsteht hier ein Informationsverlust. Die Anzahl der betroffenen CVEs kann nicht identifiziert werden, da für eine solche Überprüfung das gesamte CVE-Verzeichnis nach dem Zusatz „and previous versions“ durchsucht werden müsste und dieser nur auf der NVD-Webseite existiert. Anhand der auf der Webseite vorhandenen Suchkriterien ist ebenfalls keine Prüfung der Anzahl der betroffenen CVEs möglich. Diskussion 69 Abbildung 36, Detailansicht der CVE-2015-8480 im Software-Vulnerability-Tool Interessant ist zusätzlich der Fakt, dass auf der NVD-Webseite die CPEs mit dem entsprechenden Zusatz angezeigt werden, es jedoch in der XML-Datei keine Angaben dazu gibt. Auf eine Anfrage zu dieser Problematik an das NVD NIST Team ist im Zeitrahmen dieser Arbeit leider keine Antwort eingegangen (siehe Kapitel 9.3). 6.2.2 Feedback zu CVSS Das Zusammenspiel zwischen CVSS und CVE ist sehr gut. So existiert in 99,92% (Stand 24.11.2015) aller CVEs eine Bewertung durch CVSS. Die restlichen 0,08% der CVEs sind inkonsistent (siehe Kapitel 6.2.1), wodurch diesen auch kein CVSS-Einträge zugeordnet werden. Von den drei verschiedenen Metrikgruppen wird immer nur die Basis-Metrikgruppe (Base-Metric-Group) angegeben. Bei CVSS-Einträgen ist es sehr hilfreich, das neben dem Base-Score, dem Erstellungsdatum und der Herkunft auch die Metrikwerte angegeben sind. Dadurch kann nachvollzogen werden wie sich der Base-Score sich zusammensetzt, beziehungsweise ist besser erkennbar in welche Bewertungskriterien die Sicherheitslücke besonders kritisch abgeschnitten hat. Die Statistik zur Verteilung des CVSS-Base-Scores zeigt, dass der Großteil der CVEs einen Base-Score zwischen 4 und 8 besitzt. 6.2.3 Feedback zu CWE Das CVE-Verzeichnis nutzt CWE, im Gegensatz zu CVSS, nur in Form der Angabe der CWE-ID. Dies ist durchaus verständlich, da CWE sehr viele detaillierte Informationen zu Softwareschwachstellen enthält. Der relativ geringe Anteil (56,57%) der CVEs in denen eine CWE-ID angegeben ist lässt darauf zurückschließen, dass das Zusammenspiel von CVE und CWE noch nicht so gut ist. Durch die Darstellung der verwendeten CWE-IDs in Tabelle 44 ist zu erkennen, dass in 41.239 Fällen nur 29 unterschiedliche IDs verwendet wurden. Dies ist darauf zurückzuführen, dass das CWE-Verzeichnis eine sehr komplexe Struktur besitzt, indem beispielsweise die einzelnen CWE-IDs in einer Baumstruktur miteinander verknüpft sind. Dadurch werden häufig nur die obersten Softwareschwachstellen angegeben und nicht Diskussion 70 explizit nach den genauen Schwachstellen gesucht, da dies einen erheblichen Mehraufwand bedeuten würde. Beispiel: Die Bestimmung das Informationen enthüllt (CWE-200: Information Exposure) werden, ist relativ einfach. Die genauere Bestimmung wodurch diese Informationen enthüllt werden, beispielsweise durch gesendete Daten (CWE-201) oder durch Fehlermeldungen (CWE-209), benötigt jedoch einiges an Zeit in Anspruch. Aus diesem Grund wird häufig die Schwachstelle an der Wurzel in CVEs angegeben. Abbildung 37, Beispiel für die Baumstruktur des CWE-Verzeichnis 6.2.4 Feedback zu CPE Mit 199.138 unterschiedlichen CPEs enthält der Standard mit Abstand die meisten Datensätze aller Standards in der Datenbank. Doch wie die in Kapitel 6.2.1 beschrieben bestehen zwischen dem Zusammenspiel von CVE und CPE noch Probleme. Zusätzlich zu diesen Schwierigkeiten, sind zu CPE weitere Probleme aufgetreten. Problem der Zusammenfassung mehrerer Versionen zu einer CPE Bei der Suche des passenden CPE-Eintrags zum .NET-Framework und dem Internet Explorer sind die im CVE-Verzeichnis hinterlegten CPEs zu ungenau beziehungsweise zu allgemein gehalten. Dadurch besitzen unterschiedliche Versionen der Software die gleiche CPE, was eine genaue Zuordnung von Sicherheitslücken, zu bestimmten Versionen verhindert. Somit werden Sicherheitslücken von unterschiedlichen Versionen in einer CPE zusammengefasst. Beispiel: Eine Softwareanwendung in der Version 1.1.0 besitzt eine Sicherheitslücke, welche mit der Version 1.1.1 geschlossen wird. Da wie beim IE oder .NET-Framework die Version des CPE-Eintrags zu ungenau definiert ist, werden die Sicherheitslücken aller Versionen 1.1.X unter der CPE „cpe:/a:hersteller:anwendung:1.1“ zusammengefasst. Dies hat zur Folge, dass für die Version 1.1.1 auch die Sicherheitslücke angezeigt wird, welche eigentlich durch das Update von 1.1.0 auf 1.1.1 behoben wurde. Diskussion 71 Abbildung 38, Problem der Zusammenfassung von unterschiedlichen Versionen zu einer CPE (Beispiel anhand des .NET-Frameworks) Da alle Sicherheitslücken der .NET-Framework Versionen 4.0.X unter der CPE „cpe:/a:microsoft:.net_framework:4.0“ zusammengefasst werden, können für die installierte Version 4.0.30319.34209 insgesamt 56 Sicherheitslücken, die seit 22.09.2010 veröffentlicht wurden, gefunden werden. Das Problem hierbei ist, dass jede Version bei der die Versionsnummer mit 4.0 beginnt, diese 56 Sicherheitslücken zugeordnet sind. Dadurch ist für das .NET-Framework keine Bewertung einzelner Versionen möglich. Das beschriebene Problem tritt vor allem, aber nicht ausschließlich, bei Microsoft-Produkten auf. Weitere Produktebeispiele von Microsoft die das gleiche Problem haben sind: • Microsoft Windows 7 • Microsoft ASP.NET • Microsoft Office • Microsoft SQL Server Hervorzuheben bleibt jedoch, dass beispielweise bei Microsoft Silverlight das Problem nicht auftritt, da dort die Versionen detailliert in CPEs angegeben sind. Problem des Abdeckungsgrad der CPE-Einträge Beim Import der Daten von der NVD-Webseite wird bei jedem zu importierenden CPEEintrag vom Software-Vulnerability-Tool überprüft, ob die zugeordneten CPEs bereits in der Datenbank vorhanden sind. Falls dies nicht der Fall ist, wird der CPE-Eintrag zur Datenbank hinzugefügt. Dadurch sind nur CPEs in der Datenbank vorhanden, welche auch einem CVEEintrag zugeordnet sind. Dies stellt jedoch ein Problem dar. So kann dadurch bei der Erstellung eines CPE-Profils mit dem Software-Vulnerability-Tool nur IT-Systeme, -Plattformen oder -Produkte hinzugefügt werden, bei denen bereits ein CVE-Eintrag existiert. Aus diesem Grund konnte auch kein CPE-Profil mit allen Softwareanwendungen des Testprofils erstellt werden, da für den Großteil dieser Anwendungen keine passenden CPEs existierten. Auf der NVD-Webseite wird neben dem CVE-Verzeichnis auch ein CPE-Verzeichnis bereitgestellt. Dieses enthält zusätzlich CPEs für IT-Produkte, -Systeme oder Plattformen, für die noch kei- Diskussion 72 ne Sicherheitslücken veröffentlicht sind. Durch die Veränderung der Importfunktion ist es im Software-Vulnerability-Tool möglich, auch dieses Verzeichnis zu importieren. Dadurch existieren auch CPE-Einträge, für die noch keine CVEs veröffentlicht sind. Bei der Überprüfung der für die Testphase definierten IT-Produkte stellte sich jedoch heraus, dass trotz der zusätzlich importierten CPEs nur ein CPE-Eintrag in der Datenbank vorhanden war, welcher die aktuellste Version des entsprechenden IT-Produkts wiederspiegelt. Dies bedeutet, dass das Problem weiterhin besteht. Problem der automatisierten CPE-Generierung Um der beschriebenen Problematik des Abdeckungsgrades der CPE-Einträge entgegen zu wirken, wurde in Erwägung gezogen, automatisiert CPEs, auf Basis der zur Verfügung stehenden Informationen der installierten Software, zu erstellen. Über verschiedene C#Bibliotheken besteht die Möglichkeit, den Hersteller, die Produktbezeichnung und die Version einer installierten Software auszulesen. Mit diesen Informationen könnte versucht werden automatisiert einen CPE-Eintrag zu generieren. Das Problem besteht darin, dass die notwendige Kombination aus • Herstellername (vendor), • Produktbezeichnung (product), • Versionsnummer (version) und • Herstellerspezifischer Name zur Charakterisierung eines Updates (update), eines CPE-Eintrags sich häufig von den ausgelesenen Informationen der C#-Bibliothek oder der Systemsteuerung von Windows 7 unterscheidet. Beispiel 1, iTunes: Bei den Herstellerinformationen von iTunes ist bei den ausgelesenen Informationen der Zusatz für Unternehmensformen Inc. mit angegeben, wohingegen dieser bei jeglichen CPEs, die mit Apple in Verbindung stehen, nicht mit angegeben wird. Des Weiteren wird für iTunes die Versionsangabe in bereits existierenden CPEs nur bis zur maximal dritten Stelle angegeben, jedoch nie bis zur vierten Stelle. Hersteller Produkt Version ausgelesene Informationen Apple Inc. iTunes 12.3.1.23 cpe:/{part} : {vendor} generierte CPE cpe:/a : apple_inc existierende CPE cpe:/a : apple : {product} : itunes : itunes Bsp. für existierende CPE apple itunes 12.3.0 : {version} : 12.3.1.23 : 12.3.0 Tabelle 45, Beispielhafte CPE-Erstellung für iTunes : {update} Diskussion 73 Beispiel 2, OpenOffice: Wie in Beispiel 1 ist hier ein Zusatz im Herstellernamen enthalten, der in existierenden CPEs nicht angegeben wird. In der ausgelesenen Produktbezeichnung ist zusätzlich die Version angegeben, wohingegen die Bezeichnung in der Versionsangabe zu detailliert ist. Hersteller Produkt Version ausgelesene Informationen Apache Software Foundation OpenOffice 4.1.2 4.12.9782 Bsp. für existierende CPE apache openoffice 4.1.1 cpe:/{part} : {vendor} generierte CPE cpe:/a : apache_software_foundation existierende CPE cpe:/a : apache : {product} : openoffice_4.1.2 : openoffice : {version} : {update} : 4.12.9782 : 4.1.1 Tabelle 46, Beispielhafte CPE-Erstellung für OpenOffice Beispiel 3, Silverlight: Während in Beispiel 2 in den Informationen der Produktbezeichnung eine unnötige Beschreibung nach dem Produkt steht (openoffive_4.1.1), so steht sie im Fall von Silverlight davor. Hersteller Produkt Version ausgelesene Informationen Microsoft Corperation Microsoft Silverlight 5.1.40728.0 cpe:/{part} : {vendor} generierte CPE cpe:/a : microsoft_corperation existierende CPE cpe:/a : microsoft Bsp. für existierende CPE microsoft silverlight 5.1.40416.0 : {product} : microsoft_silverlight : silverlight : {version} : {update} : 5.1.40728.0 : 5.1.40416.0 Tabelle 47, Beispielhafte CPE-Erstellung für Silverlight Die automatisch generierten CPEs müssen vom Format der Angaben identisch zu bereits vorhanden CPEs sein. So muss beispielsweise die Bezeichnung des Herstellers Microsoft in CPE-Namen immer „microsoft“ lauten, und nicht „microsoft_corperation“ Ist dies nicht der Fall, so könnte es vorkommen, dass aufgrund der fehlerhaften Erstellung eines CPE-Namens eine bestimmte, bereits veröffentlichte Sicherheitslücke für ein IT-Produkt, nicht gefunden wird. Die Schwierigkeit der automatischen Erstellung liegt darin, dass keine allgemein gültigen Formatierungskriterien für die Generierung definiert werden können, sondern, individuell je nach Produkt, die unterschiedlichen Informationen passend formatiert werden müssen. So können beispielsweise in Beispiel 2 alle Wörter oder Angaben für die Produktbezeichnung die nach dem ersten Wort auftreten entfernt werden, wohingegen in Beispiel 3 alle Angaben die vor dem letzten Wort auftreten entfernt werden müssten. Diskussion 74 6.3 Feedback zu Secunia Secunia PSI funktioniert zuverlässig. Es scannt den Rechner nach installierten Anwendungen und überprüft anschließend die Angreifbarkeit. Die Bedienung ist sehr einfach, jedoch werden in Secunia PSI keine detaillierten Informationen zu den Warnungen angegeben. Bei einem Klick auf die Funktion „More Information“ wird man auf die Secunia Webseite weitergeleitet. Um dort die Angaben zu sehen, muss zunächst ein Account erstellt werden. Nach der Anmeldung werden anschließend die detaillierten Informationen zu den Warnungen angezeigt, in dem unter anderem auch die CVE-IDs angegeben sind. Beim Vergleich der Ergebnisse ist zwischen Secunia PSI und dem Software-VulnerabilityTool ist ein Verhaltensmuster seitens Secunia PSI aufgefallen, welches zu einer Vermutung schließen lässt. Im speziellen Fall des VLC Players in der Version 2.2.1 wurde vom SoftwareVulnerability-Tool die am 25.08.2015 veröffentliche Sicherheitslücke „CVE-2015-5949“ gefunden. Secunia PSI hat jedoch keine Warnungen zum VLC Player ausgegeben. Bei daraufhin angestellten Recherchen wurde festgestellt, dass für den VLC-Player noch keine neuere Version als die aktuell installierte Version 2.2.1 vorhanden ist. Wenn alle Warnungen von Secunia PSI über die Testphase betrachtet werden, kann man feststellen, dass, sobald eine Warnung angezeigt wird, immer die Möglichkeit besteht ein Update zu installieren. In Folge dessen wurde die Vermutung aufgestellt, dass Secunia PSI nur Warnungen oder Einstufungen zur Kritikalität anzeigt, wenn ein für die Behebung der Warnung benötigtes Update, bereits veröffentlicht ist. Dies würde bedeuten, dass im Falle des VLC Players Sicherheitswarnungen bewusst nicht angezeigt werden, da zum Zeitpunkt der Registrierung der Warnung noch keine Möglichkeit zur Behebung existiert. Auf eine Anfrage bezüglich dieser Vermutung wurde von Secunia im Zeitrahmen dieser Arbeit leider keine Antwort mehr erhalten (siehe Kapitel 9.3). Die Vermutung kann jedoch auch nicht bestätigt werden, da dafür mehr Ergebnisse mit einem solchen Fall, in dem • eine Sicherheitslücke mit Hilfe des Software-Vulnerability-Tools entdeckt wurde • Secuni PSI diese Sicherheitslücke nicht entdeckte und • kein Versionsupdate für die betroffene Anwendung möglich ist, aufgetreten sein müssten. Es existieren jedoch noch weitere Secunia PSI-spezifische Problem. Falsche CVE-Angaben Secunia PSI hat in den gefundenen Warnungen insgesamt 29 falsche CVE-Zuordnungen. Diese falschen Zuordnungen treten bei • Apple iTunes (3 CVEs), • Google Chrome (17 CVEs), • Java Runtime Environment (8 CVEs), • PuTTY (1 CVE), auf. Detaillierte Hinweise zu den falschen Zuordnungen können aus dem Kapitel 5.3.1 entnommen werden. Unterschiedliche Bewertung von Warnungen in Secunia PSI und der Secunia Webseite Bei Warnungen bezüglich Windows 7 ist es eine Auffälligkeit in der Bewertung festgestellt worden. Am 12.11.2015 ist beispielsweise die in Abbildung 39 dargestellte Warnung dokumentiert worden. Diskussion 75 Abbildung 39, Ausschnitt aus Secunia PSI zur Bewertung einer Warnung bezüglich Windows7 Wichtig ist hierbei, das Secunia PSI die Warnung mit einer Kritikalität mit vier von möglichen fünf Punkten bewertet. Während der Testphase wurde keine höhere Kritikalität als vier von fünf regisitriert. Die detaillierte Bewertung der Warnung auf der Secunia-Webseite ist in Abbildung 40 zu sehen. Abbildung 40, Ausschnitt der Secunia-Webseite zur Bewertung einer Warnung bezüglich Windows 7 Anhand der beiden Abbildungen ist zu erkennen, dass Secunia entweder auf der Webseite („Not Crititcal“) oder in der Anwendung (vier von fünf möglichen Punkten in der Einstufung der Kritikalität) eine falsche Bewertung darstellt. Hervorzuheben ist, dass dieses Problem nur in den beiden Warnungen zu Windows 7 aufgetreten ist Problematik zur Updatemöglichkeit von TrueCrypt Secunia PSI zeigte zu Beginn der Testphase eine Warnung für TrueCrypt an. In dieser wird angezeigt, dass die installierte Version nicht mehr vom Hersteller unterstützt wird (Kritikalität = „end of life“). Zusätzlich dazu steht in der Angabe der sicheren Version der Text „Product Discontinued“. Beim Updateversuch von TrueCrypt stellte sich heraus, dass die Entwicklung von TrueCrypt eingestellt wurde und es keine neuere Version gibt. Dies führt dazu, dass die Warnung in Secunia PSI nur durch eine Deinstallation von TrueCrypt entfernt werden könnte. Zusätzlich beeinflusst die Warnung auch die von Secunia angegeben Bewertung der Sicherheit des Systems (genannt Secunia System Score). Selbst wenn zu allen anderen Anwendungen keine Sicherheitswarnungen existieren, kann durch den TrueCrypt-Eintrag maximal ein Secunia System Score von 98% auf dem Testsystem erreicht werden. Diskussion 76 6.4 Feedback zur Implementierung des Tools Die Implementierung der jeweiligen Ausbaustufen lief weitestgehend ohne Probleme ab. Es existierte jedoch ein größeres Problem bei der Nutzung von SQLite. Sobald eines der entwickelten Tools auf einem Rechner ausgeführt wurde, auf der die Entwicklungsumgebung Visual Studio nicht installiert war, trat der in Abbildung 41 dargestellte Fehler auf. Abbildung 41, Fehlermeldung bei Ausführung der entwickelten Tools Das Problem lag an der genutzten SQLite-Bibliothek System.Data.SQlite für das .NETFramework. Dieses benötigt weitere Klassenbibliotheken und versucht diese beim Start der Anwendung aus dem Projektpfad zu öffnen oder aus dem Globalen Assembly Cache, kurz GAC, des Rechners zu laden. Da im Normalfall im GAC die gesuchten Klassenbibliotheken nicht installiert sind und diese im Projektpfad der verschiedenen Tools ebenfalls nicht mitgeliefert waren, tritt ein Fehler auf und das selbst entwickelte Tool stürzt ab. Sobald jedoch auf einem Testsystem, auf dem der Fehler reproduziert wurde, zur Problemanalyse mit Debugging Visual Studio installiert wurde, trat der Fehler nicht mehr auf. Wie sich im Nachhinein heraus stellte werden bei der Installation von Visual Studio automatisch die benötigte Klassenbibliotheken ins GAC hinzugefügt. Die Fehlersuche gestaltete sich als relativ schwierig, da die ausgegebene Exception besagt, dass ein ungekannter oder externer Fehler vorliegt. Für die Lösung des Problems wurden die benötigten Klassenbibliotheken identifiziert und in den Projektpfad der jeweiligen Tools hinzugefügt. 6.4.1 Hinweise zur Verarbeitung des CVE-Verzeichnisses Das CVE-Verzeichnis wird als XML-Datei von der NVD-Webseite (NVD NIST) heruntergeladen. Bei der Verarbeitung der Datei gibt es einige Sonderfälle die beachtet werden müssen. Reservierte CVEs überspringen Im CVE-Verzeichnis existieren einige CVE-IDs welche reserviert sind. Dies kann unterschiedlichste Gründe haben. Jedoch sollten diese CVEs nicht importiert werden, da sie keine Sicherheitslücken oder –risiken widerspiegeln. Ein Beispiel eines betroffenen CVE-Eintrags ist in Abbildung 42 zu sehen. Diskussion 77 Abbildung 42, Eine reservierte CVE-ID im CVE-Verzeichnis Die einfachste Möglichkeit reservierte CVEs zu erkennen ist den Beschreibungstext (XMLTag „vuln:summary“) auf ein Vorkommen von „** REJECT **“ zu überprüfen. Hierbei gilt jedoch darauf zu achten, dass keine Überprüfung mit der String-Funktion StartsWith() durchgeführt werden sollte, da es vorkommen kann das vor dem Text „** REJECT **“ noch ein Leerzeichen angegeben ist. „Null“-CPEs beachten In den entwickelten Tools werden beim Importvorgang die CPE-Namen nochmals in Part, Vendor, Product, Version und Update aufgeteilt. Bei wenigen Einzelfällen wurde jedoch ein IndeOutOfRange-Fehler aufgerufen, da ein bestimmter „Null“-CPE (siehe Abbildung 43) der bei der Aufteilung nicht beachtet wurde. Abbildung 43, „Null“-CPE in CVE-2014-4389 im CVE-Verzeichnis Beim Hinzufügen von CPEs sollte dieser spezielle CPE-Name berücksichtigt werden, da dieser, je nach Implementierung, ansonsten Fehler verursacht. Unterschiedliche Möglichkeiten der CPE-Angabe beachten Im CVE-Verzeichnis werden CPEs für einen CVE-Eintrag zwei verschiedenen XML-Tags angegeben. Zum einen ist dies der XML-Tag „vulnerability-configuration“ und zum anderen ist es der XML-Tag „vulnerability-software-list“. Es existieren drei Varianten, welche beachtet werden sollten. 1. Identische CPEs in beiden XML-Tags In diesem Fall ist es gleichgültig, aus welchem XML-Tag die CPEs verwendet werden. Abbildung 44, CPE-Angabe in beiden XML-Tags identisch Diskussion 78 2. Nur CPEs in XML-Tag vulnerability-configuration In diesem Fall müssen die CPEs aus dem XML-Tag „vulnerability-configuration“ entnommen werden, da ansonsten ein inkonsistenter CVE-Eintrag in der Datenbank entstehen würde. Abbildung 45, CPE-Angabe nur in XML-Tag „vulnerability-configuration“ 3. Mehrere XML-Tags vulnerability-configuration angegeben In diesem Fall können CPEs in mehreren XML-Tags der Art „vulnerabilityconfiguration“ angegeben sein. Hierbei ist es wichtig, dass all diese XML-Tags durchlaufen werden. Abbildung 46, CPEs in mehrere XML-Tags „vulnerability-configuration“ verteilt Die CPEs sollten aus den XML-Tags „vulnerability-configuration“ entnommen werden, da sich dies in der Entwicklung des Software-Vulnerability-Tools bewährt hat und es vorkommen kann, dass der XML-Tag „vulnerability-software-list“ nicht angegeben ist. Hierbei ist wichtig, dass wenn der oben beschriebene 3. Fall eintritt, in dem mehrere „vulnerabilityconfiguration“-Tags für einen CVE-Eintrag definiert sind, manche CPEs doppelt vorkommen können. Darauf sollte geachtet und entsprechend reagiert werden. Diskussion 79 6.4.2 Anmerkung zu Erstellung der Datenbankschemas Bei der Erstellung des Datenbankschemas wurde sich für eine strikte Trennung der unterschiedlichen Standards von CVE, CVSS, CWE und CPE entschieden (siehe Kapitel 4.3.1). Dadurch wurden zwar vermeidbare Redundanzen in Kauf genommen, jedoch hat sich dieser Ansatz bewährt, da so eine sehr übersichtliche und logische Datenbankstruktur geschaffen wurde. Ein weiterer Vorteil der klaren Trennung der Standards ist, dass weitere, wie beispielsweise das Common Configuration Enumeration, kurz CCE, ohne großen Aufwand in die Datenbankstruktur integriert werden können. 6.5 Feedback zur Testphase Die Testphase verlief ohne größere Probleme oder Schwierigkeiten ab. Es wurden in den 90 Tagen der Testphase die Ergebnisse von Secunia PSI regelmäßig überprüft und dokumentiert. Die Suche nach passenden CVEs mit Hilfe des Software-Vulnerability-Tools funktionierte weitestgehend gut. Nur die bereits in Kapitel 6.2.4 beschriebenen Probleme des Abdeckungsgrades der CPES und der nicht möglichen automatischen Generierung von CPEs, führte dazu, dass die passenden CPEs manuellen gesucht werden mussten. Des Weiteren konnte die Anwendung AdwCleaner nicht auf dem System installiert werden, da diese nur als ausführbare Datei verfügbar ist. Aus diesem Grund ist das Programm weder in der Systemsteuerung von Windows 7, dem CPE-Einträgen in der Datenbank oder in Secunia PSI aufgelistet. 6.6 Erweiterungsmöglichkeiten 6.6.1 Software zur Einstufung der Angreifbarkeit eines Systems Auf Basis des Software-Vulnerability-Tools kann eine Anwendung entwickelt werden, die das System nach installierten Softwareanwendungen prüft und diese Informationen, beispielsweise in Form einer XML-Datei, in einer Art Softwareprofil speichert. Die Einträge im Softwareprofil dürfen jedoch keine CPEs sein, da ansonsten das in Kapitel 6.2.4 beschriebene Problem des unzureichenden Abdeckungsgrades der CPE-Einträge, in Kombination mit dem Problem der automatisierten Generierung von CPEs auftritt. Anhand des Profils könnte die Anwendung die lokale SQLite-Datenbank, nach zutreffenden Sicherheitsrisiken beziehungsweise –lücken durchsucht werden. Die gefunden Informationen der Standards dienen als Basis zur Bewertung der Angreifbarkeit der einzelnen, auf dem System installierten Anwendungen und des Gesamtsystem. Diskussion 80 Abbildung 47, Mögliche Funktionsweise für eine Software zu Einstufung der Angreifbarkeit eines Systems, auf Basis, der vom CVE-Verzeichnis bereitgestellten Informationen. 6.6.2 Nutzung eines Datenbankservers Ein Schwachpunkt, der in Kapitel 6.6.1 definierten Anwendung, ist die lokal gespeicherte SQLite Datenbank. Diese ist im Software-Vulnerability-Tool bereits 410 Megabyte groß. In einer Unternehmensstruktur wäre dies ein Argument die Anwendung nicht einzusetzen, da jeder Mitarbeiter auf seinem Rechner die identische 410 Megabyte große Datenbank haben würde. Die Anwendung könnte jedoch so erweitert werden, dass anstelle einer lokalen SQLite Datenbank ein MySQL-Datenbankserver auf einem Serversystem genutzt wird. Dies würde den Vorteil bieten, dass Mitarbeiter sich keine Sorgen um die Aktualisierung der Datenbank machen müssten und es keine redundanten Datenbanken in der Unternehmensstruktur geben würde. Abbildung 48, Darstellung der Nutzung eines Datenbankservers anstelle lokaler SQLite-Datenbanken Diskussion 81 6.6.3 Nutzung einer Host-Client Struktur Die in Kapitel 6.6.2 beschriebene Erweiterungsmöglichkeit setzt voraus, dass die Endbenutzer, die von der Anwendung bereitgestellten Informationen über die Angreifbarkeit des Systems entsprechend nutzen, um beispielsweise für betroffene Anwendungen Updates oder Patches zu installieren. Da jedoch die wenigsten Endbenutzer dafür die benötigten Systemberechtigungen besitzen, wäre eine Erweiterungsmöglichkeit im Sinne eines Systemadministrators sinnvoll, mit welcher dieser eine Gesamtübersicht der Angreifbarkeit aller Rechner des Unternehmens erhalten würde. Dafür müsste eine Clientanwendung entwickelt werden, die auf allen Rechnern des Unternehmens installiert wird. Diese Clientanwendung sucht auf Anfrage einer Hostanwendung nach auf dem Rechner installierten Anwendungen und leitet diese Informationen weiter. Die Hostanwendung muss diese Informationen der einzelnen Clients verarbeiten und in der Datenbank abspeichern oder bestehende Informationen aktualisieren. Dadurch besitzt die Hostanwendung Informationen zu den Softwareprofilen aller Rechner und kann so jeden Rechner einzeln anhand der Standards auf die Angreifbarkeit prüfen. Abbildung 49, Funktionsweise einer Anwendung, welche die Angreifbarkeit mehrerer Rechner überprüfen kann Diskussion 82 6.6.4 Definition des Temporal Scores und Environmental Scores Im CVE-Verzeichnis ist nur der CVSS-Base-Score enthalten. Für Benutzer wäre es jedoch sinnvoll den Temporal Score und den Environmental Score angeben zu können. Dadurch könnte der CVSS-Score auf entsprechende Reaktionen wie beispielsweise die Installation eines Patches oder an spezielle, in der IT-Struktur vorhandenen, Gegebenheiten angepasst werden. Um die beiden Metriken angeben zu können, muss eine leichte Veränderung des in Abbildung 14 dargestellten Datenbankschemas durchgeführt werden. Eine mögliche Änderung der Tabellenstruktur ist in Abbildung 50 angegeben. Dort wird CVSS in die verschiedenen Metriken aufgeteilt. Der CVSS-Overall-Score wird in der Tabelle „cvss“ gespeichert. Besonderer Erklärung benötigt die Wertigkeit bei der Verbindung zwischen „cvss“ und „base_metrics“. Dort ist definiert, dass die Basismetriken leer sein dürfen. Eigentlich ist dies verboten, da die Basismetriken immer angegeben sein müssen, jedoch wird, wie beim Vorgehen in Abbildung 3 dargestellt, in solchen Fällen der CVSS-Overall-Score in der Tabelle „cvss“ auf „Not Defined“ gesetzt. Abbildung 50, Mögliche Änderung der Datenbankstruktur zur Speicherung aller CVSS-Metriken 6.6.5 Durchführung einer Testphase auf Basis anderer Testparameter Aufgrund der begrenzten Zeitvorgabe dieser Abschlussarbeit konnte keine längere Testphase durchgeführt werden. Eine Erweiterungsmöglichkeit wäre, dass anstelle von drei Monaten ein Softwareprofil über einen Zeitraum eines halben oder ganzen Jahres geprüft wird. Des Weiteren könnten die Programme des Testprofils geändert und weitere Anwendungen hinzugefügt werden. Anstelle des in dieser Arbeit definierten Vergleichsproduktes Secunia PSI könnte eine oder gar mehrere andere Anwendungen als Vergleich herangezogen werden. Dadurch könnten weit mehr Ergebnisse gesammelt werden und es könnten noch detailliertere Aussagen bezüglich der Quantität und Qualität des CVE-Verzeichnisses getroffen werden. Fazit 83 7 Fazit Die Ergebnisse der Testphase zeigen, dass die von Standards CVE, CVSS, CWE und CPE bereitgestellten Informationen die notwendige Qualität bieten, um als Grundlage für die Entwicklung von Sicherheitsanalyseanwendungen zu dienen. Das durch die NVD bereitgestellte CVE-Verzeichnis beinhaltet alle bereits veröffentlichten CVE-Einträge, was in diesem Test dazu führte, dass mehr Sicherheitslücken als bei dem ausgewählten Vergleichsprodukt Secunia PSI identifiziert wurden. Bei der Entwicklung des Software-Vulnerability-Tools wurden Eigenschaften des CVEVerzeichnisses identifiziert, die bei der Verarbeitung beachtet werden sollten. Darunter fallen die unterschiedlichen Möglichkeiten zur Angabe der CPEs, sowie die Beachtung reservierter CVEs. Im detaillierten Vergleich der Ergebnisse des Software-Vulnerability-Tools und Secunia PSI wurden einige Fehler und Probleme seitens Secunia deutlich. So sind in manchen Ergebnissen falsche CVEs zugeordnet. Des Weiteren ist eine unterschiedliche Bewertung in Secunia PSI und der Secunia Webseite bei Warnungen zu Windows 7 aufgefallen. Die Vermutung, dass Secunia PSI nur dann Warnungen zu Softwareanwendungen anzeigt, wenn zu diesen bereits eine Problemlösung in Form eines Updates existiert, konnte im Rahmen dieser Arbeit nicht eindeutig geklärt werden. Das Zusammenspiel der einzelnen Standards bietet jedoch Raum für Verbesserungen. So ist das Zusammenspiel zwischen CVE und CVSS bereits sehr gut, wohingegen beim Zusammenspiel zwischen CPE und CVE die größte Schwierigkeit besteht. Dies liegt zum größten Teil an Problemen, die den Standard CPE selbst betreffen, jedoch durch Verknüpfung mit CVE eben auch diesen beeinflussen. Ein Beispiel hierfür ist die Zusammenfassung mehrerer Versionen eines IT-Produktes zu einem CPE-Eintrag, wodurch ein CVE-Eintrag nicht mehr klar einer bestimmten Softwareversion zugeordnet werden kann. Ein weiteres Beispiel ist die fehlende Angabe im CVE-Verzeichnis, dass alle Produkte ab einer bestimmten Version von einem CVE-Eintrag betroffen sind. Das Zusammenspiel zwischen CVE und CWE wird durch die Angabe der CWE-ID in einem CVE-Eintrag realisiert. Um jedoch die detaillierten Informationen zu einer Softwareschwachstelle zu erhalten muss das CWE-Verzeichnis zusätzlich importiert werden. Die geringe Anzahl der im CVE-Verzeichnis genutzten, unterschiedlichen CWEs deuten darauf hin, dass nicht für jede Sicherheitslücke die detaillierte CWE-ID angegeben, sondern nur oberflächlich zwischen den Softwareschwachstellen unterschieden wird. Trotz dieser Probleme im Zusammenspiel ist es sinnvoll, das CVE-Verzeichnis als mögliche Informationsgrundlage für Sicherheitsanwendungen in Betracht zu ziehen, da der CVEStandard von vielen Herstellern genutzt wird, um ihre Sicherheitslücken eindeutig zu benennen. Dadurch bietet das von der NVD bereitgestellte CVE-Verzeichnis zurzeit eine der besten Möglichkeiten, kostenlos auf zuverlässige und gut strukturierte Informationen zu Sicherheitslücken zuzugreifen. Literaturverzeichnis 84 8 Literaturverzeichnis AlienVault, Inc (Hg.): Vulnerability-Assessment-Remediation. Online verfügbar unter https://www.alienvault.com/solutions/vulnerability-assessment-remediation, zuletzt geprüft am 12.12.2015. Cheikes, Brant A.; Waltermire, David; Scarfone, Karen (2010): Common Platform Enumeration. Naming Specification. Version 2.3. Hg. v. NIST. Online verfügbar unter http://csrc.nist.gov/publications/nistir/ir7695/NISTIR-7695-CPE-Naming.pdf, zuletzt aktualisiert am 30.08.2011, zuletzt geprüft am 12.12.2015. CHIP (Hg.) (2015): Top 100 -Downloads des Monats. Freeware. Online verfügbar unter http://www.chip.de/Downloads-Download-Charts-Top-100-desMonats_32417777.html?xbl_category=9232&xbl_freeware=1, zuletzt geprüft am 27.08.2015. Christey, Steve (2010): CVE and CVSS. Hg. v. The MITRE Corporation. Online verfügbar unter http://scap.nist.gov/events/2010/itsac/presentations/day1/SCAP_101CVE_and_CVSS.pdf, zuletzt aktualisiert am 27.09.2015, zuletzt geprüft am 11.12.2015. Cichonski, Paul; Waltermire, David; Scarefone, Karen (2010): Common Platform Enumeration. Dictionary Specification. Version 2.3. Hg. v. NIST. Online verfügbar unter http://csrc.nist.gov/publications/nistir/ir7697/NISTIR-7697-CPE-Dictionary.pdf, zuletzt aktualisiert am 30.08.2011, zuletzt geprüft am 12.12.2015. Cisco Systems, Inc. (Hg.) (2009): Cisco Security IntelliShield Alert Manager Service. Online verfügbar unter http://www.cisco.com/en/US/services/ps2827/ps6834/services_overview0900aecd803e85ee.p df, zuletzt geprüft am 12.12.2015. FILEHIPPO (Hg.): FileHippo App Manager. Online verfügbar unter http://www.filehippo.com/de/download_app_manager/, zuletzt geprüft am 12.12.2015. FILEHIPPO (Hg.) (2015): Beliebte Software. Online verfügbar unter http://filehippo.com/de/popular/, zuletzt geprüft am 27.08.2015. FIRST (Hg.): Common Vulnerability Scoring System v3.0. Specification Document. Online verfügbar unter http://www.first.org/cvss/specification-document, zuletzt geprüft am 12.12.2015. FIRST (Hg.): CVSS Frequently Asked Questions. Online verfügbar unter http://www.first.org/cvss/v2/faq, zuletzt geprüft am 12.12.2015. Focus (Hg.) (2015): Sicherheitslücke entdeckt. Experten warnen: Adobe Flash Player sofort abschalten! Online verfügbar unter http://www.focus.de/digital/computer/sicherheitslueckenentdeckt-experten-warnen-adobe-flash-player-sofort-deinstallieren_id_4427539.html, zuletzt aktualisiert am 24.01.2015, zuletzt geprüft am 11.12.2015. Literaturverzeichnis 85 heise online (Hg.) (2015): Top-Downloads des Monats. Online verfügbar unter http://www.heise.de/download/top-downloads50000505000/?prgll=30&lf=1&lf=3&lf=2&lf=5&styp=w&styp=s&liste=dwl&srt=dwl, zuletzt geprüft am 27.08.2015. Hwaci (Hg.) (2015): About System.Data.SQLite. Online verfügbar unter http://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki, zuletzt aktualisiert am 13.12.2015, zuletzt geprüft am 15.12.2015. IBM (Hg.): Internet scanner. Internet scanner vulnerability assessment application helps provide the foundation for effective network security for your business. Online verfügbar unter http://www-935.ibm.com/services/id/en/it-services/internet-scanner.html, zuletzt geprüft am 12.12.2015. KC Softwares (Hg.): SUMo Software Update Monitor. Online verfügbar unter http://www.kcsoftwares.com/?sumo, zuletzt geprüft am 12.12.2015. Kuri, Jürgen (2015): Sicherheitslücke in Millionen Android-Geräten. Hg. v. heise online. Online verfügbar unter http://www.heise.de/security/meldung/Sicherheitsluecke-in-MillionenAndroid-Geraeten-Google-empfiehlt-Chrome-oder-Firefox-als-Abhilfe-2528130.html, zuletzt aktualisiert am 26.01.2015, zuletzt geprüft am 11.12.2015. Martin, Brian (2014): Reviewing the Secunia 2013 Vulnerability Review. Online verfügbar unter http://blog.osvdb.org/2014/03/18/reviewing-the-secunia-2013-vulnerability-review/, zuletzt aktualisiert am 18.03.2014, zuletzt geprüft am 11.12.2015. Mell, Peter; Scarfone, Karen; Romanosky, Sasha: A Complete Guide to theCommon Vulnerability Scoring System Version 2.0. Hg. v. FIRST. Online verfügbar unter http://www.first.org/cvss/v2/guide, zuletzt geprüft am 12.12.2015. Microsoft (Hg.): Microsoft Baseline Security Analyzer. Online verfügbar unter https://technet.microsoft.com/de-de/security/cc184924.aspx, zuletzt geprüft am 12.12.2015. NVD NIST (Hg.): Common Vulnerability Scoring System Version 2 Calculator. Online verfügbar unter https://nvd.nist.gov/cvss.cfm?calculator&adv&version=2, zuletzt geprüft am 12.12.2015. NVD NIST (Hg.): CVE dictionary 2015. Online verfügbar unter http://static.nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-2015.xml.zip. NVD NIST (Hg.): NVD Data Feeds. Online verfügbar unter https://nvd.nist.gov/download.cfm#CVE_FEED, zuletzt geprüft am 12.12.2015. NVD NIST (Hg.) (2015): Vulnerability Summary for CVE-2015-8480. Online verfügbar unter https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8480, zuletzt aktualisiert am 07.12.2015, zuletzt geprüft am 08.12.2015. Ouchn, Nj (2015): vFeed Framework (API & Correlated Vulnerability Database). Online verfügbar unter https://github.com/toolswatch/vFeed/wiki/%5B1%5D-vFeed-Framework%28API-&-Correlated-Vulnerability-Database%29, zuletzt aktualisiert am 30.10.2015, zuletzt geprüft am 11.12.2015. Paar, C.; Schimmler, M. (2008): COPACOBANA. A Codebreaker for DES and other Ciphers. Online verfügbar unter http://www.copacobana.org/index.html, zuletzt aktualisiert am 01.05.2008, zuletzt geprüft am 12.12.2015. Parmelee, Mary C.; Booth, Harold; Waltermire, David; Scarfone, Karen (2010): Common Platform Enumeration. Name Matching Specification. Version 2.3. Hg. v. NIST. Online ver- Literaturverzeichnis 86 fügbar unter http://csrc.nist.gov/publications/nistir/ir7696/NISTIR-7696-CPE-Matching.pdf, zuletzt aktualisiert am 30.08.2011, zuletzt geprüft am 12.12.2015. PC Pitstop (Hg.) (2013): The 100 Most Popular Freeware Downloads. Online verfügbar unter http://techtalk.pcpitstop.com/2013/06/12/the-100-most-popular-freeware-downloads/, zuletzt aktualisiert am 12.06.2013, zuletzt geprüft am 12.12.2015. Secunia (Hg.): Adobe Reader / Acrobat Multiple Vulnerabilities. Online verfügbar unter https://secunia.com/advisories/66814. Secunia (Hg.): Secunia PSI. Online verfügbar unter http://secunia.com/vulnerability_scanning/personal/, zuletzt geprüft am 12.12.2015. statista (Hg.) (2015): Marktanteile der führenden Betriebssystemversionen in Deutschland von Januar 2009 bis September 2015. Online verfügbar unter http://de.statista.com/statistik/daten/studie/158102/umfrage/marktanteile-vonbetriebssystemen-in-deutschland-seit-2009/, zuletzt geprüft am 12.12.2015. The MITRE Corporation (Hg.): The CERT C Secure Coding Standard view. Online verfügbar unter https://cwe.mitre.org/data/pdf/734.pdf, zuletzt geprüft am 12.12.2015. The MITRE Corporation (Hg.) (2013a): Terminology. Online verfügbar unter https://cve.mitre.org/about/terminology.html, zuletzt aktualisiert am 27.02.2013, zuletzt geprüft am 12.12.2015. The MITRE Corporation (Hg.) (2013b): CPE Specifications — Archive. Online verfügbar unter http://cpe.mitre.org/specification/, zuletzt aktualisiert am 22.03.2013, zuletzt geprüft am 12.12.2015. The MITRE Corporation (Hg.) (2014a): Frequently Asked Questions (FAQ). What information is included in a CWE weakness entry? Online verfügbar unter https://cwe.mitre.org/about/faq.html#B.3, zuletzt aktualisiert am 25.06.2014, zuletzt geprüft am 12.12.2015. The MITRE Corporation (Hg.) (2014b): About CWE. Online verfügbar unter https://cwe.mitre.org/about/index.html, zuletzt aktualisiert am 11.07.2014, zuletzt geprüft am 12.12.2015. The MITRE Corporation (Hg.) (2014c): Frequently Asked Questions (FAQ). What is the difference between a software vulnerability and software weakness? Online verfügbar unter https://cwe.mitre.org/about/faq.html#A.2, zuletzt aktualisiert am 25.07.2014, zuletzt geprüft am 12.12.2015. The MITRE Corporation (Hg.) (2015a): About CVE. Online verfügbar unter https://cve.mitre.org/about/index.html, zuletzt aktualisiert am 21.01.2015, zuletzt geprüft am 12.12.2015. The MITRE Corporation (Hg.) (2015b): CVE Numbering Authorities. Online verfügbar unter https://cve.mitre.org/cve/cna.html, zuletzt aktualisiert am 12.02.2015, zuletzt geprüft am 12.12.2015. The MITRE Corporation (Hg.) (2015c): About CVE Identifiers. Online verfügbar unter https://cve.mitre.org/cve/identifiers/index.html, zuletzt aktualisiert am 10.03.2015, zuletzt geprüft am 12.12.2015. The MITRE Corporation (Hg.) (2015d): CVE-ID Syntax Change. Online verfügbar unter https://cve.mitre.org/cve/identifiers/syntaxchange.html#new, zuletzt aktualisiert am 01.07.2015, zuletzt geprüft am 12.12.2015. Literaturverzeichnis 87 The MITRE Corporation (Hg.) (2015e): CVE Editorial Board. Online verfügbar unter https://cve.mitre.org/community/board/index.html, zuletzt aktualisiert am 03.11.2015, zuletzt geprüft am 12.12.2015. The MITRE Corporation (Hg.) (2015f): CWE List Version 2.9. Online verfügbar unter https://cwe.mitre.org/data/index.html#documentation, zuletzt aktualisiert am 07.12.2015, zuletzt geprüft am 12.12.2015. The MITRE Corporation (Hg.) (2015g): CWE-369: Divide By Zero. Online verfügbar unter https://cwe.mitre.org/data/definitions/369.html, zuletzt aktualisiert am 08.12.2015, zuletzt geprüft am 12.12.2015. Tucows (Hg.) (2015): Top 100 Free Windows Downloads. Online verfügbar unter http://www.tucows.com/list_detail.html?id=9, zuletzt geprüft am 27.08.2015. Waltermine, David; Cichonski, Paul; Scarfone, Karen (2011): Common Platform Enumeration. Applicability Language Specification. Versio 2.3. Hg. v. NIST. Online verfügbar unter http://csrc.nist.gov/publications/nistir/ir7698/NISTIR-7698-CPE-Language.pdf, zuletzt aktualisiert am 30.08.2011, zuletzt geprüft am 12.12.2015. Welberg, S. M.: Vulnerability management tools for COTS software - A comparison. Hg. v. University of Twente. Online verfügbar unter http://doc.utwente.nl/64654/1/Vulnerability_management_tools_for_COTS_software__a_comparison_v2.1.pdf, zuletzt geprüft am 11.12.2015. Wikipedia (Hg.): Chip Online. Online verfügbar unter https://de.wikipedia.org/wiki/Chip_Online, zuletzt geprüft am 12.12.2015. Wikipedia (Hg.): Heise online. Online verfügbar unter https://de.wikipedia.org/wiki/Heise_online, zuletzt geprüft am 12.12.2015. Wikipedia (Hg.) (2015a): Smurf-Angriff. Online verfügbar unter https://de.wikipedia.org/wiki/Smurf-Angriff, zuletzt aktualisiert am 20.08.2015, zuletzt geprüft am 15.15.2015. Wikipedia (2015b): Mitre Corporation. Online verfügbar unter https://en.wikipedia.org/wiki/Mitre_Corporation, zuletzt aktualisiert am 07.10.2015, zuletzt geprüft am 12.12.2015. Erklärung des Kandidaten 88 Erklärung des Kandidaten Die Arbeit habe ich selbstständig verfasst und keine anderen als die angegebenen Quellen- und Hilfsmittel verwendet. Name des Verfasser: Matthias Scherf 15.12.2015 Datum Unterschrift des Kandidaten Anhang 89 9 Anhang 9.1 Detaillierte Informationen zu Ergebnissen von Secunia PSI Zu manchen Sicherheitswarnungen von Secunia PSI existieren zusätzliche Informationen auf der Secunia Webseite. Die Sicherheitswarnungen, bei denen dies zutrifft werden im Folgenden aufgeführt: 30.08.2015, Mozilla Firefox Abbildung 51, detaillierte Informationen zur Warnung bezüglich des Mozilla Firefox am 30.08.2015 12 09.09.2015, .NET-Framework Abbildung 52, detaillierte Informationen zur Warnung bezüglich des –NET-Frameworks am 09.09.2015 13 12 13 https://secunia.com/advisories/66121 https://secunia.com/advisories/66386 Anhang 90 09.09.2015, Microsoft Internet Explorer Abbildung 53, detaillierte Informationen zur Warnung bezüglich des Microsoft Internet Explorer am 09.09.2015 14 09.09.2015, Windows 7 Abbildung 54, detaillierte Informationen zur Warnung bezüglich Windows 7 am 09.09.2015 15 14 15 https://secunia.com/advisories/65987 https://secunia.com/advisories/66387 Anhang 18.09.2015, Apple iTunes Abbildung 55, detaillierte Informationen zur Warnung bezüglich Apple iTunes am 18.09.2015 16 16 https:/secunia.com/advisories/66341 91 Anhang 15.10.2015, Acrobat Reader Abbildung 56, detaillierte Informationen zur Warnung bezüglich Acrobat Reader am 15.10.2015 17 19.10.2015, Mozilla Firefox Abbildung 57, detaillierte Informationen zur Warnung bezüglich Mozilla Firefox am 19.10.2015 18 17 18 https://secunia.com/advisories/66814 https://secunia.com/advisories/66902 92 Anhang 93 23.10.2015, Java Runtime Environment Abbildung 58, detaillierte Informationen zur Warnung bezüglich der Java Runtime Environment am 23.10.2015 19 23.10.2015, Apple iTunes Abbildung 59, detaillierte Informationen zur Warnung bezüglich Apple iTunes am 23.10.2015 20 19 20 https://secunia.com/advisories/67038 https://secunia.com/advisories/66960 Anhang 94 02.11.2015, Apache OpenOffice Abbildung 60, detaillierte Informationen zur Warnung bezüglich Apache OpenOffice am 02.11.2015 21 10.11.2015, PuTTY Abbildung 61, detaillierte Informationen zur Warnung bezüglich PuTTY am 10.11.2015 22 21 22 https://secunia.com/advisories/64302 https://secunia.com/advisories/67306 Anhang 11.11.2015, Google Chrome Abbildung 62, detaillierte Informationen zur Warnung bezüglich Google Chrome am 11.11.2015 23 11.11.2015, Adobe Flash Player Abbildung 63, detaillierte Informationen zur Warnung bezüglich des Adobe Flash Players am 11.11.2015 24 23 24 https://secunia.com/advisories/67276 https://secunia.com/advisories/67114 95 Anhang 12.11.2015, Windows 7 Abbildung 64, detaillierte Informationen zur Warnung bezüglich Windows 7 am 12.11.2015 25 25 https://secunia.com/advisories/67337 96 Anhang 97 9.2 Lastenheft für das Software-Vulnerability-Tool 9.2.1 Einleitung Dieses Dokument dient dem Zweck die Eigenschaften und Funktionen der zu entwickelnden Software „Software-Vulnerability-Tool“ festzulegen. Dazu ist eine Sammlung von Pflichtanforderungen und optionalen Anforderungen erstellt worden, die als Grundlage zur Softwareentwicklung und Evaluation der Software dienen. Jede Anforderung muss des Weiteren dabei helfen ein definiertes Ziel zu erreichen. Die zu entwickelnde Software „Software-Vulnerability-Tool“ basiert auf den Anwendungen „CVE-Import-Tool“ und „CVE-Research-Tool“. Aus diesem Grund sind • • die Ziele (Z1) bis (Z7), sowie die Anforderungen (A1) bis (A62) für das „CVEResearch-Tool“, die Ziele (Z1) bis (Z4), sowie die Anforderungen (A1) bis (A33) für das „CVEImport-Tool“ identisch. 9.2.2 Ziele Die zu entwickelnde Software muss folgende Ziele erfüllen: (Z1) Speicherung aller Informationen von CVEs CVEs und alle mit einem CVE-Eintrag verknüpften Elemente müssen in einer geeigneten Art als Verzeichnis lokal auf dem ausführenden System gespeichert werden können. (Z2) Aktualität der Informationen Das CVE-Verzeichnis, welches lokal auf dem ausführenden System gespeichert wird, muss auf dem aktuellsten Stand gehalten werden können. (Z3) Unabhängigkeit von Quellen Das zu entwickelnde Programm muss unabhängig von einer bestimmten Quelle zur Informationsbeschaffung sein. Erläuterung: Es sollen somit beispielsweise unterschiedliche Quellen gleichzeitig oder einzelne Quellen verändert oder ausgetauscht werden können. Dies ist unter anderem durch die Definition eines XML-Schemas für CVEs möglich (Z4) Benutzerfreundlichkeit Das zu entwickelnde Programm muss benutzerfreundlich, intuitiv zu bedienen sein und für den Benutzer angemessene Reaktionszeiten besitzen. (Z5) Durchsuchen des lokalen CVE-Verzeichnisses Das lokal gespeicherte CVE-Verzeichnis muss durchsucht werden können und die Ergebnisse in einer geeigneten Form dargestellt werden. Anhang 98 (Z6) Anzeige detaillierter Informationen Die mit einem CVE-Eintrag verknüpften Informationen müssen alle in einer für den Nutzer einfachen und übersichtlichen Art und Weise angezeigt werden. (Z7) CVE-Verzeichnisses nach CPE-Profil durchsuchen Das CVE-Verzeichnis muss anhand einer Liste von CPEs (genannt CPE-Profil), welche in geeigneter Form lokal abgespeichert werden kann, durchsucht werden können. (Z8) Inkonsistenzen im CVE-Verzeichnis Der Nutzer muss Informationen zu Inkonsistenzen im CVE-Verzeichnis angezeigt bekommen. Hinweis: Mit Inkonsistenzen sind CVE-Einträge gemeint, denen kein CPE-Eintrag zugeordnet ist. (Z9) Statistiken Das zu entwickelnde Programm muss es dem Benutzer erlauben Statistiken zu erzeugen. 9.2.3 Anforderungen In diesem Kapitel werden die Anforderungen an die Anwendung definiert, welche diese erfüllen muss. • • • Pflichtanforderungen sind durch die Schlüsselwörter „muss“ und „darf nicht“ erkennbar Optionale Anforderungen sind durch das Schlüsselwort „soll“ erkennbar Jede Anforderung wird mit einem Ziel referenziert, welche die jeweilige Anforderung hilft zu erreichen Anforderungen werden in funktionale Anforderungen und nicht-funktionale Anforderungen getrennt. Funktionale Anforderungen Datenbank (A1) Datenbank Das CVE-Verzeichnis muss in einer lokalen Datenbank gespeichert werden. siehe Ziel (Z1) (A2) Datenbankserver Die Datenbank muss ohne Datenbankserver genutzt werden können. siehe Ziel (Z1) (A3) Verteilung Die Datenbank muss leicht verteilt werden können siehe Ziel (Z1) Datenbankschema (A4) Standardorientierte Tabellenstrukturierung Das Datenbankschema muss eine Strukturierung der Tabellen besitzen, welche die Standards CVE, CPE, CVSS und CWE klar voneinander trennt. siehe Ziel (Z1) Anhang 99 (A5) Vermeidbare Redundanzen I Das Datenbankschema muss vermeidbare Redundanzen erlauben, sofern diese Redundanzen nötig sind, um der Anforderung (A5) Standardorientierte Tabellenstruktur gerecht werden zu können. Erläuterung: Sofern eine Tabelle Inhalt enthält der standardspezifisch ist (also Informationen zu CVE, CPE, CVSS oder CWE besitzt), müssen vermeidbare Redundanzen erlaubt sein, um so die verschiedenen Standards tabellarisch klar trennen zu können. siehe Ziel (Z1) (A6) Vermeidbare Redundanzen II Das Datenbankschema darf nicht vermeidbare Redundanzen ermöglichen, wenn die Redundanzen nicht nötig sind, um der Anforderung (A5) Standardorientierte Tabellenstruktur gerecht zu werden. Erläuterung: Sofern eine Tabelle keinen Inhalt enthält der standardspezifisch ist (also keine Informationen zu CVE, CPE, CVSS oder CWE besitzt), müssen vermeidbare Redundanzen vermieden werden. siehe Ziel (Z1) (A7) Eindeutige Primärschlüssel Das Datenbankschema muss eindeutige Primärschlüssel für alle Tabellen definieren. siehe Ziel (Z1) (A8) Passende Datentypen Das Datenbankschema muss zu den zu speichernden Informationen passende Datentypen für die Tabellenspalten definieren. Erläuterung: Passend bedeutet in diesem Fall, dass beispielsweise für den Wert 1443052 kein TEXT-Datentyp, sondern ein INTEGER-Datentyp definiert wird. siehe Ziel (Z1) CVE- und CPE-Informationsbeschaffung (A9) Quelle der Importdatei für CVEs I Die CVE-Einträge sollen aus der National Vulnerability Database entnommen werden. siehe Ziele (Z2), (Z3) (A10) Quelle der Importdatei für CVEs II Ein URL-Pfad zu einer Informationsquelle für CVE-Einträge muss zu der Liste der CVEQuellen hinzugefügt werden können. siehe Ziele (Z2), (Z3) (A30) Quelle der Importdatei für CVEs III Ein URL-Pfad zu einer Informationsquelle für CVE-Einträge muss aus der Liste der CVEQuellen entfernt werden können. siehe Ziele (Z2), (Z3) (A31) CVE-Quellen speichern Die vom Benutzer eingegebenen Quellen für CVE-Einträge, müssen auch nach Beenden und erneutem Starten der zu entwickelnden Software weiterhin bestehen. siehe Ziel (Z4) Anhang 100 (A77) Quelle der Importdatei für CPEs I Zusätzliche CPE-Einträge sollen aus der National Vulnerability Database entnommen werden. siehe Ziele (Z2), (Z3) (A78) Quelle der Importdatei für CPEs II Ein URL-Pfad zu einer Informationsquelle für CPE-Einträge muss zu der Liste der CPEQuellen hinzugefügt werden können. siehe Ziele (Z2), (Z3) (A79) Quelle der Importdatei für CPEs III Ein URL-Pfad zu einer Informationsquelle für CPE-Einträge muss aus der Liste der CPEQuellen entfernt werden können. siehe Ziele (Z2), (Z3) (A80) CPE-Quellen speichern Die vom Benutzer eingegebenen Quellen für CPE-Einträge, müssen auch nach Beenden und erneutem Starten der zu entwickelnden Software weiterhin bestehen. siehe Ziel (Z4) (A13) Automatischer Download der CVE-Importdatei Die zu entwickelnde Software muss automatisch die benötigten Importdateien für CVEs herunterladen. siehe Ziel (Z2) (A81) Automatischer Download der CPE-Importdatei Die zu entwickelnde Software muss automatisch die benötigten Importdateien für CPEs herunterladen. siehe Ziel (Z2) (A14) Automatische Löschung Die zu entwickelnde Software muss nach dem erfolgreichen oder nicht erfolgreichen Import, automatisch die benötigten Importdateien für CVEs löschen. siehe Ziel (Z2) (A82) Automatische Löschung Die zu entwickelnde Software muss nach dem erfolgreichen oder nicht erfolgreichen Import, automatisch die benötigten Importdateien für CPEs löschen. siehe Ziel (Z2) (A15) Format der Importdatei für CVEs Die Datei in der die CVE-Einträge enthalten sind muss im XML-Format vorliegen. siehe Ziel (Z2) (A83) Format der Importdatei für CPEs Die Datei in der die CPE-Einträge enthalten sind muss im XML-Format vorliegen. siehe Ziel (Z2) (A17) Verarbeitung der Importdatei für CVEs Die Importdatei für CVEs muss von der zu entwickelnden Software ohne Informationsverlust ausgelesen werden. Erläuterung: Informationsverlust bedeutet, dass keine der in der Importdatei vorhandenen Informationen bzw. XML-Elemente übersprungen werden darf siehe Ziel (Z2) Anhang 101 (A84) Verarbeitung der Importdatei für CPEs Die Importdatei für CPEs muss von der zu entwickelnden Software ohne Informationsverlust ausgelesen werden. siehe Ziel (Z2) Datenbankfunktionalitäten (A19) CVE-Einträge zur Datenbank hinzufügen Noch nicht der Datenbank vorhandene CVE-Einträge müssen in diese hinzugefügt werden können. siehe Ziel (Z2) (A85) CPE-Einträge zur Datenbank hinzufügen Noch nicht der Datenbank vorhandene CPE-Einträge müssen in diese hinzugefügt werden können. siehe Ziel (Z2) (A21) CVE-Einträge in der Datenbank aktualisieren Bereits in der Datenbank vorhandene CVE-Einträge müssen in dieser aktualisiert werden können. siehe Ziel (Z2) (A86) CPE-Einträge in der Datenbank aktualisieren Bereits in der Datenbank vorhandene CVE-Einträge müssen in dieser aktualisiert werden können. siehe Ziel (Z2) (A23) Unterscheidung zwischen hinzufügen und aktualisieren von CVE-Einträgen Die zu entwickelnde Software muss automatisch erkennen, ob ein CVE-Eintrag hinzugefügt oder aktualisiert werden muss siehe Ziel (Z2) (A87) Unterscheidung zwischen hinzufügen und aktualisieren von CPE-Einträgen Die zu entwickelnde Software muss automatisch erkennen, ob ein CPE-Eintrag hinzugefügt oder aktualisiert werden muss siehe Ziel (Z2) Datenbank updaten (A25) Datenbank aktualisieren Die zu entwickelnde Software muss dem Nutzer die Möglichkeit bieten, die Datenbank mit wenig Benutzeraufwand aktualisieren zu können. siehe Ziele (Z2), (Z4) (A26) Letzte Datenbankaktualisierung Die zu entwickelnde Software muss das Datum und die Uhrzeit der letzten Datenbankaktualisierung speichern. siehe Ziel (Z2) (A27) Datenbankaktualisierung abbrechen Die zu entwickelnde Software muss die Möglichkeit bieten, den Aktualisierungsvorgang der Datenbank abbrechen zu können. siehe Ziel (Z2) Anhang 102 (A73) Anzeige der Anzahl der gespeicherten Datensätze der jeweiligen Standards Die zu entwickelnde Software muss die Anzahl der Datensätze, die für die jeweiligen Standards CVE, CVSS, CWE und CPE in der Datenbank gespeichert sind, anzeigen. siehe Ziele (Z4), (Z6) Datenbank updaten (A34) CVE-Verzeichnis nach CVE-ID durchsuchen Die zu entwickelnde Software muss die Möglichkeit bieten, das lokale CVE-Verzeichnis unter Angabe einer CVE-ID als Suchkriterium zu durchsuchen. siehe Ziel (Z5) (A35) CVE-Verzeichnis nach bestimmten Softwareprodukt durchsuchen Die zu entwickelnde Software muss die Möglichkeit bieten, das lokale CVE-Verzeichnis unter Angabe eines Softwareprodukts als Suchkriterium zu durchsuchen. siehe Ziel (Z5) (A36) CVE-Verzeichnis ab einem bestimmten Datum durchsuchen Die zu entwickelnde Software muss die Möglichkeit bieten, das lokale CVE-Verzeichnis unter Angabe eines bestimmten Datums als Suchkriterium zu durchsuchen und alle Einträge anzuzeigen, die ab dem eingegebenen Datum veröffentlicht wurden. siehe Ziel (Z5) (A37) CVE-Verzeichnis bis zu einem bestimmten Datum durchsuchen Die zu entwickelnde Software muss die Möglichkeit bieten, das lokale CVE-Verzeichnis unter Angabe eines bestimmten Datums als Suchkriterium zu durchsuchen und alle Einträge anzuzeigen, die bis zu dem eingegebenen Datum veröffentlicht wurden. siehe Ziel (Z5) (A38) Kombination der Suchkriterien Die zu entwickelnde Software muss die Möglichkeit bieten, die in den Anforderung (A34), (A35), (A36) und (A37) definierten Suchkriterien miteinander zu kombinieren, um so eine detailliertere Suche zu ermöglichen. siehe Ziel (Z5) (A39) Groß- und Kleinschreibung der Suchkriterien Die in den Anforderungen (A34) und (A35) definierten Suchkriterien müssen unabhängig ob groß oder klein geschrieben die gewünschte Suche des Nutzers ermöglichen. siehe Ziel (Z5) (A40) Anzeige der Suchergebnisse Die in den Anforderungen (A34) bis (A38) gefunden Suchergebnisse müssen in einer Liste angezeigt werden, welche mindestens • die CVE-ID • das Datum der Veröffentlichung • das Datum der letzten Bearbeitung des CVE-Eintrags darstellt siehe Ziel (Z5) (A41) Detaillierte Anzeige von Suchergebnissen Die zu entwickelnde Software muss die Möglichkeit besitzen eine detaillierte Ansicht eines einzelnen Suchergebnisses der Suchergebnisliste anzuzeigen. siehe Ziel (Z5) Anhang 103 Detaillierte Anzeige eines CVE-Updates (A42) Anzeige von verknüpften CPE-Einträgen Die zu entwickelnde Software muss in der detaillierten Ansicht eines CVE-Eintrags alle mit dem CVE-Eintrag verknüpften CPE-Einträge, falls vorhanden, auflisten. siehe Ziel (Z6) (A43) Anzeige des verknüpften CVSS-Eintrags Die zu entwickelnde Software muss in der detaillierten Ansicht eines CVE-Eintrags alle Informationen des mit dem CVE-Eintrag verknüpften CVSS-Eintrags, falls vorhanden, darstellen. siehe Ziel (Z6) (A44) Anzeige der Beschreibung Die zu entwickelnde Software muss in der detaillierten Ansicht eines CVE-Eintrags die Beschreibung des CVE-Eintrags, falls vorhanden, darstellen. siehe Ziel (Z6) (A45) Anzeige der verknüpften CWE-ID Die zu entwickelnde Software muss in der detaillierten Ansicht eines CVE-Eintrags die mit dem CVE-Eintrag verknüpften CWE-ID, falls vorhanden, darstellen. siehe Ziel (Z6) (A72) Link für weitere Informationen zur CWE-ID Die zu entwickelnde Software muss in der detaillierten Ansicht eines CVE-Eintrags die in (A45) beschriebene CWE-ID als Link darstellen, der falls angeklickt, den Nutzer zu einer Webseite mit detaillierten Informationen zur CWE-ID leitet. siehe Ziele (Z4), (Z6) (A46) Anzeige von verknüpften Referenzen Die zu entwickelnde Software muss in der detaillierten Ansicht eines CVE-Eintrags alle mit dem CVE-Eintrag verknüpften Referenzen, falls vorhanden, auflisten. siehe Ziel (Z6) CPE-Profil (A46) CPE-Profil erstellen Die zu entwickelnde Software muss dem Nutzer die Möglichkeit bieten, ein CPE-Profil zu erstellen. siehe Ziele (Z5), (Z7) (A47) CPE-Profil speichern Die zu entwickelnde Software muss dem Nutzer die Möglichkeit bieten, ein erstelltes CPEProfil in geeigneter Form, auf dem ausführenden System zu speichern. siehe Ziele (Z5), (Z7) (A48) CPE-Profil bearbeiten Die zu entwickelnde Software muss dem Nutzer die Möglichkeit bieten, ein gespeichertes CPE-Profil laden und anschließend bearbeiten zu können. siehe Ziele (Z5), (Z7) (A49) Anzeige aller vorhandenen CPE-Einträge des CVE-Verzeichnisses Bei der Erstellung und Bearbeitung eines CPE-Profils müssen alle im CVE-Verzeichnis gespeicherten CPE-Einträge in einer Liste dargestellt werden. siehe Ziele (Z5), (Z7) Anhang 104 (A50) Anzeige der CPE-Einträge des CPE-Profils Bei der Erstellung oder Bearbeitung eines CPE-Profils müssen die CPE-Einträge, welche zu dem CPE-Profil gehören, in einer Liste dargestellt werden. siehe Ziele (Z5), (Z7) (A51) Filterung der Liste der CPE-Einträge Die in der Anforderung (A49) definierte Liste von CPE-Einträgen muss nach dem CPENamen gefiltert werden können. siehe Ziele (Z4), (Z7) (A52) Inhalt der CPE-Listen Die in den Anforderungen (A47) und (A48) definierten Listen müssen folgende Informationen darstellen: • Part (Art des Produkts: Hardware {h}, Betriebssystem {o} oder Anwendung {a}) • Vendor (Name des Herstellers) • Product (Name des Produkts) • Version (Versionsnummer) • Update (Herstellerspezifischer Name {Alpha, Beta u.ä.}) siehe Ziele (Z5), (Z7) (A53) CPE-Eintrag zum CPE-Profil hinzufügen Bei der Erstellung und Bearbeitung eines CPE-Profils muss für den Nutzer die Möglichkeit bestehen aus der in Anforderung (A49) definierten Liste von CPE-Einträgen einen selektierten Eintrag in die Liste der CPE-Einträge des CPE-Profils hinzuzufügen. siehe Ziele (Z5), (Z7) (A54) Vermeidung doppelter CPE-Einträge im CPE-Profil Das zu entwickelnde System muss beim Hinzufügen eines CPE-Eintrags zu einem CPEProfil (A53) automatisch erkennen, ob dieser bereits im Profil existiert und entsprechend darauf reagieren, um mehrfache Einträge eines CPEs zu vermeiden. siehe Ziele (Z5), (Z7) (A55) CPE-Eintrag aus CPE-Profil entfernen Bei der Erstellung und Bearbeitung eines CPE-Profils muss für den Nutzer die Möglichkeit bestehen aus der in Anforderung (A50) definierten Liste von CPE-Einträgen einen selektierten Eintrag zu entfernen. siehe Ziele (Z5), (Z7) (A56) Zeitpunkt für CPE-Profil festlegen I Bei der Erstellung und Bearbeitung eines CPE-Profils muss für den Nutzer die Möglichkeit bestehen einen Zeitpunkt anzugeben, der bestimmt, ab wann Schwachstellen (CVEs) für CPE-Einträge des Profils frühestens veröffentlicht sein sollen. Hinweis: Beim späteren Durchsuchen der Datenbank sollen alle Schwachstellen ignoriert werden, die vor dem angegebenen Zeitpunkt veröffentlicht wurden siehe Ziele (Z5), (Z7) (A57) Zeitpunkt für CPE-Profil festlegen II Bei der Erstellung und Bearbeitung eines CPE-Profils muss für den Nutzer die Möglichkeit bestehen einen Zeitpunkt anzugeben, der bestimmt, bis wann Schwachstellen (CVEs) für CPE-Einträge des Profils spätestens veröffentlicht sein sollen. Hinweis: Beim späteren Durchsuchen der Datenbank sollen alle Schwachstellen ignoriert werden, die nach dem angegebenen Zeitpunkt veröffentlicht wurden siehe Ziele (Z5), (Z7) Anhang 105 (A58) Zeitraum für CPE-Profil festlegen Bei der Erstellung und Bearbeitung eines CPE-Profils müssen die in den Anforderungen (A56) und (A57) definierten Zeitpunkte kombiniert werden können, um so einen Zeitraum festzulegen, in dem die CVEs für das CPE-Profil veröffentlicht sein sollen. siehe Ziele (Z5), (Z7) (A59) Speichertort für das CPE-Profil abfragen I Bei der Erstellung und Bearbeitung eines CPE-Profils muss beim Speichervorgang der Name und der Speicherort, in welchem das CPE-Profil gespeichert werden soll, abgefragt werden. siehe Ziele (Z5), (Z7) (A60) Speichertort für das CPE-Profil abfragen II Wenn der Nutzer ein CPE-Profil bearbeiten möchte, muss der Speicherort des zu bearbeitenden CPE-Profils abgefragt werden. siehe Ziele (Z5), (Z7) (A61) Speichertort für das CPE-Profil abfragen III Wenn der Nutzer das CVE-Verzeichnis anhand eines CPE-Profils nach CVE-Einträgen durchsuchen möchte, muss der Speicherort des CPE-Profils abgefragt werden. siehe Ziele (Z5), (Z7) (A62) CVE-Verzeichnis anhand des CPE-Profils durchsuchen Das zu entwickelnde System muss anhand eines CPE-Profils alle CVE-Einträge des CVEVerzeichnisses finden, die mit dem im Profil hinterlegten CPE-Einträgen verknüpft und im hinterlegten Zeitraum, falls vorhanden, veröffentlicht sind. siehe Ziele (Z5), (Z7) Inkonsistenzen (A63) Prüfung der Datenbank auf inkonsistente CVEs Die zu entwickelnde Software muss dem Nutzer die Möglichkeit bieten, das in der Datenbank gespeicherte CVE-Verzeichnis auf inkonsistente CVE-Einträge prüfen zu können. siehe Ziel (Z8) (A64) Anzahl der inkonsistenten CVEs darstellen Die zu entwickelnde Software muss nach der Überprüfung der inkonsistenten CVEs (A63) die Anzahl der CVE-Einträge, die eine Inkonsistenz vorweisen, darstellen. siehe Ziel (Z8) (A65) Liste aller inkonsistenten CVE-Einträge darstellen Die zu entwickelnde Software muss nach der Überprüfung der Inkonsistenzen (A63) eine Liste aller CVE-Einträge, die eine Inkonsistenz vorweisen, darstellen. siehe Ziel (Z8) (A66) Detaillierte Ansicht eines inkonsistenten CVE-Eintrags Die zu entwickelnde Software muss dem Nutzer die Möglichkeit bieten, eine detaillierte Ansicht eines, aus der Liste der inkonsistenten CVE-Einträge stammenden (A65), CVE-Eintrags anzuzeigen. siehe Ziel (Z4) Anhang 106 Statistiken (A67) Statistik zur Anzahl der CVEs Die zu entwickelnde Software muss dem Nutzer die Möglichkeit bieten, eine Statistik zu der Anzahl der im Jahr veröffentlichten CVEs zu erzeugen. siehe Ziel (Z9) (A74) Statistik zur Anzahl der CVEs eines CPE-Profils Die zu entwickelnde Software muss dem Nutzer die Möglichkeit bieten, eine Statistik, zu der Anzahl der im Jahr veröffentlichten CVEs eines bestimmten CPE-Profils, zu erzeugen. siehe Ziel (Z9) (A68) Statistik zur Häufigkeit von verknüpften CWE-IDs Die zu entwickelnde Software muss dem Nutzer die Möglichkeit bieten eine Statistik zu erzeugen, in der die Anzahl der CVEs, gruppiert nach den verwendeten CWE-IDs, dargestellt werden. Beispiel: Ist die CWE-ID „CWE-16“ in 53 CVE-Einträgen angegeben, so soll in der Statistik die ID „CWE-16“ mit der Anzahl 53 dargestellt werden. Ist in einem CVE-Eintrag keine CWE-ID angegeben, so wird die CVE-ID in dieser Statistik ignoriert. siehe Ziel (Z9) (A75) Statistik zur Häufigkeit von verknüpften CWE-IDs in einem CPE-Profil Die zu entwickelnde Software muss dem Nutzer die Möglichkeit bieten eine Statistik zu erzeugen, in der die Anzahl der CVEs, gruppiert nach den verwendeten CWE-IDs, dargestellt werden. siehe Ziel (Z9) (A69) Statistik zu der Verteilung der CVSS-Base-Scores Die zu entwickelnde Software muss dem Nutzer die Möglichkeit bieten, eine Statistik zu der Verteilung aller in der Datenbank vorhandenen CVSS-Base-Scores zu erzeugen. Hinweis: Der CVSS-Score soll in Bereiche 1-2, 2-3 usw. aufgeteilt werden. Anschließend soll die Anzahl aller CVE-Einträge, welche einen CVSS-Base-Score im entsprechenden Bereich besitzen, in der Statistik aufgezeigt werden. siehe Ziel (Z9) (A76) Statistik zu der Verteilung der CVSS-Base-Scores in einem CPE-Profil Die zu entwickelnde Software muss dem Nutzer die Möglichkeit bieten, eine Statistik zu der Verteilung aller, für ein Profil gefundenen CVSS-Base-Scores zu erzeugen. siehe Ziel (Z9) (A70) Format der Statistiken Die Werte der in den Anforderungen (A67) bis (A69) und (A74) bis (A76) definierten Statistiken müssen alle automatisiert in eine Excel-Datei übertragen werden siehe Ziel (Z9) (A71) Format der Statistiken Aus den in der Anforderung (A70) übertragenen Werten muss automatisiert ein ExcelDiagramm erzeugt werden. siehe Ziel (Z9) Anhang 107 Funktionale Anforderungen (A28) Dauer der Ladevorgänge Die zu entwickelnde Software muss eine Reaktionszeit von maximal 10 Sekunden gewährleisten. Hinweis: Zur Reaktionszeit zählt beispielsweise das Öffnen der detaillierten Ansicht eines CVE-Eintrags oder das Öffnen des Menüfensters zur Erstellung eines CPE-Profils. Das Updaten der Datenbank zählt nicht als Reaktionszeit! siehe Ziel (Z4) (A29) Benutzeroberfläche Die Benutzeroberfläche muss strukturiert und übersichtlich sein. siehe Ziel (Z4) Anhang 108 9.3 E-Mail-Korrespondenzen E-Mail an MITRE Datum:06.12.2015 Von: Scherf, Matthias <[email protected]> An: [email protected] Text: Dear CVE-Team, I am currently writing my Bachelor Thesis dealing with the use of the CVE-dictionary for my university degree. Because of that, I programmed a Tool which imports your CVE-dictionary. There are some things that I find very strange and I would love to have some explanations from you: 1) I got CVE-entrys in my database which are not RESERVED and these CVEs did not have any CPEs assigned to them (for example CVE-2015-8480). This is strange because: What does a Vulnerability tell me if I dont know WHERE it appears? Right now I have 577 cases in which this problem appears. 2) I noticed a problem with CPEs, for example in CVE-2015-7200. In the summary it says: „…before 42.0 and Firefox ESR 38.X …“. So every Firefox version which is > 42 is effected by this CVE. But in the CPE-list of this CVE only firefox version 41.0.1 appears. That means (as I understand it) that all the smaller versions are not affected despite the text in the summary of the CVE. Is that possible? With kind regards, Matthias Scherf Hochschule-Trier Anhang 109 Datum:08.12.2015 Von: Coffin, Chris <[email protected]> An: Scherf, Matthias <[email protected]> Text: Matthias, > I got CVE-entrys in my database which are not RESERVED and these CVEs did not have any CPEs assigned to them (for example CVE-2015-8480). CVE-2015-8480 does appear to have one CPE assigned on the NVD (https://web.nvd.nist.gov/view/vuln/detail?vulnID=CVE-2015-8480). It is possible that NIST had not yet analyzed this CVE to determine applicable CPEs before you queried it. Please note that CPEs are not defined by the MITRE CVE Team. The NIST NVD team ([email protected]) assigns CPEs and you can contact them with questions related to the CPE assignments. > I noticed a problem with CPEs, for example in CVE-2015-7200. In the summary it says: „…before 42.0 and Firefox ESR 38.X …“. So every Firefox version which is > 42 is effected by this CVE. But in the CPE-list of this CVE only firefox version 41.0.1 appears. That means (as I understand it) that all the smaller versions are not affected despite the text in the summary of the CVE. Is that possible? Note that the full version string is “before 42.0 and Firefox ESR 38.x before 38.4.” This translates to, Firefox versions less than 42.0 are vulnerable AND Firefox ESR versions less than 38.4 are vulnerable. Versions 42.0 and 38.4 are the fixed versions according to the vendor. Chris Coffin The CVE Team The MITRE Corporation Bemerkung zur Antwort: Leider wurde am 07.12-2015 der CVE-Eintrag „CVE-2015-8480“ aktualisiert. Bei dieser Aktualisierung wurde auch der von Herrn Coffin angesprochene CPE-Eintrag hinzugefügt. Abbildung 65, Ausschnitt des Eintrags CVE-2015-8480 aus der NVD-Webseite Die Antwort zur zweiten Frage bezieht sich leider nicht auf die XML-Datei, weswegen eine weitere Email zu diesem Sachverhalt an das NIST NVD-Team gesendet wurde. Anhang 110 E-Mail an das NIST NVD-Team Datum:09.12.2015 Von: Scherf, Matthias <[email protected]> An: [email protected] Text: Dear CPE-Team I am currently writing a paper for my university degree about using the CVE-dictionary. Because of that, I programmed a Tool which imports the CVE-dictionary (For exmaple from this link „http://static.nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-2015.xml.zip“). I have got a problem with some CPE-Entries. In the summary of the CVE-2015-7200 it says: „…before 42.0 and Firefox ESR 38.X …“. How can I see this in the CPE declaration of this CVE in the XML file? The file says: <vuln:vulnerable-configuration id="http://www.nist.gov/"> <cpe-lang:logical-test operator="OR" negate="false"> <cpe-lang:fact-ref name="cpe:/a:mozilla:firefox:41.0.2"/> </cpe-lang:logical-test> </vuln:vulnerable-configuration> <vuln:vulnerable-configuration id="http://www.nist.gov/"> <cpe-lang:logical-test operator="OR" negate="false"> <cpe-lang:fact-ref name="cpe:/a:mozilla:firefox_esr:38.0"/> <cpe-lang:fact-ref name="cpe:/a:mozilla:firefox_esr:38.0.1"/> <cpe-lang:fact-ref name="cpe:/a:mozilla:firefox_esr:38.0.5"/> <cpe-lang:fact-ref name="cpe:/a:mozilla:firefox_esr:38.1.0"/> <cpe-lang:fact-ref name="cpe:/a:mozilla:firefox_esr:38.1.1"/> <cpe-lang:fact-ref name="cpe:/a:mozilla:firefox_esr:38.2.0"/> <cpe-lang:fact-ref name="cpe:/a:mozilla:firefox_esr:38.2.1"/> <cpe-lang:fact-ref name="cpe:/a:mozilla:firefox_esr:38.3.0"/> </cpe-lang:logical-test> </vuln:vulnerable-configuration> <vuln:vulnerable-software-list> <vuln:product>cpe:/a:mozilla:firefox_esr:38.1.1</vuln:product> <vuln:product>cpe:/a:mozilla:firefox_esr:38.2.0</vuln:product> <vuln:product>cpe:/a:mozilla:firefox_esr:38.0.1</vuln:product> <vuln:product>cpe:/a:mozilla:firefox_esr:38.1.0</vuln:product> <vuln:product>cpe:/a:mozilla:firefox:41.0.2</vuln:product> <vuln:product>cpe:/a:mozilla:firefox_esr:38.2.1</vuln:product> <vuln:product>cpe:/a:mozilla:firefox_esr:38.3.0</vuln:product> <vuln:product>cpe:/a:mozilla:firefox_esr:38.0</vuln:product> <vuln:product>cpe:/a:mozilla:firefox_esr:38.0.5</vuln:product> </vuln:vulnerable-software-list> So Is there some indication where I can see that all earlier versions are affected? It is the same with CVE-2015-8480 where on the website (https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8480 ) it is saying „cpe:/a:google:chrome:46.0.2490.86 and previous versions“ but in the XML file it says: <vuln:vulnerable-configuration id="http://nvd.nist.gov/"> <cpe-lang:logical-test operator="OR" negate="false"> Anhang 111 <cpe-lang:fact-ref name="cpe:/a:google:chrome:46.0.2490.86"/> </cpe-lang:logical-test> </vuln:vulnerable-configuration> <vuln:vulnerable-software-list> <vuln:product>cpe:/a:google:chrome:46.0.2490.86</vuln:product> </vuln:vulnerable-software-list> Thank you and best wishes, Matthias Scherf Hochschule-Trier E-Mail an Secunia Datum:07.12.2015 Von: Scherf, Matthias <[email protected]> An: [email protected] Text: Dear Secunia PSI-Team I am currently writing my Bachelor Thesis dealing with Software Vulnerability Tools and I have got a question which is really bothering me. Is it possible that Secunia PSI only displays a vulnerability for a software if an update is available? I have never seen Secunia showing me vulnerabilities if that has not been the case. Sincerely, Matthias Scherf Hochschule-Trier