in ingest_suricata_rules/rules_downloader.py [0:0]
def download_ruleset(ruleset_url,url_version):
try:
print("Downloading latest ruleset from: ",ruleset_url)
ruleset_tar_gz = ruleset_url.rsplit('/')[-1]
ruleset_key = ruleset_folder+str(url_version)+'/'+ruleset_tar_gz
response = requests.get(ruleset_url)
orig_md5 = requests.get(ruleset_url+'.md5').content.decode('utf-8').rstrip()
response_md5 = hashlib.md5(response.content).hexdigest()
if orig_md5 == response_md5:
print("Verified md5 checksum. Saving file to s3")
# with open(ruleset_tar_gz, "wb") as file:
# file.write(response.content)
s3upload = s3.put_object(
Bucket=bucket,
Key=ruleset_key,
Body=response.content
)
# save md5 as well
s3upload = s3.put_object(
Bucket=bucket,
Key=ruleset_key+".md5",
Body=orig_md5
)
saved_file = "s3://"+bucket+"/"+ruleset_key
print("Saved files: "+saved_file +" md5: " + saved_file + ".md5" )
else:
print("md5 checksum mismatch." + str(orig_md5) + " vs " + str(response_md5) )
except Exception as err:
raise err
return saved_file