Erkennung Und Visualisierung Von Verwundbaren Systemen . - HAW Hamburg

Transcription

BachelorarbeitPhilipp GozdzikErkennung und Visualisierung vonverwundbaren Systemen anhand derKommunikation zu Update-Services vonLinux-DistributionenFakultät Technik und InformatikDepartment InformatikFaculty of Engineering and Computer ScienceDepartment of Computer Science

Philipp GozdzikErkennung und Visualisierung vonverwundbaren Systemen anhand derKommunikation zu Update-Services vonLinux-DistributionenBachelorarbeit eingereicht im Rahmen der Bachelorprüfungim Studiengang Bachelor of Science Angewandte Informatikam Department Informatikder Fakultät Technik und Informatikder Hochschule für Angewandte Wissenschaften HamburgBetreuender Prüfer: Prof. Dr. Klaus-Peter KossakowskiZweitgutachter: Prof. Dr.-Ing. Olaf ZukunftAbgegeben am 26.10.2018

Philipp GozdzikThema der ArbeitErkennung und Visualisierung von verwundbaren Systemen anhand derKommunikation zu Update-Services von Linux-DistributionenStichworteIT-Sicherheit, verwundbare Systeme, Sicherheitslücken, Linux, passiveAnalyseKurzzusammenfassungIn dieser Arbeit wird ein Software-Prototyp entworfen und umgesetzt, derden unverschlüsselten Netzwerkverkehr zwischen Linux-Systemen undUpdate-Services von Linux-Distributionen analysiert, sodass verwundbare Systeme innerhalb eines Netzwerks identifiziert und visualisiertwerden können. Hierfür wird ein Verfahren entwickelt, welchesUpdatekommunikation erkennt und derart auswertet, dass Rückschlüssedarüber gezogen werden können welche Softwarepakete auf den LinuxSystemen eingesetzt werden. Durch den Abgleich mit einer CVEDatenbank kann auf dieser Basis festgestellt werden, ob dieseSoftwarepakete über bekannte Sicherheitslücken verfügen.Philipp GozdzikTitle of the paperDetection and visualization of vulnerable systems based on thecommunication to update services of Linux distributionsKeywordsIT security, vulnerable systems, vulnerabilities, Linux, passive analysisAbstractIn this thesis, a software prototype is designed and implemented whichanalyzes unencrypted network traffic between Linux systems and updateservices of Linux distributions, with the objective to identify and visualizevulnerable systems within a network. For this purpose, a procedure isdeveloped which recognizes update communication and evaluates it toconclude which software packages are installed on the Linux systems. ACVE database can then be used to determine if these software packageshave known vulnerabilities.

Inhaltsverzeichnis1. Einleitung.71.1 Motivation.71.2 Ziel und Abgrenzung.91.3 Zielgruppe.91.4 Aufbau der Arbeit.102. Grundlagen.112.1 Linux-Distributionen.112.2 IT-Sicherheit.132.3 Sicherheitslücken und Schwachstellen.142.4 CVE.152.5 CPE.172.6 Vulnerability Scanner.182.7 Sniffer.202.8 Verwandte Arbeiten.203. Anforderungen.213.1 Funktionale Anforderungen.223.2 Nicht-funktionale Anforderungen.27

4. Systementwurf.284.1 Konzept.284.2 Kontextsicht.304.3 Verteilungssicht.314.4 Bausteinsicht.334.5 Sequenzdiagramm.355. Implementierung.365.1 Programmiersprache.365.2 Bibliotheken und Frameworks.375.2.1 Datenformate.375.2.2 Kommandozeilen-Interface.375.2.3 Message Broker.385.2.4 Zentrale Datenhaltung.385.2.5 Sniffer. 395.2.6 Job Queue. 395.2.7 Lokale CVE-Datenbank.395.3 Sensor-System.405.3.1 Analyse: Updates unter Linux.405.3.2 Algorithmus zur Auswertung der URI.465.3.3 Duplikate und Blacklisting.505.3.4 Daten eines Updates.515.3.5 Übermittlung an das Überwachungs-System.525.3.6 Logging. 535.4 Überwachungs-System.555.4.1 Zentrale Datenhaltung.555.4.2 CVE-Datenbank.565.4.3 Benutzerschnittstelle.575.4.4 Programmierschnittstelle.62

