Inleiding
Dit document beschrijft hoe u aangepaste detectie maakt - Geavanceerd met ClamAV sigtool.exe in Windows.
Over geavanceerde aangepaste detecties
Geavanceerde Aangepaste Detecties zijn als traditionele antivirus handtekeningen, maar ze worden geschreven door de gebruiker. Om malware en andere op bestanden gebaseerde bedreigingen te detecteren, vertrouwt ClamAV op handtekeningen om schone en kwaadaardige/ongewenste bestanden te onderscheiden. ClamAV-handtekeningen zijn voornamelijk tekstgebaseerd en voldoen aan een van de ClamAV-specifieke handtekeningformaten die gekoppeld zijn aan een bepaalde detectiemethode Deze handtekeningen kunnen verschillende aspecten van een bestand inspecteren en verschillende handtekeningformaten hebben. Enkele van de beschikbare handtekeningformaten zijn:
· MD5-handtekeningen
· MD5, PE op secties gebaseerde handtekeningen
· Bestandslichaam-gebaseerde handtekeningen
· Uitgebreid handtekeningformaat (offsets, jokertekens, reguliere expressies)
· Logische handtekeningen
· Pictogramhandtekeningen
Het ClamAV-project verspreidt een verzameling handtekeningen in de vorm van CVD-bestanden (ClamAV Virus Database). Het CVD-bestandsformaat biedt een digitaal ondertekende container die de handtekeningen inkapselt en ervoor zorgt dat ze niet kunnen worden gewijzigd door een kwaadaardige derde partij. Deze handtekeningenreeks wordt actief onderhouden door Cisco Talos en kan worden gedownload met de freshclam-toepassing die met ClamAV wordt geleverd
Waarom ClamAV
We gebruiken ACD om complexe detecties/bestandskenmerken aan te passen die niet kunnen worden gedetecteerd met behulp van SHA256 Hashes zoals die in de onderstaande voorbeelden:
Op hoofdtekst gebaseerde Signature Content Format
ClamAV slaat alle op inhoud gebaseerde handtekeningen op in een hexadecimaal formaat, met uitzondering van ClamAV YARA regelondersteuning. Met een hex-handtekening bedoelen we een fragment van malware’s lichaam omgezet in een hexadecimale string die kan worden uitgebreid met verschillende wildcards.
Met logische handtekeningen kunnen meerdere handtekeningen in uitgebreid formaat worden gecombineerd met logische operatoren. Zij kunnen zowel gedetailleerdere als flexibele patroonmatching bieden.
- Uitgebreide handtekeningindeling
Het uitgebreide handtekeningsformaat is ClamAV meest basale type van op lichaam-gebaseerde handtekening sinds de afschrijving van het oorspronkelijke .db gegevensbestandformaat.
Uitgebreide handtekeningen maken het mogelijk om extra informatie te specificeren die verder gaat dan alleen hexidecimale inhoud, zoals een bestand "target type", virus offset, of engine functionaliteit level (FLEVEL), waardoor de detectie betrouwbaarder wordt
Phishing-handtekeningen
ClamAV kan HTML-koppelingen detecteren die er verdacht uitzien wanneer de weergavetekst een URL is die een ander domein is dan in de eigenlijke URL. Helaas is het vrij gebruikelijk voor een bedrijf om webdiensten uit te besteden en om HTML link display tekst te gebruiken om het te laten lijken alsof het een link naar de website van het bedrijf. Omdat deze praktijk gebruikelijk is, voert ClamAV alleen phishing-controles uit voor specifieke websites die vaak worden geviseerd door phishing-campagnes
Bytecode-handtekeningen
Bytecode-handtekeningen zijn de middelen waarmee complexere matching kan worden uitgevoerd door C-code te schrijven om de inhoud van het monster in verschillende fasen in de bestandsextractie te parseren.
Handtekeningen op basis van containermetagegevens
ClamAV 0.96 maakt het mogelijk generieke handtekeningen te maken die overeenkomen met bestanden die zijn opgeslagen in verschillende containertypes die voldoen aan specifieke voorwaarden. Het handtekeningenformaat is:
VirusName:ContainerType:ContainerSize:FileNameREGEX:
FileSizeInContainer:FileSizeReal:IsEncrypted:FilePos:
Res1:Res2[:MinFL[:MaxFL]]
waarbij de overeenkomstige velden zijn:
VirusName: Virus naam te worden weergegeven wanneer de handtekening overeenkomt.
ContainerType: het bestandstype dat het doelbestand bevat. Voorbeeld:
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_OUD,
CL_TYPE_CPIO_ODC,
CL_TYPE_CPIO_NEWC
CL_TYPE_CPIO_CRC
en ga zo maar door.
Dit document richt zich op hashhandtekeningen.
Opmerking: De gemakkelijkste manier om handtekeningen voor ClamAV te maken is het gebruik van bestandshash checksum, maar deze methode kan alleen worden gebruikt tegen statische malware.
Waarschuwing: Houd er rekening mee dat de informatie in dit document kan worden gewijzigd bij nieuwere releases van ClamAV. Altijd coreleren en verifiëren met officiële gids voor ClamAV.
Meer informatie over handtekeningformaten is te vinden op: ClamAV Website
Deze handtekeningen worden gecompileerd in een bestand dat naar het eindpunt wordt gedownload. Ga naar Uitbraakcontrole > Geavanceerd om geavanceerde aangepaste detecties te maken. Klik op Handtekening maken instellen om een nieuwe geavanceerde aangepaste detectieset te maken, geef het een naam en klik op Maken.
Nadat u de Geavanceerde Aangepaste Detectieset hebt gemaakt, klikt u op Bewerken en ziet u de link Handtekening toevoegen. Voer de naam van uw handtekening in en klik op Maken.
Nadat al uw handtekeningen worden vermeld, selecteer Build a Database from Signature Set. Als u per ongeluk een handtekening toevoegt die u niet wilt, kunt u deze verwijderen door op Verwijderen te klikken.
Waarschuwing: Wanneer u een handtekening toevoegt of verwijdert, MOET u op Build a Database from Signature Set klikken
Opmerking: wanneer u een geavanceerde aangepaste detectie voor een bestand maakt, wordt dit een uur in het cachegeheugen opgeslagen. Als een bestand wordt toegevoegd aan een geavanceerde aangepaste detectieset, moet de cachetijd verlopen voordat de detectie effect heeft. Als u bijvoorbeeld een geavanceerde aangepaste detectie toevoegt voor een onbekend bestand 5 minuten nadat het in de cache is geplaatst, wordt de detectie pas na 55 minuten van kracht.
Waarschuwing: Geavanceerde Aangepaste Detecties werken alleen met bestanden van onbekende aard.
Aangepaste detectie maken - Geavanceerd met sigtool.exe
Stap 1: Eerst moeten we de sigtool verkrijgen door te navigeren naar de ClamAV website downloads
In mijn geval download ik het ZIP-pakket clamav-1.1.0.win.x64.zip
Stap 2: Open het bestand op de voorkeurslocatie. In mijn geval gebruikte ik C:/ClamAV
Let op de gemarkeerde mappen en bestanden.
clamscan.exe - is een tool voor de opdrachtregel die wordt gebruikt om bestanden en/of directory's op virussen te scannen. In tegenstelling tot clamdscan, vereist clamscan geen lopende clamd instantie om te functioneren. In plaats daarvan, kunnen clamscan een nieuwe engine en load in de virusdatabase elke keer dat het wordt uitgevoerd. Het scannen van de bestanden en/of directory's gespecificeerd op de opdrachtregel, een scanrapport maken en afsluiten.
sigtool.exe - Tool die maakt en formaat handtekening en schrijven in naar *.hdb bestand. De hdb extensie verwijst naar Hash-gebaseerde handtekeningen. sigtool trekt in libclamav en biedt snelkoppelingen naar het doen van taken die clamscan doet achter de schermen. Deze kunnen echt nuttig zijn bij het schrijven van een handtekening of het proberen om informatie te krijgen over een handtekening die kan leiden tot FP’s of prestatieproblemen.
VirusVault - Dit is mijn eigen map die is gemaakt om bestanden te droppen waarvoor ik een aangepaste handtekening wilde maken.
VirusRV.hdb - Dit bestand bevat opgemaakte handtekeningen. Ik heb dit bestand VirusRV genoemd, maar je kunt elke betekenisvolle naam gebruiken.
Stap 3a: Start de CMD-lijn en navigeer naar de locatie waar u eerder uw ClamAV uitritst.
Stap 3b Voer deze regel uit.
C:\ClamAV>sigtool —md5 location-of-the-custom-file >name-of-the-output-file.hdb
U kunt de naam wijzigen (standaard gebruikt sigtool de naam van het bestand) en het in een *.hdb bestand plaatsen. Eén databasebestand kan elk aantal handtekeningen bevatten. Om ze automatisch geladen te krijgen elke keer dat clamscan / clamd start gewoon kopiëren van de database bestanden naar de lokale virus database directory (bijv. /usr/local/share/clamav).
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\TestVirusRV.exe > VirusRV.hdb
Hier wordt de handtekening gemaakt voor het bestand met de naam TestVirusRV.exe en vervolgens wordt de handtekening naar bestand met de naam VirusRV.hdb geschreven
Opmerking: als u een handtekening wilt maken op basis van de SHA-waarde, wordt het corresponderende bestand vervolgens opgeslagen als *.hsb
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\TestVirusRV.exe > VirusRVsha256.hsb
Waarschuwing: de op hash gebaseerde handtekeningen mogen niet worden gebruikt voor tekstbestanden, HTML en andere gegevens die intern voorverwerkt worden voordat patronen worden aangepast. Als je echt een hashhandtekening wilt gebruiken in zo'n geval, voer dan clamscan uit met —debug en —left-temps en maak een handtekening voor een voorverwerkt bestand dat achterblijft in /tmp. Onthoud dat een hashhandtekening ophoudt met matching zodra een enkele byte verandert in het doelbestand. Meer kan hier worden gevonden
Deze vlaggen voor handtekeningen kunnen met name nuttig zijn voor het schrijven van handtekeningen:
—md5 / —sha1 / —sha256: Genereer de MD5/SHA1/SHA256 hash en bereken de bestandsgrootte, outputtend beide als een correct geformatteerde .hdb/.hsb handtekening
Handtekeningnamen
ClamAV-handtekeningen mogen alleen alfanumerieke tekens, stippen (-), punt (.), onderstreept (_) gebruiken om woorden af te bakenen. Gebruik nooit een spatie, apostrof, colon, puntkomma of aanhalingsteken.
ClamAV-handtekeningnamen in de officiële gegevensbanken voor handtekeningen gebruiken over het algemeen dit formaat:
{platform}.{category}.{name}-{signature id}-{revision}
Naamgevingsconventies in databases van derden verschillen. U vindt hier Cisco-Talos richtlijnen voor het benoemen van handtekeningen voor de officiële database.
Tip: Als u meerdere handtekeningen wilt maken op bestanden die zich bevinden in de map die u eerder hebt gemaakt in mijn geval Ik heb mijn VirusVault genoemd, kunt u de opdracht uitvoeren met behulp van wild card. In dit geval heb ik de mijne getest als:
C:\ClamAV>sigtool —md5 C:\ClamAV\VirusVault\wildcard\ > VirusRV.hdb
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\*\ > VirusRV.hdb
Dat maakte een handtekening tegen elk bestand in de directory VirusVault
Stap 4: Controleer de handtekening door deze opdracht uit te voeren.
C:\ClamAV>clamscan -d VirusRV.hdb C:\ClamAV\VirusVault\TestVirusRV.exe
Om alle handtekeningen te verifiëren kunt u opnieuw gebruiken wild card masker.
C:\ClamAV>clamscan -d VirusRV.hdb C:\ClamAV\VirusVault\*\
Stap 5: Open nieuw aangemaakt *.hdb-bestand en kopieer de nieuwe handtekening en navigeer vervolgens naar uw beveiligde eindpuntconsole onder Uitbraakcontrole > Geavanceerd klik op Bewerken en u kunt de koppeling Handtekening toevoegen zien.
Stap 6: Zorg ervoor dat u op Build a Database from Signature Set klikt en pas vervolgens de nieuwe Custom Detections toe op uw beleid.
Stap 7: Synchroniseer uw beleid op uw eindpunt en test uw nieuwe handtekening met handmatige scan. U kunt de resultaten zien zoals de resultaten die hieronder worden weergegeven.
Handmatig scannen
Detecties in beveiligde endpointconsole
Gebeurtenis uitgebreid
Vereisten voor het opslaan van handtekeningen in beveiligde endpointconsole
Als u alleen MD5-hash hebt en u niet weet hoe groot het bestand is, kunt u nog steeds handtekeningset maken, maar u moet deze regels gebruiken:
A: MD5 kan niet alle hoofdletters bevatten
Corrigeer MD5-hash:
5b852928a129d63dc5c895bd62cf2ab7
Onjuiste MD5-hash:
5B852928A129D63DC5C895BD62CF2AB7
Fout in Secure Endpoint Console met ALLE hoofdletters
B: U moet hoofdletter gebruiken voor het noemen en het kan uw eigen naam.
Correcte naam:
Dm-launcher.msi
Onjuiste naam:
dm-launcher.msi
C: U kunt de wilde kaart voor de grootte gebruiken maar u moet gebruiken :73 voor minimum FLEVEL
Correcte Wild Card:
5b852928a129d63dc5c895bd62cf2ab7:*:dm-launcher.msi:73
Onjuiste Wild Card:
5b852928a129d63dc5c895bd62cf2ab7:*:dm-launcher.msi
Fout in Secure Endpoint Console voor alle lagere casenaam en geen FLEVEL opgegeven
Opmerking: Hash handtekeningen met onbekende grootte - ClamAV 0.98 heeft ook ondersteuning toegevoegd voor hash handtekeningen waar de grootte niet bekend is maar de hash is. Het is veel effectiever om handtekeningen met specifieke afmetingen te gebruiken, dus wees voorzichtig bij het gebruik van deze functie. In deze gevallen kan het '*'-teken worden gebruikt in het veld Grootte. Om ervoor te zorgen dat deze handtekeningen goed compatibel zijn met oudere versies van ClamAV, moeten deze handtekeningen een minimaal functioneel niveau van 73 of hoger hebben. Handtekeningen die de wildcard-grootte zonder deze niveaumet gebruiken, worden als misvormd afgewezen.