[PYTHON] J'obtiens une erreur Yara lors de l'exécution de Cuckoo Sandbox

Quand j'ai lancé Cuckoo Sandbox, je me suis mis en colère contre Yara, alors j'enquête sur la cause et je la résolve. Je pensais que la cause était la version, et quand j'ai essayé d'insérer une version différente de Yara, elle est restée bloquée, alors prenez note pour ne pas oublier. Quand j'ai résolu une erreur, une nouvelle erreur est apparue, donc je ne me suis pas ennuyé. J'ai écrit le processus d'essais et d'erreurs tel qu'il est, en pensant que c'est à l'origine pour moi et qu'il sera utile pour ceux qui ont la même erreur, mais c'est résumé à la fin.

référence

environnement

Détails de l'erreur et solution

Erreur Yara

Je me suis mis en colère quand j'ai lancé cuckoo.py. Voici le contenu.

$ python cuckoo/cuckoo.py

  _____________________________________/\/\_______________________________
  ___/\/\/\/\__/\/\__/\/\____/\/\/\/\__/\/\__/\/\____/\/\/\______/\/\/\___
  _/\/\________/\/\__/\/\__/\/\________/\/\/\/\____/\/\__/\/\__/\/\__/\/\_
  _/\/\________/\/\__/\/\__/\/\________/\/\/\/\____/\/\__/\/\__/\/\__/\/\_
  ___/\/\/\/\____/\/\/\/\____/\/\/\/\__/\/\__/\/\____/\/\/\______/\/\/\___
  ________________________________________________________________________

 Cuckoo Sandbox 1.2-dev
 www.cuckoosandbox.org
 Copyright (c) 2010-2014

 Checking for updates...
 Good! You have the latest version available.

2014-10-11 17:13:09,487 [lib.cuckoo.core.scheduler] INFO: Using "kvm" machine manager
2014-10-11 17:13:09,919 [lib.cuckoo.core.scheduler] INFO: Loaded 1 machine/s
2014-10-11 17:13:09,925 [lib.cuckoo.core.scheduler] INFO: Waiting for analysis tasks.
2014-10-11 17:13:30,206 [lib.cuckoo.core.scheduler] INFO: Starting analysis of FILE "/home/cuckoo/ZeuS_binary_9498ff82a64ff445398c8426ed63ea5b.exe" (task=2)
2014-10-11 17:13:30,218 [lib.cuckoo.core.scheduler] INFO: File already exists at "/home/cuckoo/cuckoo/storage/binaries/8b2e701e91101955c73865589a4c72999aeabc11043f712e05fdb1c17c4ab19a"
2014-10-11 17:13:30,331 [lib.cuckoo.core.scheduler] INFO: Task #2: acquired machine Windows7_default_1412852245584_47636 (label=Windows7_default_1412852245584_47636)
2014-10-11 17:13:30,339 [modules.auxiliary.sniffer] INFO: Started sniffer with PID 14069 (interface=hostonly0, host=192.168.124.2, dump path=/home/cuckoo/cuckoo/storage/analyses/2/dump.pcap)
2014-10-11 17:13:39,623 [lib.cuckoo.core.guest] INFO: Starting analysis on guest (id=Windows7_default_1412852245584_47636, ip=192.168.124.2)
2014-10-11 17:14:06,404 [lib.cuckoo.core.guest] INFO: Windows7_default_1412852245584_47636: analysis completed successfully
2014-10-11 17:14:08,420 [modules.processing.behavior] WARNING: Analysis results folder does not contain any file.
2014-10-11 17:14:08,748 [lib.cuckoo.common.objects] WARNING: Unable to import pydeep (install with `pip install pydeep`)
2014-10-11 17:14:08,749 [lib.cuckoo.common.objects] WARNING: Unable to match Yara signatures: 'error_on_warning' is an invalid keyword argument for this function
2014-10-11 17:14:09,797 [lib.cuckoo.core.scheduler] INFO: Task #2: reports generation completed (path=/home/cuckoo/cuckoo/storage/analyses/2)
2014-10-11 17:14:09,894 [lib.cuckoo.core.scheduler] INFO: Task #2: analysis procedure completed

