Bienvenido! - Willkommen! - Welcome!

Bitácora Técnica de Tux&Cía., Santa Cruz de la Sierra, BO
Bitácora Central: Tux&Cía.
Bitácora de Información Avanzada: Tux&Cía.-Información
May the source be with you!
Showing posts with label Datensicherheit. Show all posts
Showing posts with label Datensicherheit. Show all posts

Monday, July 14, 2008

Kompromittierung des Systems

Quelle: Oschad.de

Wenn ein System kompromittiert wurde, ist das System nicht mehr
vertrauenswürdig. Das heißt, das alle Daten manipuliert sein könnten,
das alle Programme manipuliert sein könnten und das alle Informationen,
die auf dem System gespeichert waren oder verarbeitet worden sind, an
Dritte weitergegeben worden sein könnten.


Wenn man diese Annahmen trifft, müssen zwingend folgende Maßnahmen durchgeführt werden:


  • Das betroffene System ist sofort herunterzufahren, man kann
    sogar über ein hartes Ausschalten nachdenken. Es gibt hier sich
    widersprechende Ansichten, ich bin der Meinung, dass weitere
    Datenmanipulationen verhindert werden müssen. Hat man ausreichend
    Backups im Schrank, reicht aber auch eine Trennung vom Netzwerk.


  • Alle sensiblen Informationen wie Passwörter für Betriebssystem,
    Online-Banking, Datenbanken etc., personenbezogene Daten,
    Geschäftsgeheimnisse, also alles, was irgendwie vor den Augen Dritter
    geschützt sein soll, muss als öffentlich bekannt angesehen werden.
    Dementsprechende Maßnahmen müssen eingeleitet werden.


  • Ein Backup des Systems mit all seinen Daten ist zur späteren
    Analyse zu empfehlen. Falls man über kein Backup seiner Daten verfügt,
    sollte man dies zur späteren Wiederherstellung seines Systems unbedingt
    anfertigen. Dies muss aber von einem sauberen System aus geschehen.
    Dazu kann z.B. ein von einer CD bootbares Betriebssystem benutzt werden
    wie httpKnoppix.
    Soll der Einbruch in das System zur Anzeige gebracht werden, sind
    gesonderte Schritte einzuleiten. Soll nur ein sauberes System
    wiederhergestellt werden, so kann mit dem nächsten Schritt
    weitergemacht werden. Hinweis: Die Analyse eines Virenscanners
    ist völlig unzureichend, um Aussagen über das System zu machen, kann
    aber als Hilfsmittel eingesetzt werden, sofern er von einem sauberen
    System aus betrieben wird.


  • Wenn ein sauberes Backup des Systems existiert oder Prüfsummen
    über das saubere System, können durch Vergleich Manipulationen
    aufgedeckt werden und der nächste Schritt kann übersprungen werden. Ist
    dies nicht möglich, so muss das System neu aufgesetzt werden.


  • Neuaufsetzen des Systems: Zuerst muss das System vom
    LAN/Internet getrennt werden. Dann empfiehlt es sich die Festplatte,
    die das Betriebssystem enthielt, vorher zu formatieren, deren
    Bootsektor zu überschreiben und anschließend das Betriebssystem neu zu
    installieren. Wichtig ist, dass nur von garantiert sauberen
    Installationsmedien die Installation des Betriebssystems vorgenommen
    werden darf. Es darf nichts mehr verwendet werden, was zuvor auf der
    Festplatte lagerte (Programme, Treiber, Dateien mit ausführbarem Inhalt). Mit einem Linux wie httpKnoppix lässt sich beispielsweise prima eine Festplatte komplett leeren, auf der Kommandozeile einfach mal dd if=/dev/zero of=/dev/hda
    eintippen, sofern es sich um eine IDE-Festplatte handelt. Man sollte
    aber wissen, was man tut. Hat man mehrere Festplatten eingebaut und
    erwischt die falsche, wäre das nicht so günstig.


  • Die Passwörter, die zur Anmeldung an das Betriebssystem
    verwendet wurden, müssen neu ausgewählt werden, da die alten Passwörter
    als bekannt angesehen werden müssen.


  • Nun sollten alle für das Betriebssystem sicherheitsrelevanten
    Patches bzw. Updates eingespielt werden. Da das neue System noch
    Sicherheitslücken hat, müssen die Patches von einem weiteren sauberen
    System (z.B. wieder mit httpKnoppix) heruntergeladen werden. Hilfreich ist hier httphttp://winpatches.freewww.info/ und der httpMicrosoft Baseline Security Analyzer, den man auch httpoffline betreiben kann. Anschließend muss das System sicher konfiguriert werden. Für Windows 2000/XP siehe httpDienste sicher konfigurieren, grundsätzlich sollten alle überflüssigen Dienste beendet werden, um offene Ports zu schließen. Umfangreiches Wissen über das Thema Sicherheit gibt es im httpLinkblock der Newsgroups newsde.comp.security.misc und newsde.comp.security.firewall. Anzumerken sei, dass man bei Google prima in alten Newsgroup-Postings suchen kann in der Rubrik httpGroups, bitte erst dort suchen, bevor man fragt und die FAQs bzw. den httpLinkblock lesen.


  • Wenn das Betriebssystem neu installiert wurde, können die
    benötigten Anwendungen installiert werden. Auch hierbei ist peinlich
    genau darauf zu achten, dass nur von garantiert sauberen
    Installationsmedien, die Installation vorgenommen werden darf.
    Desweiteren gilt auch für Anwendungen, dass Sicherheitslücken mit
    Patches geschlossen werden müssen. Teilweise bietet die ein oder andere
    Anwendung automatische Updates an, teilweise muss man auf den Webseiten
    des Programmierers/Herstellers Ausschau halten. Es ist zu empfehlen bei
    Google mal die Begriffe "vulnerable", "exploit", "malware" und
    "spyware" nacheinander zusammen mit dem Software-Namen einzutippen, um
    einen groben sicherheitstechnischen Überblick über die Software zu
    erhalten, bevor man diese Software installiert.


  • Um das System zu komplettieren, müssen nun die Daten
    (Datenbanken, Bilder, Schriftstücke etc.) aus einem sauberen Backup
    eingespielt werden. Gibt es kein Backup, das garantiert nicht
    veränderte Daten enthält, oder Prüfsummen über einen garantiert
    sauberen Datenbestand, so kann nur mit Einschränkungen mit dem alten
    Datenbestand weitergearbeitet werden. Lässt sich der Zeitpunkt der
    Kompromittierung nicht feststellen, so müssen alle Daten als
    manipuliert angesehen werden.


  • Geht man von Manipulationen aus, müssen alle Dateien, die auch
    ausführbare Inhalte haben können, als schädlich angesehen werden. Eine
    Aufzählung von Dateitypen mit ausführbarem Inhalt für Windows gibt es hier.
    Dateien, die wirklich ausschließlich Daten und keinen ausführbaren Code
    enthalten, müssen, sofern der Inhalt wichtig ist, verifiziert werden,
    entweder durch Durchsicht oder automatisiert durch geeignete
    Algorithmen.


  • Lassen sich Daten nicht verifizieren und sind trotzdem wichtig,
    so hat man Pech. Da angenommen werden muss, dass diese Daten
    manipuliert sind, sind diese ein Fall für die Mülltonne.


  • Dateien, die ausführbaren Inhalt haben können, müssen genauer
    analysiert werden. Dies erfordert unter Umständen einen sehr hohen
    Aufwand. Wird die Analyse nicht durchgeführt, so kann auch ein Programm
    zur Ansicht der Daten herangezogen werden, das garantiert keine Inhalte
    ausführen kann, um die Daten gesondert von den ausführbaren Inhalten
    speichern zu können. Ist beides nicht möglich, so sind diese Dateien
    ebenfalls ein Fall für die Mülltonne.


