diff --git a/bin/MISP_The_Hive_feeder.py b/bin/MISP_The_Hive_feeder.py index 38b1e8c4..62053436 100755 --- a/bin/MISP_The_Hive_feeder.py +++ b/bin/MISP_The_Hive_feeder.py @@ -167,14 +167,14 @@ if __name__ == "__main__": if HiveApi != False: if int(r_serv_db.get('hive:auto-alerts')) == 1: whitelist_hive = r_serv_db.scard('whitelist_hive') - if r_serv_db.scard('whitelist_hive') == 0 or r_serv_db.sismember('whitelist_hive', tag): + if r_serv_db.sismember('whitelist_hive', tag): create_the_hive_alert(source, path, full_path, tag) else: print('hive, auto alerts creation disable') if flag_misp: if int(r_serv_db.get('misp:auto-events')) == 1: - if r_serv_db.scard('whitelist_misp') == 0 or r_serv_db.sismember('whitelist_misp', tag): + if r_serv_db.sismember('whitelist_misp', tag): misp_wrapper.pushToMISP(uuid_ail, path, tag) else: print('misp, auto events creation disable') diff --git a/bin/ailleakObject.py b/bin/ailleakObject.py index e2ff2850..f44a49dd 100755 --- a/bin/ailleakObject.py +++ b/bin/ailleakObject.py @@ -121,7 +121,7 @@ class ObjectWrapper: analysis, info, date, published, orgc_id, org_id, sharing_group_id) eventUuid = event['Event']['uuid'] - self.pymisp.tag(eventUuid, 'infoleak:source="unknown"') + self.pymisp.tag(eventUuid, 'infoleak:output-format="ail-daily"') return event # Publish object to MISP diff --git a/var/www/modules/PasteSubmit/Flask_PasteSubmit.py b/var/www/modules/PasteSubmit/Flask_PasteSubmit.py index dab642ac..ae530aeb 100644 --- a/var/www/modules/PasteSubmit/Flask_PasteSubmit.py +++ b/var/www/modules/PasteSubmit/Flask_PasteSubmit.py @@ -133,7 +133,7 @@ def addTagsVerification(tags, tagsgalaxies): def date_to_str(date): return "{0}-{1}-{2}".format(date.year, date.month, date.day) -def misp_create_event(distribution, threat_level_id, analysis, info, l_tags, path): +def misp_create_event(distribution, threat_level_id, analysis, info, l_tags, publish, path): paste = Paste.Paste(path) source = path.split('/')[-6:] @@ -165,7 +165,10 @@ def misp_create_event(distribution, threat_level_id, analysis, info, l_tags, pat today = datetime.date.today() # [0-3] - published = False + if publish == 'True': + published = True + else: + published = False org_id = None orgc_id = None sharing_group_id = None @@ -176,6 +179,8 @@ def misp_create_event(distribution, threat_level_id, analysis, info, l_tags, pat eventUuid = event['Event']['uuid'] eventid = event['Event']['id'] + r_serv_metadata.set('misp_events:path', eventid) + # add tags for tag in l_tags: pymisp.tag(eventUuid, tag) @@ -246,6 +251,8 @@ def hive_create_case(hive_tlp, threat_level, hive_description, hive_case_title, if res.status_code != 201: print('ko: {}/{}'.format(res.status_code, res.text)) + r_serv_metadata.set('hive_cases:path', id) + return hive_case_url.replace('id_here', id) else: print('ko: {}/{}'.format(response.status_code, response.text)) @@ -275,15 +282,17 @@ def submit(): ltagsgalaxies = request.form['tags_galaxies'] paste_content = request.form['paste_content'] + submitted_tag = 'infoleak:submission="manual"' + if ltags or ltagsgalaxies: if not addTagsVerification(ltags, ltagsgalaxies): return 'INVALID TAGS' # add submitted tags if(ltags != ''): - ltags = ltags + ',submitted' + ltags = ltags + ',' + submitted_tag else: - ltags ='submitted' + ltags = submitted_tag if 'file' in request.files: @@ -420,12 +429,13 @@ def create_misp_event(): analysis = int(request.form['misp_data[Event][analysis]']) info = request.form['misp_data[Event][info]'] path = request.form['paste'] + publish = request.form.get('misp_publish') #verify input if (0 <= distribution <= 3) and (1 <= threat_level_id <= 4) and (0 <= analysis <= 2): l_tags = list(r_serv_metadata.smembers('tag:'+path)) - event = misp_create_event(distribution, threat_level_id, analysis, info, l_tags, path) + event = misp_create_event(distribution, threat_level_id, analysis, info, l_tags, publish, path) if event != False: return redirect(event) @@ -467,16 +477,12 @@ def edit_tag_export(): status_misp = [] status_hive = [] - # empty whitelist - if whitelist_misp == 0: - for tag in list_export_tags: + + for tag in list_export_tags: + if r_serv_db.sismember('whitelist_misp', tag): status_misp.append(True) - else: - for tag in list_export_tags: - if r_serv_db.sismember('whitelist_misp', tag): - status_misp.append(True) - else: - status_misp.append(False) + else: + status_misp.append(False) # empty whitelist if whitelist_hive == 0: @@ -497,12 +503,19 @@ def edit_tag_export(): hive_active = True else: hive_active = False + + nb_tags = str(r_serv_db.scard('list_export_tags')) + nb_tags_whitelist_misp = str(r_serv_db.scard('whitelist_misp')) + ' / ' + nb_tags + nb_tags_whitelist_hive = str(r_serv_db.scard('whitelist_hive')) + ' / ' + nb_tags + return render_template("edit_tag_export.html", misp_active=misp_active, hive_active=hive_active, list_export_tags=list_export_tags, status_misp=status_misp, - status_hive=status_hive) + status_hive=status_hive, + nb_tags_whitelist_misp=nb_tags_whitelist_misp, + nb_tags_whitelist_hive=nb_tags_whitelist_hive) @PasteSubmit.route("/PasteSubmit/tag_export_edited", methods=['POST']) def tag_export_edited(): @@ -525,6 +538,7 @@ def tag_export_edited(): r_serv_db.sadd('whitelist_hive', tag) else: return 'invalid input' + return redirect(url_for('PasteSubmit.edit_tag_export')) @PasteSubmit.route("/PasteSubmit/enable_misp_auto_event") diff --git a/var/www/modules/PasteSubmit/templates/edit_tag_export.html b/var/www/modules/PasteSubmit/templates/edit_tag_export.html index 8f0ddb35..17cba8be 100644 --- a/var/www/modules/PasteSubmit/templates/edit_tag_export.html +++ b/var/www/modules/PasteSubmit/templates/edit_tag_export.html @@ -90,8 +90,6 @@