Il y a deux AVERTISSEMENTS, mais j'aimerais les mettre de côté pour le moment et résoudre d'abord l'AVERTISSEMENT de Yara.

2014-10-11 17:14:08,749 [lib.cuckoo.common.objects] WARNING: Unable to match Yara signatures: 'error_on_warning' is an invalid keyword argument for this function

C'est ici. Après enquête, il y a une histoire selon laquelle la version de Yara peut être différente. Cuckoo a dit que je devrais utiliser Yara v1.7 ou supérieur, donc j'utilisais la v1.7, mais je vais essayer la dernière version.

Mettez la dernière version de Yara

Actuellement, la v3.1.0 semble être la dernière. https://github.com/plusvic/yara/releases/tag/v3.1.0 J'aimerais suivre la documentation de Yara. http://yara.readthedocs.org/en/latest/gettingstarted.html

$ wget https://github.com/plusvic/yara/archive/v3.1.0.tar.gz
$ tar zxvf v3.1.0.tar.gz
$ cd yara-3.1.0/
$ ./bootstrap.sh
== bootstraping yara
libtoolize...
Did not find a supported libtoolize

J'étais en colère contre quelque chose. Il semble qu'il n'y ait pas de libtoolize, donc je vais installer le paquet libtool.

Insérer libtool

$ sudo apt-get install libtool
./bootstrap.sh
== bootstraping yara
libtoolize...
libtoolize: putting auxiliary files in `.'.
libtoolize: linking file `./ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: linking file `m4/libtool.m4'
libtoolize: linking file `m4/ltoptions.m4'
libtoolize: linking file `m4/ltsugar.m4'
libtoolize: linking file `m4/ltversion.m4'
libtoolize: linking file `m4/lt~obsolete.m4'
aclocal...
Did not find a supported aclocal

Je pense que c'est plus avancé qu'avant, mais cette fois, on dit qu'il n'y a pas de «local». Afin d'inclure ʻaclocal, il semble que vous deviez inclure le paquet ʻautomake (ou n'a-t-il pas été inclus).

Insérer automake

$ sudo apt-get install automake
$ ./bootstrap.sh
== bootstraping yara
libtoolize...
libtoolize: putting auxiliary files in `.'.
libtoolize: linking file `./ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: linking file `m4/libtool.m4'
libtoolize: linking file `m4/ltoptions.m4'
libtoolize: linking file `m4/ltsugar.m4'
libtoolize: linking file `m4/ltversion.m4'
libtoolize: linking file `m4/lt~obsolete.m4'
aclocal...
autoheader...
automake...
autoconf...

Oh, on dirait que c'est bon. Je voudrais donc le compiler.

Compiler

Tout d'abord, mettez les bibliothèques requises. Dans le cas du coucou, il semble que Jansson soit utilisé pour analyser JSON, il est donc nécessaire de l'installer à l'avance, mais il semble qu'il soit inclus dans libjansson-dev, alors installez-le. De plus, la magie semble avoir besoin de libmagic-dev, alors installez-la également. Ce n'est peut-être pas nécessaire, mais je ne veux pas devenir accro plus tard (je suis fatigué).

$ sudo apt-get install libjansson-dev libmagic-dev

Une fois l'installation terminée, consultez la documentation. Il semble que vous deviez ajouter «--enable-coucou» lorsque vous l'utilisez avec un coucou. Alors ajoutez une option et «make».

$ ./configure --enable-cuckoo --enable-magic
(Omis)
checking for pthread_create in -lpthread... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libyara/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
$ make
$ sudo make install

C'est OK s'il n'y a pas d'erreur particulière.

yara-install python