6. Evaluation.636.1 Testszenario.646.2 Testumgebung.646.3 Quantität der Daten.656.3.1 Vollständigkeit der Daten.666.3.2 Anzahl der Update-Einträge.686.4 Aufwand zur Auswertung der Daten.696.5 Aussagekraft der Daten.707. Fazit.757.1 Zusammenfassung.757.2 chnis.81

1. Einleitung1.1 MotivationMit der fortschreitenden Vernetzung von Diensten und Systemen dietagtäglich in Unternehmen, Organisationen oder im privaten Bereich zumEinsatz kommen, werden immer mehr sensible Daten digital verarbeitetund bereitgestellt. Es bedarf keiner besonderen Erwähnung, dass dasRisiko des Zugriffs auf diese Daten durch unbefugte Akteure minimalgehalten werden muss, um Datenverlust und -missbrauch und die darausentstehenden wirtschaftlichen Konsequenzen zu vermeiden bzw. zuminimieren. IT-Sicherheit nimmt damit immer mehr an Bedeutung zu undstellt IT-Sicherheitsbeauftragte, Softwareentwickler und IT-Administratorenvor große Herausforderungen.Um dieser Herausforderung gerecht zu werden, kann auf Ebene derNetzwerksicherheit eine Vielzahl von Sicherheitskomponenten eingesetztwerden. Beispielsweise filtern Firewalls den Netzwerkverkehr, sodass nurbestimmte Dienste über die Firewall hinweg kommunizieren können. Alsein weiteres Sicherheitsinstrument analysieren Netzwerk IntrusionDetection Systeme den Netzwerkverkehr auf vom Regelfall abweichendeVorkommnisse, um potentielle Eindringlinge in einem Netzwerk zuentdecken.Diese Maßnahmen bieten allerdings keinen unmittelbaren Schutz fürexponierte Dienste, wie Web- oder Mail-Server. So kann derWebserverdienst eines Unternehmens eine Sicherheitslücke aufweisen, da

1. Einleitung8zuletzt keine neuesten Updates installiert worden sind. Ein Angreifer kannin diesem Fall versuchen die Verfügbarkeit des Dienstes durchAusnutzung der Sicherheitslücke zu stören, mit dem Ziel, demUnternehmen zu schaden oder es gar zu erpressen. Bei schwerwiegendenSicherheitslücken besteht die Möglichkeit den Host, auf dem der Dienstläuft, zu übernehmen, um so an sensible Informationen zu gelangen oderum von dort aus weitere Angriffe in das Unternehmensnetzwerk zustarten. Aber auch nicht exponierte Systeme, wie Arbeitsplatzrechner,können begünstigt durch vorhandene Sicherheitslücken zu Zielen vonAngriffen werden. Erwähnt sei hier der Adobe Flash Player, der seit Jahrenimmer wieder mit äußerst kritischen Sicherheitslücken aufwartet.Die Überwachung der Aktualität von eingesetzten Softwarekomponentenund existierender Sicherheitslücken ist also ein wichtiger Bestandteil desMaßnahmenkatalogs zur Verbesserung der Sicherheit in IT-Systemen. Sieist aber ebenso ein aufwändiges Unterfangen, denn es werden jeden Tagneue Sicherheitslücken bekannt. Der Abgleich der von Sicherheitslückenbetroffenen Dienste und Anwendungen mit denen, die im eigenen ITSystem eingesetzt werden ist zeitkritisch und sollte daher automatisiertüberwacht werden, um im Fall von existenten Sicherheitslücken zeitnahreagieren zu können und diese zu beheben.Zur Identifikation von verwundbaren Systemen können VulnerabilityScanner aktive Netzwerkscans von zu überwachenden Systemendurchführen, um an Informationen über eingesetzte Dienste zu gelangenund eine Überprüfung auf bekannte Sicherheitslücken durchzuführen.Eine weitere Möglichkeit Dienste zu identifizieren, ist die passive Analyseder Kommunikation von im Netzwerk aktiven Diensten, um anhandbekannter Muster, diese zu identifizieren und zu benennen. Ebenso ist esmöglich, durch den Einsatz lokaler Überwachungsinstanzen auf tallierteSoftwarekomponenten zu erhalten, selbst über jene, die nur lokalverwendet werden.Diese Arbeit will einen weiteren Lösungsansatz entwickeln, bei dem nikation

