
Un outil permettant de trouver les dossiers exclus de l'analyse en temps réel de l'antivirus à l'aide d'un oracle temporel.
Cet outil est fourni à des fins éducatives uniquement. Toute action et activité liée au contenu de ce dépôt relève de votre seule responsabilité. Une mauvaise utilisation de cet outil peut entraîner des poursuites pénales contre les personnes concernées. L'auteur ne pourra pas être tenu responsable si des poursuites pénales sont engagées contre des individus qui utiliseraient cet outil de manière abusive pour enfreindre la loi.
Un outil de preuve de concept conçu pour identifier les dossiers exemptés de l'analyse en temps réel de l'antivirus (AV) sur les systèmes Windows.
L'outil reçoit un chemin de dossier comme argument et parcourt ses sous-répertoires jusqu'à une profondeur Y. Y est un argument de profondeur maximale fourni par l'utilisateur. L'outil crée N fichiers de 512 octets avec un contenu aléatoire dans chaque répertoire. N est la taille de l'échantillon fournie par l'utilisateur. Un N plus grand offre plus de précision et réduit l'incidence des faux positifs. Plus N est grand, plus le nombre de fichiers créés est important. Par conséquent, plus l'outil mettra de temps à s'exécuter. Cinq mille semblait offrir un bon rapport temps x précision lors de mes tests. L'outil enregistre ensuite le temps moyen nécessaire pour créer des fichiers dans chacun des répertoires. Enfin, l'outil vérifie si l'un des répertoires présente un temps d'écriture moyen au moins X% plus rapide que la moyenne globale. X est appelé le paramètre de sensibilité. D'après mes tests, 0.25 (25 %) semble fonctionner dans la plupart des cas.
Les solutions antivirus vérifient la plupart du contenu écrit sur le disque et interceptent les appels liés à l'écriture de fichiers. Cette étape supplémentaire peut produire une différence de temps mesurable lors de l'écriture dans un dossier exclu de l'analyse en temps réel. Le graphique suivant illustre le nombre moyen de microsecondes nécessaires pour écrire un fichier dans plusieurs dossiers lors des tests initiaux de l'outil. Les deux dossiers exclus de l'analyse en temps réel sont mis en évidence dans l'image.

Le mode d'exécution 0 (--mode 0) tentera de cartographier les dossiers de la liste d'exclusions de Defender. L'utilisateur doit fournir une liste de dossiers à tester via l'argument --targets. L'argument --sample-size peut être utilisé pour ajuster le nombre de fichiers créés dans chaque répertoire.
Exemple :
TimeException.exe --sample-size 1000 --mode 0 --targets dirs.txt
Le mode d'exécution 1 (--mode 1) tentera de cartographier les extensions de la liste d'exclusions de Defender. L'utilisateur doit fournir une liste d'extensions à tester via l'argument --targets. Les extensions du fichier de cibles doivent avoir le format .ext (par ex. .png, .txt, .foobar, etc.). L'argument --sample-size peut être utilisé pour ajuster le nombre de fichiers créés pour chaque extension.
Exemple :
TimeException.exe --sample-size 1000 --mode 1 --targets exts.txt
Le mode d'exécution 2 (--mode 2) tentera de cartographier les processus de la liste d'exclusions de Defender. L'utilisateur doit fournir une liste de noms de processus à tester via l'argument --targets. Les extensions du fichier de cibles doivent avoir le format program.exe (par ex. calc.exe, mspaint.exe, etc.). Le mode d'exécution Processus nécessite la fourniture d'un benchmarker (outil d'étalonnage). Un benchmarker est une application console qui accepte --sample-size comme argument valide et affiche un nombre à virgule flottante en double précision. TimeException lui-même est un benchmarker. L'argument --sample-size peut être utilisé pour ajuster le nombre d'opérations effectuées par le benchmarker pour calculer son résultat.
Exemple :
TimeException.exe --sample-size 1500 --ref 3.7225 --mode 2 --benchmarker .\TimeException.exe --targets procs.txt
Le mode d'exécution 3 (--mode 3) n'est pas encore implémenté.
Le mode d'exécution 4 (--mode 4) mesurera le temps moyen nécessaire pour écrire un fichier de 512 octets dans le répertoire courant. L'argument --sample-size peut être utilisé pour ajuster le nombre de fichiers utilisés pour calculer le temps d'écriture moyen.
Le mode benchmark est le mode de fonctionnement par défaut de TimeException.
Exemple :
TimeException.exe --mode 4 --sample-size 5000
Usage:
TimeException.exe [options]
Options:
Usage:
-h|--help Print usage instructions
--mode Exceptions to look folder. 0=Folder, 1=Extensions, 2=Process, 3=file, 4=benchmark (Default=4)
--ref Reference time value. Default=global average
--sample-size Sample size to use. Default=500
--sensitivity Sensitivity value. Default=0.25
--benchmarker Fully qualified path to a benchmarker executable
--verbose Increase verbosity
--targets File containing folder paths, extensions, or process names depending on the mode selected