Coucou a également besoin de yara-python après l'ajout de yara, alors mettez-le. Il se trouve dans le répertoire lorsque vous avez déposé yara plus tôt, alors compilez-le et installez-le! Facile! (Je croyais que c'était)

$ cd yara-python/
$ python setup.py build
$ sudo python setup.py install

Maintenant que vous êtes prêt, essayez à nouveau de faire coucou. Après avoir exécuté cuckoo.py, le malware approprié est soumis par submit.py.

$ python ~/cuckoo/cuckoo.py

            _       _                   _             _              _            _
          /\ \     /\_\               /\ \           /\_\           /\ \         /\ \
         /  \ \   / / /         _    /  \ \         / / /  _       /  \ \       /  \ \
        / /\ \ \  \ \ \__      /\_\ / /\ \ \       / / /  /\_\    / /\ \ \     / /\ \ \
       / / /\ \ \  \ \___\    / / // / /\ \ \     / / /__/ / /   / / /\ \ \   / / /\ \ \
      / / /  \ \_\  \__  /   / / // / /  \ \_\   / /\_____/ /   / / /  \ \_\ / / /  \ \_\
     / / /    \/_/  / / /   / / // / /    \/_/  / /\_______/   / / /   / / // / /   / / /
    / / /          / / /   / / // / /          / / /\ \ \     / / /   / / // / /   / / /
   / / /________  / / /___/ / // / /________  / / /  \ \ \   / / /___/ / // / /___/ / /
  / / /_________\/ / /____\/ // / /_________\/ / /    \ \ \ / / /____\/ // / /____\/ /
  \/____________/\/_________/ \/____________/\/_/      \_\_\\/_________/ \/_________/

 Cuckoo Sandbox 1.2-dev
 www.cuckoosandbox.org
 Copyright (c) 2010-2014

 Checking for updates...
 Good! You have the latest version available.

2014-10-11 21:54:13,566 [lib.cuckoo.core.scheduler] INFO: Using "kvm" machine manager
2014-10-11 21:54:14,611 [lib.cuckoo.core.scheduler] INFO: Loaded 1 machine/s
2014-10-11 21:54:14,618 [lib.cuckoo.core.scheduler] INFO: Waiting for analysis tasks.
2014-10-11 21:54:22,819 [lib.cuckoo.core.scheduler] INFO: Starting analysis of FILE "/home/cuckoo/ZeuS_binary_9498ff82a64ff445398c8426ed63ea5b.exe" (task=7)
2014-10-11 21:54:22,830 [lib.cuckoo.core.scheduler] INFO: File already exists at "/home/cuckoo/cuckoo/storage/binaries/8b2e701e91101955c73865589a4c72999aeabc11043f712e05fdb1c17c4ab19a"
2014-10-11 21:54:22,959 [lib.cuckoo.core.scheduler] INFO: Task #7: acquired machine Windows7_default_1412852245584_47636 (label=Windows7_default_1412852245584_47636)
2014-10-11 21:54:22,967 [modules.auxiliary.sniffer] INFO: Started sniffer with PID 13437 (interface=hostonly0, host=192.168.124.2, dump path=/home/cuckoo/cuckoo/storage/analyses/7/dump.pcap)
2014-10-11 21:54:39,130 [lib.cuckoo.core.guest] INFO: Starting analysis on guest (id=Windows7_default_1412852245584_47636, ip=192.168.124.2)
2014-10-11 21:55:11,988 [lib.cuckoo.core.guest] INFO: Windows7_default_1412852245584_47636: analysis completed successfully
2014-10-11 21:55:13,435 [modules.processing.behavior] WARNING: Analysis results folder does not contain any file.
2014-10-11 21:55:13,843 [lib.cuckoo.common.objects] WARNING: Unable to import yara (please compile from sources)
2014-10-11 21:55:14,883 [lib.cuckoo.core.scheduler] INFO: Task #7: reports generation completed (path=/home/cuckoo/cuckoo/storage/analyses/7)
2014-10-11 21:55:15,028 [lib.cuckoo.core.scheduler] INFO: Task #7: analysis procedure completed

