def taxonomies(): active_taxonomies = r_serv_tags.smembers('active_taxonomies') taxonomies = Taxonomies() list_taxonomies = list(taxonomies.keys()) id = [] name = [] description = [] version = [] enabled = [] n_tags = [] for taxonomie in list_taxonomies: id.append(taxonomie) name.append(taxonomies.get(taxonomie).name) description.append(taxonomies.get(taxonomie).description) version.append(taxonomies.get(taxonomie).version) if taxonomie in active_taxonomies: enabled.append(True) else: enabled.append(False) n = str(r_serv_tags.scard('active_tag_' + taxonomie)) n_tags.append(n + '/' + str(len(taxonomies.get(taxonomie).machinetags())) ) return render_template("taxonomies.html", id=id, all_name = name, description = description, version = version, enabled = enabled, n_tags=n_tags)
def taxonomies(): active_taxonomies = r_serv_tags.smembers('active_taxonomies') taxonomies = Taxonomies() list_taxonomies = list(taxonomies.keys()) id = [] name = [] description = [] version = [] enabled = [] n_tags = [] for taxonomie in list_taxonomies: id.append(taxonomie) name.append(taxonomies.get(taxonomie).name) description.append(taxonomies.get(taxonomie).description) version.append(taxonomies.get(taxonomie).version) if taxonomie in active_taxonomies: enabled.append(True) else: enabled.append(False) n = str(r_serv_tags.scard('active_tag_' + taxonomie)) n_tags.append(n + '/' + str(len(taxonomies.get(taxonomie).machinetags()))) return render_template("taxonomies.html", id=id, all_name=name, description=description, version=version, enabled=enabled, n_tags=n_tags)
def edit_taxonomie(): taxonomies = Taxonomies() list_taxonomies = list(taxonomies.keys()) id = request.args.get('taxonomie') #verify input if id in list(taxonomies.keys()): active_tag = r_serv_tags.smembers('active_tag_' + id) list_tag = taxonomies.get(id).machinetags() list_tag_desc = taxonomies.get(id).machinetags_expanded() active_taxonomies = r_serv_tags.smembers('active_taxonomies') if id in active_taxonomies: active = True else: active = False n = str(r_serv_tags.scard('active_tag_' + id)) badge = n + '/' + str(len(taxonomies.get(id).machinetags())) name = taxonomies.get(id).name description = taxonomies.get(id).description version = taxonomies.get(id).version status = [] for tag in list_tag: if tag in active_tag: status.append(True) else: status.append(False) return render_template("edit_taxonomie.html", id=id, name=name, badge = badge, description = description, version = version, active=active, all_tags = list_tag, list_tag_desc=list_tag_desc, status = status) else: return 'INVALID TAXONOMIE'
def edit_taxonomie(): taxonomies = Taxonomies() list_taxonomies = list(taxonomies.keys()) id = request.args.get('taxonomie') #verify input if id in list(taxonomies.keys()): active_tag = r_serv_tags.smembers('active_tag_' + id) list_tag = taxonomies.get(id).machinetags() list_tag_desc = taxonomies.get(id).machinetags_expanded() active_taxonomies = r_serv_tags.smembers('active_taxonomies') if id in active_taxonomies: active = True else: active = False n = str(r_serv_tags.scard('active_tag_' + id)) badge = n + '/' + str(len(taxonomies.get(id).machinetags())) name = taxonomies.get(id).name description = taxonomies.get(id).description version = taxonomies.get(id).version status = [] for tag in list_tag: if tag in active_tag: status.append(True) else: status.append(False) return render_template("edit_taxonomie.html", id=id, name=name, badge=badge, description=description, version=version, active=active, all_tags=list_tag, list_tag_desc=list_tag_desc, status=status) else: return 'INVALID TAXONOMIE'
def explore_pytaxonomies(): """ the tool should go in an endless loop asking for user input with auto complete until the right taxonomy is choosen example: PAP<enter> PAP:AMBER PAP:WHITE PAP:GREEN PAP:RED PAP:RED<enter> --> finished https://github.com/MISP/PyTaxonomies """ from pytaxonomies import Taxonomies taxonomies = Taxonomies() again_user_input = input("do you want to search within the pyTaxonomies? (y/n) ") if again_user_input.lower() == 'y': again = True else: again = False while again: try: char = input("Term you want to search for e.g. PAP, TLP, ...") # read 1 character from stdin # try autocomplete print("Suggestions") if (char is "") or (len(char) == 0): search_results = taxonomies.keys() else: #search_results = taxonomies.get(char).machinetags_expanded() all = taxonomies.all_machinetags() resultarray = [] for iterm in all: for item2 in iterm: if char in item2.lower(): # lower to be able to find PAP if you look for p resultarray.append(item2) for resultitem in resultarray: print(resultitem) # print(search_results) again_user_input = input("again?") if again_user_input.lower() == 'n': again = False else: again = True except AttributeError as e: print("Seems we did not find the value "+str(e))
def get_all_tags_taxonomies(): taxonomies = Taxonomies() list_taxonomies = list(taxonomies.keys()) active_taxonomie = r_serv_tags.smembers('active_taxonomies') list_tags = [] for taxonomie in active_taxonomie: #l_tags = taxonomies.get(taxonomie).machinetags() l_tags = r_serv_tags.smembers('active_tag_' + taxonomie) for tag in l_tags: list_tags.append( tag ) return jsonify(list_tags)
def get_all_tags_taxonomies(): taxonomies = Taxonomies() list_taxonomies = list(taxonomies.keys()) active_taxonomie = r_serv_tags.smembers('active_taxonomies') list_tags = [] for taxonomie in active_taxonomie: #l_tags = taxonomies.get(taxonomie).machinetags() l_tags = r_serv_tags.smembers('active_tag_' + taxonomie) for tag in l_tags: list_tags.append(tag) return jsonify(list_tags)
def disable_taxonomie(): taxonomies = Taxonomies() list_taxonomies = list(taxonomies.keys()) id = request.args.get('taxonomie') if id in list_taxonomies: r_serv_tags.srem('active_taxonomies', id) for tag in taxonomies.get(id).machinetags(): r_serv_tags.srem('active_tag_' + id, tag) return redirect(url_for('Tags.taxonomies')) else: return "INCORRECT INPUT"
def edit_taxonomie_tag(): taxonomies = Taxonomies() list_taxonomies = list(taxonomies.keys()) arg1 = request.args.getlist('tag_enabled') arg2 = request.args.getlist('tag_disabled') id = request.args.get('taxonomie') #verify input if id in list_taxonomies: list_tag = taxonomies.get(id).machinetags() #check tags validity if (all(elem in list_tag for elem in arg1) or (len(arg1) == 0)) and (all(elem in list_tag for elem in arg2) or (len(arg2) == 0)): active_tag = r_serv_tags.smembers('active_tag_' + id) diff = list(set(arg1) ^ set(list_tag)) #remove tags for tag in diff: r_serv_tags.srem('active_tag_' + id, tag) #all tags unchecked if len(arg1) == 0 and len(arg2) == 0: r_serv_tags.srem('active_taxonomies', id) #add new tags for tag in arg2: r_serv_tags.sadd('active_taxonomies', id) r_serv_tags.sadd('active_tag_' + id, tag) return redirect(url_for('Tags.taxonomies')) else: return "INCORRECT INPUT" else: return "INCORRECT INPUT"
def getTaxonomies(dataframe): taxonomies = Taxonomies() taxonomies = list(taxonomies.keys()) notInTaxo = [] count = 0 for taxonomy in taxonomies: empty = True for it in dataframe.iterrows(): if it[0].startswith(taxonomy): empty = False dataframe = dataframe.drop([it[0]]) count = count + 1 if empty is True: notInTaxo.append(taxonomy) if dataframe.empty: emptyOther = True else: emptyOther = False for taxonomy in notInTaxo: taxonomies.remove(taxonomy) return taxonomies, emptyOther
def edit_taxonomie_tag(): taxonomies = Taxonomies() list_taxonomies = list(taxonomies.keys()) arg1 = request.args.getlist('tag_enabled') arg2 = request.args.getlist('tag_disabled') id = request.args.get('taxonomie') #verify input if id in list_taxonomies: list_tag = taxonomies.get(id).machinetags() #check tags validity if ( all(elem in list_tag for elem in arg1) or (len(arg1) == 0) ) and ( all(elem in list_tag for elem in arg2) or (len(arg2) == 0) ): active_tag = r_serv_tags.smembers('active_tag_' + id) diff = list(set(arg1) ^ set(list_tag)) #remove tags for tag in diff: r_serv_tags.srem('active_tag_' + id, tag) #all tags unchecked if len(arg1) == 0 and len(arg2) == 0: r_serv_tags.srem('active_taxonomies', id) #add new tags for tag in arg2: r_serv_tags.sadd('active_taxonomies', id) r_serv_tags.sadd('active_tag_' + id, tag) return redirect(url_for('Tags.taxonomies')) else: return "INCORRECT INPUT" else: return "INCORRECT INPUT"
def get_tags_taxonomie(): taxonomie = request.args.get('taxonomie') taxonomies = Taxonomies() list_taxonomies = list(taxonomies.keys()) active_taxonomie = r_serv_tags.smembers('active_taxonomies') #verify input if taxonomie in list_taxonomies: if taxonomie in active_taxonomie: list_tags = [] l_tags = r_serv_tags.smembers('active_tag_' + taxonomie) for tag in l_tags: list_tags.append( tag ) return jsonify(list_tags) else: return 'this taxonomie is disable' else: return 'INCORRECT INPUT'
def get_tags_taxonomie(): taxonomie = request.args.get('taxonomie') taxonomies = Taxonomies() list_taxonomies = list(taxonomies.keys()) active_taxonomie = r_serv_tags.smembers('active_taxonomies') #verify input if taxonomie in list_taxonomies: if taxonomie in active_taxonomie: list_tags = [] l_tags = r_serv_tags.smembers('active_tag_' + taxonomie) for tag in l_tags: list_tags.append(tag) return jsonify(list_tags) else: return 'this taxonomie is disable' else: return 'INCORRECT INPUT'