mirror of https://github.com/MISP/misp-modules
				
				
				
			
		
			
				
	
	
		
			85 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
| import json
 | |
| import base64
 | |
| from pymisp import MISPEvent, MISPObject, MISPAttribute
 | |
| 
 | |
| misperrors = {'error': 'Error'}
 | |
| userConfig = {
 | |
|     'number1': {
 | |
|         'type': 'Integer',
 | |
|         'regex': '/^[0-4]$/i',
 | |
|         'errorMessage': 'Expected a number in range [0-4]',
 | |
|         'message': 'Column number used for value'
 | |
|     },
 | |
|     'some_string': {
 | |
|         'type': 'String',
 | |
|         'message': 'A text field'
 | |
|     },
 | |
|     'boolean_field': {
 | |
|         'type': 'Boolean',
 | |
|         'message': 'Boolean field test'
 | |
|     },
 | |
|     'comment': {
 | |
|         'type': 'Integer',
 | |
|         'message': 'Column number used for comment'
 | |
|     }
 | |
| }
 | |
| 
 | |
| mispattributes = {
 | |
|     'inputSource': ['file', 'paste'],
 | |
|     'output': ['MISP Format'],
 | |
|     'format': 'misp_standard'
 | |
| }
 | |
| 
 | |
| 
 | |
| moduleinfo = {'version': '0.1', 'author': 'Sami Mokaddem',
 | |
|               'description': 'Generic blueprint to be copy-pasted to quickly boostrap creation of import module.',
 | |
|               'module-type': ['import']}
 | |
| 
 | |
| moduleconfig = []
 | |
| 
 | |
| 
 | |
| 
 | |
| def generateData(event, data, config):
 | |
|     # attr = MISPAttribute()
 | |
|     # attr.from_dict(**{
 | |
|     #     'type': 'ip-src',
 | |
|     #     'value': '8.8.8.8',
 | |
|     #     'distribution': 2
 | |
|     # })
 | |
|     # event.add_attribute(attr)
 | |
|     pass
 | |
| 
 | |
| 
 | |
| def handler(q=False):
 | |
|     if q is False:
 | |
|         return False
 | |
|     request = json.loads(q)
 | |
|     data = getUploadedData(request)
 | |
|     config = getPassedConfig(request)
 | |
|     event = MISPEvent()
 | |
|     generateData(event, data, config)
 | |
|     return {"results": json.loads(event.to_json())}
 | |
| 
 | |
| 
 | |
| def getUploadedData(request):
 | |
|     return base64.b64decode(request['data']).decode('utf8')
 | |
| 
 | |
| 
 | |
| def getPassedConfig(request):
 | |
|     return request['config']
 | |
| 
 | |
| 
 | |
| def introspection():
 | |
|     modulesetup = mispattributes
 | |
|     try:
 | |
|         userConfig
 | |
|         modulesetup['userConfig'] = userConfig
 | |
|     except NameError:
 | |
|         pass
 | |
|     return modulesetup
 | |
| 
 | |
| 
 | |
| def version():
 | |
|     moduleinfo['config'] = moduleconfig
 | |
|     return moduleinfo
 |