Datensicherheit: wichtige Grundbegriffe

Quelle: underflow.de

Virus

Ein Virus ist ein Stück ausführbaren Programmcodes, das mit der primären Absicht geschrieben wurde, sich selbst verbreiten zu können. Wie beim biologischen Vorbild auch ist ein computervirus nicht in der Lage, eigenständig zu existieren, sondern ist auf ein Wirtsprogramm angewiesen, mit dem er zusammen ausgeführt wird.
Üblicherweise hängt sich ein Virus an den Wirt an oder überschreibt diesen teilweise mit seinem eigenen Code. Einige Viren enthalten neben der Fähigkeit, sich zu vermehren (die teilweise auch schon allein erheblichen Schaden verursachen kann)eine sog. Payload (Nutzlast) in Form einer Schadensroutine.
Trojanisches Pferd
Ein Trojanisches Pferd ist ein Programm, das neben der eigentlichen (oftmals nützlich erscheinenden) Funktion eine weitere, potentiell schädliche, dem Benutzer unbekannte Funktion enthält. Beispiele hierfür sind Programme, die eingegebene Passworte stehlen oder eine Backdoor enthalten. Häufig ist auch der
Begriff ''Trojaner'', dieser ist aber insofern inkorrekt, da er mit den historischen Wurzeln des Begriffs in Homers Ilias nicht übereinstimmt.
Backdoor
Eine in einem Programm versteckte Funktion, die es, sofern man Kenntnis von ihrer Existenz hat, erlaubt, Zugriff auf ein fremdes System zu erlangen.
Häufig geschieht dies durch Eingabe eines bestimmten Passworts. Heutzutage bieten die meisten Backdoorprogramme Funktionen an um sich als Server auf einen bestimmten
Port zu binden und auf eingehende Verbindungen zu warten. Viele Backdoorprogramme lassen sich auch völlig normal zur Fernwartung eines Systems einsetzen, sind also nicht unbedingt ''böse''.
Wurm
Ein Wurm ist ein Programm, das sich über Netzwerkverbindungen verbreitet. Es nutzt zu diesem Zweck Sicherheitslücken (z.B. Buffer-Overflows) in häufig eingesetzter Software aus. Im Gegensatz zum Virus ist ein Wurm auch allein ausführbar und braucht die Wirtssoftware nur um Zugriff auf ein anderes System zu erlangen. Heutzutage sind die meisten Würmer für die e-Mail Programme Outlook und Outlook Express von Microsoft geschrieben, da diese sehr weit verbreitet sind und viele Angriffspunkte bieten.
In jüngerer Zeit sind auch sehr häufig Würmer anzutreffen, die sich alleine durch die Mithilfe des Nutzers verbreiten. Diese Würmer spiegeln eine glaubwürdig klingende Nachricht vor (z.B. ein Liebesbrief, ein Sicherheitsupdate von Microsoft oder der neueste Bildschirmschoner mit Nacktfotos irgendwelcher weiblicher Prominenten zu sein) um so den Nutzer dazu zu bewegen das Wurmprogramm auszuführen.
Hoax
Ein Hoax ist eine Art Kettenbrief. Meist enthalten Hoaxes interessant klingende Nachrichten (z.B. Virenwarnung, Microsoft verschenkt Geld usw.) und fordern den Empfänger dazu auf, die Nachricht so schnell wie möglich weiter zu verbreiten. Die Inhalte der Nachrichten sind i.d.R. völlig frei erfunden. Wenn man einen Hoax als solchen erkannt hat, sollte man seinem Inhalt keinen Glauben schenken und ihn natürlich auch nicht mehr weiter verbreiten.

