
Un outil destiné à faciliter le signalement des certificats Authenticode en réduisant l'effort requis de la part des individus pour signaler.
Cet outil vise à réduire l'effort nécessaire pour signaler des certificats Authenticode. Il est conçu pour demander un minimum d'effort au rapporteur, tout en fournissant à l'autorité de certification la plupart des informations dont elle a besoin pour prendre une décision. Dans la mesure du possible, il est recommandé d'enrichir le rapport avec vos propres constatations afin d'aider le fournisseur de certificats à connaître les indicateurs suspects que vous avez trouvés.
À partir de la version 2, nous avons ajouté la prise en charge de l'API VirusTotal. Pour permettre l'utilisation de l'API VirusTotal, nous avons ajouté des fonctions supplémentaires. Le comportement par défaut de CertReport est d'interroger MalwareBazaar, ce qui ne nécessite pas de clé API.
Dans la version 3, nous avons ajouté une base de données SQLite qui stocke des informations sur les rapports. Elle peut être utilisée pour référence personnelle, mais aussi pour enrichir le rapport. Consultez les informations dans la section base de données ci-dessous pour en savoir plus !
Utilisez pip ! pip install certReport ou pip3 install certReport
Remarque : Dans la version 2, il est obligatoire de fournir l'option --hash (ou -#)
Voici un exemple :
En appelant le script et en lui passant un SHA256 comme ceci :
certReport --hash 89dc50024836f9ad406504a3b7445d284e97ec5dafdd8f2741f496cac84ccda9
Cela affichera les informations suivantes dans la console :
---------------------------------
Greetings,
We identified a malware signed with a SSL.com EV Code Signing Intermediate CA RSA R3 certificate.
The malware sample is available on MalwareBazaar here: https://bazaar.abuse.ch/sample/89dc50024836f9ad406504a3b7445d284e97ec5dafdd8f2741f496cac84ccda9
Here are the signature details:
Name: A.P.Hernandez Consulting s.r.o.
Issuer: SSL.com EV Code Signing Intermediate CA RSA R3
Serial Number: 2941d5f8758501f9dbc4ba158058c3b5
SHA256 Thumbprint: a982917ba6de9588f0f7ed554223d292524e832c1621acae9ad11c0573df54a5
Valid From: 2024-01-25T16:51:40Z
Valid Until: 2025-01-24T16:51:40Z
The malware was tagged as exe, Pikabot and signed.
MalwareBazaar submitted the file to multiple public sandboxes, the links to the sandbox results are below:
Sandbox / Malware Family / Verdict / Analysis URL
Intezer None unknown https://analyze.intezer.com/analyses/c4915ef4-198f-4aba-81ed-81b29cd4dce6?utm_source=MalwareBazaar
Triage pikabot 10 / 10 https://tria.ge/reports/240222-pqlqkshb2w/
VMRay Pikabot malicious https://www.vmray.com/analyses/_mb/89dc50024836/report/overview.html
Please let us know if you have any questions.
------------------------
Send the above message to the certificate provider.
This report should be sent to SSL.com: https://ssl.com/revoke
Ces informations doivent être fournies à l'autorité de certification par les canaux de signalement appropriés (comme le courrier électronique ou le site web). Le canal approprié est indiqué à la fin du rapport (voir ci-dessus).
Dans la version 2, il est devenu possible d'interroger VirusTotal. Pour utiliser VirusTotal, configurez d'abord votre clé API en utilisant la méthode appropriée à votre système d'exploitation :
On Linux:
echo "export VT_API_KEY=your_api_key_here" >> ~/.bashrc
source ~/.bashrc
On Windows:
setx VT_API_KEY "your_api_key"
On MacOS:
echo "export VT_API_KEY=your_api_key_here" >> ~/.zprofile
source ~/.zprofile
Une fois la clé API configurée en tant que variable d'environnement, la commande suivante générera un rapport :
certReport --hash 89dc50024836f9ad406504a3b7445d284e97ec5dafdd8f2741f496cac84ccda9 --service virustotal
Alternativement, les options peuvent être simplifiées :
certReport -# 89dc50024836f9ad406504a3b7445d284e97ec5dafdd8f2741f496cac84ccda9 -s VT
Les deux commandes renverront le rapport suivant :
---------------------------------
Greetings,
We identified a malware signed with a SSL.com EV Code Signing Intermediate CA RSA R3 certificate.
The malware sample is available on VirusTotal here: https://www.virustotal.com/gui/file/89dc50024836f9ad406504a3b7445d284e97ec5dafdd8f2741f496cac84ccda9/detection
Here are the signature details:
Name: A.P.Hernandez Consulting s.r.o.
Issuer: SSL.com EV Code Signing Intermediate CA RSA R3
Serial Number: 56 B6 29 CD 34 BC 78 F6
Thumbprint: 743AF0529BD032A0F44A83CDD4BAA97B7C2EC49A
Valid From: 2017-05-31 18:14:37
Valid Until: 2042-05-30 18:14:37
The malware was tagged as a peexe, long-sleeps, spreader, detect-debug-environment, service-scan, overlay, revoked-cert, signed and checks-user-input.
The malware was detected by 50 out of 74 antivirus engines.
The malware was classified as trojan by 30 detection engines.
The file was flagged as pikabot by 23 detection engines, zusy by 6 detection engines and gdfvt by 2 detection engines
This file was found during our investigation and had the following suspicious indicators:
- The file triggered the following high IDS rules:
- ET CNC Feodo Tracker Reported CnC Server group 1
- ET CNC Feodo Tracker Reported CnC Server group 2
Please let us know if you have any questions.
------------------------
Send the above message to the certificate provider.
This report should be sent to SSL.com: https://ssl.com/revoke
Comme indiqué précédemment, il est recommandé d'ajouter des puces supplémentaires vers la fin du rapport. Ces puces supplémentaires devraient inclure les résultats de votre propre enquête. Ces détails peuvent aider à fournir un support décisionnel au fournisseur de certificats.
Pour envoyer des rapports vers Cert Graveyard, utilisez l'option -p. Il est nécessaire d'avoir une clé API CertGraveyard définie comme variable d'environnement nommée "CERT_GRAVEYARD_API". La clé API peut être obtenue depuis votre page de profil lorsque vous êtes connecté à TheCertGraveyard.org.
Please set your certGraveyard API key by running the doing the following:
On Linux:
echo "CERT_GRAVEYARD_API=your_api_key_here" >> ~/.bashrc
source ~/.bashrc
On Windows:
setx CERT_GRAVEYARD_API "your_api_key"
On MacOS:
echo "export CERT_GRAVEYARD_API=your_api_key_here" >> ~/.zprofile
source ~/.zprofile
Dans la version 3, une base de données est stockée avec des informations sur tous les certificats traités avec CertReport. Cette base de données contient la plupart des détails présents dans le rapport. Lors de l'exécution de la commande, l'utilisateur peut utiliser l'option -t et fournir une famille de malware. Si l'utilisateur le fait, le rapport ajoutera ce nom fourni par l'utilisateur à la base de données et vérifiera dans la base de données toute autre instance de ce nom de malware ; en cas de correspondance, il enrichira le rapport avec des informations sur le nombre de fois où ce malware a été signalé. Par exemple, il pourrait afficher un message comme le suivant près du bas du rapport :
We have reported this same malware to SSL.com 2 times. We have reported the malware to other providers 10 times.
Dans la version actuelle, la base de données doit être consultée ou gérée avec un visionneur de base de données SQLite. Elle ne peut pas être consultée ou gérée dans le programme.
REMARQUE : Si l'utilisateur exécute l'application avec le même hash, la première instance du hash sera supprimée de la base de données et remplacée par les nouvelles informations.
La base de données est créée dans un dossier du répertoire personnel de l'utilisateur. Le dossier sera nommé "certReport" et la base de données sera nommée "certReport.db".
N'hésitez pas à suggérer des modifications du script pour ajouter des adresses e-mail de fournisseurs de certificats ou des méthodes de signalement. La moitié de la bataille du signalement consiste à trouver où les certificats doivent être soumis.
À partir de 2018, la majorité des certificats n'étaient plus volés, mais délivrés à des imposteurs (ce point est défendu dans un article académique ici : http://users.umiacs.umd.edu/~tdumitra/papers/WEIS-2018.pdf). J'appelle cela les « certificats imposteurs ». En 2023, j'ai publié mes recherches sur 50 certificats utilisés par un même acteur. Mes conclusions ont confirmé que les certificats sont utilisés pour signer plusieurs familles de malwares : https://squiblydoo.blog/2023/05/12/certified-bad/. En 2024, j'ai publié un article sur les certificats imposteurs, après avoir révoqué 100 certificats utilisés pour signer le même malware. Cet article peut être lu ici : https://squiblydoo.blog/2024/05/13/impostor-certs/.
L'essentiel est que plusieurs acteurs utilisent le même certificat et que signaler un certificat augmente le coût de la signature pour tous les acteurs de la menace et peut avoir un impact sur plusieurs campagnes de malwares.