Benutzer-Werkzeuge

Webseiten-Werkzeuge


tools:malwareschutz:clamav:clamav_signaturen_schreiben

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

tools:malwareschutz:clamav:clamav_signaturen_schreiben [2024/05/12 10:18] – angelegt gahsultools:malwareschutz:clamav:clamav_signaturen_schreiben [2024/05/24 08:12] (aktuell) – Seite verschoben nach :tools:sicherheit:clamav:clamav_signaturen_schreiben gahsul
Zeile 1: Zeile 1:
-====== ClamAV Signaturen schreiben ====== 
  
-===== Signaturverzeichnis ===== 
- 
-Das Signaturverzeichnis befindet sich bei einem Arch Linux unter **''/var/lib/clamav''**. 
- 
-===== Hash basierte Signaturen ===== 
- 
-Die **einfachste** Art eine **Signatur für ClamAV** zu erstellen ist es den Hashwert einer Datei zu verwenden. Diese erzeugt die wenigsten False/Positives, ist aber auch am striktesten. Mit anderen Worten, die kleinste Veränderung der Datei sorgt dafür, dass die Malware nicht mehr gefunden wird. ClamAV unterstützt 3 verschiedene Hash Algorithmen dafür: **md5, sha1, sha256** 
- 
-Um die Hash Signatur für eine Datei zu erzeugen, kann man das **''sigtool''** Programm verwenden, das ClamAV mit beiliegt. 
- 
-''sigtool --md5 test.exe > test.hdb'' 
- 
-Dies erzeugt eine **hdb** (Hash Data Base) File Signatur mit folgendem Inhalt: 
- 
-<file test.hdb> 
-48c4533230e1ae1c118c741c0db19dfb:17387:test.exe 
-</file> 
- 
-Die einzelnen Felder werden mit einem **:** getrennt. 
- 
-^Feld^Inhalt^ 
-|1|Hashwert| 
-|2|Dateigröße in Bytes| 
-|3|Dateiname| 
- 
-Der Dateiname kann nach Belieben geändert werden. Diese Informationen wird später bei Fund in der Ausgabe angegeben. Hier kann ein beliebiger Name verwendet werden. 
- 
-==== Signatur Testen ==== 
- 
-Am schnellsten testet man die Signatur, indem die Option **''-d''** verwendet von **''clamscan''** 
- 
-''clamscan -d test.hdb test.exe'' 
- 
-Wenn die Signatur funktioniert, kann diese in das Signaturverzeichnis kopiert werden. 
- 
-<WRAP important> 
-Hash basierte Signaturen sollten nicht für Textdateien verwendet werden. ClamAV führt für Textdateien eine Normalisierung durch. 
-Das bedeutet es werden vor den eigentlichen Scan überflüssige Leerzeichen/Steuerzeichen entfernt und alle ASCI Zeichen zu Kleinbuchstaben konvertiert. 
-Dadurch ändert sich der Hashwert und Signatur funktioniert dadurch nicht mehr. 
- 
-Wenn der Hashwert einer Textdatei trotzdem verwendet werden soll, so muss der Hashwert aus der normalisierten Datei dafür verwendet werden. Siehe hierzu die [[https://docs.clamav.net/|ClamAV Dokumentation]] 
-</WRAP> 
- 
-==== Siehe auch ==== 
- 
-  * [[https://docs.clamav.net/manual/Signatures/HashSignatures.html|ClamAV Dokumentation - Hash-based Signatures]] 
- 
-===== Inhaltsbasierte (Content-based) Signaturen ===== 
- 
-Um einen bestimmten String oder Inhalt in einer Datei zu finden, so kann das mit einer Inhaltsbasierten Signatur bewerkstelligt werden. Diese werden als ** *.ndb** Dateien gespeichert. 
- 
-==== Beispiel ==== 
- 
-Es soll folgende Zeichenkette in Dateien gefunden werden: ''"Finde mich"'' 
- 
-Zuerst wird die Zeichenkette als Hexwert mithilfe von **''sigtool''** konvertieren: 
- 
-<code> 
-❯ echo -n 'Finde mich' | sigtool --hex-dump 
-46696e6465206d696368 
-</code> 
- 
-Diesen Hexwert kann nun genutzt werden, um eine Signatur daraus zu erstellen: 
- 
-<file mysignature.ndb> 
-Malware_name:0:*:46696e6465206d696368 
-</file> 
- 
-Auch hier ist die Signatur, in mehrere Werte unterteilt, die durch ein **'':''** getrennt werden. 
- 
-^Feld^Typ^Beschreibung^Anmerkung^ 
-|1|Zeichenkette|Beliebiger Name|Im Beispiel: ''Malware_name''| 
-|2|Ganzzahl|Dateityp|Im Beispiel: ''0'' für alle Dateien| 
-|3|Zeichenkette|Logischer Ausdruck| Im Beispiel wurde das Wildcard ''*'' verwendet, das für den ganzen Dateiinhalt steht.| 
-|4|Zeichenkette|Inhalt Signatur| Im Beispiel: ''46696e6465206d696368'' das in Hex die Zeichenkette ''Finde mich'' entspricht.| 
- 
-<WRAP important> 
-**ClamAV normalisiert Textdateien vor dem eigentlichen Scan.** Dies bewirkt, dass die Zeichenkette ''"Finde mich"'' vor dem Scan zu ''"**f**inde mich"'' wird. Das dazuführt, dass die Zeichenkette im Beispiel oben nicht gefunden wird. Es sei den man schaltet die Normalisierung beim Scannen mit **''--normalize=no''** aus. 
- 
-Es wäre eine **logische Signatur** der inhaltsbasierten Signatur hierfür vorzuziehen. 
-</WRAP> 
- 
-=== Signatur Testen === 
- 
-Die Signatur kann hiermit auf Funktionalität geprüft werden. 
- 
-''clamscan -d mysignature.ndb datei_mit_der_zeichenkette_als_inhalt'' 
- 
-==== Siehe auch ==== 
- 
-  * [[https://docs.clamav.net/manual/Signatures/BodySignatureFormat.html|ClamAV Dokumentation - Content-based Signature Format]] 
- 
-===== Logische Signaturen ===== 
- 
-Logische Signaturen sind folgendermaßen aufgebaut: 
- 
-''SignatureName;Zielbeschreibungblock;LogischerAusdruck;Subsig0;Subsig1;Subsig2;...'' 
- 
-Es werden die einzelnen Werte mithilfe eines **'';''** getrennt. 
- 
- 
-^Feld^Typ^Beschreibung^Anmerkung^ 
-|1|Zeichenkette|Signatur Name|Ein beliebieger Name| 
-|2|Zeichenkette|Zielbeschreibungblock|Hier wird die zu verwendene ClamAV Engine und zu untersuchende Dateitypen angegeben| 
-|3|Zeichenkette|Logischer Ausdruck|Hier stehen die Bedingungen, wie mit den folgenden Sub-Signaturen umgegangen werden soll| 
-|4|Zeichenkette|Sub-Signaturen (das wonach gesucht werden soll) als Hexwert. <wrap important> Es können maximal 64 Sub-Signaturen angegeben werden.</wrap>| 
- 
-Um die Inhaltsbasierte Signatur aus dem vorherigen Beispiel zu einer logischen Signatur umzubauen, und damit auch die Möglichkeit zu bieten Großkleinschreibung zu ignorieren, geht man wie folgt vor: 
- 
-Umgeschriebene inhaltsbasierte Signatur (**ndb**) zu einer logischen Signatur (**ldb**): 
- 
-''Malware_name;Engine:81-255,Target:0;0;46696e6465206d696368::i'' 
- 
-^Feld^Typ^Inhalt^Anmerkung^ 
-|1|Zeichenkette|Malware_name|Selbstbeschreibend| 
-|2|Zeichenkette|Engine:81-255,Target:0|Es wird die ClamAV Engine von 81-255 verwendet, sowie alle Dateitypen (Target:0) untersucht| 
-|3|Zeichenkette|0|Logischer Ausdruck: Die verwendung der einfachen Zahl **''0''** bringt nur zum Ausdruck, das nach der ersten Sub-Signature gesucht werden soll. Keine weitere Logik dahinter.| 
-|4|Zeichenkette|46696e6465206d696368::i|Sub-Signatur mit der Zeichenkette **''"Finde mich"''** als Hex. Mit abschließender Option **''::i''** an der Signatur das Großklein Schreibung ignoriert werden soll.| 
- 
-==== Signatur Testen ==== 
- 
-Geprüft kann die Signatur wieder mit: 
- 
-''clamscan -d mysignature.ldb datei_mit_der_zeichenkette_als_inhalt'' 
- 
-<WRAP todo> 
-Seite sollte mit Beispielen zu den Restlichen Signatur Arten verfolständigt werden. 
-</WRAP> 
- 
-===== Siehe auch ===== 
- 
-  * [[.:clamav|Wikiseite zu ClamAV]] 
-  * [[https://www.suletuxe.de/forum/index.php?board=18;action=display;threadid=873|Suletuxe Forum Diskussionsthread]] 
-  * [[https://docs.clamav.net/manual/Signatures.html|ClamAV Dokumentation - Signatures]] 
tools/malwareschutz/clamav/clamav_signaturen_schreiben.1715509101.txt.gz · Zuletzt geändert: 2024/05/12 10:18 von gahsul