1. Einleitung9identifiziert und ausgewertet wird, um so an Informationen zueingesetzten Softwarekomponenten zu gelangen und eine Überprüfungauf bekannte Sicherheitslücken zu ermöglichen. Diese Herangehensweisewürde es erlauben, die Vorteile von passiver Analyse (keineEinflussnahme auf den Netzwerkbetrieb) mit denen von lokalerÜberwachungssoftware (Erfassung von lokalen als auch exponiertenDiensten) zu vereinen.1.2 Ziel und AbgrenzungIm Fokus dieser Arbeit steht die Entwicklung eines Software-Protoypen,der den Netzwerkverkehr analysiert, sodass verwundbare Systeme imNetzwerk identifiziert werden können. Die Untersuchung desNetzwerkverkehrs durch den Prototypen beschränkt sich hierbei auf dieunverschlüsselte Updatekommunikation von Linux-Systemen, die miteiner der gängigen Linux-Distributionen betrieben werden.Die Architektur des Prototypen soll es erlauben, Systeminformationendezentral zu sammeln und zentral auszuwerten, damit beispielsweiseauch die Überwachung größerer Netzwerke realisierbar ist. Für diezentrale Auswertungskomponente soll eine Benutzerschnittstelle in Formeiner Kommandozeilenanwendung angeboten werden. Damit auch eineautomatisierte Weiterverarbeitung der gesammelten Daten möglich ist,soll die zentrale Komponente ebenso über eine Programmierschnittstelleverfügen, über die diese Daten in einem geeigneten Format abrufbarsind.1.3 ZielgruppeDiese Arbeit richtet sich an alle Personen, die Interesse am Bereich der ITSicherheit haben und über grundlegende Informatikkenntnisse verfügen.Dies können beispielsweise Softwareentwickler, IT-Administratoren, ITSicherheitsbeauftragte, Informatik-Studenten oder Informatik-Lehrendesein.

1. Einleitung101.4 Aufbau der ArbeitIn Kapitel 2 werden die benötigten Grundlagen behandelt, um denEinstieg in diese Arbeit zu erleichtern. Hierbei werden unter anderemwichtige Industriestandards aus dem Bereich der IT-Sicherheit eingeführt,die für die automatisierte Verarbeitung von Informationen zu Sicherheitslücken und der Zuordnung zu Softwareprodukten essentiell sind.In Kapitel 3 werden die Anforderungen an den zu entwickelndenPrototypen aufgestellt und notwendige Kernfunktionen formuliert.In Kapitel 4 werden anhand der zuvor definierten Anforderungen diewesentlichen Architekturentscheidungen beschrieben und ein geeignetesSystem entworfen. Anhand verschiedener Sichten auf das System werdenunter anderem Schnittstellen des Systems, Interaktionen mit demBenutzer und das Zusammenspiel der Komponenten veranschaulicht.Kapitel 5 beschreibt schließlich die Umsetzung des Prototypen und diedabei eingesetzten Technologien. Wichtiger Bestandteil dieses Kapitels istdie Untersuchung der Updatekommunikation von Linux-Systemen und dieEntwicklung eines geeigneten Verfahrens zur Erkennung vonangeforderten Softwarepaketen, um so Rückschlüsse auf eingesetzteSoftware zu ermöglichen.Kapitel 6 befasst sich mit der Evaluation des umgesetzten Prototypen.Hierbei wird der Prototyp in einer Testumgebung eingesetzt und einfestgelegtes Szenario durchgespielt. Die durch den Prototypengesammelten Daten werden im Anschluss anhand verschiedener, vorabdefinierter Gesichtspunkte betrachtet und mögliche Probleme derUmsetzung festgehalten. Des Weiteren werden Vorschläge zurOptimierung gemacht.In Kapitel 7 werden die erarbeiteten Ergebnisse dieser Arbeit zusammengefasst und mit der zu Beginn festgelegten Zielsetzung abgeglichen.Zudem werden weitere Ansatzpunkte für aufbauende Arbeiten gegeben.

