11#!/usr/bin/env python
22# OSSEC Ruleset Update
33
4- # v2.3.2 2016/05/05
4+ # v2.3.3 2016/06/11
55# Created by Wazuh, Inc. <[email protected] >. 6677# This program is a free software; you can redistribute it and/or modify it under the terms of GPLv2
@@ -851,23 +851,20 @@ def setup_decoders(decoder):
851851
852852def setup_rules (rule ):
853853 if rule == "ossec" :
854- new_ossec_rules_path = "{0}/ossec/rules/*rules*.xml" .format (new_rules_path )
855- ossec_rules = sorted (glob .glob (new_ossec_rules_path ))
854+ rules_path = "{0}/ossec/rules/*_rules.xml" .format (new_rules_path )
855+ else :
856+ rules_path = "{0}/{1}/*_rules.xml" .format (new_rules_path , rule )
856857
857- for ossec_rule in ossec_rules :
858- # Do not copy folders or local_rules.xml
859- if os .path .isfile (ossec_rule ) and "local_rules.xml" not in ossec_rule :
860- split = ossec_rule .split ("/" )
861- filename = split [len (split ) - 1 ]
862- dest_file = "{0}/rules/{1}" .format (ossec_path , filename )
863- shutil .copyfile (ossec_rule , dest_file )
864- os .chown (dest_file , root_uid , ossec_gid )
858+ new_rules = sorted (glob .glob (rules_path ))
865859
866- else :
867- src_file = "{0}/{1}/{1}_rules.xml" .format (new_rules_path , rule )
868- dest_file = "{0}/rules/{1}_rules.xml" .format (ossec_path , rule )
869- shutil .copyfile (src_file , dest_file )
870- os .chown (dest_file , root_uid , ossec_gid )
860+ for new_rule in new_rules :
861+ # Do not copy folders or local_rules.xml
862+ if os .path .isfile (new_rule ) and "local_rules.xml" not in new_rule :
863+ split = new_rule .split ("/" )
864+ filename = split [len (split ) - 1 ]
865+ dest_file = "{0}/rules/{1}" .format (ossec_path , filename )
866+ shutil .copyfile (new_rule , dest_file )
867+ os .chown (dest_file , root_uid , ossec_gid )
871868
872869
873870def setup_roochecks (rootcheck ):
@@ -885,9 +882,17 @@ def setup_ossec_conf(item, type_item):
885882 return
886883
887884 if type_item == "rule" :
888- if not regex_in_file ("\s*<include>{0}_rules.xml</include>" .format (item ), ossec_conf ):
889- logger .log ("\t \t New rule in ossec.conf: '{0}'." .format (item ))
890- write_before_line ("<include>local_rules.xml</include>" , ' <include>{0}_rules.xml</include>' .format (item ), ossec_conf )
885+
886+ if item == "amazon" : # Special case
887+ new_items = ["amazon" , "amazon-ec2" , "amazon-iam" ]
888+ else :
889+ new_items = [item ]
890+
891+ for new_item in new_items :
892+ if not regex_in_file ("\s*<include>{0}_rules.xml</include>" .format (new_item ), ossec_conf ):
893+ logger .log ("\t \t New rule in ossec.conf: '{0}'." .format (new_item ))
894+ write_before_line ("<include>local_rules.xml</include>" , ' <include>{0}_rules.xml</include>' .format (new_item ), ossec_conf )
895+
891896 elif type_item == "rootcheck" :
892897 if not regex_in_file ("<rootcheck>" , ossec_conf ) or regex_in_file ("\s*<rootcheck>\s*\n \s*<disabled>\s*yes" , ossec_conf ):
893898 logger .log ("\t \t Rootchecks disabled in ossec.conf -> no activate rootchecks." )
@@ -1021,7 +1026,7 @@ def clean_directory():
10211026
10221027def usage ():
10231028 msg = """
1024- OSSEC Wazuh Ruleset Update v2.3.2
1029+ OSSEC Wazuh Ruleset Update v2.3.3
10251030Github repository: https://github.com/wazuh/ossec-rules
10261031Full documentation: http://documentation.wazuh.com/en/latest/ossec_ruleset.html
10271032
0 commit comments