Merge pull request #253 from MISP/chrisr3d_patch

Validation of yara rules
pull/266/head
Alexandre Dulaunoy 2018-11-12 16:59:41 +01:00 committed by GitHub
commit f62ca53e90
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 3 deletions

View File

@ -21,7 +21,7 @@ domaintools_api
pygeoip
bs4
oauth2
yara-python
yara-python==3.8.0
sigmatools
stix2-patterns
maclookup

View File

@ -1,5 +1,9 @@
import json
import re
try:
import yara
except (OSError, ImportError):
print("yara is missing, use 'pip3 install -I -r REQUIREMENTS' from the root of this repository to install it.")
misperrors = {'error': 'Error'}
moduleinfo = {'version': '1', 'author': 'Christian STUDER',
@ -30,7 +34,12 @@ def handler(q=False):
rule_start = 'import "hash" \r\nrule %s_%s {' % (attribute_type.upper(), re.sub(r'\W+', '_', uuid)) if uuid else 'import "hash"\r\nrule %s {' % attribute_type.upper()
condition = '\tcondition:\r\n\t\t{}'.format(condition)
rule = '\r\n'.join([rule_start, condition, '}'])
return {'results': [{'types': mispattributes['output'], 'values': [rule]}]}
try:
yara.compile(source=rule)
except Exception as e:
misperrors['error'] = 'Syntax error: {}'.format(e)
return misperrors
return {'results': [{'types': mispattributes['output'], 'values': rule}]}
def introspection():
return mispattributes

View File

@ -3,7 +3,7 @@ import requests
try:
import yara
except (OSError, ImportError):
print("yara is missing, use 'pip3 install yara' to install it.")
print("yara is missing, use 'pip3 install -I -r REQUIREMENTS' from the root of this repository to install it.")
misperrors = {'error': 'Error'}
mispattributes = {'input': ['yara'], 'output': ['text']}