2. Grundlagen112. dlagenundIndustriestandards aus dem Bereich der IT-Sicherheit ein, die für dieautomatisierte Verarbeitung von Informationen zu Sicherheitslücken undder Zuordnung zu Softwareprodukten essentiell sind.Im Speziellen wird hierbei auf die Definition und Abgrenzung zwischenSicherheitslücken und Schwachstellen (Abschnitt 2.3) näher eingegangen.Des Weiteren werden der Standard zur Benennung von SicherheitslückenCVE (Abschnitt 2.4) sowie der CPE-Standard (Abschnitt 2.5) nundSoftwarepaketen erläutert. Schließlich werden die verschiedenen Artenvon Vulnerability Scannern (Abschnitt 2.6) besprochen. Wie mit Hilfe vonsogenannten Sniffern der Netzwerkverkehr für weitere Analysenmitgeschnitten werden kann, wird im Abschnitt 2.7 dargestellt. DenAbschluss des Kapitels bildet die Betrachtung von verwandtenLösungsansätzen in Literatur und in der Praxis.Es wird davon ausgegangen, dass ein grundlegendes Verständnis übertechnologische Aspekte wie reguläre Ausdrücke oder das HTTP-Protokollvorhanden ist. Die Herleitung und Umsetzung eines geeignetenVerfahrens zur Identifizierung und Evaluation von Updatekommunikationberuht im Wesentlichen auf diesen beiden Themengebieten und wird inKapitel 4 (Implementierung) näher beleuchtet.2.1 Linux-DistributionenDiese Arbeit findet Anwendung in der Überwachung und Auswertung derUpdatekommunikation von Linux-Systemen, die mit unterschiedlichenLinux-Distributionen betrieben werden. Daher soll an dieser Stelle kurzauf diese eingegangen werden.

2. Grundlagen12Der Quellcode von Linux ist frei verfügbar und verwendbar. So ist ngenzusammenzustellen und als Distribution zur Verfügung zu stellen.Neben dem Linux-Kernel basiert eine solche Distribution meist auf einerVielzahl von weiteren freien Anwendungen. Wenn also zum Beispiel einegrafische Benutzeroberfläche benötigt wird, können hierfür freieAnwendungen wie KDE oder GNOME zur Distribution hinzugefügt undkonfiguriert werden.Im Laufe der Zeit sind so zahlreiche Distributionen mit verschiedenenSchwerpunkten entstanden. Beispielsweise kann es erforderlich sein, dasseine Distribution nur wenig Speicherplatz belegen darf, um von einemUSB-Stick betrieben werden zu können. Andere Distributionen könnenwiederum an spezielle Hardware- oder Sicherheitsanforderungenangepasst sein. [vgl. Ehses et al., 2012, S.293; Erben, 2017, S.21;Wolfinger, 2013, S.15]1. Manjaro6. MX Linux2. Mint7. Solus3. Ubuntu8. Fedora4. elementary9. openSUSE5. Debian10. AntergosAbbildung 2.1: Überblick über die zehn gefragtesten Linux-Distributionen dervergangenen 12 Monate, erhoben durch DistroWatch durch das sogenannte„DistroWatch Page Hit Ranking“ [vgl. DISTROWATCH, 2018]Durch die hohe Flexibilität von Linux ergibt sich ein breites Spektrum anEinsatzmöglichkeiten in den unterschiedlichsten Branchen. DieGemeinsamkeiten unterschiedlicher Linux-Distributionen wiederumkönnten nützlich sein, um ein möglichst allgemeines Verfahren zurIdentifizierung verwundbarer Linux-Systeme zu entwickeln.