Je reçois à nouveau une erreur. triste...

WARNING: Unable to import yara (please compile from sources)

Compiler yara à partir de la source? Je l'ai fait il y a quelque temps! !! Apparemment, cela n'a pas bien importé.

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import yara
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: libyara.so.3: cannot open shared object file: No such file or directory

Certainement pas en mesure d'importer. https://github.com/styx/YARA/tree/master/yara-python Quand je regarde, il dit ldconfig si une erreur se produit.

Selon http://www.atmarkit.co.jp/flinux/rensai/linuxtips/300sharelib.html

Le répertoire / usr / local / lib n'est pas enregistré, vous devez donc éditer le fichier /etc/ld.so.conf avant d'exécuter la commande ldconfig.

Il paraît que. Alors

$ sudo su
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig

Je vais essayer. Si / usr / local / lib est déjà écrit dans ld.so.conf, je pense que vous devriez probablement simplement faire ldconfig. Alors j'ai réessayé.

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import yara
>>>

Cette fois, l'erreur a disparu. Si vous l'exécutez dans cet état, vous ne devriez obtenir aucune erreur.

$ python ~/cuckoo/cuckoo.py
(Omis)
2014-10-11 23:44:29,156 [lib.cuckoo.core.plugins] DEBUG: Running non-evented signatures
2014-10-11 23:44:29,156 [lib.cuckoo.core.plugins] DEBUG: Running signature "creates_exe"
2014-10-11 23:44:29,157 [lib.cuckoo.core.plugins] DEBUG: Running signature "generic_metrics"
2014-10-11 23:44:29,178 [lib.cuckoo.core.plugins] DEBUG: Executed reporting module "JsonDump"
2014-10-11 23:44:29,462 [lib.cuckoo.core.plugins] DEBUG: Executed reporting module "ReportHTML"
2014-10-11 23:44:29,462 [lib.cuckoo.core.scheduler] INFO: Task #18: reports generation completed (path=/home/cuckoo/cuckoo/storage/analyses/18)
2014-10-11 23:44:29,601 [lib.cuckoo.core.scheduler] INFO: Task #18: analysis procedure completed

C'était bien.

Résumé

J'ai posté le processus d'essais et d'erreurs tel quel, mais pour résumer

  1. La version de Yara étant différente, insérez une nouvelle version
  2. Lors de la compilation de Yara, je n'ai pas assez de bibliothèques, donc je les ai mises.
  3. Si / usr / local / lib n'est pas inclus dans ld.so.conf, ajoutez-le C'est comme ça. Voici une liste de commandes.
#Bibliothèques requises au moment de la compilation, etc.
$ sudo apt-get install libtool automake
#Bibliothèques requises pour une utilisation avec Cuckoo, etc.
$ sudo apt-get install libjansson-dev libmagic-dev
#Mettez la dernière version de yara et compilez
$ wget https://github.com/plusvic/yara/archive/v3.1.0.tar.gz
$ tar zxvf v3.1.0.tar.gz
$ cd yara-3.1.0/
$ ./bootstrap.sh
$ ./configure --enable-cuckoo --enable-magic
$ make
$ sudo make install
#yara-Compiler python
$ cd yara-python/
$ python setup.py build
$ sudo python setup.py install
#ldconfig
$ sudo su
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig

Ces opérations ne provoquent plus d'erreurs dans mon environnement. Je ne sais pas dans l'environnement des autres, alors faites-le à vos risques et périls.

Recommended Posts

J'obtiens une erreur Yara lors de l'exécution de Cuckoo Sandbox
Erreur de proxy lors de l'exécution de "pip install"
Réponse aux erreurs lors de l'installation de mecab-python
Spécifiez les options lors de l'exécution de python
Erreur lors de la lecture avec python
Erreur Polyfit lors de l'installation de matplotlib