Translations of this page:

Datei Integrationscheck unter Windows

Einleitung

Im Rahmen der BSI Zertifizierung wird unter Punkt M 4.93 eine regelmäßige Integritätsprüfung gefordert.

Textauszug : Verantwortlich für Initiierung: Leiter IT, IT-Sicherheitsmanagement Verantwortlich für Umsetzung: Administrator

Eine regelmäßige Kontrolle des Dateisystems auf unerwartete Veränderungen hilft dabei, Inkonsistenzen zu erkennen. Dadurch können auch Angriffe zeitnah entdeckt werden. Sollte tatsächlich ein Angriff vorliegen, ist es wichtig, das Vorgehen des Angreifers zu rekonstruieren. Dies dient einerseits dazu, sicherzustellen, dass die Benutzer nicht auf verfälschte Daten zurückgreifen, andererseits dazu, verborgene Hintertüren zu erkennen, die ein Angreifer für einen späteren Zugriff auf den Rechner installiert haben könnte. Dazu können Programme genutzt werden, die kryptographische Prüfsummen über einen Großteil der Dateien des Dateisystems berechnen. Unter Unix bieten z. B. Programme wie tripwire oder aide diese Funktionalität. Vergleichbare Programme sind auch für alle anderen verbreiteten Betriebssysteme verfügbar, z.B. für Windows 2000 / Windows XP das Tool „File Checksum Integrity Verifier“ (FCIV.EXE), das von Microsoft im Internet kostenlos zur Verfügung gestellt wird. Tripwire und ähnliche Programme können jede Veränderung am Dateisystem feststellen, da die Prüfsummen bei einer Veränderung nicht mehr übereinstimmen. Dabei testen sie meist nicht nur, ob die Datei selbst modifiziert wurde, sondern auch eine Veränderung der Zugriffsrechte oder ein Löschen mit anschließendem Zurückspielen wird festgestellt. Mit einer speziellen Einstellung kann in vielen Fällen auch ein nur lesender Zugriff auf die Datei bemerkt werden. Neben dem Dateisystem sollte es auch möglich sein, weitere wichtige Elemente der Systemkonfiguration (beispielsweise unter Windows die Registry) einer Integritätsprüfung zu unterziehen. Um zu verhindern, dass das Programm oder die Prüfsummendatei von einem Angreifer verfälscht werden können, sollten sich diese auf einem Datenträger befinden, der wahlweise nur einen lesenden Zugriff gestattet. Allerdings muss die Prüfsummendatei bei Veränderungen am Dateisystem ebenfalls geändert werden, so dass sich bei kleinen Dateisystemen Disketten, bei größeren Wechselplatten empfehlen. Eine Integritätsprüfung sollte regelmäßig, beispielsweise jede Nacht, durchgeführt werden. Eine Benachrichtigung über das Ergebnis sollte, auch wenn keine Veränderungen festgestellt wurden, automatisch per E-Mail an den Administrator erfolgen.

Beschreibung des Programms "File Checksum Integrity Verifier" (FCIV)

Zusammenfassung

„File Checksum Integrity Verifier“ (FCIV) ist ein Befehlszeilenprogramm, das kryptografische Datei-Hashwerte berechnet und überprüft. FCIV kann die kryptographischen Hashwerte MD5 oder SHA-1 berechnen. Diese Werte können auf dem Bildschirm angezeigt werden oder in einer XML-Dateidatenbank zur späteren Verwendung und Überprüfung gespeichert werden

Einführung

Dieser Artikel beschreibt das Programm „File Checksum Integrity Verifier (FCIV)“.

Das Programm „Microsoft File Checksum Integrity Verifier (FCIV)“ ist ein nicht-unterstütztes Befehlszeilenprogramm, das kryptographische Hashwerte MD5 oder SHA-1 für Dateien berechnet. Das Programm „File Checksum Integrity Verifier (FCIV)“ kann MD5 oder SHA-1-Hashwerte für Dateien erzeugen, um diese gegen einen bekannten korrekten Wert zu überprüfen. „FCIV“ kann Hashwerte überprüfen, um sicherzustellen, dass die Dateien nicht geändert wurden.