2. Grundlagen132.2 IT-SicherheitDer in dieser Arbeit zu entwickelnde Prototyp und die hergeleitetenVerfahren sollen im Wesentlichen bei der Durchsetzung von Schutzzielender IT-Sicherheit unterstützen.Ziel von IT-Sicherheit ist es, den Schutz von Informationen und ITSystemen zu gewährleisten. Dabei ist eine Untergliederung in eineVielzahl von Schutzzielen möglich. Die primären Schutzziele der ITSicherheit sind: rchunbefugte Dritte Integrität: Schutz vor Manipulation von Informationen durchunbefugte Dritte Verfügbarkeit: Gewährleistung der Erreichbarkeit von Diensten undInformation für befugte Benutzer[vgl. Rohr, 2015, S.29]Die Durchsetzung der Schutzziele bedarf des Einsatzes rSystemeaufSoftwareprodukte mit Sicherheitslücken, so wie es der hier icherheitsmaßnahme die hierfür ergriffen werden kann. DerSystemadministrator kann bei identifizierten Sicherheitslücken reagierenund betroffene Systeme patchen, bevor ein Angreifer diese zureichendeSicherheitsmaßnahmen verletzt werden. So kann beispielsweise dasVernachlässigen der Durchführung regelmäßiger Updates dazu führen,dass ein Angreifer durch Ausnutzung einer schwerwiegendenSicherheitslücke einer ungepatchten Anwendung Zugriff auf ein System

2. Grundlagen14erlangt. Wenn er dadurch Zugang zu sensiblen Daten erhält und dieseverändert, sind die Schutzziele Vertraulichkeit und Integrität verletzt.Wenn er wichtige Daten löscht, verschlüsselt oder Dienste herunterfährt,ist die Verfügbarkeit dieser nicht mehr gewährleistet. [vgl. Kappes, 2013,S.4]2.3 Sicherheitslücken und SchwachstellenIn der IT-Sicherheit und bei der Durchsetzung von Schutzzielen spielt dieBehebung von Sicherheitsproblemen in IT-Systemen eine essentielleRolle. Um ein Problem zu identifizieren, muss dieses zunächst benanntwerden. Dabei wird oftmals nahezu analog von Sicherheitslücken undSchwachstellen gesprochen. Die Differenzierung beider Begriffe ist auchfür diese Arbeit wichtig, da sie sich explizit auf die Erkennung vonSoftware mit Sicherheitslücken konzentriert und sich hierbei auf den CVEStandard (Common Vulnerabilities and Exposures) stützt, welcher imAnschluss beschrieben wird.Während es im Englischen eine klare Unterscheidung zwischen denBegriffen „Schwachstelle“ (engl. Weakness) und Sicherheitslücke (engl.Vulnerability) gibt, werden im Deutschen beide Begriffe häufig alsSynonym verstanden. Nach Rohr ist aber jene Differenzierung besonderswichtig, um ein Sicherheitsproblem genau beschreiben zu können. [vgl.Rohr, 2015, S.45]Er grenzt beide Begriffe wie folgt voneinander ab:„Eine Schwachstelle (auch: „Schwäche“) stellt eine Eigenschaft in derImplementierung, Architektur, Konfiguration oder eines Prozesses dar,die unter bestimmten Bedingungen zu einer Sicherheitslücke führen kann.Eine Schwachstelle ist somit nicht auf den Quelltext einer Anwendungbeschränkt, sondern lässt sich auch in der Architektur, der Konfigurationund sogar in organisatorischen Prozessen wiederfinden.“ [Rohr, 2015,S.45]

