eliasgranderubio / dagda

a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities
Apache License 2.0
1.15k stars 160 forks source link

Dadga open multiple threads #17

Closed scumfrog closed 7 years ago

scumfrog commented 7 years ago

Hi @eliasgranderubio,

I've a very strange issue. When i run python3 dagda.py start and then, the vulnerability database init command, dadga starts to open multiple threads:

root     11807  0.1  0.7 474504 14652 pts/0    D+   12:32   0:01 python3 dagda.py start
root     11813 20.1  1.6 944704 31060 pts/0    Rl+  12:33   3:02 python3 dagda.py start
root     11814  0.0  0.4 399248  8472 pts/0    Sl+  12:33   0:00 python3 dagda.py start
root     13242  0.0  0.0  17956  1612 ?        S    12:53   0:00 /bin/bash /usr/bin/falco-probe-loader
root     13256  0.1  0.2  20260  4072 ?        S    12:53   0:00 /bin/bash /usr/sbin/dkms autoinstall --kernelver 3.10.0-514.16.1.el7.x86_64
root     13340  0.0  0.1  20308  3644 ?        S    12:53   0:00 /bin/bash /usr/sbin/dkms autoinstall --kernelver 3.10.0-514.16.1.el7.x86_64
root     13567  0.0  0.1  20308  3188 ?        S    12:53   0:00 /bin/bash /usr/sbin/dkms autoinstall --kernelver 3.10.0-514.16.1.el7.x86_64
root     13568  0.0  0.1  20308  3272 ?        S    12:53   0:00 /bin/bash /usr/sbin/dkms autoinstall --kernelver 3.10.0-514.16.1.el7.x86_64

saturating the OS. I cancel the dadga start execution:

$ python3 dagda.py start

^C
Process ForkPoolWorker-94:
Process ForkPoolWorker-92:
Process ForkPoolWorker-59:
Process ForkPoolWorker-41:
Process ForkPoolWorker-19:
Process ForkPoolWorker-100:
Process ForkPoolWorker-99:
Process ForkPoolWorker-98:
Process ForkPoolWorker-97:
Process ForkPoolWorker-96:
Process ForkPoolWorker-95:
Process ForkPoolWorker-93:
Process ForkPoolWorker-91:
Process ForkPoolWorker-90:
Process ForkPoolWorker-89:
Process ForkPoolWorker-88:
Process ForkPoolWorker-87:
Process ForkPoolWorker-86:
Process ForkPoolWorker-85:
Process ForkPoolWorker-84:
Process ForkPoolWorker-83:
Process ForkPoolWorker-82:
Process ForkPoolWorker-81:
Process ForkPoolWorker-80:
Process ForkPoolWorker-79:
Process ForkPoolWorker-78:
Process ForkPoolWorker-77:
Process ForkPoolWorker-76:
Process ForkPoolWorker-75:
Process ForkPoolWorker-74:
Process ForkPoolWorker-73:
Process ForkPoolWorker-72:
Process ForkPoolWorker-71:
Process ForkPoolWorker-70:
Process ForkPoolWorker-69:
Process ForkPoolWorker-68:
Process ForkPoolWorker-66:
Process ForkPoolWorker-65:
Process ForkPoolWorker-64:
Process ForkPoolWorker-63:
Process ForkPoolWorker-62:
Process ForkPoolWorker-61:
Process ForkPoolWorker-60:
Process ForkPoolWorker-58:
Process ForkPoolWorker-57:
Process ForkPoolWorker-56:
Process ForkPoolWorker-55:
Process ForkPoolWorker-54:
Process ForkPoolWorker-53:
Process ForkPoolWorker-52:
Process ForkPoolWorker-51:
Process ForkPoolWorker-50:
Process ForkPoolWorker-49:
Process ForkPoolWorker-47:
Process ForkPoolWorker-46:
Process ForkPoolWorker-45:
Process ForkPoolWorker-44:
Process ForkPoolWorker-43:
Process ForkPoolWorker-42:
Process ForkPoolWorker-40:
Process ForkPoolWorker-39:
Process ForkPoolWorker-38:
Process ForkPoolWorker-37:
Process ForkPoolWorker-36:
Process ForkPoolWorker-35:
Process ForkPoolWorker-34:
Process ForkPoolWorker-10:
Process ForkPoolWorker-48:
Process ForkPoolWorker-67:
Process ForkPoolWorker-33:
Process ForkPoolWorker-3:
Process ForkPoolWorker-32:
Process ForkPoolWorker-4:
Process ForkPoolWorker-16:
Process ForkPoolWorker-7:
Process ForkPoolWorker-15:
Process ForkPoolWorker-8:
Process ForkPoolWorker-21:
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Process ForkPoolWorker-24:
Traceback (most recent call last):
Process ForkPoolWorker-23:
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
Process ForkPoolWorker-5:
Process ForkPoolWorker-6:
Process ForkPoolWorker-9:
Traceback (most recent call last):
Process ForkPoolWorker-17:
Traceback (most recent call last):
Traceback (most recent call last):

Any idea that what happen? Thanks in advance!

eliasgranderubio commented 7 years ago

Hi @scumfrog,

When you start Dagda server, it opens three threads (See the method run for details):

On the other hand, if you run init method, Dagda starts to do web scrapping with Security Focus and it opens a hundred lightweight threads for improving the performance in the information gathering process. These threads are killed when init ends. See the next method if you need tunning the thread number.

scumfrog commented 7 years ago

Hi @eliasgranderubio

Now i've free time to test your advice, and works correctly :+1: Sorry for the delay! I close the issue. Thanks as always.