Mit dem FCIV-Programm können Sie auch die Hashes aller Ihrer kritischen Dateien berechnen und diese Werte in einer XML-Dateidatenbank speichern. Wenn Sie den Verdacht haben, dass Ihr Computer beeinträchtigt wurde und wichtige Dateien geändert wurden, können Sie eine Überprüfung Ihrer Dateisystemdateien gegen die XML-Datenbank durchführen, um festzustellen, welche Dateien geändert wurden.

Das Programm „FCIV“ kann auf Microsoft Windows 2000, Windows XP und Windows Server 2003 ausgeführt werden.

Beschreibung und Download

Syntax:

Usage:  fciv.exe [Commands] <Options>

Commands: ( Default -add )

        -add    <file | dir> : Compute hash and send to output (default screen).
  
                dir options:
                -r       : recursive.
                -type    : ex: -type *.exe.
                -exc file: list of directories that should not be computed.
                -wp      : Without full path name. ( Default store full path)
                -bp      : base path. The base path is removed from the path name of each   entry
  
        -list            : List entries in the database.
  
        -v               : Verify hashes.
                         : Option: -bp basepath.

          -? -h -help      : Extended Help.

Options:
          -md5 | -sha1 | -both    : Specify hashtype, default md5.
        -xml db                 : Specify database format and name.
  
To display the MD5 hash of a file, type fciv.exe filename
  
Compute hashes:
        fciv.exe c:\mydir\myfile.dll
        fciv.exe c:\ -r -exc exceptions.txt -sha1 -xml dbsha.xml
        fciv.exe c:\mydir -type *.exe
        fciv.exe c:\mydir -wp -both -xml db.xml
  
List hashes stored in database:
        fciv.exe -list -sha1 -xml db.xml

Verifications:
        fciv.exe -v -sha1 -xml db.xml
        fciv.exe -v -bp c:\mydir -sha1 -xml db.xml

Datenbankspeicherungsformat

Das Programm „File Checksum Integrity Verifier“ (FCIV) kann Einträge in einer XML-Datenbankdatei speichern. Wenn „FCIV“ darauf konfiguriert wird, die Hashwerte in einer XML-Datenbankdatei zu speichern, werden die hexadezimalen Hashwerte im base64-codierten Format gespeichert. Wenn Sie die XML-Datenbank direkt anzeigen lassen, stimmt die in base64-codierte Darstellung des Hashwertes visuell nicht mit dem hexadezimalen Wert überein, den die Konsole darstellt. „FCIV“ decodiert die base64-codierten Hashes bei der Darstellung der Datenbankinhalte auf dem Bildschirm. Daher stellt es den korrekten hexadezimalen Wert dar.

Implementierung

Folgende Strategie soll umgesetzt werden, die Dateiintigrität festzustellen und periodisch zu überprüfen.

  • Erstellung von Hashwerten von überprüfenden Dateien
  • Vergleich der zu überprüfenden Dateien

Ersterstellung

Beispielscript:

Net use y: \\server\c$
fciv.exe  y:\winnt\system32 –xml server_system32.xml
net use y: /delete 

Vergleich der zu überprüfenden Dateien

Net use y: \\server\c$
fciv.exe  y:\winnt\system32 –xml server_system32.xml –v
C:\fciv>fciv Y:\winnt\system32 -xml server_system32.xml -v
//
// File Checksum Integrity Verifier version 2.05.
//
Starting checksums verification : 05/02/2006 at 13h11'46

All files verified successfully

End Verification : 05/02/2006 at 13h11'56

net use y: /delete 

Automatisierung

Die Überprüfung erfolgt über den NRPE_NT Dienst vom Nagios heraus:

C:\programme\nrpe_nt\bin\commands.cfg

