Einleitung
In diesem Dokument wird beschrieben, wie Sie mit ClamAV sigtool.exe unter Windows Custom Detections - Advanced erstellen.
Informationen zu erweiterten benutzerdefinierten Erkennungen
Erweiterte benutzerdefinierte Erkennungen sind wie herkömmliche Antivirus-Signaturen, werden jedoch vom Benutzer geschrieben. Um Malware und andere dateibasierte Bedrohungen zu erkennen, setzt ClamAV auf Signaturen, um saubere und schädliche/unerwünschte Dateien zu unterscheiden. ClamAV-Signaturen sind primär textbasiert und entsprechen einem der ClamAV-spezifischen Signaturformate, die einer bestimmten Erkennungsmethode zugeordnet sind. Diese Signaturen können verschiedene Aspekte einer Datei überprüfen und haben unterschiedliche Signaturformate. Einige der verfügbaren Signaturformate sind:
・ MD5-Signaturen
・ MD5, PE-abschnittsbasierte Signaturen
・ Signaturen auf Basis des Dateikörpers
・ Erweitertes Signaturformat (Offsets, Platzhalter, reguläre Ausdrücke)
・ Logische Signaturen
・ Symbolsignaturen
Das ClamAV-Projekt verteilt eine Sammlung von Signaturen in Form von CVD-Dateien (ClamAV Virus Database). Das CVD-Dateiformat stellt einen digital signierten Container bereit, der die Signaturen kapselt und sicherstellt, dass sie nicht von einem böswilligen Dritten geändert werden können. Dieses Signaturset wird von Cisco Talos aktiv gepflegt und kann mit der im Lieferumfang von ClamAV enthaltenen FreshClam-Anwendung heruntergeladen werden.
Vorteile von ClamAV
Wir verwenden ACD, um komplexe Erkennungen/Dateiattribute abzugleichen, die nicht mit SHA256-Hashes wie in den folgenden Beispielen erkannt werden können:
Body-Based Signature Content Format
ClamAV speichert alle Body-basierten (Content-basierten) Signaturen im Hexadezimalformat, mit Ausnahme der Unterstützung von ClamAV YARA-Regeln. Mit einer Hexadezimalsignatur meinen wir ein Fragment des Körpers von Malware, das in eine hexadezimale Zeichenfolge umgewandelt wird, die zusätzlich mit verschiedenen Platzhaltern erweitert werden kann.
Logische Signaturen ermöglichen das Kombinieren mehrerer Signaturen in erweitertem Format unter Verwendung logischer Operatoren. Sie können sowohl eine detailliertere als auch eine flexiblere Musteranpassung ermöglichen.
- Erweitertes Signaturformat
Das erweiterte Signaturformat ist ClamAV der grundlegendste Typ von körperbasierter Signatur seit der Vernichtung des ursprünglichen Datenbankformats .db.
Erweiterte Signaturen ermöglichen die Angabe zusätzlicher Informationen, die über den Hexadezimalinhalt hinausgehen, wie z. B. eine Datei-"Zieltyp", ein Virus-Offset oder eine Engine-Funktionsebene (FLEVEL), wodurch die Erkennung zuverlässiger wird
Phishing-Signaturen
ClamAV kann HTML-Links erkennen, die verdächtig aussehen, wenn es sich bei dem Anzeigetext um eine URL handelt, die eine andere Domäne als die eigentliche URL ist. Leider ist es ziemlich üblich für ein Unternehmen, Web-Services zu kontrahieren und HTML-Link-Display-Text zu verwenden, um es aussehen zu lassen, als wäre es ein Link zur Unternehmens-Website. Da diese Vorgehensweise weit verbreitet ist, führt ClamAV Phishing-Prüfungen nur für bestimmte Websites durch, die häufig von Phishing-Kampagnen angegriffen werden
Bytecode-Signaturen
Bytecode-Signaturen sind die Mittel, mit denen komplexere Übereinstimmungen durchgeführt werden können, indem C-Code geschrieben wird, um Beispielinhalte in verschiedenen Phasen der Dateiextraktion zu analysieren.
Signaturen basierend auf Container-Metadaten
ClamAV 0.96 ermöglicht das Erstellen generischer Signaturen, die Dateien entsprechen, die in verschiedenen Containertypen gespeichert sind, die bestimmte Bedingungen erfüllen. Das Signaturformat ist:
VirusName:ContainerType:ContainerSize:FileNameREGEX:
FileSizeInContainer:FileSizeReal:IsEncrypted:FilePos:
Res1:Res2[:MinFL[:MaxFL]]
wobei die entsprechenden Felder:
VirusName: Bei Übereinstimmung mit der Signatur anzuzeigender Virusname.
ContainerType: Der Dateityp, der die Zieldatei enthält. Beispiele:
CL_TYPE_ZIP,
CL_TYPE_RAR,
CL_TYPE_ARJ,
CL_TYPE_MSCAB,
CL_TYPE_7Z,
CL_TYPE_MAIL,
CL_TYPE_POSIX_TAR,
CL_TYPE_OLD_TAR,
CL_TYPE_CPIO_OLD,
CL_TYPE_CPIO_ODC,
CL_TYPE_CPIO_NEWC,
CL_TYPE_CPIO_CRC
usw.
In diesem Dokument wird der Schwerpunkt auf Hash-Signaturen gelegt.
Hinweis: Der einfachste Weg, Signaturen für ClamAV zu erstellen, ist die Verwendung von Filehash-Prüfsummen. Diese Methode kann jedoch nur gegen statische Malware verwendet werden.
Achtung: Bitte beachten Sie, dass die Informationen in diesem Dokument bei neueren Versionen von ClamAV Änderungen unterliegen. Korrelieren und überprüfen Sie immer mit dem offiziellen Leitfaden für ClamAV.
Weitere Informationen zu Signaturformaten finden Sie unter: ClamAV Website
Diese Signaturen werden in eine Datei kompiliert, die auf den Endpunkt heruntergeladen wird. Um erweiterte benutzerdefinierte Erkennungen zu erstellen, gehen Sie zu Outbreak-Kontrolle > Erweitert. Klicken Sie auf Signatursatz erstellen, um einen neuen Satz für die erweiterte benutzerdefinierte Erkennung zu erstellen, geben Sie ihm einen Namen, und klicken Sie auf Erstellen.
Nachdem Sie den Satz für die erweiterte benutzerdefinierte Erkennung erstellt haben, klicken Sie auf Bearbeiten, und der Link Signatur hinzufügen wird angezeigt. Geben Sie den Namen Ihrer Signatur ein, und klicken Sie auf Erstellen.
Wenn alle Signaturen aufgelistet sind, wählen Sie Datenbank aus Signatursatz erstellen aus. Wenn Sie versehentlich eine nicht gewünschte Signatur hinzugefügt haben, können Sie diese löschen, indem Sie auf Entfernen klicken.
Warnung: Wenn Sie eine Signatur hinzufügen oder entfernen, MÜSSEN Sie auf Datenbank aus Signatursatz erstellen klicken.
Hinweis: Wenn Sie eine erweiterte benutzerdefinierte Erkennung für eine Datei erstellen, wird diese für eine Stunde zwischengespeichert. Wenn eine Datei einem erweiterten benutzerdefinierten Erkennungssatz hinzugefügt wird, muss die Cachezeit ablaufen, bevor die Erkennung wirksam wird. Wenn Sie z. B. eine erweiterte benutzerdefinierte Erkennung für eine unbekannte Datei 5 Minuten nach deren Zwischenspeicherung hinzufügen, wird die Erkennung für weitere 55 Minuten nicht wirksam.
Warnung: Erweiterte benutzerdefinierte Erkennungen funktionieren nur bei Dateien mit unbekannter Einstufung.
So erstellen Sie benutzerdefinierte Erkennungen - Erweitert mit sigtool.exe
Schritt 1: Zuerst müssen wir das sigtool durch Navigation auf die ClamAV Website Downloads erhalten
In meinem Fall lade ich das ZIP-Paket clamav-1.1.0.win.x64.zip herunter
Schritt 2: Entpacken Sie die Datei am gewünschten Ort. In meinem Fall habe ich C:/ClamAV
Bitte beachten Sie die hervorgehobenen Ordner und Dateien.
clamscan.exe - ist ein Kommandozeilen-Tool, das zum Scannen von Dateien und/oder Verzeichnissen nach Viren verwendet wird. Im Gegensatz zu clamdscan benötigt clamscan keine ausgeführte clamd-Instanz, um zu funktionieren. Stattdessen können clamscan eine neue Engine erstellen und jedes Mal, wenn sie ausgeführt wird, in die Virendatenbank laden. Es scannt die Dateien und/oder Verzeichnisse, die in der Befehlszeile angegeben sind, erstellt einen Scan-Bericht und beendet.
sigtool.exe - Tool, das Signatur erstellt und formatiert und in eine *.hdb-Datei schreibt. Die Erweiterung hdb bezieht sich auf Hash-basierte Signaturen. sigtool zieht libclamav an und bietet Verknüpfungen zum Ausführen von Aufgaben, die clamscan hinter den Kulissen erledigt. Diese können sehr nützlich sein, wenn Sie eine Signatur schreiben oder versuchen, Informationen über eine Signatur zu erhalten, die FPs oder Leistungsprobleme verursachen kann.
VirusVault - Dies ist mein eigener Ordner, der erstellt wurde, um Dateien zu löschen, für die ich eine benutzerdefinierte Signatur erstellen wollte.
VirusRV.hdb - Diese Datei enthält formatierte Signaturen. Ich habe diese Datei VirusRV genannt, aber Sie können jeden sinnvollen Namen verwenden.
Schritt 3a: Starten Sie die CMD-Zeile, und navigieren Sie zu dem Ort, an dem Sie zuvor Ihre ClamAV entpackt haben.
Schritt 3b Diese Zeile ausführen.
C:\ClamAV>sigtool —md5 location-of-the-custom-file > name-of-the-output-file.hdb
Sie können den Namen ändern (standardmäßig verwendet sigtool den Namen der Datei) und ihn in eine *.hdb-Datei einfügen. Eine einzelne Datenbankdatei kann eine beliebige Anzahl von Signaturen enthalten. Um sie automatisch zu laden, wenn clamscan/clamd startet, kopieren Sie einfach die Datenbankdatei(en) in das lokale Virus-Datenbankverzeichnis (z.B. /usr/local/share/clamav).
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\TestVirusRV.exe > VirusRV.hdb
Dadurch wird die Signatur für die Datei mit dem Namen TestVirusRV.exe erstellt, und die Signatur wird in die Datei mit dem Namen VirusRV.hdb geschrieben
Hinweis: Wenn Sie eine Signatur erstellen möchten, die auf dem SHA-Wert basiert, wird die entsprechende Datei als *.hsb gespeichert
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\TestVirusRV.exe > VirusRVsha256.hsb
Achtung: Die Hash-basierten Signaturen dürfen nicht für Textdateien, HTML und andere Daten verwendet werden, die vor dem Mustervergleich intern vorverarbeitet werden. Wenn Sie in einem solchen Fall wirklich eine Hash-Signatur verwenden möchten, führen Sie clamscan mit —debug und —leave-temps aus, und erstellen Sie eine Signatur für eine vorverarbeitete Datei, die in /tmp verbleibt. Beachten Sie, dass eine Hash-Signatur nicht mehr übereinstimmt, sobald sich ein einzelnes Byte in der Zieldatei ändert. Weitere Informationen finden Sie hier
Diese sigtool-Flags können besonders beim Schreiben von Signaturen nützlich sein:
—md5 / —sha1 / —sha256: Generieren Sie den MD5/SHA1/SHA256-Hash und berechnen Sie die Dateigröße, indem Sie beide als ordnungsgemäß formatierte .hdb/.hsb-Signatur ausgeben
Signaturnamen
ClamAV-Signaturen dürfen nur alphanumerische Zeichen, Bindestriche (-), Punkte (.) und Unterstriche (_) verwenden, um Wörter zu trennen. Verwenden Sie niemals ein Leerzeichen, einen Apostroph, einen Doppelpunkt, ein Semikolon oder ein Anführungszeichen.
ClamAV-Signaturnamen in den offiziellen Signaturdatenbanken verwenden im Allgemeinen dieses Format:
{platform}.{category}.{name}-{signature id}-{revision}
Namenskonventionen in Datenbanken von Drittanbietern sind unterschiedlich. Die Richtlinien von Cisco-Talos für die Benennung von Signaturen für die offizielle Datenbank finden Sie hier.
Tipp: Wenn Sie mehrere Signaturen für Dateien erstellen möchten, die sich in dem Verzeichnis befinden, das Sie zuvor in meinem Fall namens VirusVault erstellt haben, können Sie den Befehl mit einer Wildcard ausführen. In diesem Fall habe ich meinen ausgeführt als:
C:\ClamAV>sigtool —md5 C:\ClamAV\VirusVault\wildcard\ > VirusRV.hdb
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\*\ > VirusRV.hdb
Legt die Signatur für jede Datei im Verzeichnis VirusVault fest
Schritt 4: Überprüfen Sie die Signatur, indem Sie den folgenden Befehl ausführen.
C:\ClamAV>clamscan -d VirusRV.hdb C:\ClamAV\VirusVault\TestVirusRV.exe
Um alle Signaturen zu überprüfen, können Sie erneut die Platzhaltermaske verwenden.
C:\ClamAV>clamscan -d VirusRV.hdb C:\ClamAV\VirusVault\*\
Schritt 5: Öffnen Sie die neu erstellte *.hdb-Datei, kopieren Sie die erstellte Signatur, und navigieren Sie dann zu Ihrer sicheren Endpunktkonsole unter Outbreak Control > Advanced (Ausbruchskontrolle > Erweitert). Klicken Sie auf Edit (Bearbeiten), und der Link "Signatur hinzufügen" wird angezeigt.
Schritt 6: Vergewissern Sie sich, dass Sie auf Datenbank aus Signatursatz erstellen klicken, und wenden Sie dann die neuen benutzerdefinierten Erkennungen auf Ihre Richtlinie an.
Schritt 7: Synchronisieren Sie Ihre Richtlinie auf Ihrem Endgerät und testen Sie Ihre neue Signatur mit manueller Suche. Sie können die unten aufgeführten Ergebnisse sehen.
Manuelle Suche
Erkennungen in der Konsole für sichere Endgeräte
Erweiterte Veranstaltung
Anforderungen zum Speichern der Signatur in der Konsole für sichere Endgeräte
Wenn Sie nur MD5-Hash haben und die Größe der Datei nicht kennen, können Sie weiterhin einen Signatursatz erstellen. Sie müssen jedoch die folgenden Regeln verwenden:
A: MD5 darf nicht alle Großbuchstaben enthalten.
Richtiger MD5-Hash:
5b852928a129d63dc5c895bd62cf2ab7
Falscher MD5-Hash:
5B852928A129D63DC5C895BD62CF2AB7
Fehler in Secure Endpoint Console mit ALLEN Großbuchstaben
B: Sie müssen Großbuchstaben für die Benennung verwenden und es könnte Ihr eigener Name sein.
Richtiger Name:
Dm-launcher.msi
Falscher Name:
dm-launcher.msi
C: Sie können Platzhalter für die Größe verwenden, aber Sie müssen :73 für minimalen FLEVEL verwenden
Platzhalter korrekt:
5b852928a129d63dc5c895bd62cf2ab7:*:dm-launcher.msi:73
Falsche Platzhalterkarte:
5b852928a129d63dc5c895bd62cf2ab7:*:dm-launcher.msi
Fehler in der sicheren Endpunktkonsole für alle Kleinbuchstaben und kein FLEVEL angegeben
Hinweis: Hash-Signaturen mit unbekannter Größe: ClamAV 0.98 hat auch Unterstützung für Hash-Signaturen hinzugefügt, deren Größe nicht bekannt ist, der Hash jedoch. Signaturen mit bestimmten Größen zu verwenden, ist viel leistungsfähiger und daher vorsichtig, wenn Sie diese Funktion verwenden. In diesen Fällen kann das Zeichen "*" im Größenfeld verwendet werden. Um eine korrekte Abwärtskompatibilität mit älteren Versionen von ClamAV sicherzustellen, müssen diese Signaturen eine Mindestfunktionsebene von 73 oder höher aufweisen. Signaturen, die die Platzhaltergröße ohne diesen Ebenensatz verwenden, werden als falsch formatiert abgelehnt.