2. Grundlagen15„Eine Sicherheitslücke (auch „Verwundbarkeit“ oder „Angreifbarkeit“)bezeichnet das konkrete Auftreten einer oder mehrerer Schwachstellen,über welche die Sicherheit einer Anwendung nachweislich beeinträchtigtwerden kann. Einer Sicherheitslücke liegt somit immer mindestens eineSchwachstelle zugrunde.“ [Rohr, 2015, S.45]2.4 CVECommon Vulnerabilities and Exposures (CVE) ist der Industriestandard zureinheitlichen Bezeichnung und Identifikation von Sicherheitslücken inStandardsoftware. Der Standard vereinfacht den Austausch und dieBereitstellung von Informationen zu einer Sicherheitslücke und bietet eineGrundlage für die Anwendung einer automatisierten Evaluation undVerarbeitung von öffentlich gemachten Sicherheitslücken.Die wichtigsten Bestandteile eines CVE-Eintrags zur Beschreibung einerSicherheitslücke sind die Folgenden: Eine der Sicherheitslücke zugewiesene CVE-ID (z.B. CVE-2018-9330 oder CVE-2017-18097)Kurze Beschreibung der Sicherheitslücke Relevante Referenzen zu Berichten über die SicherheitslückeEin Beispiel für einen konkreten CVE-Eintrag lässt sich der Abbildung 2.4entnehmen.Die Vergabe von CVE-IDs und die Veröffentlichung gemeldeterSicherheitslücken erfolgt durch eine der CVE Numbering Authorities(CNA), die darüber hinaus auch die Beschreibung verfasst, Referenzenhinzufügt und den vollständigen CVE-Eintrag zur CVE-Liste hinzufügt.[vgl. CVE-MITRE, 2018, ABOUT]Eingeführt wurde der CVE-Standard im Jahre 1999 durch die Non-ProfitOrganisation MITRE Cooperation, die seitdem eine Liste mitveröffentlichen CVEs verwaltet. Im Jahr 2005 wurde durch das National

2. Grundlagen16Institute of Standards and Technology (NIST) die National VulnerabilityDatabase (NVD) ins Leben gerufen, die ebenfalls CVE-Einträge zurVerfügung stellt und sich mit der CVE-Liste der MITRE Cooperationsynchronisiert. Sie lässt sich allerdings durch zusätzliche Filter wie hnungoderVersionsnummer nach veröffentlichten Sicherheitslücken durchsuchen.[vgl. CVE-MITRE, 2018, NVD]Aber auch als Industriestandard, ist das durch die MITRE Cooperationverwaltete CVE-Programm nicht frei von Kritik. So wurde auf der SOURCEConference in Boston bemängelt, dass lediglich 60% aller bekanntenSicherheitslücken durch MITRE erfasst werden. Ebenso wird kritisiert, dasstausende von CVEs erst gar keine CVE-ID zugewiesen bekommen, was zurFolge hat, dass zahlreiche Sicherheitsprodukte die auf CVE-IDsangewiesen sind, auf solche Sicherheitslücken nicht korrekt reagierenkönnen. [vgl. CSO, 2017, CVE-GAP]CVE ID:CVE 2018 8885Description:screenresolution mechanisminscreen resolution extra0.17.2 does not properly use the PolicyKit D Bus API,which allows local users to bypass intended accessrestrictions by leveraging a race condition via a ervice. check permission call.References: UBUNTU:USN 3607 1 URL:https://usn.ubuntu.com/3607 1/Assigning CNA:MITRE CorporationDate Entry Created:20180321Abbildung 2.4: Beispiel eines CVE-Eintrags [CVE-MITRE, 2018, CVE-2018-8885]