command[fciv_Files1]=D:\FCIV\Prog\file1.bat
command[fciv_Files2]=D:\FCIV\Prog\file2.bat
command[fciv_Files3=D:\FCIV\Prog\file3.bat

Aufruf Batch

@ECHO OFF
CLS
REM ------------------------------------------------------------
REM Name: file1.bat
REM Autor: Ingo von Itter
REM Datum: 18.05.2006
REM 
REM ------------------------------------------------------------
REM Verzeichnis mappen
REM Aufruf des Objekt Identifierers und prüfen gegen DB
d:\fciv\prog\fciv.exe  w:\Programme\hmhm\bin\ -xml D:\FCIV\DailyDB\file1.xml -v    >d:\fciv\prog\log\file.log

REM Übermittlung, ob Check erfolgreich
if errorlevel == 3 goto sub1error
if errorlevel == 2 goto sub1error
if errorlevel == 1 goto sub1error
IF errorlevel == 0 goto sub1ok
:sub1error
set check1=1
goto weiter1

:sub1ok
set check1=0
goto weiter1

:weiter1
d:\fciv\prog\fciv.exe  w:\Programme\Programm\cfg\ -xml D:\FCIV\DailyDB\file1cfg.xml -v  >d:\fciv\prog\log\file1cfg.log

REM Übermittlung, ob Check erfolgreich
if errorlevel == 3 goto sub2error
if errorlevel == 2 goto sub2error
if errorlevel == 1 goto sub2error
IF errorlevel == 0 goto sub2ok

:sub2error
set check2=1
goto weiter2
:sub2ok
set check2=0
goto weiter2

:weiter2
if %check1%==1 goto error
if %check2%==1 goto error

:ok
echo OK Konsistenzpruefung erfolgreich
exit 0
:error
echo CRITICAL Konsistenzpruefung SYSTEM fehlerhaft
exit 2

Erstellung der jeweiligen Datenbanken:

fciv_erstellen.cmd

cd d:\
cd \fciv\prog\
del D:\FCIV\DailyDB\*.xml
fciv.exe  w:\Programme\file1\bin\ -xml D:\FCIV\DailyDB\file1.xml
fciv.exe  w:\Programme\file2\bin\ -xml D:\FCIV\DailyDB\file2.xml

3.2.2 Monitoring / Alarmierung

Service Template

Service Template : (/usr/local/nagios/etc/servicetemplates.cfg)

## FCIV NRPE Einträge
##############################################
define service {
   use                  Default
   name                 NRPE_FCIV_File1
   service_description  FCIV File1
   check_command        check_nrpe_ssl!fciv_file1
   normal_check_interval         60
   register             0
}

Service Command

(/usr/local/nagios/etc/services.cfg)

define service {
   use                           NRPE_FCIV_File1
   name  		          fciv_file1
   service_description           Konsistenzpruefung_File1
   host_name                     SERVER
}

Sicherheitskonzepte

Wie bereits erläutert, werden bei der Konsistenzprüfung die Hash Werte von Dateien mit Hashwerten, die in einer „Master“ Datenbank hinterlegt werden, verglichen. Manipuliert jemand diese „Master“ Datenbank, würde eine Veränderung unentdeckt bleiben. Um dieses zu Verhindern, wird eine Strategie vorgestellt, die dieses verhindern sollen.

Vier-Augen Prinzip

  • Sichern der einzelnen Konsistenz Datenbanken
  • Konsistenzcheck dieses Verzeichnisses
  • Sichern der daraus resultierenden Konsistenzdatenbank in ein geschütztes Verzeichnis
  • Entzug aller Schreibrechte für Administratoren
  • Erstellung eines Auditor Accounts mit Schreib Recht auf dieses Verzeichnis.
  • Täglicher Konistenz Check der Master Datenbank
  • Erstellung eines „zweigeteilten“ Passwortes. Jeweils ein Teil des Passwortes ist zwei verschiedenen Benutzergruppen bekannt ist. (nur jeweils ein Vertreter der beiden Benutzergruppen ist zusammen berechtigt, auf das Verzeichnis zu schreiben.)
nagios/howtos/integrationscheck.txt · Zuletzt geändert: 2008/02/22 10:36 von ingi70
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0