def check_all_iban(l_iban, obj_id): nb_valid_iban = 0 for iban in l_iban: iban = iban[0] + iban[1] + iban[2] iban = ''.join(e for e in iban if e.isalnum()) #iban = iban.upper() res = iban_regex_verify.findall(iban) date = datetime.datetime.now().strftime("%Y%m") if res: print('checking ' + iban) if is_valid_iban(iban): print('------') nb_valid_iban = nb_valid_iban + 1 server_statistics.hincrby('iban_by_country:' + date, iban[0:2], 1) if (nb_valid_iban > 0): to_print = 'Iban;{};{};{};'.format(Item.get_source(obj_id), Item.get_item_date(obj_id), Item.get_basename(obj_id)) publisher.warning('{}Checked found {} IBAN;{}'.format( to_print, nb_valid_iban, obj_id)) msg = 'infoleak:automatic-detection="iban";{}'.format(obj_id) p.populate_set_out(msg, 'Tags') #Send to duplicate p.populate_set_out(obj_id, 'Duplicate')
def compute(self, message): obj_id = Item.get_item_id(message) # Extract info from message content = Item.get_item_content(obj_id) date = Item.get_item_date(obj_id) for decoder in self.decoder_order: # add threshold and size limit # max execution time on regex signal.alarm(decoder['max_execution_time']) try: encoded_list = decoder['regex'].findall(content) except TimeoutException: encoded_list = [] self.process.incr_module_timeout_statistic( ) # add encoder type self.redis_logger.debug(f"{obj_id} processing timeout") continue else: signal.alarm(0) if (len(encoded_list) > 0): content = self.decode_string(content, message, date, encoded_list, decoder['name'], decoder['encoded_min_size'])
def compute(self, item_id): # refresh Tracked term if self.last_refresh_word < Term.get_tracked_term_last_updated_by_type( 'word'): self.list_tracked_words = Term.get_tracked_words_list() self.last_refresh_word = time.time() self.redis_logger.debug('Tracked word refreshed') if self.last_refresh_set < Term.get_tracked_term_last_updated_by_type( 'set'): self.set_tracked_words_list = Term.get_set_tracked_words_list() self.last_refresh_set = time.time() self.redis_logger.debug('Tracked set refreshed') # Cast message as Item item_date = Item.get_item_date(item_id) item_content = Item.get_item_content(item_id) signal.alarm(self.max_execution_time) dict_words_freq = None try: dict_words_freq = Term.get_text_word_frequency(item_content) except TimeoutException: self.redis_logger.warning("{0} processing timeout".format(item_id)) else: signal.alarm(0) if dict_words_freq: # create token statistics #for word in dict_words_freq: # Term.create_token_statistics(item_date, word, dict_words_freq[word]) # check solo words for word in self.list_tracked_words: if word in dict_words_freq: self.new_term_found(word, 'word', item_id, item_date) # check words set for elem in self.set_tracked_words_list: list_words = elem[0] nb_words_threshold = elem[1] word_set = elem[2] nb_uniq_word = 0 for word in list_words: if word in dict_words_freq: nb_uniq_word += 1 if nb_uniq_word >= nb_words_threshold: self.new_term_found(word_set, 'set', item_id, item_date)
if message is None: publisher.debug("{} queue is empty, waiting".format(config_section)) time.sleep(1) continue print(message) paste = Paste.Paste(message) date = str(paste._get_p_date()) content = paste.get_p_content() content = remove_html(content) extract_all_id(message, content, regex_pgp_public_blocs) extract_all_id(message, content, regex_pgp_signature) extract_all_id(message, content, regex_pgp_message) item_date = Item.get_item_date(message) for key_id in set_key: print(key_id) Pgp.pgp.save_item_correlation('key', key_id, message, item_date) for name_id in set_name: print(name_id) Pgp.pgp.save_item_correlation('name', key_id, message, item_date) for mail_id in set_mail: print(mail_id) Pgp.pgp.save_item_correlation('mail', key_id, message, item_date)
publisher.channel = "Script" publisher.info("Script TermTrackerMod started") config_section = 'TermTrackerMod' p = Process(config_section) max_execution_time = p.config.getint(config_section, "max_execution_time") full_item_url = p.config.get("Notifications", "ail_domain") + full_item_url while True: item_id = p.get_from_set() if item_id is not None: item_date = Item.get_item_date(item_id) item_content = Item.get_item_content(item_id) signal.alarm(max_execution_time) try: dict_words_freq = Term.get_text_word_frequency(item_content) except TimeoutException: print("{0} processing timeout".format(paste.p_rel_path)) continue else: signal.alarm(0) # create token statistics for word in dict_words_freq: Term.create_token_statistics(item_date, word, dict_words_freq[word])
# Endless loop getting messages from the input queue while True: # Get one message from the input queue message = p.get_from_set() if message is None: publisher.debug( "{} queue is empty, waiting".format(config_section)) time.sleep(1) continue obj_id = Item.get_item_id(message) # Do something with the message from the queue content = Item.get_item_content(obj_id) date = Item.get_item_date(obj_id) for decoder in decoder_order: # add threshold and size limit # max execution time on regex signal.alarm(decoder['max_execution_time']) try: encoded_list = re.findall(decoder['regex'], content) except TimeoutException: encoded_list = [] p.incr_module_timeout_statistic() # add encoder type print("{0} processing timeout".format(obj_id)) continue else: signal.alarm(0)