用于misp的python api。
pymisp的Python项目详细描述
自述文件
pymisp-访问misp的python库
pymisp是一个通过rest api访问MISP平台的python库。
pymisp允许您获取事件、添加或更新事件/属性、添加或更新示例或搜索属性。
要求
从PIP安装
pip3 install pymisp
从repo安装最新版本
git clone https://github.com/MISP/PyMISP.git && cd PyMISP
git submodule update --init
pip3 install -I .[fileobjects,neo,openioc,virustotal]
使用virtualenv安装它
建议使用virtualenv来避免影响您的os python环境。
pip3 install virtualenv
git clone https://github.com/MISP/PyMISP.git && cd PyMISP
python3 -m venv ./
source venv/bin/activate
git submodule update --init
pip3 install -I .[fileobjects,neo,openioc,virustotal]
运行测试
pip3 install -U nose pip setuptools coveralls codecov requests-mock
pip3 install git+https://github.com/kbandla/pydeep.git
git clone https://github.com/viper-framework/viper-test-files.git tests/viper-test-files
nosetests-3.4 --with-coverage --cover-package=pymisp,tests --cover-tests tests/test_*.py
如果要测试misp实例,也可以运行活动实例:
note:需要将tests/testlive_comprehensive.py
中的密钥更新为管理员帐户的自动密钥。
nosetests-3.4 --with-coverage --cover-package=pymisp,tests --cover-tests tests/testlive_comprehensive.py
示例和如何使用pymisp
各种示例和示例脚本都在examples/目录中。
在examples目录中,您需要更改keys.py.sample以输入您的misp url和api密钥。
cd examples
cp keys.py.sample keys.py
vim keys.py
misp的api键可以在misp web界面的automation部分找到。
要测试url和api键是否正确,可以使用examples/last.py to进行测试 获取在过去x个时间量中发布的事件(支持的时间指示器:天(d)、小时(h)和分钟(m))。 last.py
cd examples
python3 last.py -l 10h # 10 hours
python3 last.py -l 5d # 5 days
python3 last.py -l 45m # 45 minutes
调试
您有两个选择:
将
debug=True
传递给PyMISP
,它将在整个模块上启用对stderr的logging.debug直接使用python日志模块:
importlogginglogger=logging.getLogger('pymisp')# Configure it as you whish, for example, enable DEBUG mode:logger.setLevel(logging.DEBUG)
或者如果要将调试输出写入文件而不是stderr:
importpymispimportlogginglogger=logging.getLogger('pymisp')logging.basicConfig(level=logging.DEBUG,filename="debug.log",filemode='w',format=pymisp.FORMAT)
文档
PyMISP API documentation is available。
可以使用epydoc生成文档:
epydoc --url https://github.com/MISP/PyMISP --graph all --name PyMISP --pdf pymisp -o doc
Jupyter笔记本
存储库中提供了一系列Jupyter notebooks for PyMISP tutorial。
一切都是可变映射
…或者至少可以从json blob导入/导出的所有内容
AbstractMISP
是主类,继承collections.MutableMapping
,这意味着
类可以表示为一个python字典。
抽象假设字典中不应该出现的每个属性前面都有一个_
,
或者将其名称添加到私有列表__not_jsonable
(可通过update_not_jsonable
和set_not_jsonable
访问)。
这个master类有一些帮助程序,可以方便地加载和导出json字符串。
MISPEvent
、MISPAttribute
、MISPObjectReference
、MISPObjectAttribute
和MISPObject
是abstractmisp的子类,这意味着它们可以作为python字典处理。
MISP对象
创建新的misp对象生成器应该使用预定义的模板并继承AbstractMISPObjectGenerator
。
新的mispobject生成器需要生成属性,并使用add_attribute
将它们作为类属性添加。
当对象发送到misp时,所有类属性都将导出到json导出。