2. Grundlagen172.5 CPECommon Platform Enumeration (CPE) ist ein Standard zur strukturiertenund einheitlichen Benennung von IT-Systemen, Plattformen undSoftwarepaketen. Ein CPE-Name repräsentiert dabei keine konkreteInstanz, sondern immer nur eine Klasse eines Produkts. Die Verwendungeiner einheitlichen Namenskonvention ist äußerst nützlich, da somitimmer eindeutig definiert werden kann, welches System, welcheHardware oder welche Anwendung verwundbar ist. So führt die NVD(National Vulnerability Database) des NIST (National Institute ofStandards and Technology) für alle CPE-Einträge auch Referenzen zu denjeweiligen CVE-IDs, sofern eine Sicherheitslücke vorliegt. Darauf beruhtauch die bereits in Abschnitt 2.4 erwähnte erweiterte Suche nachProduktattributen innerhalb der CVE-Liste der NVD.Vendor: microsoftProduct: internet explorerVersion: 8.0.6001Update: betaAbbildung 2.5.1: Attribute eines Software-ProduktsAusgehend von der CPE 2.3 Naming Specification, lässt sich ein Produktmit den in Abbildung 2.5.1 festgelegten Attributen, in folgende CPE URISyntax überführen:cpe:/a:microsoft:internet explorer:8.0.6001:betaAbbildung 2.5.2: Software-Produkt in CPE 2.3 URI Syntax[vgl. NIST, 2011, S.1]Das „a“ steht hierbei für Anwendung. Weitere zulässige Werte für diesesAttribut wären „o“ für Betriebssystem oder „h“ für Hardware. Diegrundlegende Struktur eines CPE-Namens ist in Abbildung 2.5.3 zu sehen.

2. n}:{update}:{edition}:{language}Abbildung 2.5.3: Allgemeine Struktur der CPE 2.3 URI Syntax mit einigenmöglichen Attributen[vgl. Foreman, 2009, S.132]Zusammengefasst ist es also mit den bis hierher definierten StandardsCPE und CVE möglich, genau zu beschreiben, welche Produktklasse(beschrieben durch CPE) von welcher Sicherheitslücke (beschrieben durchCVE) betroffen ist. Dieser wichtige Zusammenhang wird auch im Rahmender Realisierung des Prototypen zu berücksichtigen sein.2.6 Vulnerability ScannerVulnerability Scanner sind Werkzeuge, die zur Untersuchung aufSicherheitslücken in einzelnen Anwendungen, ganzen Systemen oderNetzwerken eingesetzt werden. Der in dieser Arbeit zu entwickelndePrototyp kann ebenfalls als eine Art Vulnerability Scanner bezeichnetwerden, da er Sicherheitslücken in Linux-Systemen anhand der Analyseder Updatekommunikation identifizieren soll. Mit dem folgendenSpektrum an Definitionen soll grob aufgezeigt werden, auf welcheverschiedene Arten ein solcher Scanner seiner Aufgabe nachkommenkann. So kann bei Vulnerability Scannern zwischen drei Typenunterschieden werden: Source Code Scanner: Untersuchung des Quellcodes einerAnwendung auf mögliche Probleme, zum Beispiel im Rahmenvon Code-Reviews. obleme, die zur Laufzeit auftreten können. Diese Art desScanners kommt vor allem dann zum Einsatz, wenn der Zugriffauf den Quellcode nicht möglich ist.

