Modify query defs,config
This commit is contained in:
parent
5bb6197c9e
commit
f48678770d
2 changed files with 17 additions and 8 deletions
|
@ -34,3 +34,5 @@ IOC_TIPOS_OMITIR = [
|
||||||
'pgp-private-key'
|
'pgp-private-key'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
WORKERS_THR = 4
|
||||||
|
|
||||||
|
|
23
defs.py
23
defs.py
|
@ -10,6 +10,7 @@ from concurrent.futures import ThreadPoolExecutor, as_completed
|
||||||
from sqlalchemy import create_engine
|
from sqlalchemy import create_engine
|
||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
from pymisp import PyMISP
|
from pymisp import PyMISP
|
||||||
|
from pymisp.exceptions import PyMISPError
|
||||||
import config
|
import config
|
||||||
import urllib3
|
import urllib3
|
||||||
import requests
|
import requests
|
||||||
|
@ -120,7 +121,7 @@ class MISPProcessorTop:
|
||||||
|
|
||||||
|
|
||||||
return False
|
return False
|
||||||
except Exception as err:
|
except (Exception, PyMISPError) as err:
|
||||||
logging.error(str(err))
|
logging.error(str(err))
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -291,7 +292,7 @@ class MISPProcessorTop:
|
||||||
# Se elimina evento con cero atributo...
|
# Se elimina evento con cero atributo...
|
||||||
self.misp.delete_event(int(e['Event']['id']))
|
self.misp.delete_event(int(e['Event']['id']))
|
||||||
logging.info("Eliminando evento #" +e['Event']['id']+" por carencia de atributos")
|
logging.info("Eliminando evento #" +e['Event']['id']+" por carencia de atributos")
|
||||||
except Exception as err:
|
except (Exception, PyMISPError) as err:
|
||||||
logging.error(str(err))
|
logging.error(str(err))
|
||||||
return resultados
|
return resultados
|
||||||
|
|
||||||
|
@ -350,17 +351,23 @@ class MISPProcessorTop:
|
||||||
# Rango completo de fechas....
|
# Rango completo de fechas....
|
||||||
logging.info("Buscando IoC Desde :" + desde + " Hasta :" + hasta)
|
logging.info("Buscando IoC Desde :" + desde + " Hasta :" + hasta)
|
||||||
|
|
||||||
eventos_tmp = self.misp.search(publish_timestamp=desde)
|
#eventos_tmp = self.misp.search(publish_timestamp=desde)
|
||||||
#eventos = self.misp.search(date_from=desde, date_to=hasta, published=True)
|
#eventos_tmp = self.misp.search(date_from=desde, published=True)
|
||||||
|
|
||||||
|
eventos_tmp = self.misp.search_index(publish_timestamp=desde)
|
||||||
|
|
||||||
# Si existen eventos, se realiza proceso...
|
# Si existen eventos, se realiza proceso...
|
||||||
if eventos_tmp:
|
if eventos_tmp:
|
||||||
|
logging.info("Recolectando eventos para procesar")
|
||||||
eventos = []
|
eventos = []
|
||||||
|
|
||||||
# Se seleccionan eventos para establecer limite de fechas
|
# Se seleccionan eventos para establecer limite de fechas
|
||||||
for e in eventos_tmp:
|
for e in eventos_tmp:
|
||||||
if datetime.fromtimestamp(int(e['Event']['publish_timestamp'])).date() <= datetime.strptime(hasta, '%Y-%m-%d').date():
|
if datetime.fromtimestamp(int(e['publish_timestamp'])).date() <= datetime.strptime(hasta, '%Y-%m-%d').date():
|
||||||
eventos.append(e)
|
|
||||||
|
# Event get
|
||||||
|
ev = self.misp.get_event(int(e['id']))
|
||||||
|
eventos.append(ev)
|
||||||
|
|
||||||
# Atributos por evento es None, se calcula promedio...
|
# Atributos por evento es None, se calcula promedio...
|
||||||
if a_por_evento is None:
|
if a_por_evento is None:
|
||||||
|
@ -381,7 +388,7 @@ class MISPProcessorTop:
|
||||||
logging.info("Eventos por procesar :" + str(len(eventos)))
|
logging.info("Eventos por procesar :" + str(len(eventos)))
|
||||||
logging.info("Máximo de atributos a procesar por evento :" + str(prom))
|
logging.info("Máximo de atributos a procesar por evento :" + str(prom))
|
||||||
|
|
||||||
num_workers = 4
|
num_workers = config.WORKERS_THR
|
||||||
logging.info(f"Usando {num_workers} workers")
|
logging.info(f"Usando {num_workers} workers")
|
||||||
|
|
||||||
with ThreadPoolExecutor(max_workers=num_workers) as executor:
|
with ThreadPoolExecutor(max_workers=num_workers) as executor:
|
||||||
|
@ -409,7 +416,7 @@ class MISPProcessorTop:
|
||||||
logging.error("No se encuentran cuentas asociadas a MISP. Se detiene proceso")
|
logging.error("No se encuentran cuentas asociadas a MISP. Se detiene proceso")
|
||||||
|
|
||||||
return output
|
return output
|
||||||
except Exception as err:
|
except (Exception, PyMISPError) as err:
|
||||||
logging.error(str(err))
|
logging.error(str(err))
|
||||||
|
|
||||||
def guarda_ioc_json(self, data: list, filename: str):
|
def guarda_ioc_json(self, data: list, filename: str):
|
||||||
|
|
Loading…
Add table
Reference in a new issue