Невозможно получить данные из модуля pyattck
я используюpyattck
модуль для получения информации от mitre att&ck.
Версии:
- pyattck==7.0.0
- pyattck-data==2.5.2
Затем я просто создал простой файл для тестирования модуля.
from pyattck import Attck
def main():
attck = Attck()
for technique in attck.enterprise.techniques:
print(technique.name)
if __name__ == '__main__':
main()
При запускеmain.py
script я получаю следующее исключение:
Traceback (most recent call last):
File "/<path>/main.py", line 15, in <module>
main()
File "/<path>/main.py", line 8, in main
for technique in attck.enterprise.techniques:
File "/<path_venv>/lib/python3.10/site-packages/pyattck/attck.py", line 253, in enterprise
from .enterprise import EnterpriseAttck
File "/<path_venv>/lib/python3.10/site-packages/pyattck/enterprise.py", line 7, in <module>
class EnterpriseAttck(Base):
File "/<path_venv>/lib/python3.10/site-packages/pyattck/enterprise.py", line 42, in EnterpriseAttck
__attck = MitreAttck(**Base.config.get_data("enterprise_attck_json"))
File "/<path_venv>/lib/python3.10/site-packages/pyattck_data/attack.py", line 55, in __init__
raise te
File "/<path_venv>/lib/python3.10/site-packages/pyattck_data/attack.py", line 53, in __init__
self.__attrs_init__(**kwargs)
File "<attrs generated init pyattck_data.attack.MitreAttck>", line 14, in __attrs_init__
File "/<path_venv>/lib/python3.10/site-packages/pyattck_data/attack.py", line 66, in __attrs_post_init__
raise te
File "/<path_venv>/lib/python3.10/site-packages/pyattck_data/attack.py", line 62, in __attrs_post_init__
data = TYPE_MAP.get(item['type'])(**item)
TypeError: 'NoneType' object is not callable
Кто-нибудь знает, где проблема? Может я что-то забыл импортировать? Было бы полезно узнать, действительно ли этот модуль работает в другой версии. Это последний стабильный ATTOW.
ОБНОВЛЕНИЕ В этом проекте есть проблема. Mitre добавил некоторые новые функции, которые не поддерживаются модулем и делают его непригодным для использования.
На github есть проблема , связанная с этим.
1 ответ
Они уже исправили эту проблему в будущих выпусках. Вам просто нужно обновить пакетpyattck-data
сформируйте багованную версию2.5.2
к2.6.1
(или любой новее).
Если вы используете pip, просто запустите это:
pip install --upgrade pyattck-data
Если вы используете conda (внутри вашего venv):
conda update pyattck-data