Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if "query" in report.iocs:
th_report["iocs"]["query"] = []
for query in report.iocs.get("query", []):
try:
search = query.get('search_query', "")
if "q=" in search:
params = search.split('&')
for p in params:
if "q=" in p:
search = unquote(p[2:])
# Converts the CB Response query to CB Threat Hunter
th_query = cb_th.convert_query(search)
if th_query:
query["search_query"] = th_query
th_report["iocs"]["query"].append(query)
except ServerError:
print('Invalid query {}'.format(query.get('search_query', "")))
th_feed["reports"].append(th_report)
# Pushes the new feed to CB Threat Hunter
new_feed = cb_th.create(FeedTH, th_feed)
new_feed.save()
print("{}\n".format(new_feed))
refresh_required = True
if request_ret.status_code not in range(200, 300):
try:
message = json.loads(request_ret.text)[0]
except Exception:
message = request_ret.text
raise ServerError(request_ret.status_code, message,
result="Did not update {} record.".format(self.__class__.__name__))
else:
try:
message = request_ret.json()
log.debug("Received response: %s" % message)
if not isinstance(message, dict):
raise ServerError(request_ret.status_code, message,
result="Unknown error updating {0:s} record.".format(self.__class__.__name__))
else:
if message.get("success", False):
if isinstance(message.get(self.info_key, None), dict):
self._info = message.get(self.info_key)
self._full_init = True
refresh_required = False
else:
if self._change_object_key_name in message.keys():
# if all we got back was an ID, try refreshing to get the entire record.
log.debug("Only received an ID back from the server, forcing a refresh")
self._info[self.primary_key] = message[self._change_object_key_name]
refresh_required = True
else:
# "success" is False
raise ServerError(request_ret.status_code, message.get("message", ""),
refresh_required = True
if request_ret.status_code not in range(200, 300):
try:
message = json.loads(request_ret.text)[0]
except Exception:
message = request_ret.text
raise ServerError(request_ret.status_code, message,
result="Did not update {} record.".format(self.__class__.__name__))
else:
try:
message = request_ret.json()
log.debug("Received response: %s" % message)
if not isinstance(message, dict):
raise ServerError(request_ret.status_code, message,
result="Unknown error updating {0:s} record.".format(self.__class__.__name__))
else:
if message.get("success", False):
if isinstance(message.get(self.info_key, None), dict):
self._info = message.get(self.info_key)
self._full_init = True
refresh_required = False
else:
if self._change_object_key_name in message.keys():
# if all we got back was an ID, try refreshing to get the entire record.
log.debug("Only received an ID back from the server, forcing a refresh")
self._info[self.primary_key] = message[self._change_object_key_name]
refresh_required = True
else:
# "success" is False
raise ServerError(request_ret.status_code, message.get("message", ""),
feeds = None
if not feeds:
logger.info("Feed {} was not found, so we are going to create it".format(self.feed_name))
f = self.cb.create(Feed)
f.feed_url = "http://%s:%d%s" % (
self.bridge_options["feed_host"], int(self.bridge_options["listener_port"]),
self.json_feed_path)
f.enabled = True
f.use_proxy = False
f.validate_server_cert = False
f.name = self.feed_name
try:
f.save()
except ServerError as se:
if se.error_code == 500:
logger.info("Could not add feed:")
logger.info(
" Received error code 500 from server. This is usually because the server cannot retrieve the feed.")
logger.info(
" Check to ensure the Cb server has network connectivity and the credentials are correct.")
else:
logger.info("Could not add feed: {0:s}".format(str(se)))
except Exception as e:
logger.info("Could not add feed: {0:s}".format(str(e)))
else:
logger.info("Feed data: {0:s}".format(str(f)))
logger.info("Added feed. New feed ID is {0:d}".format(f.id))
f.synchronize(False)
elif len(feeds) > 1:
logger.info("Feed {} was found as Feed ID {}".format(sanitized_feed_name, feed_id))
except Exception as e:
logger.info(e.message)
if not feed_id:
logger.info("Creating {} feed for the first time".format(sanitized_feed_name))
f = self.cb.create(Feed)
f.feed_url = "file://" + feed_helper.path
f.enabled = site.get('feeds_enable')
f.use_proxy = False
f.validate_server_cert = False
try:
f.save()
except ServerError as se:
if se.error_code == 500:
logger.info("Could not add feed:")
logger.info(
" Received error code 500 from server. This is usually because the server cannot retrieve the feed.")
logger.info(
" Check to ensure the Cb server has network connectivity and the credentials are correct.")
else:
logger.info("Could not add feed: {0:s}".format(str(se)))
except Exception as e:
logger.info("Could not add feed: {0:s}".format(str(e)))
else:
logger.info("Feed data: {0:s}".format(str(f)))
logger.info("Added feed. New feed ID is {0:d}".format(f.id))
feed_id = f.id
return feed_id
def _refresh_if_needed(self, request_ret):
refresh_required = True
if request_ret.status_code not in range(200, 300):
try:
message = json.loads(request_ret.text)[0]
except Exception:
message = request_ret.text
raise ServerError(request_ret.status_code, message,
result="Did not update {} record.".format(self.__class__.__name__))
else:
try:
message = request_ret.json()
log.debug("Received response: %s" % message)
if not isinstance(message, dict):
raise ServerError(request_ret.status_code, message,
result="Unknown error updating {0:s} record.".format(self.__class__.__name__))
else:
if message.get("success", False):
if isinstance(message.get(self.info_key, None), dict):
self._info = message.get(self.info_key)
self._full_init = True
refresh_required = False
else:
if self._change_object_key_name in message.keys():