Patch
Ein Patch ist eine Korrektur für einen aufgetretenen Fehler in einem Softwaresystem. Dabei wird keine komplett neue Version verteilt, sondern nur der schadhafte Teil ersetzt. Man kann einen Patch also mit einem Flicken auf einem kaputten Fahrradschlauch vergleichen.
Buffer-Overflow
Ein Buffer-Overflow ist ein Fehler in einem Programm, der dazu führen kann, dass ein Teil des Hauptspeichers überschrieben wird und so beliebiger anderer Code ausgeführt werden kann. Fehler dieser Art treten u.a. häufig dann auf, wenn Programmierer in ihren Programmen für bestimmte Aktionen (z.B. Benutzereingaben) einen zu kleinen Speicherbereich (Puffer) vorgesehen haben und nicht überprüfen ob, die Eingabe auch in diesen paßt.
Durch überlange Eingaben kann es also geschehen, dass der Puffer überläuft und Teile des eigentlichen Programms überschreibt. Besonders gefährlich wird dies, wenn der Puffer über eine Netzwerkverbindung zum Überlaufen gebracht werden kann. Häufig nutzen dies Würmer zur Verbreitung aus.
Dienst
Unter einem Dienst versteht man eine Anwendung oder einen Systemprozess, der eine bestimmte Funktionalität anbietet. Meist geschieht dies über ein Netzwerk. Zum Beispiel ist ein Webserver ein Dienst, der auf einem bestimmten Port (i.d.R. TCP-Port 80) erreichbar ist. Solch ein Dienst stellt aber immer auch ein Einfallstor für Angriffe dar, weshalb man nur die Dienste anbieten sollte, die man auch anbieten will, d.h., dass ein PC, mit dem man sich bei einem Internetprovider einwählt um zu surfen, keinerlei Dienste anbieten sollte.
Bindung
Über eine Bindung wird ein bestimmter Dienst mit einem bestimmten Netzwerkgerät (Modem, ISDN-Karte, Netzwerkkarte usw.) so verbunden, dass Datenpakete, die über dieses Gerät kommen, den Dienst erreichen können.
Häufig spricht man im Zusammenhang auch von Interfaces, wenn man ein solches Netzwerkgerät meint. Man kann also über die Bindungen steuern, welche Diensteaus dem Internet und welche nur aus dem lokalen Netzwerk erreichbar sind.
Beispielsweise sollte man die ''Datei- und Druckerfreigabe'' nur an das lokale Netzwerk binden und nicht an das externe Interface, das z.B. in's Internet geht, außer man möchte seine Dateien mit der ganzen Welt teilen.
Port
Ein Port dient dazu, über das Internet Protokoll IP übermittelte Daten den richtigen Anwendungen/Diensten zuzuordnen. Man kann sich einen Port also als eine Art Buchse vorstellen, in die eine Datenverbindung hineingeht. Es gibt 65535 zustandsbehaftete Ports (TCP) und ebensoviele zustandslose Ports (UDP). Ein Port kann zwei Zustände haben (offen, geschlossen). Von Haus aus ist ein Port geschlossen, erst wenn ein Dienst diesen Port öffnet um auf diesem Anfragen entgegen zu nehmen, können über den Port Daten in den Rechner gelangen. Anfragen, die an einen geschlossenen Port gesendet wurden, werden vom Betriebssystem einfach weggeworfen und durch eine entsprechende Antwort quittiert.
Portscan
Bei einem Portscan wird versucht herauszufinden, ob ein bestimmter Rechner einen bestimmten Dienst anbietet. Dazu werden ein oder mehrere Datenpakete an diesen Rechner gesendet. Aus dessen Antworten (übrigens auch aus der Tatsache, dass er nicht antwortet) kann man dann schließen, ob bestimmte Portsoffen sind, d.h. dass dort ein Dienst
erreichbar ist. Häufig werden Portscans als Angriffe gewertet, dies sind sie aber keinesfalls. Jede Verbindungsaufnahme zu einer Gegenstelle ist schon ein Portscan, es wird zwar nur ein einzelner Port auf einem einzelnen Rechner gescannt, aber es ist und bleibt ein Portscan.
Eine ganz gute Analogie ist es, wenn man sich vorstellt mit vielen Personen in einem großen und absolut dunklen Raum (das Internet) zu sein. Man kann sich allein durch tasten mit den Händen (Senden von Paketen) orientieren. Natürlich kann es sein, dass man dabei versehentlich mit anderen Personen (die ''Gescannten'') in Berührung kommt und diese sich belästigt fühlen. Es kann auch sein, dass jemand diese Situation ausnutzt und ihnen die Brieftasche stiehlt (Angriff nach einem Portscan), aber an sich ist an einer solchen Berührung nichts verwerfliches, da sie die einzige Möglichkeit ist sich zu orientieren.
Firewall
Eine Firewall ist ein Konzept um zwei Netzwerke voneinander zu trennen und den Datenverkehr über diese Verbindung zu kontrollieren und zusteuern. Eine solche Firewall setzt bestimmte Regeln (Policies genannt) um, die festlegen welche Kommunikation stattfinden darf und welche verboten ist. Bestandteile der technischen Umsetzung einer Firewall sind beispielsweise Paketfilter (Einrichtungen, die bestimmte Datenpakete aufgrund ihrer Herkunft, ihres Ziels usw.
durchlassen oder verwerfen) oder Proxies (Einrichtungen, die den Datenverkehr bündeln und als Vermittler zwischen den Endpunkten auftreten, wobei auch hier anhand des Inhalts und des Ziels gefiltert werden kann).