2. Grundlagen 19System Scanner: Diese Scanner sind in der Lage, ganzeNetzwerke und darin betriebene Systeme auf Sicherheitslückenzu untersuchen und zu überwachen.[vgl. Gregg/Haines, 2012, S.175-177]Bei der Aufdeckung von laufenden Diensten und Systemen innerhalb vonNetzwerken können System Scanner auf verschiedene Ansätzezurückgreifen: Active Scanning: Scanner, die aktiv arbeiten, versuchen durchdas Versenden von Nachrichten auf Netzwerkebene eineReaktion beim Zielsystem zu provozieren, um so anverwertbare Informationen zu gelangen. Ein Nachteil, der mitdieser Methode einhergeht, ist allerdings, dass mancheTestroutinen das Zielsystem oder einen von dessen Dienstenzum Absturz bringen können. Durch das aktive Anfragen vonDiensten wird zudem das Netzwerk zusätzlich belastet. rkehr analysiert, ohne dass in diesen eingegriffenwird. So können beispielsweise auch Dienste, die aufungewöhnlichen Ports betrieben werden, aufgedeckt werden.Allerdings können Dienste, die im Zeitraum der Untersuchungkeine Pakete senden, auf diese Weise nicht entdeckt werden. chenden Systemen selbst installiert werden und dieseüberwachen, können äußerst genaue Aussagen darübergetroffen werden, welche Dienste auf den Systemen laufen. Diegesammelten Informationen werden dann in der Regel an ngübertragen.[vgl. Gervasi, 2007, S.1019]

2. Grundlagen202.7 SnifferDamit beispielsweise der zuvor eingeführte System Scanner denNetzwerkverkehr überhaupt erst analysieren kann, muss er diesenmitschneiden und aufzeichnen können. Dies geschieht in der Regel durcheinen Sniffer, der in Form von Hard- oder Software vorliegen kann. Einsolcher Sniffer versetzt die Netzwerkschnittstelle des Hosts, auf dem erbetrieben wird, in den sogennanten promiskuitiven Modus. In diesemModus werden nicht nur die an den Host adressierten Pakete empfangenund sichtbar, sondern auch diese, die es nicht sind. Alle Daten dermitgeschnittenen Pakete sind, sofern nicht verschlüsselt, sofort einsehbarund auswertbar. [vgl. Gregg/Haines, 2012, S.177-178]2.8 Verwandte ArbeitenEs konnten keine verwandten wissenschaftlichen Arbeiten ausgemachtwerden, die im Bezug zum Thema dieser Arbeit stehen.Es existieren eine Reihe von IT-Sicherheitslösungen mit VulnerabilityScannern, jedoch arbeiten diese in der Regel nicht passiv, so wie es eineAuswertung von Updatekommunikation nahe legen würde. Beispielsweisegibt die Dokumentation von OpenVAS [Greenbone, 2017], ein OpenSource Vulnerability Assessment System, keinerlei Hinweise auf einepassive Funktionsweise des integrierten Scannermoduls.Als der einzige auffindbare Vertreter für passive Vulnerability Scanner seihier der Passive Vulnerability Scanner (PVS) von Tenable erwähnt. Demzugrundeliegenden Patent [Patent US 7761918 B2, 2010] lässt atekommunikation auswertet, da keine Beschreibung zu einemsolchen Verfahren formuliert wurde. Ebenso lässt die Zusammenfassungder Funktionen in [Tenable, 2015] den Schluss zu, dass im Wesentlichennur Anwendungen und Dienste identifiziert werden können, die amAustausch von Daten im Netzwerk partizipieren. Eine Auswertung derUpdatekommunikation würde jedoch auch Rückschlüsse auf installierteAnwendungen zulassen, die sonst nur lokal zur Verfügung

Zur Identifikation von verwundbaren Systemen können Vulnerability Scanner aktive Netzwerkscans von zu überwachenden Systemen durchführen, um an Informationen über eingesetzte Dienste zu gelangen und eine Überprüfung auf bekannte Sicherheitslücken durchzuführen. Eine weitere Möglichkeit Dienste zu identifizieren, ist die passive Analyse